1<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5  margin: 0;
6  padding: 0;
7  border: 0;
8  font-weight: inherit;
9  font-style: inherit;
10  font-size: 100%;
11  font-family: inherit;
12  vertical-align: baseline;
13}
14
15body {
16  font-size: 13px;
17  padding: 1em;
18}
19
20h1 {
21  font-size: 26px;
22  margin-bottom: 1em;
23}
24
25h2 {
26  font-size: 24px;
27  margin-bottom: 1em;
28}
29
30h3 {
31  font-size: 20px;
32  margin-bottom: 1em;
33  margin-top: 1em;
34}
35
36pre, code {
37  line-height: 1.5;
38  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42  margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46  font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50  border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54  margin-top: 0.5em;
55}
56
57.firstline {
58  margin-left: 2 em;
59}
60
61.method  {
62  margin-top: 1em;
63  border: solid 1px #CCC;
64  padding: 1em;
65  background: #EEE;
66}
67
68.details {
69  font-weight: bold;
70  font-size: 14px;
71}
72
73</style>
74
75<h1><a href="proximitybeacon_v1beta1.html">Google Proximity Beacon API</a> . <a href="proximitybeacon_v1beta1.beacons.html">beacons</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
78  <code><a href="proximitybeacon_v1beta1.beacons.attachments.html">attachments()</a></code>
79</p>
80<p class="firstline">Returns the attachments Resource.</p>
81
82<p class="toc_element">
83  <code><a href="proximitybeacon_v1beta1.beacons.diagnostics.html">diagnostics()</a></code>
84</p>
85<p class="firstline">Returns the diagnostics Resource.</p>
86
87<p class="toc_element">
88  <code><a href="#activate">activate(beaconName, projectId=None, x__xgafv=None)</a></code></p>
89<p class="firstline">Activates a beacon. A beacon that is active will return information</p>
90<p class="toc_element">
91  <code><a href="#deactivate">deactivate(beaconName, projectId=None, x__xgafv=None)</a></code></p>
92<p class="firstline">Deactivates a beacon. Once deactivated, the API will not return</p>
93<p class="toc_element">
94  <code><a href="#decommission">decommission(beaconName, projectId=None, x__xgafv=None)</a></code></p>
95<p class="firstline">Decommissions the specified beacon in the service. This beacon will no</p>
96<p class="toc_element">
97  <code><a href="#delete">delete(beaconName, projectId=None, x__xgafv=None)</a></code></p>
98<p class="firstline">Deletes the specified beacon including all diagnostics data for the beacon</p>
99<p class="toc_element">
100  <code><a href="#get">get(beaconName, projectId=None, x__xgafv=None)</a></code></p>
101<p class="firstline">Returns detailed information about the specified beacon.</p>
102<p class="toc_element">
103  <code><a href="#list">list(pageSize=None, projectId=None, q=None, syntax=None, pageToken=None, x__xgafv=None)</a></code></p>
104<p class="firstline">Searches the beacon registry for beacons that match the given search</p>
105<p class="toc_element">
106  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
107<p class="firstline">Retrieves the next page of results.</p>
108<p class="toc_element">
109  <code><a href="#register">register(body, projectId=None, x__xgafv=None)</a></code></p>
110<p class="firstline">Registers a previously unregistered beacon given its `advertisedId`.</p>
111<p class="toc_element">
112  <code><a href="#update">update(beaconName, body, projectId=None, x__xgafv=None)</a></code></p>
113<p class="firstline">Updates the information about the specified beacon. **Any field that you do</p>
114<h3>Method Details</h3>
115<div class="method">
116    <code class="details" id="activate">activate(beaconName, projectId=None, x__xgafv=None)</code>
117  <pre>Activates a beacon. A beacon that is active will return information
118and attachment data when queried via `beaconinfo.getforobserved`.
119Calling this method on an already active beacon will do nothing (but
120will return a successful response code).
121
122Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
123from a signed-in user with **Is owner** or **Can edit** permissions in the
124Google Developers Console project.
125
126Args:
127  beaconName: string, Beacon that should be activated. A beacon name has the format
128"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
129the beacon and N is a code for the beacon's type. Possible values are
130`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
131for AltBeacon. For Eddystone-EID beacons, you may use either the
132current EID or the beacon's "stable" UID.
133Required. (required)
134  projectId: string, The project id of the beacon to activate. If the project id is not
135specified then the project making the request is used. The project id
136must match the project that owns the beacon.
137Optional.
138  x__xgafv: string, V1 error format.
139    Allowed values
140      1 - v1 error format
141      2 - v2 error format
142
143Returns:
144  An object of the form:
145
146    { # A generic empty message that you can re-use to avoid defining duplicated
147      # empty messages in your APIs. A typical example is to use it as the request
148      # or the response type of an API method. For instance:
149      #
150      #     service Foo {
151      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
152      #     }
153      #
154      # The JSON representation for `Empty` is empty JSON object `{}`.
155  }</pre>
156</div>
157
158<div class="method">
159    <code class="details" id="deactivate">deactivate(beaconName, projectId=None, x__xgafv=None)</code>
160  <pre>Deactivates a beacon. Once deactivated, the API will not return
161information nor attachment data for the beacon when queried via
162`beaconinfo.getforobserved`. Calling this method on an already inactive
163beacon will do nothing (but will return a successful response code).
164
165Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
166from a signed-in user with **Is owner** or **Can edit** permissions in the
167Google Developers Console project.
168
169Args:
170  beaconName: string, Beacon that should be deactivated. A beacon name has the format
171"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
172the beacon and N is a code for the beacon's type. Possible values are
173`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
174for AltBeacon. For Eddystone-EID beacons, you may use either the
175current EID or the beacon's "stable" UID.
176Required. (required)
177  projectId: string, The project id of the beacon to deactivate. If the project id is not
178specified then the project making the request is used. The project id must
179match the project that owns the beacon.
180Optional.
181  x__xgafv: string, V1 error format.
182    Allowed values
183      1 - v1 error format
184      2 - v2 error format
185
186Returns:
187  An object of the form:
188
189    { # A generic empty message that you can re-use to avoid defining duplicated
190      # empty messages in your APIs. A typical example is to use it as the request
191      # or the response type of an API method. For instance:
192      #
193      #     service Foo {
194      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
195      #     }
196      #
197      # The JSON representation for `Empty` is empty JSON object `{}`.
198  }</pre>
199</div>
200
201<div class="method">
202    <code class="details" id="decommission">decommission(beaconName, projectId=None, x__xgafv=None)</code>
203  <pre>Decommissions the specified beacon in the service. This beacon will no
204longer be returned from `beaconinfo.getforobserved`. This operation is
205permanent -- you will not be able to re-register a beacon with this ID
206again.
207
208Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
209from a signed-in user with **Is owner** or **Can edit** permissions in the
210Google Developers Console project.
211
212Args:
213  beaconName: string, Beacon that should be decommissioned. A beacon name has the format
214"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
215the beacon and N is a code for the beacon's type. Possible values are
216`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
217for AltBeacon. For Eddystone-EID beacons, you may use either the
218current EID of the beacon's "stable" UID.
219Required. (required)
220  projectId: string, The project id of the beacon to decommission. If the project id is not
221specified then the project making the request is used. The project id
222must match the project that owns the beacon.
223Optional.
224  x__xgafv: string, V1 error format.
225    Allowed values
226      1 - v1 error format
227      2 - v2 error format
228
229Returns:
230  An object of the form:
231
232    { # A generic empty message that you can re-use to avoid defining duplicated
233      # empty messages in your APIs. A typical example is to use it as the request
234      # or the response type of an API method. For instance:
235      #
236      #     service Foo {
237      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
238      #     }
239      #
240      # The JSON representation for `Empty` is empty JSON object `{}`.
241  }</pre>
242</div>
243
244<div class="method">
245    <code class="details" id="delete">delete(beaconName, projectId=None, x__xgafv=None)</code>
246  <pre>Deletes the specified beacon including all diagnostics data for the beacon
247as well as any attachments on the beacon (including those belonging to
248other projects). This operation cannot be undone.
249
250Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
251from a signed-in user with **Is owner** or **Can edit** permissions in the
252Google Developers Console project.
253
254Args:
255  beaconName: string, Beacon that should be deleted. A beacon name has the format
256"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
257the beacon and N is a code for the beacon's type. Possible values are
258`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
259for AltBeacon. For Eddystone-EID beacons, you may use either the
260current EID or the beacon's "stable" UID.
261Required. (required)
262  projectId: string, The project id of the beacon to delete. If not provided, the project
263that is making the request is used.
264Optional.
265  x__xgafv: string, V1 error format.
266    Allowed values
267      1 - v1 error format
268      2 - v2 error format
269
270Returns:
271  An object of the form:
272
273    { # A generic empty message that you can re-use to avoid defining duplicated
274      # empty messages in your APIs. A typical example is to use it as the request
275      # or the response type of an API method. For instance:
276      #
277      #     service Foo {
278      #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
279      #     }
280      #
281      # The JSON representation for `Empty` is empty JSON object `{}`.
282  }</pre>
283</div>
284
285<div class="method">
286    <code class="details" id="get">get(beaconName, projectId=None, x__xgafv=None)</code>
287  <pre>Returns detailed information about the specified beacon.
288
289Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
290from a signed-in user with **viewer**, **Is owner** or **Can edit**
291permissions in the Google Developers Console project.
292
293Requests may supply an Eddystone-EID beacon name in the form:
294`beacons/4!beaconId` where the `beaconId` is the base16 ephemeral ID
295broadcast by the beacon. The returned `Beacon` object will contain the
296beacon's stable Eddystone-UID. Clients not authorized to resolve the
297beacon's ephemeral Eddystone-EID broadcast will receive an error.
298
299Args:
300  beaconName: string, Resource name of this beacon. A beacon name has the format
301"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
302the beacon and N is a code for the beacon's type. Possible values are
303`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
304for AltBeacon. For Eddystone-EID beacons, you may use either the
305current EID or the beacon's "stable" UID.
306Required. (required)
307  projectId: string, The project id of the beacon to request. If the project id is not specified
308then the project making the request is used. The project id must match the
309project that owns the beacon.
310Optional.
311  x__xgafv: string, V1 error format.
312    Allowed values
313      1 - v1 error format
314      2 - v2 error format
315
316Returns:
317  An object of the form:
318
319    { # Details of a beacon device.
320    "status": "A String", # Current status of the beacon.
321        # Required.
322    "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
323        # characters.
324        # Optional.
325    "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
326        # Google Maps API.
327        # Optional.
328        # useful to indicate which floor of a building a beacon is located on.
329      "name": "A String", # The name of this level.
330    },
331    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
332        # This location is given when the beacon is registered or updated. It does
333        # not necessarily indicate the actual current location of the beacon.
334        # Optional.
335        # of doubles representing degrees latitude and degrees longitude. Unless
336        # specified otherwise, this must conform to the
337        # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
338        # standard</a>. Values must be within normalized ranges.
339        #
340        # Example of normalization code in Python:
341        #
342        #     def NormalizeLongitude(longitude):
343        #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
344        #       q, r = divmod(longitude, 360.0)
345        #       if r > 180.0 or (r == 180.0 and q <= -1.0):
346        #         return r - 360.0
347        #       return r
348        #
349        #     def NormalizeLatLng(latitude, longitude):
350        #       """Wraps decimal degrees latitude and longitude to
351        #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
352        #       r = latitude % 360.0
353        #       if r <= 90.0:
354        #         return r, NormalizeLongitude(longitude)
355        #       elif r >= 270.0:
356        #         return r - 360, NormalizeLongitude(longitude)
357        #       else:
358        #         return 180 - r, NormalizeLongitude(longitude + 180.0)
359        #
360        #     assert 180.0 == NormalizeLongitude(180.0)
361        #     assert -180.0 == NormalizeLongitude(-180.0)
362        #     assert -179.0 == NormalizeLongitude(181.0)
363        #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
364        #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
365        #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
366        #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
367        #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
368        #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
369        #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
370        #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
371        #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
372        #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
373      "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
374      "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
375    },
376    "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
377        # the beacon is deployed. This is given when the beacon is registered or
378        # updated, not automatically detected in any way.
379        # Optional.
380    "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
381        # (remotely resolved ephemeral ID) format. This information will not be
382        # populated in API responses. When submitting this data, the `advertised_id`
383        # field must contain an ID of type Eddystone-UID. Any other ID type will
384        # result in an error.
385        # Two ways of securely registering an Eddystone-EID beacon with the service
386        # are supported:
387        #
388        # 1. Perform an ECDH key exchange via this API, including a previous call
389        #    to `GET /v1beta1/eidparams`. In this case the fields
390        #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
391        #    populated and `beacon_identity_key` should not be populated. This
392        #    method ensures that only the two parties in the ECDH key exchange can
393        #    compute the identity key, which becomes a secret between them.
394        # 2. Derive or obtain the beacon's identity key via other secure means
395        #    (perhaps an ECDH key exchange between the beacon and a mobile device
396        #    or any other secure method), and then submit the resulting identity key
397        #    to the service. In this case `beacon_identity_key` field should be
398        #    populated, and neither of `beacon_ecdh_public_key` nor
399        #    `service_ecdh_public_key` fields should be. The security of this method
400        #    depends on how securely the parties involved (in particular the
401        #    bluetooth client) handle the identity key, and obviously on how
402        #    securely the identity key was generated.
403        #
404        # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
405      "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
406          # ephemeral ID. "Nominal" because the beacon should randomize the
407          # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
408          # for details. This value corresponds to a power-of-two scaler on the
409          # beacon's clock: when the scaler value is K, the beacon will begin
410          # broadcasting a new ephemeral ID on average every 2^K seconds.
411      "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
412          # begun counting at this value immediately prior to transmitting this
413          # value to the resolving service. Significant delay in transmitting this
414          # value to the service risks registration or resolution failures. If a
415          # value is not provided, the default is zero.
416      "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
417          # key exchange. When this field is populated, `beacon_ecdh_public_key`
418          # must also be populated, and `beacon_identity_key` must not be.
419      "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
420          # `initial_clock_value`, and the secret key generated by the
421          # Diffie-Hellman key exchange using `service_ecdh_public_key` and
422          # `service_ecdh_public_key`. This initial EID value will be used by the
423          # service to confirm that the key exchange process was successful.
424      "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
425          # key exchange. When this field is populated, `service_ecdh_public_key`
426          # must also be populated, and `beacon_identity_key` must not be.
427      "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
428          # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
429          # populated.
430    },
431    "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
432        # populated when registering. It may be empty when updating a beacon
433        # record because it is ignored in updates.
434        #
435        # When registering a beacon that broadcasts Eddystone-EID, this field
436        # should contain a "stable" Eddystone-UID that identifies the beacon and
437        # links it to its attachments. The stable Eddystone-UID is only used for
438        # administering the beacon.
439      "type": "A String", # Specifies the identifier type.
440          # Required.
441      "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
442          # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
443          # requests, and will be so encoded (with padding) in responses. The base64
444          # encoding should be of the binary byte-stream and not any textual (such as
445          # hex) representation thereof.
446          # Required.
447    },
448    "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
449        # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
450        # the beacon and N is a code for the beacon's type. Possible values are
451        # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
452        #
453        # This field must be left empty when registering. After reading a beacon,
454        # clients can use the name for future operations.
455    "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
456        # updated, not automatically detected in any way.
457        # Optional.
458    "properties": { # Properties of the beacon device, for example battery type or firmware
459        # version.
460        # Optional.
461      "a_key": "A String",
462    },
463    "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
464        # changing any of its configuration (e.g. broadcast frames, transmit power).
465        # This field provides a place to store and control access to that key.
466        # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
467        # from users with write access to the given beacon. That is to say: If the
468        # user is authorized to write the beacon's confidential data in the service,
469        # the service considers them authorized to configure the beacon. Note
470        # that this key grants nothing on the service, only on the beacon itself.
471  }</pre>
472</div>
473
474<div class="method">
475    <code class="details" id="list">list(pageSize=None, projectId=None, q=None, syntax=None, pageToken=None, x__xgafv=None)</code>
476  <pre>Searches the beacon registry for beacons that match the given search
477criteria. Only those beacons that the client has permission to list
478will be returned.
479
480Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
481from a signed-in user with **viewer**, **Is owner** or **Can edit**
482permissions in the Google Developers Console project.
483
484Args:
485  pageSize: integer, The maximum number of records to return for this request, up to a
486server-defined upper limit.
487  projectId: string, The project id to list beacons under. If not present then the project
488credential that made the request is used as the project.
489Optional.
490  q: string, Filter query string that supports the following field filters:
491
492* **description:`"<string>"`**
493  For example: **description:"Room 3"**
494  Returns beacons whose description matches tokens in the string "Room 3"
495  (not necessarily that exact string).
496  The string must be double-quoted.
497* **status:`<enum>`**
498  For example: **status:active**
499  Returns beacons whose status matches the given value. Values must be
500  one of the Beacon.Status enum values (case insensitive). Accepts
501  multiple filters which will be combined with OR logic.
502* **stability:`<enum>`**
503  For example: **stability:mobile**
504  Returns beacons whose expected stability matches the given value.
505  Values must be one of the Beacon.Stability enum values (case
506  insensitive). Accepts multiple filters which will be combined with
507  OR logic.
508* **place\_id:`"<string>"`**
509  For example: **place\_id:"ChIJVSZzVR8FdkgRXGmmm6SslKw="**
510  Returns beacons explicitly registered at the given place, expressed as
511  a Place ID obtained from [Google Places API](/places/place-id). Does not
512  match places inside the given place. Does not consider the beacon's
513  actual location (which may be different from its registered place).
514  Accepts multiple filters that will be combined with OR logic. The place
515  ID must be double-quoted.
516* **registration\_time`[<|>|<=|>=]<integer>`**
517  For example: **registration\_time>=1433116800**
518  Returns beacons whose registration time matches the given filter.
519  Supports the operators: <, >, <=, and >=. Timestamp must be expressed as
520  an integer number of seconds since midnight January 1, 1970 UTC. Accepts
521  at most two filters that will be combined with AND logic, to support
522  "between" semantics. If more than two are supplied, the latter ones are
523  ignored.
524* **lat:`<double> lng:<double> radius:<integer>`**
525  For example: **lat:51.1232343 lng:-1.093852 radius:1000**
526  Returns beacons whose registered location is within the given circle.
527  When any of these fields are given, all are required. Latitude and
528  longitude must be decimal degrees between -90.0 and 90.0 and between
529  -180.0 and 180.0 respectively. Radius must be an integer number of
530  meters between 10 and 1,000,000 (1000 km).
531* **property:`"<string>=<string>"`**
532  For example: **property:"battery-type=CR2032"**
533  Returns beacons which have a property of the given name and value.
534  Supports multiple filters which will be combined with OR logic.
535  The entire name=value string must be double-quoted as one string.
536* **attachment\_type:`"<string>"`**
537  For example: **attachment_type:"my-namespace/my-type"**
538  Returns beacons having at least one attachment of the given namespaced
539  type. Supports "any within this namespace" via the partial wildcard
540  syntax: "my-namespace/*". Supports multiple filters which will be
541  combined with OR logic. The string must be double-quoted.
542* **indoor\_level:`"<string>"`**
543  For example: **indoor\_level:"1"**
544  Returns beacons which are located on the given indoor level. Accepts
545  multiple filters that will be combined with OR logic.
546
547Multiple filters on the same field are combined with OR logic (except
548registration_time which is combined with AND logic).
549Multiple filters on different fields are combined with AND logic.
550Filters should be separated by spaces.
551
552As with any HTTP query string parameter, the whole filter expression must
553be URL-encoded.
554
555Example REST request:
556`GET /v1beta1/beacons?q=status:active%20lat:51.123%20lng:-1.095%20radius:1000`
557  pageToken: string, A pagination token obtained from a previous request to list beacons.
558  x__xgafv: string, V1 error format.
559    Allowed values
560      1 - v1 error format
561      2 - v2 error format
562
563Returns:
564  An object of the form:
565
566    { # Response that contains list beacon results and pagination help.
567    "nextPageToken": "A String", # An opaque pagination token that the client may provide in their next
568        # request to retrieve the next page of results.
569    "beacons": [ # The beacons that matched the search criteria.
570      { # Details of a beacon device.
571        "status": "A String", # Current status of the beacon.
572            # Required.
573        "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
574            # characters.
575            # Optional.
576        "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
577            # Google Maps API.
578            # Optional.
579            # useful to indicate which floor of a building a beacon is located on.
580          "name": "A String", # The name of this level.
581        },
582        "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
583            # This location is given when the beacon is registered or updated. It does
584            # not necessarily indicate the actual current location of the beacon.
585            # Optional.
586            # of doubles representing degrees latitude and degrees longitude. Unless
587            # specified otherwise, this must conform to the
588            # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
589            # standard</a>. Values must be within normalized ranges.
590            #
591            # Example of normalization code in Python:
592            #
593            #     def NormalizeLongitude(longitude):
594            #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
595            #       q, r = divmod(longitude, 360.0)
596            #       if r > 180.0 or (r == 180.0 and q <= -1.0):
597            #         return r - 360.0
598            #       return r
599            #
600            #     def NormalizeLatLng(latitude, longitude):
601            #       """Wraps decimal degrees latitude and longitude to
602            #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
603            #       r = latitude % 360.0
604            #       if r <= 90.0:
605            #         return r, NormalizeLongitude(longitude)
606            #       elif r >= 270.0:
607            #         return r - 360, NormalizeLongitude(longitude)
608            #       else:
609            #         return 180 - r, NormalizeLongitude(longitude + 180.0)
610            #
611            #     assert 180.0 == NormalizeLongitude(180.0)
612            #     assert -180.0 == NormalizeLongitude(-180.0)
613            #     assert -179.0 == NormalizeLongitude(181.0)
614            #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
615            #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
616            #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
617            #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
618            #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
619            #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
620            #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
621            #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
622            #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
623            #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
624          "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
625          "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
626        },
627        "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
628            # the beacon is deployed. This is given when the beacon is registered or
629            # updated, not automatically detected in any way.
630            # Optional.
631        "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
632            # (remotely resolved ephemeral ID) format. This information will not be
633            # populated in API responses. When submitting this data, the `advertised_id`
634            # field must contain an ID of type Eddystone-UID. Any other ID type will
635            # result in an error.
636            # Two ways of securely registering an Eddystone-EID beacon with the service
637            # are supported:
638            #
639            # 1. Perform an ECDH key exchange via this API, including a previous call
640            #    to `GET /v1beta1/eidparams`. In this case the fields
641            #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
642            #    populated and `beacon_identity_key` should not be populated. This
643            #    method ensures that only the two parties in the ECDH key exchange can
644            #    compute the identity key, which becomes a secret between them.
645            # 2. Derive or obtain the beacon's identity key via other secure means
646            #    (perhaps an ECDH key exchange between the beacon and a mobile device
647            #    or any other secure method), and then submit the resulting identity key
648            #    to the service. In this case `beacon_identity_key` field should be
649            #    populated, and neither of `beacon_ecdh_public_key` nor
650            #    `service_ecdh_public_key` fields should be. The security of this method
651            #    depends on how securely the parties involved (in particular the
652            #    bluetooth client) handle the identity key, and obviously on how
653            #    securely the identity key was generated.
654            #
655            # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
656          "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
657              # ephemeral ID. "Nominal" because the beacon should randomize the
658              # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
659              # for details. This value corresponds to a power-of-two scaler on the
660              # beacon's clock: when the scaler value is K, the beacon will begin
661              # broadcasting a new ephemeral ID on average every 2^K seconds.
662          "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
663              # begun counting at this value immediately prior to transmitting this
664              # value to the resolving service. Significant delay in transmitting this
665              # value to the service risks registration or resolution failures. If a
666              # value is not provided, the default is zero.
667          "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
668              # key exchange. When this field is populated, `beacon_ecdh_public_key`
669              # must also be populated, and `beacon_identity_key` must not be.
670          "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
671              # `initial_clock_value`, and the secret key generated by the
672              # Diffie-Hellman key exchange using `service_ecdh_public_key` and
673              # `service_ecdh_public_key`. This initial EID value will be used by the
674              # service to confirm that the key exchange process was successful.
675          "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
676              # key exchange. When this field is populated, `service_ecdh_public_key`
677              # must also be populated, and `beacon_identity_key` must not be.
678          "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
679              # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
680              # populated.
681        },
682        "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
683            # populated when registering. It may be empty when updating a beacon
684            # record because it is ignored in updates.
685            #
686            # When registering a beacon that broadcasts Eddystone-EID, this field
687            # should contain a "stable" Eddystone-UID that identifies the beacon and
688            # links it to its attachments. The stable Eddystone-UID is only used for
689            # administering the beacon.
690          "type": "A String", # Specifies the identifier type.
691              # Required.
692          "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
693              # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
694              # requests, and will be so encoded (with padding) in responses. The base64
695              # encoding should be of the binary byte-stream and not any textual (such as
696              # hex) representation thereof.
697              # Required.
698        },
699        "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
700            # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
701            # the beacon and N is a code for the beacon's type. Possible values are
702            # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
703            #
704            # This field must be left empty when registering. After reading a beacon,
705            # clients can use the name for future operations.
706        "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
707            # updated, not automatically detected in any way.
708            # Optional.
709        "properties": { # Properties of the beacon device, for example battery type or firmware
710            # version.
711            # Optional.
712          "a_key": "A String",
713        },
714        "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
715            # changing any of its configuration (e.g. broadcast frames, transmit power).
716            # This field provides a place to store and control access to that key.
717            # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
718            # from users with write access to the given beacon. That is to say: If the
719            # user is authorized to write the beacon's confidential data in the service,
720            # the service considers them authorized to configure the beacon. Note
721            # that this key grants nothing on the service, only on the beacon itself.
722      },
723    ],
724    "totalCount": "A String", # Estimate of the total number of beacons matched by the query. Higher
725        # values may be less accurate.
726  }</pre>
727</div>
728
729<div class="method">
730    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
731  <pre>Retrieves the next page of results.
732
733Args:
734  previous_request: The request for the previous page. (required)
735  previous_response: The response from the request for the previous page. (required)
736
737Returns:
738  A request object that you can call 'execute()' on to request the next
739  page. Returns None if there are no more items in the collection.
740    </pre>
741</div>
742
743<div class="method">
744    <code class="details" id="register">register(body, projectId=None, x__xgafv=None)</code>
745  <pre>Registers a previously unregistered beacon given its `advertisedId`.
746These IDs are unique within the system. An ID can be registered only once.
747
748Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
749from a signed-in user with **Is owner** or **Can edit** permissions in the
750Google Developers Console project.
751
752Args:
753  body: object, The request body. (required)
754    The object takes the form of:
755
756{ # Details of a beacon device.
757  "status": "A String", # Current status of the beacon.
758      # Required.
759  "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
760      # characters.
761      # Optional.
762  "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
763      # Google Maps API.
764      # Optional.
765      # useful to indicate which floor of a building a beacon is located on.
766    "name": "A String", # The name of this level.
767  },
768  "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
769      # This location is given when the beacon is registered or updated. It does
770      # not necessarily indicate the actual current location of the beacon.
771      # Optional.
772      # of doubles representing degrees latitude and degrees longitude. Unless
773      # specified otherwise, this must conform to the
774      # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
775      # standard</a>. Values must be within normalized ranges.
776      #
777      # Example of normalization code in Python:
778      #
779      #     def NormalizeLongitude(longitude):
780      #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
781      #       q, r = divmod(longitude, 360.0)
782      #       if r > 180.0 or (r == 180.0 and q <= -1.0):
783      #         return r - 360.0
784      #       return r
785      #
786      #     def NormalizeLatLng(latitude, longitude):
787      #       """Wraps decimal degrees latitude and longitude to
788      #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
789      #       r = latitude % 360.0
790      #       if r <= 90.0:
791      #         return r, NormalizeLongitude(longitude)
792      #       elif r >= 270.0:
793      #         return r - 360, NormalizeLongitude(longitude)
794      #       else:
795      #         return 180 - r, NormalizeLongitude(longitude + 180.0)
796      #
797      #     assert 180.0 == NormalizeLongitude(180.0)
798      #     assert -180.0 == NormalizeLongitude(-180.0)
799      #     assert -179.0 == NormalizeLongitude(181.0)
800      #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
801      #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
802      #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
803      #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
804      #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
805      #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
806      #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
807      #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
808      #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
809      #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
810    "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
811    "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
812  },
813  "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
814      # the beacon is deployed. This is given when the beacon is registered or
815      # updated, not automatically detected in any way.
816      # Optional.
817  "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
818      # (remotely resolved ephemeral ID) format. This information will not be
819      # populated in API responses. When submitting this data, the `advertised_id`
820      # field must contain an ID of type Eddystone-UID. Any other ID type will
821      # result in an error.
822      # Two ways of securely registering an Eddystone-EID beacon with the service
823      # are supported:
824      #
825      # 1. Perform an ECDH key exchange via this API, including a previous call
826      #    to `GET /v1beta1/eidparams`. In this case the fields
827      #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
828      #    populated and `beacon_identity_key` should not be populated. This
829      #    method ensures that only the two parties in the ECDH key exchange can
830      #    compute the identity key, which becomes a secret between them.
831      # 2. Derive or obtain the beacon's identity key via other secure means
832      #    (perhaps an ECDH key exchange between the beacon and a mobile device
833      #    or any other secure method), and then submit the resulting identity key
834      #    to the service. In this case `beacon_identity_key` field should be
835      #    populated, and neither of `beacon_ecdh_public_key` nor
836      #    `service_ecdh_public_key` fields should be. The security of this method
837      #    depends on how securely the parties involved (in particular the
838      #    bluetooth client) handle the identity key, and obviously on how
839      #    securely the identity key was generated.
840      #
841      # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
842    "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
843        # ephemeral ID. "Nominal" because the beacon should randomize the
844        # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
845        # for details. This value corresponds to a power-of-two scaler on the
846        # beacon's clock: when the scaler value is K, the beacon will begin
847        # broadcasting a new ephemeral ID on average every 2^K seconds.
848    "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
849        # begun counting at this value immediately prior to transmitting this
850        # value to the resolving service. Significant delay in transmitting this
851        # value to the service risks registration or resolution failures. If a
852        # value is not provided, the default is zero.
853    "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
854        # key exchange. When this field is populated, `beacon_ecdh_public_key`
855        # must also be populated, and `beacon_identity_key` must not be.
856    "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
857        # `initial_clock_value`, and the secret key generated by the
858        # Diffie-Hellman key exchange using `service_ecdh_public_key` and
859        # `service_ecdh_public_key`. This initial EID value will be used by the
860        # service to confirm that the key exchange process was successful.
861    "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
862        # key exchange. When this field is populated, `service_ecdh_public_key`
863        # must also be populated, and `beacon_identity_key` must not be.
864    "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
865        # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
866        # populated.
867  },
868  "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
869      # populated when registering. It may be empty when updating a beacon
870      # record because it is ignored in updates.
871      #
872      # When registering a beacon that broadcasts Eddystone-EID, this field
873      # should contain a "stable" Eddystone-UID that identifies the beacon and
874      # links it to its attachments. The stable Eddystone-UID is only used for
875      # administering the beacon.
876    "type": "A String", # Specifies the identifier type.
877        # Required.
878    "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
879        # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
880        # requests, and will be so encoded (with padding) in responses. The base64
881        # encoding should be of the binary byte-stream and not any textual (such as
882        # hex) representation thereof.
883        # Required.
884  },
885  "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
886      # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
887      # the beacon and N is a code for the beacon's type. Possible values are
888      # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
889      #
890      # This field must be left empty when registering. After reading a beacon,
891      # clients can use the name for future operations.
892  "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
893      # updated, not automatically detected in any way.
894      # Optional.
895  "properties": { # Properties of the beacon device, for example battery type or firmware
896      # version.
897      # Optional.
898    "a_key": "A String",
899  },
900  "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
901      # changing any of its configuration (e.g. broadcast frames, transmit power).
902      # This field provides a place to store and control access to that key.
903      # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
904      # from users with write access to the given beacon. That is to say: If the
905      # user is authorized to write the beacon's confidential data in the service,
906      # the service considers them authorized to configure the beacon. Note
907      # that this key grants nothing on the service, only on the beacon itself.
908}
909
910  projectId: string, The project id of the project the beacon will be registered to. If
911the project id is not specified then the project making the request
912is used.
913Optional.
914  x__xgafv: string, V1 error format.
915    Allowed values
916      1 - v1 error format
917      2 - v2 error format
918
919Returns:
920  An object of the form:
921
922    { # Details of a beacon device.
923    "status": "A String", # Current status of the beacon.
924        # Required.
925    "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
926        # characters.
927        # Optional.
928    "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
929        # Google Maps API.
930        # Optional.
931        # useful to indicate which floor of a building a beacon is located on.
932      "name": "A String", # The name of this level.
933    },
934    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
935        # This location is given when the beacon is registered or updated. It does
936        # not necessarily indicate the actual current location of the beacon.
937        # Optional.
938        # of doubles representing degrees latitude and degrees longitude. Unless
939        # specified otherwise, this must conform to the
940        # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
941        # standard</a>. Values must be within normalized ranges.
942        #
943        # Example of normalization code in Python:
944        #
945        #     def NormalizeLongitude(longitude):
946        #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
947        #       q, r = divmod(longitude, 360.0)
948        #       if r > 180.0 or (r == 180.0 and q <= -1.0):
949        #         return r - 360.0
950        #       return r
951        #
952        #     def NormalizeLatLng(latitude, longitude):
953        #       """Wraps decimal degrees latitude and longitude to
954        #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
955        #       r = latitude % 360.0
956        #       if r <= 90.0:
957        #         return r, NormalizeLongitude(longitude)
958        #       elif r >= 270.0:
959        #         return r - 360, NormalizeLongitude(longitude)
960        #       else:
961        #         return 180 - r, NormalizeLongitude(longitude + 180.0)
962        #
963        #     assert 180.0 == NormalizeLongitude(180.0)
964        #     assert -180.0 == NormalizeLongitude(-180.0)
965        #     assert -179.0 == NormalizeLongitude(181.0)
966        #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
967        #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
968        #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
969        #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
970        #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
971        #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
972        #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
973        #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
974        #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
975        #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
976      "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
977      "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
978    },
979    "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
980        # the beacon is deployed. This is given when the beacon is registered or
981        # updated, not automatically detected in any way.
982        # Optional.
983    "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
984        # (remotely resolved ephemeral ID) format. This information will not be
985        # populated in API responses. When submitting this data, the `advertised_id`
986        # field must contain an ID of type Eddystone-UID. Any other ID type will
987        # result in an error.
988        # Two ways of securely registering an Eddystone-EID beacon with the service
989        # are supported:
990        #
991        # 1. Perform an ECDH key exchange via this API, including a previous call
992        #    to `GET /v1beta1/eidparams`. In this case the fields
993        #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
994        #    populated and `beacon_identity_key` should not be populated. This
995        #    method ensures that only the two parties in the ECDH key exchange can
996        #    compute the identity key, which becomes a secret between them.
997        # 2. Derive or obtain the beacon's identity key via other secure means
998        #    (perhaps an ECDH key exchange between the beacon and a mobile device
999        #    or any other secure method), and then submit the resulting identity key
1000        #    to the service. In this case `beacon_identity_key` field should be
1001        #    populated, and neither of `beacon_ecdh_public_key` nor
1002        #    `service_ecdh_public_key` fields should be. The security of this method
1003        #    depends on how securely the parties involved (in particular the
1004        #    bluetooth client) handle the identity key, and obviously on how
1005        #    securely the identity key was generated.
1006        #
1007        # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
1008      "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
1009          # ephemeral ID. "Nominal" because the beacon should randomize the
1010          # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
1011          # for details. This value corresponds to a power-of-two scaler on the
1012          # beacon's clock: when the scaler value is K, the beacon will begin
1013          # broadcasting a new ephemeral ID on average every 2^K seconds.
1014      "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
1015          # begun counting at this value immediately prior to transmitting this
1016          # value to the resolving service. Significant delay in transmitting this
1017          # value to the service risks registration or resolution failures. If a
1018          # value is not provided, the default is zero.
1019      "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
1020          # key exchange. When this field is populated, `beacon_ecdh_public_key`
1021          # must also be populated, and `beacon_identity_key` must not be.
1022      "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
1023          # `initial_clock_value`, and the secret key generated by the
1024          # Diffie-Hellman key exchange using `service_ecdh_public_key` and
1025          # `service_ecdh_public_key`. This initial EID value will be used by the
1026          # service to confirm that the key exchange process was successful.
1027      "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
1028          # key exchange. When this field is populated, `service_ecdh_public_key`
1029          # must also be populated, and `beacon_identity_key` must not be.
1030      "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
1031          # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
1032          # populated.
1033    },
1034    "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
1035        # populated when registering. It may be empty when updating a beacon
1036        # record because it is ignored in updates.
1037        #
1038        # When registering a beacon that broadcasts Eddystone-EID, this field
1039        # should contain a "stable" Eddystone-UID that identifies the beacon and
1040        # links it to its attachments. The stable Eddystone-UID is only used for
1041        # administering the beacon.
1042      "type": "A String", # Specifies the identifier type.
1043          # Required.
1044      "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
1045          # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
1046          # requests, and will be so encoded (with padding) in responses. The base64
1047          # encoding should be of the binary byte-stream and not any textual (such as
1048          # hex) representation thereof.
1049          # Required.
1050    },
1051    "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
1052        # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
1053        # the beacon and N is a code for the beacon's type. Possible values are
1054        # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
1055        #
1056        # This field must be left empty when registering. After reading a beacon,
1057        # clients can use the name for future operations.
1058    "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
1059        # updated, not automatically detected in any way.
1060        # Optional.
1061    "properties": { # Properties of the beacon device, for example battery type or firmware
1062        # version.
1063        # Optional.
1064      "a_key": "A String",
1065    },
1066    "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
1067        # changing any of its configuration (e.g. broadcast frames, transmit power).
1068        # This field provides a place to store and control access to that key.
1069        # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
1070        # from users with write access to the given beacon. That is to say: If the
1071        # user is authorized to write the beacon's confidential data in the service,
1072        # the service considers them authorized to configure the beacon. Note
1073        # that this key grants nothing on the service, only on the beacon itself.
1074  }</pre>
1075</div>
1076
1077<div class="method">
1078    <code class="details" id="update">update(beaconName, body, projectId=None, x__xgafv=None)</code>
1079  <pre>Updates the information about the specified beacon. **Any field that you do
1080not populate in the submitted beacon will be permanently erased**, so you
1081should follow the "read, modify, write" pattern to avoid inadvertently
1082destroying data.
1083
1084Changes to the beacon status via this method will be  silently ignored.
1085To update beacon status, use the separate methods on this API for
1086activation, deactivation, and decommissioning.
1087Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)
1088from a signed-in user with **Is owner** or **Can edit** permissions in the
1089Google Developers Console project.
1090
1091Args:
1092  beaconName: string, Resource name of this beacon. A beacon name has the format
1093"beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
1094the beacon and N is a code for the beacon's type. Possible values are
1095`3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
1096
1097This field must be left empty when registering. After reading a beacon,
1098clients can use the name for future operations. (required)
1099  body: object, The request body. (required)
1100    The object takes the form of:
1101
1102{ # Details of a beacon device.
1103  "status": "A String", # Current status of the beacon.
1104      # Required.
1105  "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
1106      # characters.
1107      # Optional.
1108  "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
1109      # Google Maps API.
1110      # Optional.
1111      # useful to indicate which floor of a building a beacon is located on.
1112    "name": "A String", # The name of this level.
1113  },
1114  "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
1115      # This location is given when the beacon is registered or updated. It does
1116      # not necessarily indicate the actual current location of the beacon.
1117      # Optional.
1118      # of doubles representing degrees latitude and degrees longitude. Unless
1119      # specified otherwise, this must conform to the
1120      # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1121      # standard</a>. Values must be within normalized ranges.
1122      #
1123      # Example of normalization code in Python:
1124      #
1125      #     def NormalizeLongitude(longitude):
1126      #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
1127      #       q, r = divmod(longitude, 360.0)
1128      #       if r > 180.0 or (r == 180.0 and q <= -1.0):
1129      #         return r - 360.0
1130      #       return r
1131      #
1132      #     def NormalizeLatLng(latitude, longitude):
1133      #       """Wraps decimal degrees latitude and longitude to
1134      #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
1135      #       r = latitude % 360.0
1136      #       if r <= 90.0:
1137      #         return r, NormalizeLongitude(longitude)
1138      #       elif r >= 270.0:
1139      #         return r - 360, NormalizeLongitude(longitude)
1140      #       else:
1141      #         return 180 - r, NormalizeLongitude(longitude + 180.0)
1142      #
1143      #     assert 180.0 == NormalizeLongitude(180.0)
1144      #     assert -180.0 == NormalizeLongitude(-180.0)
1145      #     assert -179.0 == NormalizeLongitude(181.0)
1146      #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
1147      #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
1148      #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
1149      #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
1150      #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
1151      #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
1152      #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
1153      #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
1154      #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
1155      #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
1156    "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
1157    "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
1158  },
1159  "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
1160      # the beacon is deployed. This is given when the beacon is registered or
1161      # updated, not automatically detected in any way.
1162      # Optional.
1163  "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
1164      # (remotely resolved ephemeral ID) format. This information will not be
1165      # populated in API responses. When submitting this data, the `advertised_id`
1166      # field must contain an ID of type Eddystone-UID. Any other ID type will
1167      # result in an error.
1168      # Two ways of securely registering an Eddystone-EID beacon with the service
1169      # are supported:
1170      #
1171      # 1. Perform an ECDH key exchange via this API, including a previous call
1172      #    to `GET /v1beta1/eidparams`. In this case the fields
1173      #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
1174      #    populated and `beacon_identity_key` should not be populated. This
1175      #    method ensures that only the two parties in the ECDH key exchange can
1176      #    compute the identity key, which becomes a secret between them.
1177      # 2. Derive or obtain the beacon's identity key via other secure means
1178      #    (perhaps an ECDH key exchange between the beacon and a mobile device
1179      #    or any other secure method), and then submit the resulting identity key
1180      #    to the service. In this case `beacon_identity_key` field should be
1181      #    populated, and neither of `beacon_ecdh_public_key` nor
1182      #    `service_ecdh_public_key` fields should be. The security of this method
1183      #    depends on how securely the parties involved (in particular the
1184      #    bluetooth client) handle the identity key, and obviously on how
1185      #    securely the identity key was generated.
1186      #
1187      # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
1188    "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
1189        # ephemeral ID. "Nominal" because the beacon should randomize the
1190        # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
1191        # for details. This value corresponds to a power-of-two scaler on the
1192        # beacon's clock: when the scaler value is K, the beacon will begin
1193        # broadcasting a new ephemeral ID on average every 2^K seconds.
1194    "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
1195        # begun counting at this value immediately prior to transmitting this
1196        # value to the resolving service. Significant delay in transmitting this
1197        # value to the service risks registration or resolution failures. If a
1198        # value is not provided, the default is zero.
1199    "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
1200        # key exchange. When this field is populated, `beacon_ecdh_public_key`
1201        # must also be populated, and `beacon_identity_key` must not be.
1202    "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
1203        # `initial_clock_value`, and the secret key generated by the
1204        # Diffie-Hellman key exchange using `service_ecdh_public_key` and
1205        # `service_ecdh_public_key`. This initial EID value will be used by the
1206        # service to confirm that the key exchange process was successful.
1207    "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
1208        # key exchange. When this field is populated, `service_ecdh_public_key`
1209        # must also be populated, and `beacon_identity_key` must not be.
1210    "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
1211        # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
1212        # populated.
1213  },
1214  "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
1215      # populated when registering. It may be empty when updating a beacon
1216      # record because it is ignored in updates.
1217      #
1218      # When registering a beacon that broadcasts Eddystone-EID, this field
1219      # should contain a "stable" Eddystone-UID that identifies the beacon and
1220      # links it to its attachments. The stable Eddystone-UID is only used for
1221      # administering the beacon.
1222    "type": "A String", # Specifies the identifier type.
1223        # Required.
1224    "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
1225        # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
1226        # requests, and will be so encoded (with padding) in responses. The base64
1227        # encoding should be of the binary byte-stream and not any textual (such as
1228        # hex) representation thereof.
1229        # Required.
1230  },
1231  "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
1232      # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
1233      # the beacon and N is a code for the beacon's type. Possible values are
1234      # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
1235      #
1236      # This field must be left empty when registering. After reading a beacon,
1237      # clients can use the name for future operations.
1238  "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
1239      # updated, not automatically detected in any way.
1240      # Optional.
1241  "properties": { # Properties of the beacon device, for example battery type or firmware
1242      # version.
1243      # Optional.
1244    "a_key": "A String",
1245  },
1246  "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
1247      # changing any of its configuration (e.g. broadcast frames, transmit power).
1248      # This field provides a place to store and control access to that key.
1249      # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
1250      # from users with write access to the given beacon. That is to say: If the
1251      # user is authorized to write the beacon's confidential data in the service,
1252      # the service considers them authorized to configure the beacon. Note
1253      # that this key grants nothing on the service, only on the beacon itself.
1254}
1255
1256  projectId: string, The project id of the beacon to update. If the project id is not
1257specified then the project making the request is used. The project id
1258must match the project that owns the beacon.
1259Optional.
1260  x__xgafv: string, V1 error format.
1261    Allowed values
1262      1 - v1 error format
1263      2 - v2 error format
1264
1265Returns:
1266  An object of the form:
1267
1268    { # Details of a beacon device.
1269    "status": "A String", # Current status of the beacon.
1270        # Required.
1271    "description": "A String", # Free text used to identify and describe the beacon. Maximum length 140
1272        # characters.
1273        # Optional.
1274    "indoorLevel": { # Indoor level, a human-readable string as returned by Google Maps APIs, # The indoor level information for this beacon, if known. As returned by the
1275        # Google Maps API.
1276        # Optional.
1277        # useful to indicate which floor of a building a beacon is located on.
1278      "name": "A String", # The name of this level.
1279    },
1280    "latLng": { # An object representing a latitude/longitude pair. This is expressed as a pair # The location of the beacon, expressed as a latitude and longitude pair.
1281        # This location is given when the beacon is registered or updated. It does
1282        # not necessarily indicate the actual current location of the beacon.
1283        # Optional.
1284        # of doubles representing degrees latitude and degrees longitude. Unless
1285        # specified otherwise, this must conform to the
1286        # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1287        # standard</a>. Values must be within normalized ranges.
1288        #
1289        # Example of normalization code in Python:
1290        #
1291        #     def NormalizeLongitude(longitude):
1292        #       """Wraps decimal degrees longitude to [-180.0, 180.0]."""
1293        #       q, r = divmod(longitude, 360.0)
1294        #       if r > 180.0 or (r == 180.0 and q <= -1.0):
1295        #         return r - 360.0
1296        #       return r
1297        #
1298        #     def NormalizeLatLng(latitude, longitude):
1299        #       """Wraps decimal degrees latitude and longitude to
1300        #       [-90.0, 90.0] and [-180.0, 180.0], respectively."""
1301        #       r = latitude % 360.0
1302        #       if r <= 90.0:
1303        #         return r, NormalizeLongitude(longitude)
1304        #       elif r >= 270.0:
1305        #         return r - 360, NormalizeLongitude(longitude)
1306        #       else:
1307        #         return 180 - r, NormalizeLongitude(longitude + 180.0)
1308        #
1309        #     assert 180.0 == NormalizeLongitude(180.0)
1310        #     assert -180.0 == NormalizeLongitude(-180.0)
1311        #     assert -179.0 == NormalizeLongitude(181.0)
1312        #     assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
1313        #     assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
1314        #     assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
1315        #     assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
1316        #     assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
1317        #     assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
1318        #     assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
1319        #     assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
1320        #     assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
1321        #     assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
1322      "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
1323      "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
1324    },
1325    "placeId": "A String", # The [Google Places API](/places/place-id) Place ID of the place where
1326        # the beacon is deployed. This is given when the beacon is registered or
1327        # updated, not automatically detected in any way.
1328        # Optional.
1329    "ephemeralIdRegistration": { # Write-only registration parameters for beacons using Eddystone-EID format. # Write-only registration parameters for beacons using Eddystone-EID
1330        # (remotely resolved ephemeral ID) format. This information will not be
1331        # populated in API responses. When submitting this data, the `advertised_id`
1332        # field must contain an ID of type Eddystone-UID. Any other ID type will
1333        # result in an error.
1334        # Two ways of securely registering an Eddystone-EID beacon with the service
1335        # are supported:
1336        #
1337        # 1. Perform an ECDH key exchange via this API, including a previous call
1338        #    to `GET /v1beta1/eidparams`. In this case the fields
1339        #    `beacon_ecdh_public_key` and `service_ecdh_public_key` should be
1340        #    populated and `beacon_identity_key` should not be populated. This
1341        #    method ensures that only the two parties in the ECDH key exchange can
1342        #    compute the identity key, which becomes a secret between them.
1343        # 2. Derive or obtain the beacon's identity key via other secure means
1344        #    (perhaps an ECDH key exchange between the beacon and a mobile device
1345        #    or any other secure method), and then submit the resulting identity key
1346        #    to the service. In this case `beacon_identity_key` field should be
1347        #    populated, and neither of `beacon_ecdh_public_key` nor
1348        #    `service_ecdh_public_key` fields should be. The security of this method
1349        #    depends on how securely the parties involved (in particular the
1350        #    bluetooth client) handle the identity key, and obviously on how
1351        #    securely the identity key was generated.
1352        #
1353        # See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.
1354      "rotationPeriodExponent": 42, # Indicates the nominal period between each rotation of the beacon's
1355          # ephemeral ID. "Nominal" because the beacon should randomize the
1356          # actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)
1357          # for details. This value corresponds to a power-of-two scaler on the
1358          # beacon's clock: when the scaler value is K, the beacon will begin
1359          # broadcasting a new ephemeral ID on average every 2^K seconds.
1360      "initialClockValue": "A String", # The initial clock value of the beacon. The beacon's clock must have
1361          # begun counting at this value immediately prior to transmitting this
1362          # value to the resolving service. Significant delay in transmitting this
1363          # value to the service risks registration or resolution failures. If a
1364          # value is not provided, the default is zero.
1365      "serviceEcdhPublicKey": "A String", # The service's public key used for the Elliptic curve Diffie-Hellman
1366          # key exchange. When this field is populated, `beacon_ecdh_public_key`
1367          # must also be populated, and `beacon_identity_key` must not be.
1368      "initialEid": "A String", # An initial ephemeral ID calculated using the clock value submitted as
1369          # `initial_clock_value`, and the secret key generated by the
1370          # Diffie-Hellman key exchange using `service_ecdh_public_key` and
1371          # `service_ecdh_public_key`. This initial EID value will be used by the
1372          # service to confirm that the key exchange process was successful.
1373      "beaconEcdhPublicKey": "A String", # The beacon's public key used for the Elliptic curve Diffie-Hellman
1374          # key exchange. When this field is populated, `service_ecdh_public_key`
1375          # must also be populated, and `beacon_identity_key` must not be.
1376      "beaconIdentityKey": "A String", # The private key of the beacon. If this field is populated,
1377          # `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
1378          # populated.
1379    },
1380    "advertisedId": { # Defines a unique identifier of a beacon as broadcast by the device. # The identifier of a beacon as advertised by it. This field must be
1381        # populated when registering. It may be empty when updating a beacon
1382        # record because it is ignored in updates.
1383        #
1384        # When registering a beacon that broadcasts Eddystone-EID, this field
1385        # should contain a "stable" Eddystone-UID that identifies the beacon and
1386        # links it to its attachments. The stable Eddystone-UID is only used for
1387        # administering the beacon.
1388      "type": "A String", # Specifies the identifier type.
1389          # Required.
1390      "id": "A String", # The actual beacon identifier, as broadcast by the beacon hardware. Must be
1391          # [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP
1392          # requests, and will be so encoded (with padding) in responses. The base64
1393          # encoding should be of the binary byte-stream and not any textual (such as
1394          # hex) representation thereof.
1395          # Required.
1396    },
1397    "beaconName": "A String", # Resource name of this beacon. A beacon name has the format
1398        # "beacons/N!beaconId" where the beaconId is the base16 ID broadcast by
1399        # the beacon and N is a code for the beacon's type. Possible values are
1400        # `3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.
1401        #
1402        # This field must be left empty when registering. After reading a beacon,
1403        # clients can use the name for future operations.
1404    "expectedStability": "A String", # Expected location stability. This is set when the beacon is registered or
1405        # updated, not automatically detected in any way.
1406        # Optional.
1407    "properties": { # Properties of the beacon device, for example battery type or firmware
1408        # version.
1409        # Optional.
1410      "a_key": "A String",
1411    },
1412    "provisioningKey": "A String", # Some beacons may require a user to provide an authorization key before
1413        # changing any of its configuration (e.g. broadcast frames, transmit power).
1414        # This field provides a place to store and control access to that key.
1415        # This field is populated in responses to `GET /v1beta1/beacons/3!beaconId`
1416        # from users with write access to the given beacon. That is to say: If the
1417        # user is authorized to write the beacon's confidential data in the service,
1418        # the service considers them authorized to configure the beacon. Note
1419        # that this key grants nothing on the service, only on the beacon itself.
1420  }</pre>
1421</div>
1422
1423</body></html>