@@ -24,11 +24,11 @@ import Network.Google.ProximityBeacon.Types.Sum
2424-- a pair of doubles representing degrees latitude and degrees longitude.
2525-- Unless specified otherwise, this must conform to the WGS84 standard.
2626-- Values must be within normalized ranges. Example of normalization code
27−-- in Python: def NormalizeLongitude(longitude): \"\"\"Wrapsdecimal degrees
28−-- longitude to [-180.0, 180.0].\"\"\" q, r = divmod(longitude, 360.0) if r
29−-- > 180.0 or (r == 180.0 and q \<= -1.0): return r - 360.0 return r def
30−-- NormalizeLatLng(latitude, longitude): \"\"\"Wraps decimal degrees
31−-- latitude and longitude to [-180.0, 180.0] and [-90.0, 90.0],
27+-- in Python: def NormalizeLongitude(longitude): \"\"\"Wraps decimal
28+-- degrees longitude to [-180.0, 180.0].\"\"\" q, r = divmod(longitude,
29+-- 360.0) if r > 180.0 or (r == 180.0 and q \<= -1.0): return r - 360.0
30+-- return r def NormalizeLatLng(latitude, longitude): \"\"\"Wraps decimal
31+-- degrees latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0],
3232-- respectively.\"\"\" r = latitude % 360.0 if r = 270.0: return r - 360,
3333-- NormalizeLongitude(longitude) else: return 180 - r,
3434-- NormalizeLongitude(longitude + 180.0) assert 180.0 ==
@@ -354,6 +354,151 @@ instance ToJSON Namespace where
354354 [("servingVisibility" .=) <$> _nServingVisibility,
355355 ("namespaceName" .=) <$> _nNamespaceName])
356356
357+-- | Write-only registration parameters for beacons using Eddystone-EID
358+-- format. Two ways of securely registering an Eddystone-EID beacon with
359+-- the service are supported: 1. Perform an ECDH key exchange via this API,
360+-- including a previous call to \`GET \/v1beta1\/eidparams\`. In this case
361+-- the fields \`beacon_ecdh_public_key\` and \`service_ecdh_public_key\`
362+-- should be populated and \`beacon_identity_key\` should not be populated.
363+-- This method ensures that only the two parties in the ECDH key exchange
364+-- can compute the identity key, which becomes a secret between them. 2.
365+-- Derive or obtain the beacon\'s identity key via other secure means
366+-- (perhaps an ECDH key exchange between the beacon and a mobile device or
367+-- any other secure method), and then submit the resulting identity key to
368+-- the service. In this case \`beacon_identity_key\` field should be
369+-- populated, and neither of \`beacon_ecdh_public_key\` nor
370+-- \`service_ecdh_public_key\` fields should be. The security of this
371+-- method depends on how securely the parties involved (in particular the
372+-- bluetooth client) handle the identity key, and obviously on how securely
373+-- the identity key was generated. See [the Eddystone
374+-- specification](https:\/\/github.com\/google\/eddystone\/tree\/master\/eddystone-eid)
375+-- at GitHub.
376+--
377+-- /See:/ 'ephemeralIdRegistration' smart constructor.
378+data EphemeralIdRegistration = EphemeralIdRegistration'
379+ { _eirRotationPeriodExponent :: !(Maybe (Textual Word32))
380+ , _eirInitialClockValue :: !(Maybe (Textual Word64))
381+ , _eirBeaconIdentityKey :: !(Maybe Base64)
382+ , _eirBeaconEcdhPublicKey :: !(Maybe Base64)
383+ , _eirInitialEid :: !(Maybe Base64)
384+ , _eirServiceEcdhPublicKey :: !(Maybe Base64)
385+ } deriving (Eq,Show,Data,Typeable,Generic)
386+
387+-- | Creates a value of 'EphemeralIdRegistration' with the minimum fields required to make a request.
388+--
389+-- Use one of the following lenses to modify other fields as desired:
390+--
391+-- * 'eirRotationPeriodExponent'
392+--
393+-- * 'eirInitialClockValue'
394+--
395+-- * 'eirBeaconIdentityKey'
396+--
397+-- * 'eirBeaconEcdhPublicKey'
398+--
399+-- * 'eirInitialEid'
400+--
401+-- * 'eirServiceEcdhPublicKey'
402+ephemeralIdRegistration
403+ :: EphemeralIdRegistration
404+ephemeralIdRegistration =
405+ EphemeralIdRegistration'
406+ { _eirRotationPeriodExponent = Nothing
407+ , _eirInitialClockValue = Nothing
408+ , _eirBeaconIdentityKey = Nothing
409+ , _eirBeaconEcdhPublicKey = Nothing
410+ , _eirInitialEid = Nothing
411+ , _eirServiceEcdhPublicKey = Nothing
412+ }
413+
414+-- | Indicates the nominal period between each rotation of the beacon\'s
415+-- ephemeral ID. \"Nominal\" because the beacon should randomize the actual
416+-- interval. See [the spec at
417+-- github](https:\/\/github.com\/google\/eddystone\/tree\/master\/eddystone-eid)
418+-- for details. This value corresponds to a power-of-two scaler on the
419+-- beacon\'s clock: when the scaler value is K, the beacon will begin
420+-- broadcasting a new ephemeral ID on average every 2^K seconds.
421+eirRotationPeriodExponent :: Lens' EphemeralIdRegistration (Maybe Word32)
422+eirRotationPeriodExponent
423+ = lens _eirRotationPeriodExponent
424+ (\ s a -> s{_eirRotationPeriodExponent = a})
425+ . mapping _Coerce
426+
427+-- | The initial clock value of the beacon. The beacon\'s clock must have
428+-- begun counting at this value immediately prior to transmitting this
429+-- value to the resolving service. Significant delay in transmitting this
430+-- value to the service risks registration or resolution failures. If a
431+-- value is not provided, the default is zero.
432+eirInitialClockValue :: Lens' EphemeralIdRegistration (Maybe Word64)
433+eirInitialClockValue
434+ = lens _eirInitialClockValue
435+ (\ s a -> s{_eirInitialClockValue = a})
436+ . mapping _Coerce
437+
438+-- | The private key of the beacon. If this field is populated,
439+-- \`beacon_ecdh_public_key\` and \`service_ecdh_public_key\` must not be
440+-- populated.
441+eirBeaconIdentityKey :: Lens' EphemeralIdRegistration (Maybe ByteString)
442+eirBeaconIdentityKey
443+ = lens _eirBeaconIdentityKey
444+ (\ s a -> s{_eirBeaconIdentityKey = a})
445+ . mapping _Base64
446+
447+-- | The beacon\'s public key used for the Elliptic curve Diffie-Hellman key
448+-- exchange. When this field is populated, \`service_ecdh_public_key\` must
449+-- also be populated, and \`beacon_identity_key\` must not be.
450+eirBeaconEcdhPublicKey :: Lens' EphemeralIdRegistration (Maybe ByteString)
451+eirBeaconEcdhPublicKey
452+ = lens _eirBeaconEcdhPublicKey
453+ (\ s a -> s{_eirBeaconEcdhPublicKey = a})
454+ . mapping _Base64
455+
456+-- | An initial ephemeral ID calculated using the clock value submitted as
457+-- \`initial_clock_value\`, and the secret key generated by the
458+-- Diffie-Hellman key exchange using \`service_ecdh_public_key\` and
459+-- \`service_ecdh_public_key\`. This initial EID value will be used by the
460+-- service to confirm that the key exchange process was successful.
461+eirInitialEid :: Lens' EphemeralIdRegistration (Maybe ByteString)
462+eirInitialEid
463+ = lens _eirInitialEid
464+ (\ s a -> s{_eirInitialEid = a})
465+ . mapping _Base64
466+
467+-- | The service\'s public key used for the Elliptic curve Diffie-Hellman key
468+-- exchange. When this field is populated, \`beacon_ecdh_public_key\` must
469+-- also be populated, and \`beacon_identity_key\` must not be.
470+eirServiceEcdhPublicKey :: Lens' EphemeralIdRegistration (Maybe ByteString)
471+eirServiceEcdhPublicKey
472+ = lens _eirServiceEcdhPublicKey
473+ (\ s a -> s{_eirServiceEcdhPublicKey = a})
474+ . mapping _Base64
475+
476+instance FromJSON EphemeralIdRegistration where
477+ parseJSON
478+ = withObject "EphemeralIdRegistration"
479+ (\ o ->
480+ EphemeralIdRegistration' <$>
481+ (o .:? "rotationPeriodExponent") <*>
482+ (o .:? "initialClockValue")
483+ <*> (o .:? "beaconIdentityKey")
484+ <*> (o .:? "beaconEcdhPublicKey")
485+ <*> (o .:? "initialEid")
486+ <*> (o .:? "serviceEcdhPublicKey"))
487+
488+instance ToJSON EphemeralIdRegistration where
489+ toJSON EphemeralIdRegistration'{..}
490+ = object
491+ (catMaybes
492+ [("rotationPeriodExponent" .=) <$>
493+ _eirRotationPeriodExponent,
494+ ("initialClockValue" .=) <$> _eirInitialClockValue,
495+ ("beaconIdentityKey" .=) <$> _eirBeaconIdentityKey,
496+ ("beaconEcdhPublicKey" .=) <$>
497+ _eirBeaconEcdhPublicKey,
498+ ("initialEid" .=) <$> _eirInitialEid,
499+ ("serviceEcdhPublicKey" .=) <$>
500+ _eirServiceEcdhPublicKey])
501+
357502-- | Response to ListNamespacesRequest that contains all the project\'s
358503-- namespaces.
359504--
@@ -400,7 +545,7 @@ instance ToJSON ListNamespacesResponse where
400545-- to represent a year and month where the day is not significant, e.g.
401546-- credit card expiration date. The year may be 0 to represent a month and
402547-- day independent of year, e.g. anniversary date. Related types are
403−-- [google.type.TimeOfDay][] and \`google.protobuf.Timestamp\`.
548+-- google.type.TimeOfDay and \`google.protobuf.Timestamp\`.
404549--
405550-- /See:/ 'date' smart constructor.
406551data Date = Date'
@@ -428,20 +573,20 @@ date =
428573 }
429574
430575-- | Day of month. Must be from 1 to 31 and valid for the year and month, or
431−-- 0 if specifying a year\/month where the day is not sigificant.
576+-- 0 if specifying a year\/month where the day is not significant.
432577dDay :: Lens' Date (Maybe Int32)
433578dDay
434579 = lens _dDay (\ s a -> s{_dDay = a}) .
435580 mapping _Coerce
436581
437−-- | Year of date. Must be from 1 to 9,999, or 0 if specifying a date without
582+-- | Year of date. Must be from 1 to 9999, or 0 if specifying a date without
438583-- a year.
439584dYear :: Lens' Date (Maybe Int32)
440585dYear
441586 = lens _dYear (\ s a -> s{_dYear = a}) .
442587 mapping _Coerce
443588
444−-- | Month of year of date. Must be from 1 to 12.
589+-- | Month of year. Must be from 1 to 12.
445590dMonth :: Lens' Date (Maybe Int32)
446591dMonth
447592 = lens _dMonth (\ s a -> s{_dMonth = a}) .
@@ -465,15 +610,17 @@ instance ToJSON Date where
465610--
466611-- /See:/ 'beacon' smart constructor.
467612data Beacon = Beacon'
468− { _bLatLng :: !(Maybe LatLng)
469− , _bStatus :: !(Maybe Text)
470− , _bBeaconName :: !(Maybe Text)
471− , _bIndoorLevel :: !(Maybe IndoorLevel)
472− , _bExpectedStability :: !(Maybe Text)
473− , _bDescription :: !(Maybe Text)
474− , _bPlaceId :: !(Maybe Text)
475− , _bAdvertisedId :: !(Maybe AdvertisedId)
476− , _bProperties :: !(Maybe BeaconProperties)
613+ { _bLatLng :: !(Maybe LatLng)
614+ , _bStatus :: !(Maybe Text)
615+ , _bBeaconName :: !(Maybe Text)
616+ , _bEphemeralIdRegistration :: !(Maybe EphemeralIdRegistration)
617+ , _bIndoorLevel :: !(Maybe IndoorLevel)
618+ , _bExpectedStability :: !(Maybe Text)
619+ , _bProvisioningKey :: !(Maybe Base64)
620+ , _bDescription :: !(Maybe Text)
621+ , _bPlaceId :: !(Maybe Text)
622+ , _bAdvertisedId :: !(Maybe AdvertisedId)
623+ , _bProperties :: !(Maybe BeaconProperties)
477624 } deriving (Eq,Show,Data,Typeable,Generic)
478625
479626-- | Creates a value of 'Beacon' with the minimum fields required to make a request.
@@ -486,10 +633,14 @@ data Beacon = Beacon'
486633--
487634-- * 'bBeaconName'
488635--
636+-- * 'bEphemeralIdRegistration'
637+--
489638-- * 'bIndoorLevel'
490639--
491640-- * 'bExpectedStability'
492641--
642+-- * 'bProvisioningKey'
643+--
493644-- * 'bDescription'
494645--
495646-- * 'bPlaceId'
@@ -504,8 +655,10 @@ beacon =
504655 { _bLatLng = Nothing
505656 , _bStatus = Nothing
506657 , _bBeaconName = Nothing
658+ , _bEphemeralIdRegistration = Nothing
507659 , _bIndoorLevel = Nothing
508660 , _bExpectedStability = Nothing
661+ , _bProvisioningKey = Nothing
509662 , _bDescription = Nothing
510663 , _bPlaceId = Nothing
511664 , _bAdvertisedId = Nothing
@@ -533,6 +686,16 @@ bBeaconName :: Lens' Beacon (Maybe Text)
533686bBeaconName
534687 = lens _bBeaconName (\ s a -> s{_bBeaconName = a})
535688
689+-- | Write-only registration parameters for beacons using Eddystone-EID
690+-- (remotely resolved ephemeral ID) format. This information will not be
691+-- populated in API responses. When submitting this data, the
692+-- \`advertised_id\` field must contain an ID of type Eddystone-UID. Any
693+-- other ID type will result in an error.
694+bEphemeralIdRegistration :: Lens' Beacon (Maybe EphemeralIdRegistration)
695+bEphemeralIdRegistration
696+ = lens _bEphemeralIdRegistration
697+ (\ s a -> s{_bEphemeralIdRegistration = a})
698+
536699-- | The indoor level information for this beacon, if known. As returned by
537700-- the Google Maps API. Optional.
538701bIndoorLevel :: Lens' Beacon (Maybe IndoorLevel)
@@ -546,6 +709,21 @@ bExpectedStability
546709 = lens _bExpectedStability
547710 (\ s a -> s{_bExpectedStability = a})
548711
712+-- | Some beacons may require a user to provide an authorization key before
713+-- changing any of its configuration (e.g. broadcast frames, transmit
714+-- power). This field provides a place to store and control access to that
715+-- key. This field is populated in responses to \`GET
716+-- \/v1beta1\/beacons\/3!beaconId\` from users with write access to the
717+-- given beacon. That is to say: If the user is authorized to write the
718+-- beacon\'s confidential data in the service, the service considers them
719+-- authorized to configure the beacon. Note that this key grants nothing on
720+-- the service, only on the beacon itself.
721+bProvisioningKey :: Lens' Beacon (Maybe ByteString)
722+bProvisioningKey
723+ = lens _bProvisioningKey
724+ (\ s a -> s{_bProvisioningKey = a})
725+ . mapping _Base64
726+
549727-- | Free text used to identify and describe the beacon. Maximum length 140
550728-- characters. Optional.
551729bDescription :: Lens' Beacon (Maybe Text)
@@ -560,7 +738,11 @@ bPlaceId = lens _bPlaceId (\ s a -> s{_bPlaceId = a})
560738
561739-- | The identifier of a beacon as advertised by it. This field must be
562740-- populated when registering. It may be empty when updating a beacon
563−-- record because it is ignored in updates.
741+-- record because it is ignored in updates. When registering a beacon that
742+-- broadcasts Eddystone-EID, this field should contain a \"stable\"
743+-- Eddystone-UID that identifies the beacon and links it to its
744+-- attachments. The stable Eddystone-UID is only used for administering the
745+-- beacon.
564746bAdvertisedId :: Lens' Beacon (Maybe AdvertisedId)
565747bAdvertisedId
566748 = lens _bAdvertisedId
@@ -579,8 +761,10 @@ instance FromJSON Beacon where
579761 Beacon' <$>
580762 (o .:? "latLng") <*> (o .:? "status") <*>
581763 (o .:? "beaconName")
764+ <*> (o .:? "ephemeralIdRegistration")
582765 <*> (o .:? "indoorLevel")
583766 <*> (o .:? "expectedStability")
767+ <*> (o .:? "provisioningKey")
584768 <*> (o .:? "description")
585769 <*> (o .:? "placeId")
586770 <*> (o .:? "advertisedId")
@@ -593,8 +777,11 @@ instance ToJSON Beacon where
593777 [("latLng" .=) <$> _bLatLng,
594778 ("status" .=) <$> _bStatus,
595779 ("beaconName" .=) <$> _bBeaconName,
780+ ("ephemeralIdRegistration" .=) <$>
781+ _bEphemeralIdRegistration,
596782 ("indoorLevel" .=) <$> _bIndoorLevel,
597783 ("expectedStability" .=) <$> _bExpectedStability,
784+ ("provisioningKey" .=) <$> _bProvisioningKey,
598785 ("description" .=) <$> _bDescription,
599786 ("placeId" .=) <$> _bPlaceId,
600787 ("advertisedId" .=) <$> _bAdvertisedId,
@@ -633,7 +820,8 @@ dAlerts
633820 = lens _dAlerts (\ s a -> s{_dAlerts = a}) . _Default
634821 . _Coerce
635822
636−-- | Resource name of the beacon.
823+-- | Resource name of the beacon. For Eddystone-EID beacons, this may be the
824+-- beacon\'s current EID, or the beacon\'s \"stable\" Eddystone-UID.
637825dBeaconName :: Lens' Diagnostics (Maybe Text)
638826dBeaconName
639827 = lens _dBeaconName (\ s a -> s{_dBeaconName = a})
@@ -736,6 +924,81 @@ instance ToJSON IndoorLevel where
736924 toJSON IndoorLevel'{..}
737925 = object (catMaybes [("name" .=) <$> _ilName])
738926
927+-- | Information a client needs to provision and register beacons that
928+-- broadcast Eddystone-EID format beacon IDs, using Elliptic curve
929+-- Diffie-Hellman key exchange. See [the Eddystone
930+-- specification](https:\/\/github.com\/google\/eddystone\/tree\/master\/eddystone-eid)
931+-- at GitHub.
932+--
933+-- /See:/ 'ephemeralIdRegistrationParams' smart constructor.
934+data EphemeralIdRegistrationParams = EphemeralIdRegistrationParams'
935+ { _eirpMinRotationPeriodExponent :: !(Maybe (Textual Word32))
936+ , _eirpMaxRotationPeriodExponent :: !(Maybe (Textual Word32))
937+ , _eirpServiceEcdhPublicKey :: !(Maybe Base64)
938+ } deriving (Eq,Show,Data,Typeable,Generic)
939+
940+-- | Creates a value of 'EphemeralIdRegistrationParams' with the minimum fields required to make a request.
941+--
942+-- Use one of the following lenses to modify other fields as desired:
943+--
944+-- * 'eirpMinRotationPeriodExponent'
945+--
946+-- * 'eirpMaxRotationPeriodExponent'
947+--
948+-- * 'eirpServiceEcdhPublicKey'
949+ephemeralIdRegistrationParams
950+ :: EphemeralIdRegistrationParams
951+ephemeralIdRegistrationParams =
952+ EphemeralIdRegistrationParams'
953+ { _eirpMinRotationPeriodExponent = Nothing
954+ , _eirpMaxRotationPeriodExponent = Nothing
955+ , _eirpServiceEcdhPublicKey = Nothing
956+ }
957+
958+-- | Indicates the minimum rotation period supported by the service. See
959+-- EddystoneEidRegistration.rotation_period_exponent
960+eirpMinRotationPeriodExponent :: Lens' EphemeralIdRegistrationParams (Maybe Word32)
961+eirpMinRotationPeriodExponent
962+ = lens _eirpMinRotationPeriodExponent
963+ (\ s a -> s{_eirpMinRotationPeriodExponent = a})
964+ . mapping _Coerce
965+
966+-- | Indicates the maximum rotation period supported by the service. See
967+-- EddystoneEidRegistration.rotation_period_exponent
968+eirpMaxRotationPeriodExponent :: Lens' EphemeralIdRegistrationParams (Maybe Word32)
969+eirpMaxRotationPeriodExponent
970+ = lens _eirpMaxRotationPeriodExponent
971+ (\ s a -> s{_eirpMaxRotationPeriodExponent = a})
972+ . mapping _Coerce
973+
974+-- | The beacon service\'s public key for use by a beacon to derive its
975+-- Identity Key using Elliptic Curve Diffie-Hellman key exchange.
976+eirpServiceEcdhPublicKey :: Lens' EphemeralIdRegistrationParams (Maybe ByteString)
977+eirpServiceEcdhPublicKey
978+ = lens _eirpServiceEcdhPublicKey
979+ (\ s a -> s{_eirpServiceEcdhPublicKey = a})
980+ . mapping _Base64
981+
982+instance FromJSON EphemeralIdRegistrationParams where
983+ parseJSON
984+ = withObject "EphemeralIdRegistrationParams"
985+ (\ o ->
986+ EphemeralIdRegistrationParams' <$>
987+ (o .:? "minRotationPeriodExponent") <*>
988+ (o .:? "maxRotationPeriodExponent")
989+ <*> (o .:? "serviceEcdhPublicKey"))
990+
991+instance ToJSON EphemeralIdRegistrationParams where
992+ toJSON EphemeralIdRegistrationParams'{..}
993+ = object
994+ (catMaybes
995+ [("minRotationPeriodExponent" .=) <$>
996+ _eirpMinRotationPeriodExponent,
997+ ("maxRotationPeriodExponent" .=) <$>
998+ _eirpMaxRotationPeriodExponent,
999+ ("serviceEcdhPublicKey" .=) <$>
1000+ _eirpServiceEcdhPublicKey])
1001+
7391002-- | A subset of beacon information served via the
7401003-- \`beaconinfo.getforobserved\` method, which you call when users of your
7411004-- app encounter your beacons.
@@ -744,7 +1007,6 @@ instance ToJSON IndoorLevel where
7441007data BeaconInfo = BeaconInfo'
7451008 { _biAttachments :: !(Maybe [AttachmentInfo])
7461009 , _biBeaconName :: !(Maybe Text)
747− , _biDescription :: !(Maybe Text)
7481010 , _biAdvertisedId :: !(Maybe AdvertisedId)
7491011 } deriving (Eq,Show,Data,Typeable,Generic)
7501012
@@ -756,8 +1018,6 @@ data BeaconInfo = BeaconInfo'
7561018--
7571019-- * 'biBeaconName'
7581020--
759−-- * 'biDescription'
760−--
7611021-- * 'biAdvertisedId'
7621022beaconInfo
7631023 :: BeaconInfo
@@ -765,7 +1025,6 @@ beaconInfo =
7651025 BeaconInfo'
7661026 { _biAttachments = Nothing
7671027 , _biBeaconName = Nothing
768− , _biDescription = Nothing
7691028 , _biAdvertisedId = Nothing
7701029 }
7711030
@@ -783,14 +1042,6 @@ biBeaconName :: Lens' BeaconInfo (Maybe Text)
7831042biBeaconName
7841043 = lens _biBeaconName (\ s a -> s{_biBeaconName = a})
7851044
786−-- | Free text used to identify or describe the beacon in a registered
787−-- establishment. For example: \"entrance\", \"room 101\", etc. May be
788−-- empty.
789−biDescription :: Lens' BeaconInfo (Maybe Text)
790−biDescription
791− = lens _biDescription
792− (\ s a -> s{_biDescription = a})
793−
7941045-- | The ID advertised by the beacon.
7951046biAdvertisedId :: Lens' BeaconInfo (Maybe AdvertisedId)
7961047biAdvertisedId
@@ -804,7 +1055,6 @@ instance FromJSON BeaconInfo where
8041055 BeaconInfo' <$>
8051056 (o .:? "attachments" .!= mempty) <*>
8061057 (o .:? "beaconName")
807− <*> (o .:? "description")
8081058 <*> (o .:? "advertisedId"))
8091059
8101060instance ToJSON BeaconInfo where
@@ -813,7 +1063,6 @@ instance ToJSON BeaconInfo where
8131063 (catMaybes
8141064 [("attachments" .=) <$> _biAttachments,
8151065 ("beaconName" .=) <$> _biBeaconName,
816− ("description" .=) <$> _biDescription,
8171066 ("advertisedId" .=) <$> _biAdvertisedId])
8181067
8191068-- | Represents one beacon observed once.
@@ -851,13 +1100,15 @@ oTelemetry
8511100 = lens _oTelemetry (\ s a -> s{_oTelemetry = a}) .
8521101 mapping _Base64
8531102
854−-- | Time when the beacon was observed. Being sourced from a mobile device,
855−-- this time may be suspect.
1103+-- | Time when the beacon was observed.
8561104oTimestampMs :: Lens' Observation (Maybe Text)
8571105oTimestampMs
8581106 = lens _oTimestampMs (\ s a -> s{_oTimestampMs = a})
8591107
860−-- | The ID advertised by the beacon the client has encountered. Required.
1108+-- | The ID advertised by the beacon the client has encountered. Clients may
1109+-- submit an Eddystone-EID \`advertised_id\`. If the client is not
1110+-- authorized to resolve the given Eddystone-EID, no data will be returned
1111+-- for that beacon. Required.
8611112oAdvertisedId :: Lens' Observation (Maybe AdvertisedId)
8621113oAdvertisedId
8631114 = lens _oAdvertisedId