Registers a previously unregistered beacon given its advertisedId. These IDs are unique within the system. An ID can be registered only once.

Authenticate using an OAuth access token from a signed-in user with Is owner or Can edit permissions in the Google Developers Console project.

Scopes

You will need authorization for the https://www.googleapis.com/auth/userlocation.beacon.registry scope to make a valid call.

If unset, the scope for this method defaults to https://www.googleapis.com/auth/userlocation.beacon.registry. You can set the scope for this method like this: proximitybeacon1-beta1 --scope <scope> beacons register ...

Required Request Value

The request value is a data-structure with various fields. Each field may be a simple scalar or another data-structure. In the latter case it is advised to set the field-cursor to the data-structure's field to specify values more concisely.

For example, a structure like this:

Beacon:
  advertised-id:
    id: string
    type: string
  beacon-name: string
  description: string
  ephemeral-id-registration:
    beacon-ecdh-public-key: string
    beacon-identity-key: string
    initial-clock-value: string
    initial-eid: string
    rotation-period-exponent: integer
    service-ecdh-public-key: string
  expected-stability: string
  indoor-level:
    name: string
  lat-lng:
    latitude: number
    longitude: number
  place-id: string
  properties: { string: string }
  provisioning-key: string
  status: string

can be set completely with the following arguments which are assumed to be executed in the given order. Note how the cursor position is adjusted to the respective structures, allowing simple field names to be used most of the time.

  • -r .advertised-id id=sed
    • The actual beacon identifier, as broadcast by the beacon hardware. Must be base64 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.
  • type=amet.

    • Specifies the identifier type. Required.
  • .. beacon-name=takimata

    • 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. * description=amet. - Free text used to identify and describe the beacon. Maximum length 140 characters. Optional. * ephemeral-id-registration beacon-ecdh-public-key=duo - 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. * beacon-identity-key=ipsum - The private key of the beacon. If this field is populated, beacon_ecdh_public_key and service_ecdh_public_key must not be populated. * initial-clock-value=gubergren - 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. * initial-eid=lorem - 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. * rotation-period-exponent=89 - 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 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. * service-ecdh-public-key=eos - 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.

  • .. expected-stability=dolor

    • Expected location stability. This is set when the beacon is registered or updated, not automatically detected in any way. Optional.
  • indoor-level name=ea

    • The name of this level.
  • ..lat-lng latitude=0.8638300740145545

    • The latitude in degrees. It must be in the range [-90.0, +90.0].
  • longitude=0.36487300775415

    • The longitude in degrees. It must be in the range [-180.0, +180.0].
  • .. place-id=amet

    • The Google Places API 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.
  • properties=key=duo
    • Properties of the beacon device, for example battery type or firmware version. Optional.
    • the value will be associated with the given key
  • provisioning-key=ipsum
    • 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.
  • status=sed
    • Current status of the beacon. Required.

About Cursors

The cursor position is key to comfortably set complex nested structures. The following rules apply:

  • The cursor position is always set relative to the current one, unless the field name starts with the . character. Fields can be nested such as in -r f.s.o .
  • The cursor position is set relative to the top-level structure if it starts with ., e.g. -r .s.s
  • You can also set nested fields without setting the cursor explicitly. For example, to set a value relative to the current cursor position, you would specify -r struct.sub_struct=bar.
  • You can move the cursor one level up by using ... Each additional . moves it up one additional level. E.g. ... would go three levels up.

Optional Output Flags

The method's return value a JSON encoded structure, which will be written to standard output by default.

  • -o out
    • out specifies the destination to which to write the server's result to. It will be a JSON-encoded structure. The destination may be - to indicate standard output, or a filepath that is to contain the received bytes. If unset, it defaults to standard output.

Optional Method Properties

You may set the following properties to further configure the call. Please note that -p is followed by one or more key-value-pairs, and is called like this -p k1=v1 k2=v2 even though the listing below repeats the -p for completeness.

  • -p project-id=string
    • The project id of the project the beacon will be registered to. If the project id is not specified then the project making the request is used. Optional.

Optional General Properties

The following properties can configure any call, and are not specific to this method.

  • -p $-xgafv=string

    • V1 error format.
  • -p access-token=string

    • OAuth access token.
  • -p alt=string

    • Data format for response.
  • -p callback=string

    • JSONP
  • -p fields=string

    • Selector specifying which fields to include in a partial response.
  • -p key=string

    • API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
  • -p oauth-token=string

    • OAuth 2.0 token for the current user.
  • -p pretty-print=boolean

    • Returns response with indentations and line breaks.
  • -p quota-user=string

    • Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
  • -p upload-type=string

    • Legacy upload protocol for media (e.g. "media", "multipart").
  • -p upload-protocol=string

    • Upload protocol for media (e.g. "raw", "multipart").