-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Proximity Beacon SDK.
--   
--   Registers, manages, indexes, and searches beacons.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1beta1</tt> of the API.
@package gogol-proximitybeacon
@version 0.3.0


module Network.Google.ProximityBeacon.Types

-- | Default request referring to version <tt>v1beta1</tt> of the Google
--   Proximity Beacon API. This contains the host and root path used as a
--   starting point for constructing service requests.
proximityBeaconService :: ServiceConfig

-- | View and modify your beacons
userlocationBeaconRegistryScope :: Proxy '["https://www.googleapis.com/auth/userlocation.beacon.registry"]

-- | An object representing a latitude/longitude pair. This is expressed as
--   a pair of doubles representing degrees latitude and degrees longitude.
--   Unless specified otherwise, this must conform to the WGS84 standard.
--   Values must be within normalized ranges. Example of normalization code
--   in Python: def NormalizeLongitude(longitude): """Wraps decimal degrees
--   longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r
--   &gt; 180.0 or (r == 180.0 and q &lt;= -1.0): return r - 360.0 return r
--   def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees
--   latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0],
--   respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360,
--   NormalizeLongitude(longitude) else: return 180 - r,
--   NormalizeLongitude(longitude + 180.0) assert 180.0 ==
--   NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0)
--   assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) ==
--   NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) ==
--   NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) ==
--   NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) ==
--   NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) ==
--   NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) ==
--   NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) ==
--   NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) ==
--   NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) ==
--   NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) ==
--   NormalizeLatLng(-270.0, 10.0)
--   
--   <i>See:</i> <a>latLng</a> smart constructor.
data LatLng

-- | Creates a value of <a>LatLng</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>llLatitude</a></li>
--   <li><a>llLongitude</a></li>
--   </ul>
latLng :: LatLng

-- | The latitude in degrees. It must be in the range [-90.0, +90.0].
llLatitude :: Lens' LatLng (Maybe Double)

-- | The longitude in degrees. It must be in the range [-180.0, +180.0].
llLongitude :: Lens' LatLng (Maybe Double)

-- | A subset of attachment information served via the
--   `beaconinfo.getforobserved` method, used when your users encounter
--   your beacons.
--   
--   <i>See:</i> <a>attachmentInfo</a> smart constructor.
data AttachmentInfo

-- | Creates a value of <a>AttachmentInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiData</a></li>
--   <li><a>aiNamespacedType</a></li>
--   </ul>
attachmentInfo :: AttachmentInfo

-- | An opaque data container for client-provided data.
aiData :: Lens' AttachmentInfo (Maybe ByteString)

-- | Specifies what kind of attachment this is. Tells a client how to
--   interpret the `data` field. Format is namespace/type, for example
--   scrupulous-wombat-12345/welcome-message
aiNamespacedType :: Lens' AttachmentInfo (Maybe Text)

-- | Properties of the beacon device, for example battery type or firmware
--   version. Optional.
--   
--   <i>See:</i> <a>beaconProperties</a> smart constructor.
data BeaconProperties

-- | Creates a value of <a>BeaconProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bpAddtional</a></li>
--   </ul>
beaconProperties :: HashMap Text Text -> BeaconProperties
bpAddtional :: Lens' BeaconProperties (HashMap Text Text)

-- | A generic empty message that you can re-use to avoid defining
--   duplicated empty messages in your APIs. A typical example is to use it
--   as the request or the response type of an API method. For instance:
--   service Foo { rpc Bar(google.protobuf.Empty) returns
--   (google.protobuf.Empty); } The JSON representation for `Empty` is
--   empty JSON object `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | Response for a request to delete attachments.
--   
--   <i>See:</i> <a>deleteAttachmentsResponse</a> smart constructor.
data DeleteAttachmentsResponse

-- | Creates a value of <a>DeleteAttachmentsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>darNumDeleted</a></li>
--   </ul>
deleteAttachmentsResponse :: DeleteAttachmentsResponse

-- | The number of attachments that were deleted.
darNumDeleted :: Lens' DeleteAttachmentsResponse (Maybe Int32)

-- | Request for beacon and attachment information about beacons that a
--   mobile client has encountered "in the wild".
--   
--   <i>See:</i> <a>getInfoForObservedBeaconsRequest</a> smart constructor.
data GetInfoForObservedBeaconsRequest

-- | Creates a value of <a>GetInfoForObservedBeaconsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gifobrObservations</a></li>
--   <li><a>gifobrNamespacedTypes</a></li>
--   </ul>
getInfoForObservedBeaconsRequest :: GetInfoForObservedBeaconsRequest

-- | The beacons that the client has encountered. At least one must be
--   given.
gifobrObservations :: Lens' GetInfoForObservedBeaconsRequest [Observation]

-- | Specifies what kind of attachments to include in the response. When
--   given, the response will include only attachments of the given types.
--   When empty, no attachments will be returned. Must be in the format
--   namespace/type. Accepts `*` to specify all types in all namespaces.
--   Optional.
gifobrNamespacedTypes :: Lens' GetInfoForObservedBeaconsRequest [Text]

-- | An attachment namespace defines read and write access for all the
--   attachments created under it. Each namespace is globally unique, and
--   owned by one project which is the only project that can create
--   attachments under it.
--   
--   <i>See:</i> <a>namespace</a> smart constructor.
data Namespace

-- | Creates a value of <a>Namespace</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nServingVisibility</a></li>
--   <li><a>nNamespaceName</a></li>
--   </ul>
namespace :: Namespace

-- | Specifies what clients may receive attachments under this namespace
--   via `beaconinfo.getforobserved`.
nServingVisibility :: Lens' Namespace (Maybe Text)

-- | Resource name of this namespace. Namespaces names have the format:
--   namespaces/namespace.
nNamespaceName :: Lens' Namespace (Maybe Text)

-- | Write-only registration parameters for beacons using Eddystone-EID
--   format. Two ways of securely registering an Eddystone-EID beacon with
--   the service are supported: 1. Perform an ECDH key exchange via this
--   API, including a previous call to `GET /v1beta1/eidparams`. In this
--   case the fields `beacon_ecdh_public_key` and `service_ecdh_public_key`
--   should be populated and `beacon_identity_key` should not be populated.
--   This method ensures that only the two parties in the ECDH key exchange
--   can compute the identity key, which becomes a secret between them. 2.
--   Derive or obtain the beacon's identity key via other secure means
--   (perhaps an ECDH key exchange between the beacon and a mobile device
--   or any other secure method), and then submit the resulting identity
--   key to the service. In this case `beacon_identity_key` field should be
--   populated, and neither of `beacon_ecdh_public_key` nor
--   `service_ecdh_public_key` fields should be. The security of this
--   method depends on how securely the parties involved (in particular the
--   bluetooth client) handle the identity key, and obviously on how
--   securely the identity key was generated. See <a>the Eddystone
--   specification</a> at GitHub.
--   
--   <i>See:</i> <a>ephemeralIdRegistration</a> smart constructor.
data EphemeralIdRegistration

-- | Creates a value of <a>EphemeralIdRegistration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eirRotationPeriodExponent</a></li>
--   <li><a>eirInitialClockValue</a></li>
--   <li><a>eirBeaconIdentityKey</a></li>
--   <li><a>eirBeaconEcdhPublicKey</a></li>
--   <li><a>eirInitialEid</a></li>
--   <li><a>eirServiceEcdhPublicKey</a></li>
--   </ul>
ephemeralIdRegistration :: EphemeralIdRegistration

-- | Indicates the nominal period between each rotation of the beacon's
--   ephemeral ID. "Nominal" because the beacon should randomize the actual
--   interval. See <a>the spec at github</a> 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.
eirRotationPeriodExponent :: Lens' EphemeralIdRegistration (Maybe Word32)

-- | 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.
eirInitialClockValue :: Lens' EphemeralIdRegistration (Maybe Word64)

-- | The private key of the beacon. If this field is populated,
--   `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
--   populated.
eirBeaconIdentityKey :: Lens' EphemeralIdRegistration (Maybe ByteString)

-- | 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.
eirBeaconEcdhPublicKey :: Lens' EphemeralIdRegistration (Maybe ByteString)

-- | 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.
eirInitialEid :: Lens' EphemeralIdRegistration (Maybe ByteString)

-- | 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.
eirServiceEcdhPublicKey :: Lens' EphemeralIdRegistration (Maybe ByteString)

-- | Response to ListNamespacesRequest that contains all the project's
--   namespaces.
--   
--   <i>See:</i> <a>listNamespacesResponse</a> smart constructor.
data ListNamespacesResponse

-- | Creates a value of <a>ListNamespacesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lnrNamespaces</a></li>
--   </ul>
listNamespacesResponse :: ListNamespacesResponse

-- | The attachments that corresponded to the request params.
lnrNamespaces :: Lens' ListNamespacesResponse [Namespace]

-- | Represents a whole calendar date, e.g. date of birth. The time of day
--   and time zone are either specified elsewhere or are not significant.
--   The date is relative to the Proleptic Gregorian Calendar. The day may
--   be 0 to represent a year and month where the day is not significant,
--   e.g. credit card expiration date. The year may be 0 to represent a
--   month and day independent of year, e.g. anniversary date. Related
--   types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
--   
--   <i>See:</i> <a>date</a> smart constructor.
data Date

-- | Creates a value of <a>Date</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDay</a></li>
--   <li><a>dYear</a></li>
--   <li><a>dMonth</a></li>
--   </ul>
date :: Date

-- | Day of month. Must be from 1 to 31 and valid for the year and month,
--   or 0 if specifying a year/month where the day is not significant.
dDay :: Lens' Date (Maybe Int32)

-- | Year of date. Must be from 1 to 9999, or 0 if specifying a date
--   without a year.
dYear :: Lens' Date (Maybe Int32)

-- | Month of year. Must be from 1 to 12.
dMonth :: Lens' Date (Maybe Int32)

-- | Details of a beacon device.
--   
--   <i>See:</i> <a>beacon</a> smart constructor.
data Beacon

-- | Creates a value of <a>Beacon</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bLatLng</a></li>
--   <li><a>bStatus</a></li>
--   <li><a>bBeaconName</a></li>
--   <li><a>bEphemeralIdRegistration</a></li>
--   <li><a>bIndoorLevel</a></li>
--   <li><a>bExpectedStability</a></li>
--   <li><a>bProvisioningKey</a></li>
--   <li><a>bDescription</a></li>
--   <li><a>bPlaceId</a></li>
--   <li><a>bAdvertisedId</a></li>
--   <li><a>bProperties</a></li>
--   </ul>
beacon :: Beacon

-- | The location of the beacon, expressed as a latitude and longitude
--   pair. This location is given when the beacon is registered or updated.
--   It does not necessarily indicate the actual current location of the
--   beacon. Optional.
bLatLng :: Lens' Beacon (Maybe LatLng)

-- | Current status of the beacon. Required.
bStatus :: Lens' Beacon (Maybe Text)

-- | 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.
bBeaconName :: Lens' Beacon (Maybe Text)

-- | Write-only registration parameters for beacons using Eddystone-EID
--   (remotely resolved ephemeral ID) format. This information will not be
--   populated in API responses. When submitting this data, the
--   `advertised_id` field must contain an ID of type Eddystone-UID. Any
--   other ID type will result in an error.
bEphemeralIdRegistration :: Lens' Beacon (Maybe EphemeralIdRegistration)

-- | The indoor level information for this beacon, if known. As returned by
--   the Google Maps API. Optional.
bIndoorLevel :: Lens' Beacon (Maybe IndoorLevel)

-- | Expected location stability. This is set when the beacon is registered
--   or updated, not automatically detected in any way. Optional.
bExpectedStability :: Lens' Beacon (Maybe Text)

-- | 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.
bProvisioningKey :: Lens' Beacon (Maybe ByteString)

-- | Free text used to identify and describe the beacon. Maximum length 140
--   characters. Optional.
bDescription :: Lens' Beacon (Maybe Text)

-- | The <a>Google Places API</a> 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.
bPlaceId :: Lens' Beacon (Maybe Text)

-- | The identifier of a beacon as advertised by it. This field must be
--   populated when registering. It may be empty when updating a beacon
--   record because it is ignored in updates. When registering a beacon
--   that broadcasts Eddystone-EID, this field should contain a "stable"
--   Eddystone-UID that identifies the beacon and links it to its
--   attachments. The stable Eddystone-UID is only used for administering
--   the beacon.
bAdvertisedId :: Lens' Beacon (Maybe AdvertisedId)

-- | Properties of the beacon device, for example battery type or firmware
--   version. Optional.
bProperties :: Lens' Beacon (Maybe BeaconProperties)

-- | Diagnostics for a single beacon.
--   
--   <i>See:</i> <a>diagnostics</a> smart constructor.
data Diagnostics

-- | Creates a value of <a>Diagnostics</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dAlerts</a></li>
--   <li><a>dBeaconName</a></li>
--   <li><a>dEstimatedLowBatteryDate</a></li>
--   </ul>
diagnostics :: Diagnostics

-- | An unordered list of Alerts that the beacon has.
dAlerts :: Lens' Diagnostics [Text]

-- | Resource name of the beacon. For Eddystone-EID beacons, this may be
--   the beacon's current EID, or the beacon's "stable" Eddystone-UID.
dBeaconName :: Lens' Diagnostics (Maybe Text)

-- | The date when the battery is expected to be low. If the value is
--   missing then there is no estimate for when the battery will be low.
--   This value is only an estimate, not an exact date.
dEstimatedLowBatteryDate :: Lens' Diagnostics (Maybe Date)

-- | Response to ListBeaconAttachments that contains the requested
--   attachments.
--   
--   <i>See:</i> <a>listBeaconAttachmentsResponse</a> smart constructor.
data ListBeaconAttachmentsResponse

-- | Creates a value of <a>ListBeaconAttachmentsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbarAttachments</a></li>
--   </ul>
listBeaconAttachmentsResponse :: ListBeaconAttachmentsResponse

-- | The attachments that corresponded to the request params.
lbarAttachments :: Lens' ListBeaconAttachmentsResponse [BeaconAttachment]

-- | Indoor level, a human-readable string as returned by Google Maps APIs,
--   useful to indicate which floor of a building a beacon is located on.
--   
--   <i>See:</i> <a>indoorLevel</a> smart constructor.
data IndoorLevel

-- | Creates a value of <a>IndoorLevel</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilName</a></li>
--   </ul>
indoorLevel :: IndoorLevel

-- | The name of this level.
ilName :: Lens' IndoorLevel (Maybe Text)

-- | Information a client needs to provision and register beacons that
--   broadcast Eddystone-EID format beacon IDs, using Elliptic curve
--   Diffie-Hellman key exchange. See <a>the Eddystone specification</a> at
--   GitHub.
--   
--   <i>See:</i> <a>ephemeralIdRegistrationParams</a> smart constructor.
data EphemeralIdRegistrationParams

-- | Creates a value of <a>EphemeralIdRegistrationParams</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eirpMinRotationPeriodExponent</a></li>
--   <li><a>eirpMaxRotationPeriodExponent</a></li>
--   <li><a>eirpServiceEcdhPublicKey</a></li>
--   </ul>
ephemeralIdRegistrationParams :: EphemeralIdRegistrationParams

-- | Indicates the minimum rotation period supported by the service. See
--   EddystoneEidRegistration.rotation_period_exponent
eirpMinRotationPeriodExponent :: Lens' EphemeralIdRegistrationParams (Maybe Word32)

-- | Indicates the maximum rotation period supported by the service. See
--   EddystoneEidRegistration.rotation_period_exponent
eirpMaxRotationPeriodExponent :: Lens' EphemeralIdRegistrationParams (Maybe Word32)

-- | The beacon service's public key for use by a beacon to derive its
--   Identity Key using Elliptic Curve Diffie-Hellman key exchange.
eirpServiceEcdhPublicKey :: Lens' EphemeralIdRegistrationParams (Maybe ByteString)

-- | A subset of beacon information served via the
--   `beaconinfo.getforobserved` method, which you call when users of your
--   app encounter your beacons.
--   
--   <i>See:</i> <a>beaconInfo</a> smart constructor.
data BeaconInfo

-- | Creates a value of <a>BeaconInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>biAttachments</a></li>
--   <li><a>biBeaconName</a></li>
--   <li><a>biAdvertisedId</a></li>
--   </ul>
beaconInfo :: BeaconInfo

-- | Attachments matching the type(s) requested. May be empty if no
--   attachment types were requested, or if none matched.
biAttachments :: Lens' BeaconInfo [AttachmentInfo]

-- | The name under which the beacon is registered.
biBeaconName :: Lens' BeaconInfo (Maybe Text)

-- | The ID advertised by the beacon.
biAdvertisedId :: Lens' BeaconInfo (Maybe AdvertisedId)

-- | Represents one beacon observed once.
--   
--   <i>See:</i> <a>observation</a> smart constructor.
data Observation

-- | Creates a value of <a>Observation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oTelemetry</a></li>
--   <li><a>oTimestampMs</a></li>
--   <li><a>oAdvertisedId</a></li>
--   </ul>
observation :: Observation

-- | The array of telemetry bytes received from the beacon. The server is
--   responsible for parsing it. This field may frequently be empty, as
--   with a beacon that transmits telemetry only occasionally.
oTelemetry :: Lens' Observation (Maybe ByteString)

-- | Time when the beacon was observed.
oTimestampMs :: Lens' Observation (Maybe Text)

-- | The ID advertised by the beacon the client has encountered. Clients
--   may submit an Eddystone-EID `advertised_id`. If the client is not
--   authorized to resolve the given Eddystone-EID, no data will be
--   returned for that beacon. Required.
oAdvertisedId :: Lens' Observation (Maybe AdvertisedId)

-- | Project-specific data associated with a beacon.
--   
--   <i>See:</i> <a>beaconAttachment</a> smart constructor.
data BeaconAttachment

-- | Creates a value of <a>BeaconAttachment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>baData</a></li>
--   <li><a>baAttachmentName</a></li>
--   <li><a>baNamespacedType</a></li>
--   </ul>
beaconAttachment :: BeaconAttachment

-- | An opaque data container for client-provided data. Must be
--   <a>base64</a> encoded in HTTP requests, and will be so encoded (with
--   padding) in responses. Required.
baData :: Lens' BeaconAttachment (Maybe ByteString)

-- | Resource name of this attachment. Attachment names have the format:
--   beacons/beacon_id/attachments/attachment_id. Leave this empty on
--   creation.
baAttachmentName :: Lens' BeaconAttachment (Maybe Text)

-- | Specifies what kind of attachment this is. Tells a client how to
--   interpret the `data` field. Format is namespace/type. Namespace
--   provides type separation between clients. Type describes the type of
--   `data`, for use by the client when parsing the `data` field. Required.
baNamespacedType :: Lens' BeaconAttachment (Maybe Text)

-- | Response that contains the requested diagnostics.
--   
--   <i>See:</i> <a>listDiagnosticsResponse</a> smart constructor.
data ListDiagnosticsResponse

-- | Creates a value of <a>ListDiagnosticsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ldrNextPageToken</a></li>
--   <li><a>ldrDiagnostics</a></li>
--   </ul>
listDiagnosticsResponse :: ListDiagnosticsResponse

-- | Token that can be used for pagination. Returned only if the request
--   matches more beacons than can be returned in this response.
ldrNextPageToken :: Lens' ListDiagnosticsResponse (Maybe Text)

-- | The diagnostics matching the given request.
ldrDiagnostics :: Lens' ListDiagnosticsResponse [Diagnostics]

-- | Defines a unique identifier of a beacon as broadcast by the device.
--   
--   <i>See:</i> <a>advertisedId</a> smart constructor.
data AdvertisedId

-- | Creates a value of <a>AdvertisedId</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiId</a></li>
--   <li><a>aiType</a></li>
--   </ul>
advertisedId :: AdvertisedId

-- | The actual beacon identifier, as broadcast by the beacon hardware.
--   Must be <a>base64</a> 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.
aiId :: Lens' AdvertisedId (Maybe ByteString)

-- | Specifies the identifier type. Required.
aiType :: Lens' AdvertisedId (Maybe Text)

-- | Response that contains list beacon results and pagination help.
--   
--   <i>See:</i> <a>listBeaconsResponse</a> smart constructor.
data ListBeaconsResponse

-- | Creates a value of <a>ListBeaconsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbrNextPageToken</a></li>
--   <li><a>lbrBeacons</a></li>
--   <li><a>lbrTotalCount</a></li>
--   </ul>
listBeaconsResponse :: ListBeaconsResponse

-- | An opaque pagination token that the client may provide in their next
--   request to retrieve the next page of results.
lbrNextPageToken :: Lens' ListBeaconsResponse (Maybe Text)

-- | The beacons that matched the search criteria.
lbrBeacons :: Lens' ListBeaconsResponse [Beacon]

-- | Estimate of the total number of beacons matched by the query. Higher
--   values may be less accurate.
lbrTotalCount :: Lens' ListBeaconsResponse (Maybe Int64)

-- | Information about the requested beacons, optionally including
--   attachment data.
--   
--   <i>See:</i> <a>getInfoForObservedBeaconsResponse</a> smart
--   constructor.
data GetInfoForObservedBeaconsResponse

-- | Creates a value of <a>GetInfoForObservedBeaconsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gifobrBeacons</a></li>
--   </ul>
getInfoForObservedBeaconsResponse :: GetInfoForObservedBeaconsResponse

-- | Public information about beacons. May be empty if the request matched
--   no beacons.
gifobrBeacons :: Lens' GetInfoForObservedBeaconsResponse [BeaconInfo]


-- | Given one or more beacon observations, returns any beacon information
--   and attachments accessible to your application. Authorize by using the
--   <a>API key</a> for the application.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beaconinfo.getforobserved</tt>.
module Network.Google.Resource.ProximityBeacon.BeaconInfo.GetforObserved

-- | A resource alias for
--   <tt>proximitybeacon.beaconinfo.getforobserved</tt> method which the
--   <a>BeaconInfoGetforObserved</a> request conforms to.
type BeaconInfoGetforObservedResource = "v1beta1" :> ("beaconinfo:getforobserved" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] GetInfoForObservedBeaconsRequest :> Post '[JSON] GetInfoForObservedBeaconsResponse))))))))))

-- | Creates a value of <a>BeaconInfoGetforObserved</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bigoXgafv</a></li>
--   <li><a>bigoUploadProtocol</a></li>
--   <li><a>bigoPp</a></li>
--   <li><a>bigoAccessToken</a></li>
--   <li><a>bigoUploadType</a></li>
--   <li><a>bigoPayload</a></li>
--   <li><a>bigoBearerToken</a></li>
--   <li><a>bigoCallback</a></li>
--   </ul>
beaconInfoGetforObserved :: GetInfoForObservedBeaconsRequest -> BeaconInfoGetforObserved

-- | Given one or more beacon observations, returns any beacon information
--   and attachments accessible to your application. Authorize by using the
--   <a>API key</a> for the application.
--   
--   <i>See:</i> <a>beaconInfoGetforObserved</a> smart constructor.
data BeaconInfoGetforObserved

-- | V1 error format.
bigoXgafv :: Lens' BeaconInfoGetforObserved (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
bigoUploadProtocol :: Lens' BeaconInfoGetforObserved (Maybe Text)

-- | Pretty-print response.
bigoPp :: Lens' BeaconInfoGetforObserved Bool

-- | OAuth access token.
bigoAccessToken :: Lens' BeaconInfoGetforObserved (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
bigoUploadType :: Lens' BeaconInfoGetforObserved (Maybe Text)

-- | Multipart request metadata.
bigoPayload :: Lens' BeaconInfoGetforObserved GetInfoForObservedBeaconsRequest

-- | OAuth bearer token.
bigoBearerToken :: Lens' BeaconInfoGetforObserved (Maybe Text)

-- | JSONP
bigoCallback :: Lens' BeaconInfoGetforObserved (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.BeaconInfo.GetforObserved.BeaconInfoGetforObserved
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.BeaconInfo.GetforObserved.BeaconInfoGetforObserved
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.BeaconInfo.GetforObserved.BeaconInfoGetforObserved
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.BeaconInfo.GetforObserved.BeaconInfoGetforObserved
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.BeaconInfo.GetforObserved.BeaconInfoGetforObserved


-- | Activates a beacon. A beacon that is active will return information
--   and attachment data when queried via `beaconinfo.getforobserved`.
--   Calling this method on an already active beacon will do nothing (but
--   will return a successful response code). Authenticate using an
--   <a>OAuth access token</a> from a signed-in user with **Is owner** or
--   **Can edit** permissions in the Google Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.activate</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Activate

-- | A resource alias for <tt>proximitybeacon.beacons.activate</tt> method
--   which the <a>BeaconsActivate</a> request conforms to.
type BeaconsActivateResource = "v1beta1" :> (CaptureMode "beaconName" "activate" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] Empty))))))))))

-- | Creates a value of <a>BeaconsActivate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>baXgafv</a></li>
--   <li><a>baUploadProtocol</a></li>
--   <li><a>baPp</a></li>
--   <li><a>baAccessToken</a></li>
--   <li><a>baBeaconName</a></li>
--   <li><a>baUploadType</a></li>
--   <li><a>baBearerToken</a></li>
--   <li><a>baProjectId</a></li>
--   <li><a>baCallback</a></li>
--   </ul>
beaconsActivate :: Text -> BeaconsActivate

-- | Activates a beacon. A beacon that is active will return information
--   and attachment data when queried via `beaconinfo.getforobserved`.
--   Calling this method on an already active beacon will do nothing (but
--   will return a successful response code). Authenticate using an
--   <a>OAuth access token</a> from a signed-in user with **Is owner** or
--   **Can edit** permissions in the Google Developers Console project.
--   
--   <i>See:</i> <a>beaconsActivate</a> smart constructor.
data BeaconsActivate

-- | V1 error format.
baXgafv :: Lens' BeaconsActivate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
baUploadProtocol :: Lens' BeaconsActivate (Maybe Text)

-- | Pretty-print response.
baPp :: Lens' BeaconsActivate Bool

-- | OAuth access token.
baAccessToken :: Lens' BeaconsActivate (Maybe Text)

-- | Beacon that should be activated. 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-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
--   for AltBeacon. For Eddystone-EID beacons, you may use either the
--   current EID or the beacon's "stable" UID. Required.
baBeaconName :: Lens' BeaconsActivate Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
baUploadType :: Lens' BeaconsActivate (Maybe Text)

-- | OAuth bearer token.
baBearerToken :: Lens' BeaconsActivate (Maybe Text)

-- | The project id of the beacon to activate. If the project id is not
--   specified then the project making the request is used. The project id
--   must match the project that owns the beacon. Optional.
baProjectId :: Lens' BeaconsActivate (Maybe Text)

-- | JSONP
baCallback :: Lens' BeaconsActivate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Activate.BeaconsActivate
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Activate.BeaconsActivate
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Activate.BeaconsActivate
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Activate.BeaconsActivate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Activate.BeaconsActivate


-- | Deletes multiple attachments on a given beacon. This operation is
--   permanent and cannot be undone. You can optionally specify
--   `namespacedType` to choose which attachments should be deleted. If you
--   do not specify `namespacedType`, all your attachments on the given
--   beacon will be deleted. You also may explicitly specify `*/*` to
--   delete all. Authenticate using an <a>OAuth access token</a> from a
--   signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.attachments.batchDelete</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Attachments.BatchDelete

-- | A resource alias for
--   <tt>proximitybeacon.beacons.attachments.batchDelete</tt> method which
--   the <a>BeaconsAttachmentsBatchDelete</a> request conforms to.
type BeaconsAttachmentsBatchDeleteResource = "v1beta1" :> (Capture "beaconName" Text :> ("attachments:batchDelete" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "namespacedType" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] DeleteAttachmentsResponse))))))))))))

-- | Creates a value of <a>BeaconsAttachmentsBatchDelete</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>babdXgafv</a></li>
--   <li><a>babdUploadProtocol</a></li>
--   <li><a>babdPp</a></li>
--   <li><a>babdAccessToken</a></li>
--   <li><a>babdBeaconName</a></li>
--   <li><a>babdUploadType</a></li>
--   <li><a>babdBearerToken</a></li>
--   <li><a>babdNamespacedType</a></li>
--   <li><a>babdProjectId</a></li>
--   <li><a>babdCallback</a></li>
--   </ul>
beaconsAttachmentsBatchDelete :: Text -> BeaconsAttachmentsBatchDelete

-- | Deletes multiple attachments on a given beacon. This operation is
--   permanent and cannot be undone. You can optionally specify
--   `namespacedType` to choose which attachments should be deleted. If you
--   do not specify `namespacedType`, all your attachments on the given
--   beacon will be deleted. You also may explicitly specify `*/*` to
--   delete all. Authenticate using an <a>OAuth access token</a> from a
--   signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>beaconsAttachmentsBatchDelete</a> smart constructor.
data BeaconsAttachmentsBatchDelete

-- | V1 error format.
babdXgafv :: Lens' BeaconsAttachmentsBatchDelete (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
babdUploadProtocol :: Lens' BeaconsAttachmentsBatchDelete (Maybe Text)

-- | Pretty-print response.
babdPp :: Lens' BeaconsAttachmentsBatchDelete Bool

-- | OAuth access token.
babdAccessToken :: Lens' BeaconsAttachmentsBatchDelete (Maybe Text)

-- | The beacon whose attachments should be deleted. 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-UID, `4` for Eddystone-EID, `1`
--   for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may
--   use either the current EID or the beacon's "stable" UID. Required.
babdBeaconName :: Lens' BeaconsAttachmentsBatchDelete Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
babdUploadType :: Lens' BeaconsAttachmentsBatchDelete (Maybe Text)

-- | OAuth bearer token.
babdBearerToken :: Lens' BeaconsAttachmentsBatchDelete (Maybe Text)

-- | Specifies the namespace and type of attachments to delete in
--   `namespace/type` format. Accepts `*/*` to specify "all types in all
--   namespaces". Optional.
babdNamespacedType :: Lens' BeaconsAttachmentsBatchDelete (Maybe Text)

-- | The project id to delete beacon attachments under. This field can be
--   used when "*" is specified to mean all attachment namespaces. Projects
--   may have multiple attachments with multiple namespaces. If "*" is
--   specified and the projectId string is empty, then the project making
--   the request is used. Optional.
babdProjectId :: Lens' BeaconsAttachmentsBatchDelete (Maybe Text)

-- | JSONP
babdCallback :: Lens' BeaconsAttachmentsBatchDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Attachments.BatchDelete.BeaconsAttachmentsBatchDelete
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Attachments.BatchDelete.BeaconsAttachmentsBatchDelete
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Attachments.BatchDelete.BeaconsAttachmentsBatchDelete
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Attachments.BatchDelete.BeaconsAttachmentsBatchDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Attachments.BatchDelete.BeaconsAttachmentsBatchDelete


-- | Associates the given data with the specified beacon. Attachment data
--   must contain two parts: - A namespaced type. - The actual attachment
--   data itself. The namespaced type consists of two parts, the namespace
--   and the type. The namespace must be one of the values returned by the
--   `namespaces` endpoint, while the type can be a string of any
--   characters except for the forward slash (`/`) up to 100 characters in
--   length. Attachment data can be up to 1024 bytes long. Authenticate
--   using an <a>OAuth access token</a> from a signed-in user with **Is
--   owner** or **Can edit** permissions in the Google Developers Console
--   project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.attachments.create</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Create

-- | A resource alias for
--   <tt>proximitybeacon.beacons.attachments.create</tt> method which the
--   <a>BeaconsAttachmentsCreate</a> request conforms to.
type BeaconsAttachmentsCreateResource = "v1beta1" :> (Capture "beaconName" Text :> ("attachments" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] BeaconAttachment :> Post '[JSON] BeaconAttachment))))))))))))

-- | Creates a value of <a>BeaconsAttachmentsCreate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bacXgafv</a></li>
--   <li><a>bacUploadProtocol</a></li>
--   <li><a>bacPp</a></li>
--   <li><a>bacAccessToken</a></li>
--   <li><a>bacBeaconName</a></li>
--   <li><a>bacUploadType</a></li>
--   <li><a>bacPayload</a></li>
--   <li><a>bacBearerToken</a></li>
--   <li><a>bacProjectId</a></li>
--   <li><a>bacCallback</a></li>
--   </ul>
beaconsAttachmentsCreate :: Text -> BeaconAttachment -> BeaconsAttachmentsCreate

-- | Associates the given data with the specified beacon. Attachment data
--   must contain two parts: - A namespaced type. - The actual attachment
--   data itself. The namespaced type consists of two parts, the namespace
--   and the type. The namespace must be one of the values returned by the
--   `namespaces` endpoint, while the type can be a string of any
--   characters except for the forward slash (`/`) up to 100 characters in
--   length. Attachment data can be up to 1024 bytes long. Authenticate
--   using an <a>OAuth access token</a> from a signed-in user with **Is
--   owner** or **Can edit** permissions in the Google Developers Console
--   project.
--   
--   <i>See:</i> <a>beaconsAttachmentsCreate</a> smart constructor.
data BeaconsAttachmentsCreate

-- | V1 error format.
bacXgafv :: Lens' BeaconsAttachmentsCreate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
bacUploadProtocol :: Lens' BeaconsAttachmentsCreate (Maybe Text)

-- | Pretty-print response.
bacPp :: Lens' BeaconsAttachmentsCreate Bool

-- | OAuth access token.
bacAccessToken :: Lens' BeaconsAttachmentsCreate (Maybe Text)

-- | Beacon on which the attachment should be created. 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-UID, `4` for Eddystone-EID, `1`
--   for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may
--   use either the current EID or the beacon's "stable" UID. Required.
bacBeaconName :: Lens' BeaconsAttachmentsCreate Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
bacUploadType :: Lens' BeaconsAttachmentsCreate (Maybe Text)

-- | Multipart request metadata.
bacPayload :: Lens' BeaconsAttachmentsCreate BeaconAttachment

-- | OAuth bearer token.
bacBearerToken :: Lens' BeaconsAttachmentsCreate (Maybe Text)

-- | The project id of the project the attachment will belong to. If the
--   project id is not specified then the project making the request is
--   used. Optional.
bacProjectId :: Lens' BeaconsAttachmentsCreate (Maybe Text)

-- | JSONP
bacCallback :: Lens' BeaconsAttachmentsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Create.BeaconsAttachmentsCreate
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Create.BeaconsAttachmentsCreate
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Create.BeaconsAttachmentsCreate
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Create.BeaconsAttachmentsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Create.BeaconsAttachmentsCreate


-- | Deletes the specified attachment for the given beacon. Each attachment
--   has a unique attachment name (`attachmentName`) which is returned when
--   you fetch the attachment data via this API. You specify this with the
--   delete request to control which attachment is removed. This operation
--   cannot be undone. Authenticate using an <a>OAuth access token</a> from
--   a signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.attachments.delete</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Delete

-- | A resource alias for
--   <tt>proximitybeacon.beacons.attachments.delete</tt> method which the
--   <a>BeaconsAttachmentsDelete</a> request conforms to.
type BeaconsAttachmentsDeleteResource = "v1beta1" :> (Capture "attachmentName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty))))))))))

-- | Creates a value of <a>BeaconsAttachmentsDelete</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>badXgafv</a></li>
--   <li><a>badUploadProtocol</a></li>
--   <li><a>badPp</a></li>
--   <li><a>badAccessToken</a></li>
--   <li><a>badUploadType</a></li>
--   <li><a>badAttachmentName</a></li>
--   <li><a>badBearerToken</a></li>
--   <li><a>badProjectId</a></li>
--   <li><a>badCallback</a></li>
--   </ul>
beaconsAttachmentsDelete :: Text -> BeaconsAttachmentsDelete

-- | Deletes the specified attachment for the given beacon. Each attachment
--   has a unique attachment name (`attachmentName`) which is returned when
--   you fetch the attachment data via this API. You specify this with the
--   delete request to control which attachment is removed. This operation
--   cannot be undone. Authenticate using an <a>OAuth access token</a> from
--   a signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>beaconsAttachmentsDelete</a> smart constructor.
data BeaconsAttachmentsDelete

-- | V1 error format.
badXgafv :: Lens' BeaconsAttachmentsDelete (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
badUploadProtocol :: Lens' BeaconsAttachmentsDelete (Maybe Text)

-- | Pretty-print response.
badPp :: Lens' BeaconsAttachmentsDelete Bool

-- | OAuth access token.
badAccessToken :: Lens' BeaconsAttachmentsDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
badUploadType :: Lens' BeaconsAttachmentsDelete (Maybe Text)

-- | The attachment name (`attachmentName`) of the attachment to remove.
--   For example:
--   `beacons/3!893737abc9/attachments/c5e937-af0-494-959-ec49d12738`. For
--   Eddystone-EID beacons, the beacon ID portion (`3!893737abc9`) may be
--   the beacon's current EID, or its "stable" Eddystone-UID. Required.
badAttachmentName :: Lens' BeaconsAttachmentsDelete Text

-- | OAuth bearer token.
badBearerToken :: Lens' BeaconsAttachmentsDelete (Maybe Text)

-- | The project id of the attachment to delete. If not provided, the
--   project that is making the request is used. Optional.
badProjectId :: Lens' BeaconsAttachmentsDelete (Maybe Text)

-- | JSONP
badCallback :: Lens' BeaconsAttachmentsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Delete.BeaconsAttachmentsDelete
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Delete.BeaconsAttachmentsDelete
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Delete.BeaconsAttachmentsDelete
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Delete.BeaconsAttachmentsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Attachments.Delete.BeaconsAttachmentsDelete


-- | Returns the attachments for the specified beacon that match the
--   specified namespaced-type pattern. To control which namespaced types
--   are returned, you add the `namespacedType` query parameter to the
--   request. You must either use `*/*`, to return all attachments, or the
--   namespace must be one of the ones returned from the `namespaces`
--   endpoint. Authenticate using an <a>OAuth access token</a> from a
--   signed-in user with **viewer**, **Is owner** or **Can edit**
--   permissions in the Google Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.attachments.list</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Attachments.List

-- | A resource alias for <tt>proximitybeacon.beacons.attachments.list</tt>
--   method which the <a>BeaconsAttachmentsList</a> request conforms to.
type BeaconsAttachmentsListResource = "v1beta1" :> (Capture "beaconName" Text :> ("attachments" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "namespacedType" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListBeaconAttachmentsResponse))))))))))))

-- | Creates a value of <a>BeaconsAttachmentsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>balXgafv</a></li>
--   <li><a>balUploadProtocol</a></li>
--   <li><a>balPp</a></li>
--   <li><a>balAccessToken</a></li>
--   <li><a>balBeaconName</a></li>
--   <li><a>balUploadType</a></li>
--   <li><a>balBearerToken</a></li>
--   <li><a>balNamespacedType</a></li>
--   <li><a>balProjectId</a></li>
--   <li><a>balCallback</a></li>
--   </ul>
beaconsAttachmentsList :: Text -> BeaconsAttachmentsList

-- | Returns the attachments for the specified beacon that match the
--   specified namespaced-type pattern. To control which namespaced types
--   are returned, you add the `namespacedType` query parameter to the
--   request. You must either use `*/*`, to return all attachments, or the
--   namespace must be one of the ones returned from the `namespaces`
--   endpoint. Authenticate using an <a>OAuth access token</a> from a
--   signed-in user with **viewer**, **Is owner** or **Can edit**
--   permissions in the Google Developers Console project.
--   
--   <i>See:</i> <a>beaconsAttachmentsList</a> smart constructor.
data BeaconsAttachmentsList

-- | V1 error format.
balXgafv :: Lens' BeaconsAttachmentsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
balUploadProtocol :: Lens' BeaconsAttachmentsList (Maybe Text)

-- | Pretty-print response.
balPp :: Lens' BeaconsAttachmentsList Bool

-- | OAuth access token.
balAccessToken :: Lens' BeaconsAttachmentsList (Maybe Text)

-- | Beacon whose attachments should be fetched. 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-UID, `4` for Eddystone-EID, `1`
--   for iBeacon, or `5` for AltBeacon. For Eddystone-EID beacons, you may
--   use either the current EID or the beacon's "stable" UID. Required.
balBeaconName :: Lens' BeaconsAttachmentsList Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
balUploadType :: Lens' BeaconsAttachmentsList (Maybe Text)

-- | OAuth bearer token.
balBearerToken :: Lens' BeaconsAttachmentsList (Maybe Text)

-- | Specifies the namespace and type of attachment to include in response
--   in namespace/type format. Accepts `*/*` to specify "all types in all
--   namespaces".
balNamespacedType :: Lens' BeaconsAttachmentsList (Maybe Text)

-- | The project id to list beacon attachments under. This field can be
--   used when "*" is specified to mean all attachment namespaces. Projects
--   may have multiple attachments with multiple namespaces. If "*" is
--   specified and the projectId string is empty, then the project making
--   the request is used. Optional.
balProjectId :: Lens' BeaconsAttachmentsList (Maybe Text)

-- | JSONP
balCallback :: Lens' BeaconsAttachmentsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Attachments.List.BeaconsAttachmentsList
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Attachments.List.BeaconsAttachmentsList
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Attachments.List.BeaconsAttachmentsList
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Attachments.List.BeaconsAttachmentsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Attachments.List.BeaconsAttachmentsList


-- | Deactivates a beacon. Once deactivated, the API will not return
--   information nor attachment data for the beacon when queried via
--   `beaconinfo.getforobserved`. Calling this method on an already
--   inactive beacon will do nothing (but will return a successful response
--   code). Authenticate using an <a>OAuth access token</a> from a
--   signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.deactivate</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Deactivate

-- | A resource alias for <tt>proximitybeacon.beacons.deactivate</tt>
--   method which the <a>BeaconsDeactivate</a> request conforms to.
type BeaconsDeactivateResource = "v1beta1" :> (CaptureMode "beaconName" "deactivate" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] Empty))))))))))

-- | Creates a value of <a>BeaconsDeactivate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bdXgafv</a></li>
--   <li><a>bdUploadProtocol</a></li>
--   <li><a>bdPp</a></li>
--   <li><a>bdAccessToken</a></li>
--   <li><a>bdBeaconName</a></li>
--   <li><a>bdUploadType</a></li>
--   <li><a>bdBearerToken</a></li>
--   <li><a>bdProjectId</a></li>
--   <li><a>bdCallback</a></li>
--   </ul>
beaconsDeactivate :: Text -> BeaconsDeactivate

-- | Deactivates a beacon. Once deactivated, the API will not return
--   information nor attachment data for the beacon when queried via
--   `beaconinfo.getforobserved`. Calling this method on an already
--   inactive beacon will do nothing (but will return a successful response
--   code). Authenticate using an <a>OAuth access token</a> from a
--   signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>beaconsDeactivate</a> smart constructor.
data BeaconsDeactivate

-- | V1 error format.
bdXgafv :: Lens' BeaconsDeactivate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
bdUploadProtocol :: Lens' BeaconsDeactivate (Maybe Text)

-- | Pretty-print response.
bdPp :: Lens' BeaconsDeactivate Bool

-- | OAuth access token.
bdAccessToken :: Lens' BeaconsDeactivate (Maybe Text)

-- | Beacon that should be deactivated. 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-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
--   for AltBeacon. For Eddystone-EID beacons, you may use either the
--   current EID or the beacon's "stable" UID. Required.
bdBeaconName :: Lens' BeaconsDeactivate Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
bdUploadType :: Lens' BeaconsDeactivate (Maybe Text)

-- | OAuth bearer token.
bdBearerToken :: Lens' BeaconsDeactivate (Maybe Text)

-- | The project id of the beacon to deactivate. If the project id is not
--   specified then the project making the request is used. The project id
--   must match the project that owns the beacon. Optional.
bdProjectId :: Lens' BeaconsDeactivate (Maybe Text)

-- | JSONP
bdCallback :: Lens' BeaconsDeactivate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Deactivate.BeaconsDeactivate
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Deactivate.BeaconsDeactivate
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Deactivate.BeaconsDeactivate
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Deactivate.BeaconsDeactivate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Deactivate.BeaconsDeactivate


-- | Decommissions the specified beacon in the service. This beacon will no
--   longer be returned from `beaconinfo.getforobserved`. This operation is
--   permanent -- you will not be able to re-register a beacon with this ID
--   again. Authenticate using an <a>OAuth access token</a> from a
--   signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.decommission</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Decommission

-- | A resource alias for <tt>proximitybeacon.beacons.decommission</tt>
--   method which the <a>BeaconsDecommission</a> request conforms to.
type BeaconsDecommissionResource = "v1beta1" :> (CaptureMode "beaconName" "decommission" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] Empty))))))))))

-- | Creates a value of <a>BeaconsDecommission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>beaXgafv</a></li>
--   <li><a>beaUploadProtocol</a></li>
--   <li><a>beaPp</a></li>
--   <li><a>beaAccessToken</a></li>
--   <li><a>beaBeaconName</a></li>
--   <li><a>beaUploadType</a></li>
--   <li><a>beaBearerToken</a></li>
--   <li><a>beaProjectId</a></li>
--   <li><a>beaCallback</a></li>
--   </ul>
beaconsDecommission :: Text -> BeaconsDecommission

-- | Decommissions the specified beacon in the service. This beacon will no
--   longer be returned from `beaconinfo.getforobserved`. This operation is
--   permanent -- you will not be able to re-register a beacon with this ID
--   again. Authenticate using an <a>OAuth access token</a> from a
--   signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>beaconsDecommission</a> smart constructor.
data BeaconsDecommission

-- | V1 error format.
beaXgafv :: Lens' BeaconsDecommission (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
beaUploadProtocol :: Lens' BeaconsDecommission (Maybe Text)

-- | Pretty-print response.
beaPp :: Lens' BeaconsDecommission Bool

-- | OAuth access token.
beaAccessToken :: Lens' BeaconsDecommission (Maybe Text)

-- | Beacon that should be decommissioned. 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-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
--   for AltBeacon. For Eddystone-EID beacons, you may use either the
--   current EID of the beacon's "stable" UID. Required.
beaBeaconName :: Lens' BeaconsDecommission Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
beaUploadType :: Lens' BeaconsDecommission (Maybe Text)

-- | OAuth bearer token.
beaBearerToken :: Lens' BeaconsDecommission (Maybe Text)

-- | The project id of the beacon to decommission. If the project id is not
--   specified then the project making the request is used. The project id
--   must match the project that owns the beacon. Optional.
beaProjectId :: Lens' BeaconsDecommission (Maybe Text)

-- | JSONP
beaCallback :: Lens' BeaconsDecommission (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Decommission.BeaconsDecommission
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Decommission.BeaconsDecommission
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Decommission.BeaconsDecommission
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Decommission.BeaconsDecommission
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Decommission.BeaconsDecommission


-- | List the diagnostics for a single beacon. You can also list
--   diagnostics for all the beacons owned by your Google Developers
--   Console project by using the beacon name `beacons/-`. Authenticate
--   using an <a>OAuth access token</a> from a signed-in user with
--   **viewer**, **Is owner** or **Can edit** permissions in the Google
--   Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.diagnostics.list</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Diagnostics.List

-- | A resource alias for <tt>proximitybeacon.beacons.diagnostics.list</tt>
--   method which the <a>BeaconsDiagnosticsList</a> request conforms to.
type BeaconsDiagnosticsListResource = "v1beta1" :> (Capture "beaconName" Text :> ("diagnostics" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "projectId" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "alertFilter" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListDiagnosticsResponse))))))))))))))

-- | Creates a value of <a>BeaconsDiagnosticsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bdlXgafv</a></li>
--   <li><a>bdlUploadProtocol</a></li>
--   <li><a>bdlPp</a></li>
--   <li><a>bdlAccessToken</a></li>
--   <li><a>bdlBeaconName</a></li>
--   <li><a>bdlUploadType</a></li>
--   <li><a>bdlBearerToken</a></li>
--   <li><a>bdlPageToken</a></li>
--   <li><a>bdlProjectId</a></li>
--   <li><a>bdlPageSize</a></li>
--   <li><a>bdlAlertFilter</a></li>
--   <li><a>bdlCallback</a></li>
--   </ul>
beaconsDiagnosticsList :: Text -> BeaconsDiagnosticsList

-- | List the diagnostics for a single beacon. You can also list
--   diagnostics for all the beacons owned by your Google Developers
--   Console project by using the beacon name `beacons/-`. Authenticate
--   using an <a>OAuth access token</a> from a signed-in user with
--   **viewer**, **Is owner** or **Can edit** permissions in the Google
--   Developers Console project.
--   
--   <i>See:</i> <a>beaconsDiagnosticsList</a> smart constructor.
data BeaconsDiagnosticsList

-- | V1 error format.
bdlXgafv :: Lens' BeaconsDiagnosticsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
bdlUploadProtocol :: Lens' BeaconsDiagnosticsList (Maybe Text)

-- | Pretty-print response.
bdlPp :: Lens' BeaconsDiagnosticsList Bool

-- | OAuth access token.
bdlAccessToken :: Lens' BeaconsDiagnosticsList (Maybe Text)

-- | Beacon that the diagnostics are for.
bdlBeaconName :: Lens' BeaconsDiagnosticsList Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
bdlUploadType :: Lens' BeaconsDiagnosticsList (Maybe Text)

-- | OAuth bearer token.
bdlBearerToken :: Lens' BeaconsDiagnosticsList (Maybe Text)

-- | Requests results that occur after the `page_token`, obtained from the
--   response to a previous request. Optional.
bdlPageToken :: Lens' BeaconsDiagnosticsList (Maybe Text)

-- | Requests only diagnostic records for the given project id. If not set,
--   then the project making the request will be used for looking up
--   diagnostic records. Optional.
bdlProjectId :: Lens' BeaconsDiagnosticsList (Maybe Text)

-- | Specifies the maximum number of results to return. Defaults to 10.
--   Maximum 1000. Optional.
bdlPageSize :: Lens' BeaconsDiagnosticsList (Maybe Int32)

-- | Requests only beacons that have the given alert. For example, to find
--   beacons that have low batteries use `alert_filter=LOW_BATTERY`.
bdlAlertFilter :: Lens' BeaconsDiagnosticsList (Maybe Text)

-- | JSONP
bdlCallback :: Lens' BeaconsDiagnosticsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Diagnostics.List.BeaconsDiagnosticsList
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Diagnostics.List.BeaconsDiagnosticsList
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Diagnostics.List.BeaconsDiagnosticsList
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Diagnostics.List.BeaconsDiagnosticsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Diagnostics.List.BeaconsDiagnosticsList


-- | Returns detailed information about the specified beacon. Authenticate
--   using an <a>OAuth access token</a> from a signed-in user with
--   **viewer**, **Is owner** or **Can edit** permissions in the Google
--   Developers Console project. Requests may supply an Eddystone-EID
--   beacon name in the form: `beacons/4!beaconId` where the `beaconId` is
--   the base16 ephemeral ID broadcast by the beacon. The returned `Beacon`
--   object will contain the beacon's stable Eddystone-UID. Clients not
--   authorized to resolve the beacon's ephemeral Eddystone-EID broadcast
--   will receive an error.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.get</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Get

-- | A resource alias for <tt>proximitybeacon.beacons.get</tt> method which
--   the <a>BeaconsGet</a> request conforms to.
type BeaconsGetResource = "v1beta1" :> (Capture "beaconName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Beacon))))))))))

-- | Creates a value of <a>BeaconsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bgXgafv</a></li>
--   <li><a>bgUploadProtocol</a></li>
--   <li><a>bgPp</a></li>
--   <li><a>bgAccessToken</a></li>
--   <li><a>bgBeaconName</a></li>
--   <li><a>bgUploadType</a></li>
--   <li><a>bgBearerToken</a></li>
--   <li><a>bgProjectId</a></li>
--   <li><a>bgCallback</a></li>
--   </ul>
beaconsGet :: Text -> BeaconsGet

-- | Returns detailed information about the specified beacon. Authenticate
--   using an <a>OAuth access token</a> from a signed-in user with
--   **viewer**, **Is owner** or **Can edit** permissions in the Google
--   Developers Console project. Requests may supply an Eddystone-EID
--   beacon name in the form: `beacons/4!beaconId` where the `beaconId` is
--   the base16 ephemeral ID broadcast by the beacon. The returned `Beacon`
--   object will contain the beacon's stable Eddystone-UID. Clients not
--   authorized to resolve the beacon's ephemeral Eddystone-EID broadcast
--   will receive an error.
--   
--   <i>See:</i> <a>beaconsGet</a> smart constructor.
data BeaconsGet

-- | V1 error format.
bgXgafv :: Lens' BeaconsGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
bgUploadProtocol :: Lens' BeaconsGet (Maybe Text)

-- | Pretty-print response.
bgPp :: Lens' BeaconsGet Bool

-- | OAuth access token.
bgAccessToken :: Lens' BeaconsGet (Maybe Text)

-- | 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-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`
--   for AltBeacon. For Eddystone-EID beacons, you may use either the
--   current EID or the beacon's "stable" UID. Required.
bgBeaconName :: Lens' BeaconsGet Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
bgUploadType :: Lens' BeaconsGet (Maybe Text)

-- | OAuth bearer token.
bgBearerToken :: Lens' BeaconsGet (Maybe Text)

-- | The project id of the beacon to request. If the project id is not
--   specified then the project making the request is used. The project id
--   must match the project that owns the beacon. Optional.
bgProjectId :: Lens' BeaconsGet (Maybe Text)

-- | JSONP
bgCallback :: Lens' BeaconsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Get.BeaconsGet
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Get.BeaconsGet
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Get.BeaconsGet
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Get.BeaconsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Get.BeaconsGet


-- | Searches the beacon registry for beacons that match the given search
--   criteria. Only those beacons that the client has permission to list
--   will be returned. Authenticate using an <a>OAuth access token</a> from
--   a signed-in user with **viewer**, **Is owner** or **Can edit**
--   permissions in the Google Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.list</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.List

-- | A resource alias for <tt>proximitybeacon.beacons.list</tt> method
--   which the <a>BeaconsList</a> request conforms to.
type BeaconsListResource = "v1beta1" :> ("beacons" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "q" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "projectId" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListBeaconsResponse)))))))))))))

-- | Creates a value of <a>BeaconsList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>blXgafv</a></li>
--   <li><a>blUploadProtocol</a></li>
--   <li><a>blPp</a></li>
--   <li><a>blAccessToken</a></li>
--   <li><a>blUploadType</a></li>
--   <li><a>blQ</a></li>
--   <li><a>blBearerToken</a></li>
--   <li><a>blPageToken</a></li>
--   <li><a>blProjectId</a></li>
--   <li><a>blPageSize</a></li>
--   <li><a>blCallback</a></li>
--   </ul>
beaconsList :: BeaconsList

-- | Searches the beacon registry for beacons that match the given search
--   criteria. Only those beacons that the client has permission to list
--   will be returned. Authenticate using an <a>OAuth access token</a> from
--   a signed-in user with **viewer**, **Is owner** or **Can edit**
--   permissions in the Google Developers Console project.
--   
--   <i>See:</i> <a>beaconsList</a> smart constructor.
data BeaconsList

-- | V1 error format.
blXgafv :: Lens' BeaconsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
blUploadProtocol :: Lens' BeaconsList (Maybe Text)

-- | Pretty-print response.
blPp :: Lens' BeaconsList Bool

-- | OAuth access token.
blAccessToken :: Lens' BeaconsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
blUploadType :: Lens' BeaconsList (Maybe Text)

-- | Filter query string that supports the following field filters: *
--   `description:""` For example: `description:"Room 3"` Returns beacons
--   whose description matches tokens in the string "Room 3" (not
--   necessarily that exact string). The string must be double-quoted. *
--   `status:` For example: `status:active` Returns beacons whose status
--   matches the given value. Values must be one of the Beacon.Status enum
--   values (case insensitive). Accepts multiple filters which will be
--   combined with OR logic. * `stability:` For example: `stability:mobile`
--   Returns beacons whose expected stability matches the given value.
--   Values must be one of the Beacon.Stability enum values (case
--   insensitive). Accepts multiple filters which will be combined with OR
--   logic. * `place_id:""` For example:
--   `place_id:"ChIJVSZzVR8FdkgRXGmmm6SslKw="` Returns beacons explicitly
--   registered at the given place, expressed as a Place ID obtained from
--   <a>Google Places API</a>. Does not match places inside the given
--   place. Does not consider the beacon's actual location (which may be
--   different from its registered place). Accepts multiple filters that
--   will be combined with OR logic. The place ID must be double-quoted. *
--   `registration_time[|=]` For example:
--   `registration_time&gt;=1433116800` Returns beacons whose registration
--   time matches the given filter. Supports the operators: , =. Timestamp
--   must be expressed as an integer number of seconds since midnight
--   January 1, 1970 UTC. Accepts at most two filters that will be combined
--   with AND logic, to support "between" semantics. If more than two are
--   supplied, the latter ones are ignored. * `lat: lng: radius:` For
--   example: `lat:51.1232343 lng:-1.093852 radius:1000` Returns beacons
--   whose registered location is within the given circle. When any of
--   these fields are given, all are required. Latitude and longitude must
--   be decimal degrees between -90.0 and 90.0 and between -180.0 and 180.0
--   respectively. Radius must be an integer number of meters between 10
--   and 1,000,000 (1000 km). * `property:"="` For example:
--   `property:"battery-type=CR2032"` Returns beacons which have a property
--   of the given name and value. Supports multiple filters which will be
--   combined with OR logic. The entire name=value string must be
--   double-quoted as one string. * `attachment_type:""` For example:
--   `attachment_type:"my-namespace/my-type"` Returns beacons having at
--   least one attachment of the given namespaced type. Supports "any
--   within this namespace" via the partial wildcard syntax:
--   "my-namespace/*". Supports multiple filters which will be combined
--   with OR logic. The string must be double-quoted. Multiple filters on
--   the same field are combined with OR logic (except registration_time
--   which is combined with AND logic). Multiple filters on different
--   fields are combined with AND logic. Filters should be separated by
--   spaces. As with any HTTP query string parameter, the whole filter
--   expression must be URL-encoded. Example REST request: `GET
--   /v1beta1/beacons?q=status:active%20lat:51.123%20lng:-1.095%20radius:1000`
blQ :: Lens' BeaconsList (Maybe Text)

-- | OAuth bearer token.
blBearerToken :: Lens' BeaconsList (Maybe Text)

-- | A pagination token obtained from a previous request to list beacons.
blPageToken :: Lens' BeaconsList (Maybe Text)

-- | The project id to list beacons under. If not present then the project
--   credential that made the request is used as the project. Optional.
blProjectId :: Lens' BeaconsList (Maybe Text)

-- | The maximum number of records to return for this request, up to a
--   server-defined upper limit.
blPageSize :: Lens' BeaconsList (Maybe Int32)

-- | JSONP
blCallback :: Lens' BeaconsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.List.BeaconsList
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.List.BeaconsList
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.List.BeaconsList
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.List.BeaconsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.List.BeaconsList


-- | 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 <a>OAuth access token</a> from a signed-in
--   user with **Is owner** or **Can edit** permissions in the Google
--   Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.register</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Register

-- | A resource alias for <tt>proximitybeacon.beacons.register</tt> method
--   which the <a>BeaconsRegister</a> request conforms to.
type BeaconsRegisterResource = "v1beta1" :> ("beacons:register" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Beacon :> Post '[JSON] Beacon)))))))))))

-- | Creates a value of <a>BeaconsRegister</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brXgafv</a></li>
--   <li><a>brUploadProtocol</a></li>
--   <li><a>brPp</a></li>
--   <li><a>brAccessToken</a></li>
--   <li><a>brUploadType</a></li>
--   <li><a>brPayload</a></li>
--   <li><a>brBearerToken</a></li>
--   <li><a>brProjectId</a></li>
--   <li><a>brCallback</a></li>
--   </ul>
beaconsRegister :: Beacon -> BeaconsRegister

-- | 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 <a>OAuth access token</a> from a signed-in
--   user with **Is owner** or **Can edit** permissions in the Google
--   Developers Console project.
--   
--   <i>See:</i> <a>beaconsRegister</a> smart constructor.
data BeaconsRegister

-- | V1 error format.
brXgafv :: Lens' BeaconsRegister (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
brUploadProtocol :: Lens' BeaconsRegister (Maybe Text)

-- | Pretty-print response.
brPp :: Lens' BeaconsRegister Bool

-- | OAuth access token.
brAccessToken :: Lens' BeaconsRegister (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
brUploadType :: Lens' BeaconsRegister (Maybe Text)

-- | Multipart request metadata.
brPayload :: Lens' BeaconsRegister Beacon

-- | OAuth bearer token.
brBearerToken :: Lens' BeaconsRegister (Maybe Text)

-- | 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.
brProjectId :: Lens' BeaconsRegister (Maybe Text)

-- | JSONP
brCallback :: Lens' BeaconsRegister (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Register.BeaconsRegister
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Register.BeaconsRegister
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Register.BeaconsRegister
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Register.BeaconsRegister
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Register.BeaconsRegister


-- | Updates the information about the specified beacon. **Any field that
--   you do not populate in the submitted beacon will be permanently
--   erased**, so you should follow the "read, modify, write" pattern to
--   avoid inadvertently destroying data. Changes to the beacon status via
--   this method will be silently ignored. To update beacon status, use the
--   separate methods on this API for activation, deactivation, and
--   decommissioning. Authenticate using an <a>OAuth access token</a> from
--   a signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.beacons.update</tt>.
module Network.Google.Resource.ProximityBeacon.Beacons.Update

-- | A resource alias for <tt>proximitybeacon.beacons.update</tt> method
--   which the <a>BeaconsUpdate</a> request conforms to.
type BeaconsUpdateResource = "v1beta1" :> (Capture "beaconName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Beacon :> Put '[JSON] Beacon)))))))))))

-- | Creates a value of <a>BeaconsUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>buXgafv</a></li>
--   <li><a>buUploadProtocol</a></li>
--   <li><a>buPp</a></li>
--   <li><a>buAccessToken</a></li>
--   <li><a>buBeaconName</a></li>
--   <li><a>buUploadType</a></li>
--   <li><a>buPayload</a></li>
--   <li><a>buBearerToken</a></li>
--   <li><a>buProjectId</a></li>
--   <li><a>buCallback</a></li>
--   </ul>
beaconsUpdate :: Text -> Beacon -> BeaconsUpdate

-- | Updates the information about the specified beacon. **Any field that
--   you do not populate in the submitted beacon will be permanently
--   erased**, so you should follow the "read, modify, write" pattern to
--   avoid inadvertently destroying data. Changes to the beacon status via
--   this method will be silently ignored. To update beacon status, use the
--   separate methods on this API for activation, deactivation, and
--   decommissioning. Authenticate using an <a>OAuth access token</a> from
--   a signed-in user with **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>beaconsUpdate</a> smart constructor.
data BeaconsUpdate

-- | V1 error format.
buXgafv :: Lens' BeaconsUpdate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
buUploadProtocol :: Lens' BeaconsUpdate (Maybe Text)

-- | Pretty-print response.
buPp :: Lens' BeaconsUpdate Bool

-- | OAuth access token.
buAccessToken :: Lens' BeaconsUpdate (Maybe Text)

-- | 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.
buBeaconName :: Lens' BeaconsUpdate Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
buUploadType :: Lens' BeaconsUpdate (Maybe Text)

-- | Multipart request metadata.
buPayload :: Lens' BeaconsUpdate Beacon

-- | OAuth bearer token.
buBearerToken :: Lens' BeaconsUpdate (Maybe Text)

-- | The project id of the beacon to update. If the project id is not
--   specified then the project making the request is used. The project id
--   must match the project that owns the beacon. Optional.
buProjectId :: Lens' BeaconsUpdate (Maybe Text)

-- | JSONP
buCallback :: Lens' BeaconsUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Beacons.Update.BeaconsUpdate
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Beacons.Update.BeaconsUpdate
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Beacons.Update.BeaconsUpdate
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Beacons.Update.BeaconsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Beacons.Update.BeaconsUpdate


-- | Gets the Proximity Beacon API's current public key and associated
--   parameters used to initiate the Diffie-Hellman key exchange required
--   to register a beacon that broadcasts the Eddystone-EID format. This
--   key changes periodically; clients may cache it and re-use the same
--   public key to provision and register multiple beacons. However,
--   clients should be prepared to refresh this key when they encounter an
--   error registering an Eddystone-EID beacon.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.getEidparams</tt>.
module Network.Google.Resource.ProximityBeacon.GetEidparams

-- | A resource alias for <tt>proximitybeacon.getEidparams</tt> method
--   which the <a>GetEidparams</a> request conforms to.
type GetEidparamsResource = "v1beta1" :> ("eidparams" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] EphemeralIdRegistrationParams)))))))))

-- | Creates a value of <a>GetEidparams</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>geXgafv</a></li>
--   <li><a>geUploadProtocol</a></li>
--   <li><a>gePp</a></li>
--   <li><a>geAccessToken</a></li>
--   <li><a>geUploadType</a></li>
--   <li><a>geBearerToken</a></li>
--   <li><a>geCallback</a></li>
--   </ul>
getEidparams :: GetEidparams

-- | Gets the Proximity Beacon API's current public key and associated
--   parameters used to initiate the Diffie-Hellman key exchange required
--   to register a beacon that broadcasts the Eddystone-EID format. This
--   key changes periodically; clients may cache it and re-use the same
--   public key to provision and register multiple beacons. However,
--   clients should be prepared to refresh this key when they encounter an
--   error registering an Eddystone-EID beacon.
--   
--   <i>See:</i> <a>getEidparams</a> smart constructor.
data GetEidparams

-- | V1 error format.
geXgafv :: Lens' GetEidparams (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
geUploadProtocol :: Lens' GetEidparams (Maybe Text)

-- | Pretty-print response.
gePp :: Lens' GetEidparams Bool

-- | OAuth access token.
geAccessToken :: Lens' GetEidparams (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
geUploadType :: Lens' GetEidparams (Maybe Text)

-- | OAuth bearer token.
geBearerToken :: Lens' GetEidparams (Maybe Text)

-- | JSONP
geCallback :: Lens' GetEidparams (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.GetEidparams.GetEidparams
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.GetEidparams.GetEidparams
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.GetEidparams.GetEidparams
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.GetEidparams.GetEidparams
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.GetEidparams.GetEidparams


-- | Lists all attachment namespaces owned by your Google Developers
--   Console project. Attachment data associated with a beacon must include
--   a namespaced type, and the namespace must be owned by your project.
--   Authenticate using an <a>OAuth access token</a> from a signed-in user
--   with **viewer**, **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.namespaces.list</tt>.
module Network.Google.Resource.ProximityBeacon.Namespaces.List

-- | A resource alias for <tt>proximitybeacon.namespaces.list</tt> method
--   which the <a>NamespacesList</a> request conforms to.
type NamespacesListResource = "v1beta1" :> ("namespaces" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListNamespacesResponse))))))))))

-- | Creates a value of <a>NamespacesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nlXgafv</a></li>
--   <li><a>nlUploadProtocol</a></li>
--   <li><a>nlPp</a></li>
--   <li><a>nlAccessToken</a></li>
--   <li><a>nlUploadType</a></li>
--   <li><a>nlBearerToken</a></li>
--   <li><a>nlProjectId</a></li>
--   <li><a>nlCallback</a></li>
--   </ul>
namespacesList :: NamespacesList

-- | Lists all attachment namespaces owned by your Google Developers
--   Console project. Attachment data associated with a beacon must include
--   a namespaced type, and the namespace must be owned by your project.
--   Authenticate using an <a>OAuth access token</a> from a signed-in user
--   with **viewer**, **Is owner** or **Can edit** permissions in the
--   Google Developers Console project.
--   
--   <i>See:</i> <a>namespacesList</a> smart constructor.
data NamespacesList

-- | V1 error format.
nlXgafv :: Lens' NamespacesList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
nlUploadProtocol :: Lens' NamespacesList (Maybe Text)

-- | Pretty-print response.
nlPp :: Lens' NamespacesList Bool

-- | OAuth access token.
nlAccessToken :: Lens' NamespacesList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
nlUploadType :: Lens' NamespacesList (Maybe Text)

-- | OAuth bearer token.
nlBearerToken :: Lens' NamespacesList (Maybe Text)

-- | The project id to list namespaces under. Optional.
nlProjectId :: Lens' NamespacesList (Maybe Text)

-- | JSONP
nlCallback :: Lens' NamespacesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Namespaces.List.NamespacesList
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Namespaces.List.NamespacesList
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Namespaces.List.NamespacesList
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Namespaces.List.NamespacesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Namespaces.List.NamespacesList


-- | Updates the information about the specified namespace. Only the
--   namespace visibility can be updated.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a> for
--   <tt>proximitybeacon.namespaces.update</tt>.
module Network.Google.Resource.ProximityBeacon.Namespaces.Update

-- | A resource alias for <tt>proximitybeacon.namespaces.update</tt> method
--   which the <a>NamespacesUpdate</a> request conforms to.
type NamespacesUpdateResource = "v1beta1" :> (Capture "namespaceName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Namespace :> Put '[JSON] Namespace)))))))))))

-- | Creates a value of <a>NamespacesUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nuXgafv</a></li>
--   <li><a>nuUploadProtocol</a></li>
--   <li><a>nuPp</a></li>
--   <li><a>nuAccessToken</a></li>
--   <li><a>nuUploadType</a></li>
--   <li><a>nuPayload</a></li>
--   <li><a>nuNamespaceName</a></li>
--   <li><a>nuBearerToken</a></li>
--   <li><a>nuProjectId</a></li>
--   <li><a>nuCallback</a></li>
--   </ul>
namespacesUpdate :: Namespace -> Text -> NamespacesUpdate

-- | Updates the information about the specified namespace. Only the
--   namespace visibility can be updated.
--   
--   <i>See:</i> <a>namespacesUpdate</a> smart constructor.
data NamespacesUpdate

-- | V1 error format.
nuXgafv :: Lens' NamespacesUpdate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
nuUploadProtocol :: Lens' NamespacesUpdate (Maybe Text)

-- | Pretty-print response.
nuPp :: Lens' NamespacesUpdate Bool

-- | OAuth access token.
nuAccessToken :: Lens' NamespacesUpdate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
nuUploadType :: Lens' NamespacesUpdate (Maybe Text)

-- | Multipart request metadata.
nuPayload :: Lens' NamespacesUpdate Namespace

-- | Resource name of this namespace. Namespaces names have the format:
--   namespaces/namespace.
nuNamespaceName :: Lens' NamespacesUpdate Text

-- | OAuth bearer token.
nuBearerToken :: Lens' NamespacesUpdate (Maybe Text)

-- | The project id of the namespace to update. If the project id is not
--   specified then the project making the request is used. The project id
--   must match the project that owns the beacon. Optional.
nuProjectId :: Lens' NamespacesUpdate (Maybe Text)

-- | JSONP
nuCallback :: Lens' NamespacesUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.ProximityBeacon.Namespaces.Update.NamespacesUpdate
instance Data.Data.Data Network.Google.Resource.ProximityBeacon.Namespaces.Update.NamespacesUpdate
instance GHC.Show.Show Network.Google.Resource.ProximityBeacon.Namespaces.Update.NamespacesUpdate
instance GHC.Classes.Eq Network.Google.Resource.ProximityBeacon.Namespaces.Update.NamespacesUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ProximityBeacon.Namespaces.Update.NamespacesUpdate


-- | Registers, manages, indexes, and searches beacons.
--   
--   <i>See:</i> <a>Google Proximity Beacon API Reference</a>
module Network.Google.ProximityBeacon

-- | Default request referring to version <tt>v1beta1</tt> of the Google
--   Proximity Beacon API. This contains the host and root path used as a
--   starting point for constructing service requests.
proximityBeaconService :: ServiceConfig

-- | View and modify your beacons
userlocationBeaconRegistryScope :: Proxy '["https://www.googleapis.com/auth/userlocation.beacon.registry"]

-- | Represents the entirety of the methods and resources available for the
--   Google Proximity Beacon API service.
type ProximityBeaconAPI = GetEidparamsResource :<|> (BeaconsAttachmentsListResource :<|> (BeaconsAttachmentsCreateResource :<|> (BeaconsAttachmentsBatchDeleteResource :<|> (BeaconsAttachmentsDeleteResource :<|> (BeaconsDiagnosticsListResource :<|> (BeaconsListResource :<|> (BeaconsDeactivateResource :<|> (BeaconsGetResource :<|> (BeaconsActivateResource :<|> (BeaconsRegisterResource :<|> (BeaconsDecommissionResource :<|> (BeaconsUpdateResource :<|> (NamespacesListResource :<|> (NamespacesUpdateResource :<|> BeaconInfoGetforObservedResource))))))))))))))

-- | An object representing a latitude/longitude pair. This is expressed as
--   a pair of doubles representing degrees latitude and degrees longitude.
--   Unless specified otherwise, this must conform to the WGS84 standard.
--   Values must be within normalized ranges. Example of normalization code
--   in Python: def NormalizeLongitude(longitude): """Wraps decimal degrees
--   longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r
--   &gt; 180.0 or (r == 180.0 and q &lt;= -1.0): return r - 360.0 return r
--   def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees
--   latitude and longitude to [-90.0, 90.0] and [-180.0, 180.0],
--   respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360,
--   NormalizeLongitude(longitude) else: return 180 - r,
--   NormalizeLongitude(longitude + 180.0) assert 180.0 ==
--   NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0)
--   assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) ==
--   NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) ==
--   NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) ==
--   NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) ==
--   NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) ==
--   NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) ==
--   NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) ==
--   NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) ==
--   NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) ==
--   NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) ==
--   NormalizeLatLng(-270.0, 10.0)
--   
--   <i>See:</i> <a>latLng</a> smart constructor.
data LatLng

-- | Creates a value of <a>LatLng</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>llLatitude</a></li>
--   <li><a>llLongitude</a></li>
--   </ul>
latLng :: LatLng

-- | The latitude in degrees. It must be in the range [-90.0, +90.0].
llLatitude :: Lens' LatLng (Maybe Double)

-- | The longitude in degrees. It must be in the range [-180.0, +180.0].
llLongitude :: Lens' LatLng (Maybe Double)

-- | A subset of attachment information served via the
--   `beaconinfo.getforobserved` method, used when your users encounter
--   your beacons.
--   
--   <i>See:</i> <a>attachmentInfo</a> smart constructor.
data AttachmentInfo

-- | Creates a value of <a>AttachmentInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiData</a></li>
--   <li><a>aiNamespacedType</a></li>
--   </ul>
attachmentInfo :: AttachmentInfo

-- | An opaque data container for client-provided data.
aiData :: Lens' AttachmentInfo (Maybe ByteString)

-- | Specifies what kind of attachment this is. Tells a client how to
--   interpret the `data` field. Format is namespace/type, for example
--   scrupulous-wombat-12345/welcome-message
aiNamespacedType :: Lens' AttachmentInfo (Maybe Text)

-- | Properties of the beacon device, for example battery type or firmware
--   version. Optional.
--   
--   <i>See:</i> <a>beaconProperties</a> smart constructor.
data BeaconProperties

-- | Creates a value of <a>BeaconProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bpAddtional</a></li>
--   </ul>
beaconProperties :: HashMap Text Text -> BeaconProperties
bpAddtional :: Lens' BeaconProperties (HashMap Text Text)

-- | A generic empty message that you can re-use to avoid defining
--   duplicated empty messages in your APIs. A typical example is to use it
--   as the request or the response type of an API method. For instance:
--   service Foo { rpc Bar(google.protobuf.Empty) returns
--   (google.protobuf.Empty); } The JSON representation for `Empty` is
--   empty JSON object `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | Response for a request to delete attachments.
--   
--   <i>See:</i> <a>deleteAttachmentsResponse</a> smart constructor.
data DeleteAttachmentsResponse

-- | Creates a value of <a>DeleteAttachmentsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>darNumDeleted</a></li>
--   </ul>
deleteAttachmentsResponse :: DeleteAttachmentsResponse

-- | The number of attachments that were deleted.
darNumDeleted :: Lens' DeleteAttachmentsResponse (Maybe Int32)

-- | Request for beacon and attachment information about beacons that a
--   mobile client has encountered "in the wild".
--   
--   <i>See:</i> <a>getInfoForObservedBeaconsRequest</a> smart constructor.
data GetInfoForObservedBeaconsRequest

-- | Creates a value of <a>GetInfoForObservedBeaconsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gifobrObservations</a></li>
--   <li><a>gifobrNamespacedTypes</a></li>
--   </ul>
getInfoForObservedBeaconsRequest :: GetInfoForObservedBeaconsRequest

-- | The beacons that the client has encountered. At least one must be
--   given.
gifobrObservations :: Lens' GetInfoForObservedBeaconsRequest [Observation]

-- | Specifies what kind of attachments to include in the response. When
--   given, the response will include only attachments of the given types.
--   When empty, no attachments will be returned. Must be in the format
--   namespace/type. Accepts `*` to specify all types in all namespaces.
--   Optional.
gifobrNamespacedTypes :: Lens' GetInfoForObservedBeaconsRequest [Text]

-- | An attachment namespace defines read and write access for all the
--   attachments created under it. Each namespace is globally unique, and
--   owned by one project which is the only project that can create
--   attachments under it.
--   
--   <i>See:</i> <a>namespace</a> smart constructor.
data Namespace

-- | Creates a value of <a>Namespace</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nServingVisibility</a></li>
--   <li><a>nNamespaceName</a></li>
--   </ul>
namespace :: Namespace

-- | Specifies what clients may receive attachments under this namespace
--   via `beaconinfo.getforobserved`.
nServingVisibility :: Lens' Namespace (Maybe Text)

-- | Resource name of this namespace. Namespaces names have the format:
--   namespaces/namespace.
nNamespaceName :: Lens' Namespace (Maybe Text)

-- | Write-only registration parameters for beacons using Eddystone-EID
--   format. Two ways of securely registering an Eddystone-EID beacon with
--   the service are supported: 1. Perform an ECDH key exchange via this
--   API, including a previous call to `GET /v1beta1/eidparams`. In this
--   case the fields `beacon_ecdh_public_key` and `service_ecdh_public_key`
--   should be populated and `beacon_identity_key` should not be populated.
--   This method ensures that only the two parties in the ECDH key exchange
--   can compute the identity key, which becomes a secret between them. 2.
--   Derive or obtain the beacon's identity key via other secure means
--   (perhaps an ECDH key exchange between the beacon and a mobile device
--   or any other secure method), and then submit the resulting identity
--   key to the service. In this case `beacon_identity_key` field should be
--   populated, and neither of `beacon_ecdh_public_key` nor
--   `service_ecdh_public_key` fields should be. The security of this
--   method depends on how securely the parties involved (in particular the
--   bluetooth client) handle the identity key, and obviously on how
--   securely the identity key was generated. See <a>the Eddystone
--   specification</a> at GitHub.
--   
--   <i>See:</i> <a>ephemeralIdRegistration</a> smart constructor.
data EphemeralIdRegistration

-- | Creates a value of <a>EphemeralIdRegistration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eirRotationPeriodExponent</a></li>
--   <li><a>eirInitialClockValue</a></li>
--   <li><a>eirBeaconIdentityKey</a></li>
--   <li><a>eirBeaconEcdhPublicKey</a></li>
--   <li><a>eirInitialEid</a></li>
--   <li><a>eirServiceEcdhPublicKey</a></li>
--   </ul>
ephemeralIdRegistration :: EphemeralIdRegistration

-- | Indicates the nominal period between each rotation of the beacon's
--   ephemeral ID. "Nominal" because the beacon should randomize the actual
--   interval. See <a>the spec at github</a> 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.
eirRotationPeriodExponent :: Lens' EphemeralIdRegistration (Maybe Word32)

-- | 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.
eirInitialClockValue :: Lens' EphemeralIdRegistration (Maybe Word64)

-- | The private key of the beacon. If this field is populated,
--   `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be
--   populated.
eirBeaconIdentityKey :: Lens' EphemeralIdRegistration (Maybe ByteString)

-- | 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.
eirBeaconEcdhPublicKey :: Lens' EphemeralIdRegistration (Maybe ByteString)

-- | 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.
eirInitialEid :: Lens' EphemeralIdRegistration (Maybe ByteString)

-- | 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.
eirServiceEcdhPublicKey :: Lens' EphemeralIdRegistration (Maybe ByteString)

-- | Response to ListNamespacesRequest that contains all the project's
--   namespaces.
--   
--   <i>See:</i> <a>listNamespacesResponse</a> smart constructor.
data ListNamespacesResponse

-- | Creates a value of <a>ListNamespacesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lnrNamespaces</a></li>
--   </ul>
listNamespacesResponse :: ListNamespacesResponse

-- | The attachments that corresponded to the request params.
lnrNamespaces :: Lens' ListNamespacesResponse [Namespace]

-- | Represents a whole calendar date, e.g. date of birth. The time of day
--   and time zone are either specified elsewhere or are not significant.
--   The date is relative to the Proleptic Gregorian Calendar. The day may
--   be 0 to represent a year and month where the day is not significant,
--   e.g. credit card expiration date. The year may be 0 to represent a
--   month and day independent of year, e.g. anniversary date. Related
--   types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
--   
--   <i>See:</i> <a>date</a> smart constructor.
data Date

-- | Creates a value of <a>Date</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDay</a></li>
--   <li><a>dYear</a></li>
--   <li><a>dMonth</a></li>
--   </ul>
date :: Date

-- | Day of month. Must be from 1 to 31 and valid for the year and month,
--   or 0 if specifying a year/month where the day is not significant.
dDay :: Lens' Date (Maybe Int32)

-- | Year of date. Must be from 1 to 9999, or 0 if specifying a date
--   without a year.
dYear :: Lens' Date (Maybe Int32)

-- | Month of year. Must be from 1 to 12.
dMonth :: Lens' Date (Maybe Int32)

-- | Details of a beacon device.
--   
--   <i>See:</i> <a>beacon</a> smart constructor.
data Beacon

-- | Creates a value of <a>Beacon</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bLatLng</a></li>
--   <li><a>bStatus</a></li>
--   <li><a>bBeaconName</a></li>
--   <li><a>bEphemeralIdRegistration</a></li>
--   <li><a>bIndoorLevel</a></li>
--   <li><a>bExpectedStability</a></li>
--   <li><a>bProvisioningKey</a></li>
--   <li><a>bDescription</a></li>
--   <li><a>bPlaceId</a></li>
--   <li><a>bAdvertisedId</a></li>
--   <li><a>bProperties</a></li>
--   </ul>
beacon :: Beacon

-- | The location of the beacon, expressed as a latitude and longitude
--   pair. This location is given when the beacon is registered or updated.
--   It does not necessarily indicate the actual current location of the
--   beacon. Optional.
bLatLng :: Lens' Beacon (Maybe LatLng)

-- | Current status of the beacon. Required.
bStatus :: Lens' Beacon (Maybe Text)

-- | 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.
bBeaconName :: Lens' Beacon (Maybe Text)

-- | Write-only registration parameters for beacons using Eddystone-EID
--   (remotely resolved ephemeral ID) format. This information will not be
--   populated in API responses. When submitting this data, the
--   `advertised_id` field must contain an ID of type Eddystone-UID. Any
--   other ID type will result in an error.
bEphemeralIdRegistration :: Lens' Beacon (Maybe EphemeralIdRegistration)

-- | The indoor level information for this beacon, if known. As returned by
--   the Google Maps API. Optional.
bIndoorLevel :: Lens' Beacon (Maybe IndoorLevel)

-- | Expected location stability. This is set when the beacon is registered
--   or updated, not automatically detected in any way. Optional.
bExpectedStability :: Lens' Beacon (Maybe Text)

-- | 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.
bProvisioningKey :: Lens' Beacon (Maybe ByteString)

-- | Free text used to identify and describe the beacon. Maximum length 140
--   characters. Optional.
bDescription :: Lens' Beacon (Maybe Text)

-- | The <a>Google Places API</a> 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.
bPlaceId :: Lens' Beacon (Maybe Text)

-- | The identifier of a beacon as advertised by it. This field must be
--   populated when registering. It may be empty when updating a beacon
--   record because it is ignored in updates. When registering a beacon
--   that broadcasts Eddystone-EID, this field should contain a "stable"
--   Eddystone-UID that identifies the beacon and links it to its
--   attachments. The stable Eddystone-UID is only used for administering
--   the beacon.
bAdvertisedId :: Lens' Beacon (Maybe AdvertisedId)

-- | Properties of the beacon device, for example battery type or firmware
--   version. Optional.
bProperties :: Lens' Beacon (Maybe BeaconProperties)

-- | Diagnostics for a single beacon.
--   
--   <i>See:</i> <a>diagnostics</a> smart constructor.
data Diagnostics

-- | Creates a value of <a>Diagnostics</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dAlerts</a></li>
--   <li><a>dBeaconName</a></li>
--   <li><a>dEstimatedLowBatteryDate</a></li>
--   </ul>
diagnostics :: Diagnostics

-- | An unordered list of Alerts that the beacon has.
dAlerts :: Lens' Diagnostics [Text]

-- | Resource name of the beacon. For Eddystone-EID beacons, this may be
--   the beacon's current EID, or the beacon's "stable" Eddystone-UID.
dBeaconName :: Lens' Diagnostics (Maybe Text)

-- | The date when the battery is expected to be low. If the value is
--   missing then there is no estimate for when the battery will be low.
--   This value is only an estimate, not an exact date.
dEstimatedLowBatteryDate :: Lens' Diagnostics (Maybe Date)

-- | Response to ListBeaconAttachments that contains the requested
--   attachments.
--   
--   <i>See:</i> <a>listBeaconAttachmentsResponse</a> smart constructor.
data ListBeaconAttachmentsResponse

-- | Creates a value of <a>ListBeaconAttachmentsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbarAttachments</a></li>
--   </ul>
listBeaconAttachmentsResponse :: ListBeaconAttachmentsResponse

-- | The attachments that corresponded to the request params.
lbarAttachments :: Lens' ListBeaconAttachmentsResponse [BeaconAttachment]

-- | Indoor level, a human-readable string as returned by Google Maps APIs,
--   useful to indicate which floor of a building a beacon is located on.
--   
--   <i>See:</i> <a>indoorLevel</a> smart constructor.
data IndoorLevel

-- | Creates a value of <a>IndoorLevel</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ilName</a></li>
--   </ul>
indoorLevel :: IndoorLevel

-- | The name of this level.
ilName :: Lens' IndoorLevel (Maybe Text)

-- | Information a client needs to provision and register beacons that
--   broadcast Eddystone-EID format beacon IDs, using Elliptic curve
--   Diffie-Hellman key exchange. See <a>the Eddystone specification</a> at
--   GitHub.
--   
--   <i>See:</i> <a>ephemeralIdRegistrationParams</a> smart constructor.
data EphemeralIdRegistrationParams

-- | Creates a value of <a>EphemeralIdRegistrationParams</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eirpMinRotationPeriodExponent</a></li>
--   <li><a>eirpMaxRotationPeriodExponent</a></li>
--   <li><a>eirpServiceEcdhPublicKey</a></li>
--   </ul>
ephemeralIdRegistrationParams :: EphemeralIdRegistrationParams

-- | Indicates the minimum rotation period supported by the service. See
--   EddystoneEidRegistration.rotation_period_exponent
eirpMinRotationPeriodExponent :: Lens' EphemeralIdRegistrationParams (Maybe Word32)

-- | Indicates the maximum rotation period supported by the service. See
--   EddystoneEidRegistration.rotation_period_exponent
eirpMaxRotationPeriodExponent :: Lens' EphemeralIdRegistrationParams (Maybe Word32)

-- | The beacon service's public key for use by a beacon to derive its
--   Identity Key using Elliptic Curve Diffie-Hellman key exchange.
eirpServiceEcdhPublicKey :: Lens' EphemeralIdRegistrationParams (Maybe ByteString)

-- | A subset of beacon information served via the
--   `beaconinfo.getforobserved` method, which you call when users of your
--   app encounter your beacons.
--   
--   <i>See:</i> <a>beaconInfo</a> smart constructor.
data BeaconInfo

-- | Creates a value of <a>BeaconInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>biAttachments</a></li>
--   <li><a>biBeaconName</a></li>
--   <li><a>biAdvertisedId</a></li>
--   </ul>
beaconInfo :: BeaconInfo

-- | Attachments matching the type(s) requested. May be empty if no
--   attachment types were requested, or if none matched.
biAttachments :: Lens' BeaconInfo [AttachmentInfo]

-- | The name under which the beacon is registered.
biBeaconName :: Lens' BeaconInfo (Maybe Text)

-- | The ID advertised by the beacon.
biAdvertisedId :: Lens' BeaconInfo (Maybe AdvertisedId)

-- | Represents one beacon observed once.
--   
--   <i>See:</i> <a>observation</a> smart constructor.
data Observation

-- | Creates a value of <a>Observation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oTelemetry</a></li>
--   <li><a>oTimestampMs</a></li>
--   <li><a>oAdvertisedId</a></li>
--   </ul>
observation :: Observation

-- | The array of telemetry bytes received from the beacon. The server is
--   responsible for parsing it. This field may frequently be empty, as
--   with a beacon that transmits telemetry only occasionally.
oTelemetry :: Lens' Observation (Maybe ByteString)

-- | Time when the beacon was observed.
oTimestampMs :: Lens' Observation (Maybe Text)

-- | The ID advertised by the beacon the client has encountered. Clients
--   may submit an Eddystone-EID `advertised_id`. If the client is not
--   authorized to resolve the given Eddystone-EID, no data will be
--   returned for that beacon. Required.
oAdvertisedId :: Lens' Observation (Maybe AdvertisedId)

-- | Project-specific data associated with a beacon.
--   
--   <i>See:</i> <a>beaconAttachment</a> smart constructor.
data BeaconAttachment

-- | Creates a value of <a>BeaconAttachment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>baData</a></li>
--   <li><a>baAttachmentName</a></li>
--   <li><a>baNamespacedType</a></li>
--   </ul>
beaconAttachment :: BeaconAttachment

-- | An opaque data container for client-provided data. Must be
--   <a>base64</a> encoded in HTTP requests, and will be so encoded (with
--   padding) in responses. Required.
baData :: Lens' BeaconAttachment (Maybe ByteString)

-- | Resource name of this attachment. Attachment names have the format:
--   beacons/beacon_id/attachments/attachment_id. Leave this empty on
--   creation.
baAttachmentName :: Lens' BeaconAttachment (Maybe Text)

-- | Specifies what kind of attachment this is. Tells a client how to
--   interpret the `data` field. Format is namespace/type. Namespace
--   provides type separation between clients. Type describes the type of
--   `data`, for use by the client when parsing the `data` field. Required.
baNamespacedType :: Lens' BeaconAttachment (Maybe Text)

-- | Response that contains the requested diagnostics.
--   
--   <i>See:</i> <a>listDiagnosticsResponse</a> smart constructor.
data ListDiagnosticsResponse

-- | Creates a value of <a>ListDiagnosticsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ldrNextPageToken</a></li>
--   <li><a>ldrDiagnostics</a></li>
--   </ul>
listDiagnosticsResponse :: ListDiagnosticsResponse

-- | Token that can be used for pagination. Returned only if the request
--   matches more beacons than can be returned in this response.
ldrNextPageToken :: Lens' ListDiagnosticsResponse (Maybe Text)

-- | The diagnostics matching the given request.
ldrDiagnostics :: Lens' ListDiagnosticsResponse [Diagnostics]

-- | Defines a unique identifier of a beacon as broadcast by the device.
--   
--   <i>See:</i> <a>advertisedId</a> smart constructor.
data AdvertisedId

-- | Creates a value of <a>AdvertisedId</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiId</a></li>
--   <li><a>aiType</a></li>
--   </ul>
advertisedId :: AdvertisedId

-- | The actual beacon identifier, as broadcast by the beacon hardware.
--   Must be <a>base64</a> 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.
aiId :: Lens' AdvertisedId (Maybe ByteString)

-- | Specifies the identifier type. Required.
aiType :: Lens' AdvertisedId (Maybe Text)

-- | Response that contains list beacon results and pagination help.
--   
--   <i>See:</i> <a>listBeaconsResponse</a> smart constructor.
data ListBeaconsResponse

-- | Creates a value of <a>ListBeaconsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbrNextPageToken</a></li>
--   <li><a>lbrBeacons</a></li>
--   <li><a>lbrTotalCount</a></li>
--   </ul>
listBeaconsResponse :: ListBeaconsResponse

-- | An opaque pagination token that the client may provide in their next
--   request to retrieve the next page of results.
lbrNextPageToken :: Lens' ListBeaconsResponse (Maybe Text)

-- | The beacons that matched the search criteria.
lbrBeacons :: Lens' ListBeaconsResponse [Beacon]

-- | Estimate of the total number of beacons matched by the query. Higher
--   values may be less accurate.
lbrTotalCount :: Lens' ListBeaconsResponse (Maybe Int64)

-- | Information about the requested beacons, optionally including
--   attachment data.
--   
--   <i>See:</i> <a>getInfoForObservedBeaconsResponse</a> smart
--   constructor.
data GetInfoForObservedBeaconsResponse

-- | Creates a value of <a>GetInfoForObservedBeaconsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gifobrBeacons</a></li>
--   </ul>
getInfoForObservedBeaconsResponse :: GetInfoForObservedBeaconsResponse

-- | Public information about beacons. May be empty if the request matched
--   no beacons.
gifobrBeacons :: Lens' GetInfoForObservedBeaconsResponse [BeaconInfo]
