2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-13 08:46:33 +00:00
restic/vendor/google.golang.org/api/proximitybeacon/v1beta1/proximitybeacon-api.json
2017-09-21 17:48:45 +02:00

1147 lines
64 KiB
JSON

{
"version": "v1beta1",
"baseUrl": "https://proximitybeacon.googleapis.com/",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/userlocation.beacon.registry": {
"description": "View and modify your beacons"
}
}
}
},
"servicePath": "",
"description": "Registers, manages, indexes, and searches beacons.",
"kind": "discovery#restDescription",
"rootUrl": "https://proximitybeacon.googleapis.com/",
"basePath": "",
"ownerDomain": "google.com",
"name": "proximitybeacon",
"batchPath": "batch",
"id": "proximitybeacon:v1beta1",
"documentationLink": "https://developers.google.com/beacons/proximity/",
"revision": "20170913",
"title": "Google Proximity Beacon API",
"discoveryVersion": "v1",
"ownerName": "Google",
"version_module": true,
"resources": {
"v1beta1": {
"methods": {
"getEidparams": {
"response": {
"$ref": "EphemeralIdRegistrationParams"
},
"parameterOrder": [],
"httpMethod": "GET",
"parameters": {},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"flatPath": "v1beta1/eidparams",
"id": "proximitybeacon.getEidparams",
"path": "v1beta1/eidparams",
"description": "Gets the Proximity Beacon API's current public key and associated\nparameters used to initiate the Diffie-Hellman key exchange required to\nregister a beacon that broadcasts the Eddystone-EID format. This key\nchanges periodically; clients may cache it and re-use the same public key\nto provision and register multiple beacons. However, clients should be\nprepared to refresh this key when they encounter an error registering an\nEddystone-EID beacon."
}
}
},
"beacons": {
"methods": {
"get": {
"httpMethod": "GET",
"parameterOrder": [
"beaconName"
],
"response": {
"$ref": "Beacon"
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"parameters": {
"beaconName": {
"location": "path",
"description": "Resource name of this beacon. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.",
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+$"
},
"projectId": {
"location": "query",
"description": "The project id of the beacon to request. If the project id is not specified\nthen the project making the request is used. The project id must match the\nproject that owns the beacon.\nOptional.",
"type": "string"
}
},
"flatPath": "v1beta1/beacons/{beaconsId}",
"path": "v1beta1/{+beaconName}",
"id": "proximitybeacon.beacons.get",
"description": "Returns detailed information about the specified beacon.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.\n\nRequests may supply an Eddystone-EID beacon name in the form:\n`beacons/4!beaconId` where the `beaconId` is the base16 ephemeral ID\nbroadcast by the beacon. The returned `Beacon` object will contain the\nbeacon's stable Eddystone-UID. Clients not authorized to resolve the\nbeacon's ephemeral Eddystone-EID broadcast will receive an error."
},
"update": {
"request": {
"$ref": "Beacon"
},
"description": "Updates the information about the specified beacon. **Any field that you do\nnot populate in the submitted beacon will be permanently erased**, so you\nshould follow the \"read, modify, write\" pattern to avoid inadvertently\ndestroying data.\n\nChanges to the beacon status via this method will be silently ignored.\nTo update beacon status, use the separate methods on this API for\nactivation, deactivation, and decommissioning.\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.",
"httpMethod": "PUT",
"parameterOrder": [
"beaconName"
],
"response": {
"$ref": "Beacon"
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"parameters": {
"beaconName": {
"pattern": "^beacons/[^/]+$",
"location": "path",
"description": "Resource name of this beacon. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.\n\nThis field must be left empty when registering. After reading a beacon,\nclients can use the name for future operations.",
"type": "string",
"required": true
},
"projectId": {
"type": "string",
"location": "query",
"description": "The project id of the beacon to update. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional."
}
},
"flatPath": "v1beta1/beacons/{beaconsId}",
"path": "v1beta1/{+beaconName}",
"id": "proximitybeacon.beacons.update"
},
"decommission": {
"description": "Decommissions the specified beacon in the service. This beacon will no\nlonger be returned from `beaconinfo.getforobserved`. This operation is\npermanent -- you will not be able to re-register a beacon with this ID\nagain.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.",
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"beaconName"
],
"httpMethod": "POST",
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"parameters": {
"beaconName": {
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+$",
"location": "path",
"description": "Beacon that should be decommissioned. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID of the beacon's \"stable\" UID.\nRequired."
},
"projectId": {
"description": "The project id of the beacon to decommission. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional.",
"type": "string",
"location": "query"
}
},
"flatPath": "v1beta1/beacons/{beaconsId}:decommission",
"id": "proximitybeacon.beacons.decommission",
"path": "v1beta1/{+beaconName}:decommission"
},
"delete": {
"description": "Deletes the specified beacon including all diagnostics data for the beacon\nas well as any attachments on the beacon (including those belonging to\nother projects). This operation cannot be undone.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.",
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"beaconName"
],
"httpMethod": "DELETE",
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"parameters": {
"beaconName": {
"description": "Beacon that should be deleted. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.",
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+$",
"location": "path"
},
"projectId": {
"description": "The project id of the beacon to delete. If not provided, the project\nthat is making the request is used.\nOptional.",
"type": "string",
"location": "query"
}
},
"flatPath": "v1beta1/beacons/{beaconsId}",
"id": "proximitybeacon.beacons.delete",
"path": "v1beta1/{+beaconName}"
},
"deactivate": {
"httpMethod": "POST",
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"beaconName"
],
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"parameters": {
"beaconName": {
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+$",
"location": "path",
"description": "Beacon that should be deactivated. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired."
},
"projectId": {
"description": "The project id of the beacon to deactivate. If the project id is not\nspecified then the project making the request is used. The project id must\nmatch the project that owns the beacon.\nOptional.",
"type": "string",
"location": "query"
}
},
"flatPath": "v1beta1/beacons/{beaconsId}:deactivate",
"path": "v1beta1/{+beaconName}:deactivate",
"id": "proximitybeacon.beacons.deactivate",
"description": "Deactivates a beacon. Once deactivated, the API will not return\ninformation nor attachment data for the beacon when queried via\n`beaconinfo.getforobserved`. Calling this method on an already inactive\nbeacon will do nothing (but will return a successful response code).\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project."
},
"list": {
"description": "Searches the beacon registry for beacons that match the given search\ncriteria. Only those beacons that the client has permission to list\nwill be returned.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.",
"httpMethod": "GET",
"parameterOrder": [],
"response": {
"$ref": "ListBeaconsResponse"
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"parameters": {
"projectId": {
"location": "query",
"description": "The project id to list beacons under. If not present then the project\ncredential that made the request is used as the project.\nOptional.",
"type": "string"
},
"pageToken": {
"location": "query",
"description": "A pagination token obtained from a previous request to list beacons.",
"type": "string"
},
"pageSize": {
"format": "int32",
"description": "The maximum number of records to return for this request, up to a\nserver-defined upper limit.",
"type": "integer",
"location": "query"
},
"q": {
"description": "Filter query string that supports the following field filters:\n\n* **description:`\"\u003cstring\u003e\"`**\n For example: **description:\"Room 3\"**\n Returns beacons whose description matches tokens in the string \"Room 3\"\n (not necessarily that exact string).\n The string must be double-quoted.\n* **status:`\u003cenum\u003e`**\n For example: **status:active**\n Returns beacons whose status matches the given value. Values must be\n one of the Beacon.Status enum values (case insensitive). Accepts\n multiple filters which will be combined with OR logic.\n* **stability:`\u003cenum\u003e`**\n For example: **stability:mobile**\n Returns beacons whose expected stability matches the given value.\n Values must be one of the Beacon.Stability enum values (case\n insensitive). Accepts multiple filters which will be combined with\n OR logic.\n* **place\\_id:`\"\u003cstring\u003e\"`**\n For example: **place\\_id:\"ChIJVSZzVR8FdkgRXGmmm6SslKw=\"**\n Returns beacons explicitly registered at the given place, expressed as\n a Place ID obtained from [Google Places API](/places/place-id). Does not\n match places inside the given place. Does not consider the beacon's\n actual location (which may be different from its registered place).\n Accepts multiple filters that will be combined with OR logic. The place\n ID must be double-quoted.\n* **registration\\_time`[\u003c|\u003e|\u003c=|\u003e=]\u003cinteger\u003e`**\n For example: **registration\\_time\u003e=1433116800**\n Returns beacons whose registration time matches the given filter.\n Supports the operators: \u003c, \u003e, \u003c=, and \u003e=. Timestamp must be expressed as\n an integer number of seconds since midnight January 1, 1970 UTC. Accepts\n at most two filters that will be combined with AND logic, to support\n \"between\" semantics. If more than two are supplied, the latter ones are\n ignored.\n* **lat:`\u003cdouble\u003e lng:\u003cdouble\u003e radius:\u003cinteger\u003e`**\n For example: **lat:51.1232343 lng:-1.093852 radius:1000**\n Returns beacons whose registered location is within the given circle.\n When any of these fields are given, all are required. Latitude and\n longitude must be decimal degrees between -90.0 and 90.0 and between\n -180.0 and 180.0 respectively. Radius must be an integer number of\n meters between 10 and 1,000,000 (1000 km).\n* **property:`\"\u003cstring\u003e=\u003cstring\u003e\"`**\n For example: **property:\"battery-type=CR2032\"**\n Returns beacons which have a property of the given name and value.\n Supports multiple filters which will be combined with OR logic.\n The entire name=value string must be double-quoted as one string.\n* **attachment\\_type:`\"\u003cstring\u003e\"`**\n For example: **attachment_type:\"my-namespace/my-type\"**\n Returns beacons having at least one attachment of the given namespaced\n type. Supports \"any within this namespace\" via the partial wildcard\n syntax: \"my-namespace/*\". Supports multiple filters which will be\n combined with OR logic. The string must be double-quoted.\n* **indoor\\_level:`\"\u003cstring\u003e\"`**\n For example: **indoor\\_level:\"1\"**\n Returns beacons which are located on the given indoor level. Accepts\n multiple filters that will be combined with OR logic.\n\nMultiple filters on the same field are combined with OR logic (except\nregistration_time which is combined with AND logic).\nMultiple filters on different fields are combined with AND logic.\nFilters should be separated by spaces.\n\nAs with any HTTP query string parameter, the whole filter expression must\nbe URL-encoded.\n\nExample REST request:\n`GET /v1beta1/beacons?q=status:active%20lat:51.123%20lng:-1.095%20radius:1000`",
"type": "string",
"location": "query"
}
},
"flatPath": "v1beta1/beacons",
"path": "v1beta1/beacons",
"id": "proximitybeacon.beacons.list"
},
"register": {
"description": "Registers a previously unregistered beacon given its `advertisedId`.\nThese IDs are unique within the system. An ID can be registered only once.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.",
"request": {
"$ref": "Beacon"
},
"response": {
"$ref": "Beacon"
},
"parameterOrder": [],
"httpMethod": "POST",
"parameters": {
"projectId": {
"description": "The project id of the project the beacon will be registered to. If\nthe project id is not specified then the project making the request\nis used.\nOptional.",
"type": "string",
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"flatPath": "v1beta1/beacons:register",
"id": "proximitybeacon.beacons.register",
"path": "v1beta1/beacons:register"
},
"activate": {
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"beaconName"
],
"httpMethod": "POST",
"parameters": {
"beaconName": {
"description": "Beacon that should be activated. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.",
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+$",
"location": "path"
},
"projectId": {
"description": "The project id of the beacon to activate. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional.",
"type": "string",
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"flatPath": "v1beta1/beacons/{beaconsId}:activate",
"id": "proximitybeacon.beacons.activate",
"path": "v1beta1/{+beaconName}:activate",
"description": "Activates a beacon. A beacon that is active will return information\nand attachment data when queried via `beaconinfo.getforobserved`.\nCalling this method on an already active beacon will do nothing (but\nwill return a successful response code).\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project."
}
},
"resources": {
"diagnostics": {
"methods": {
"list": {
"description": "List the diagnostics for a single beacon. You can also list diagnostics for\nall the beacons owned by your Google Developers Console project by using\nthe beacon name `beacons/-`.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.",
"response": {
"$ref": "ListDiagnosticsResponse"
},
"parameterOrder": [
"beaconName"
],
"httpMethod": "GET",
"parameters": {
"beaconName": {
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+$",
"location": "path",
"description": "Beacon that the diagnostics are for."
},
"pageToken": {
"description": "Requests results that occur after the `page_token`, obtained from the\nresponse to a previous request. Optional.",
"type": "string",
"location": "query"
},
"alertFilter": {
"location": "query",
"enum": [
"ALERT_UNSPECIFIED",
"WRONG_LOCATION",
"LOW_BATTERY"
],
"description": "Requests only beacons that have the given alert. For example, to find\nbeacons that have low batteries use `alert_filter=LOW_BATTERY`.",
"type": "string"
},
"pageSize": {
"type": "integer",
"location": "query",
"format": "int32",
"description": "Specifies the maximum number of results to return. Defaults to\n10. Maximum 1000. Optional."
},
"projectId": {
"location": "query",
"description": "Requests only diagnostic records for the given project id. If not set,\nthen the project making the request will be used for looking up\ndiagnostic records. Optional.",
"type": "string"
}
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"flatPath": "v1beta1/beacons/{beaconsId}/diagnostics",
"id": "proximitybeacon.beacons.diagnostics.list",
"path": "v1beta1/{+beaconName}/diagnostics"
}
}
},
"attachments": {
"methods": {
"list": {
"flatPath": "v1beta1/beacons/{beaconsId}/attachments",
"id": "proximitybeacon.beacons.attachments.list",
"path": "v1beta1/{+beaconName}/attachments",
"description": "Returns the attachments for the specified beacon that match the specified\nnamespaced-type pattern.\n\nTo control which namespaced types are returned, you add the\n`namespacedType` query parameter to the request. You must either use\n`*/*`, to return all attachments, or the namespace must be one of\nthe ones returned from the `namespaces` endpoint.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project.",
"response": {
"$ref": "ListBeaconAttachmentsResponse"
},
"parameterOrder": [
"beaconName"
],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"parameters": {
"namespacedType": {
"description": "Specifies the namespace and type of attachment to include in response in\n\u003cvar\u003enamespace/type\u003c/var\u003e format. Accepts `*/*` to specify\n\"all types in all namespaces\".",
"type": "string",
"location": "query"
},
"beaconName": {
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+$",
"location": "path",
"description": "Beacon whose attachments should be fetched. A beacon name has the\nformat \"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast\nby the beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired."
},
"projectId": {
"description": "The project id to list beacon attachments under. This field can be\nused when \"*\" is specified to mean all attachment namespaces. Projects\nmay have multiple attachments with multiple namespaces. If \"*\" is\nspecified and the projectId string is empty, then the project\nmaking the request is used.\nOptional.",
"type": "string",
"location": "query"
}
}
},
"batchDelete": {
"response": {
"$ref": "DeleteAttachmentsResponse"
},
"parameterOrder": [
"beaconName"
],
"httpMethod": "POST",
"parameters": {
"namespacedType": {
"type": "string",
"location": "query",
"description": "Specifies the namespace and type of attachments to delete in\n`namespace/type` format. Accepts `*/*` to specify\n\"all types in all namespaces\".\nOptional."
},
"beaconName": {
"description": "The beacon whose attachments should be deleted. A beacon name has the\nformat \"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast\nby the beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.",
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+$",
"location": "path"
},
"projectId": {
"description": "The project id to delete beacon attachments under. This field can be\nused when \"*\" is specified to mean all attachment namespaces. Projects\nmay have multiple attachments with multiple namespaces. If \"*\" is\nspecified and the projectId string is empty, then the project\nmaking the request is used.\nOptional.",
"type": "string",
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"flatPath": "v1beta1/beacons/{beaconsId}/attachments:batchDelete",
"id": "proximitybeacon.beacons.attachments.batchDelete",
"path": "v1beta1/{+beaconName}/attachments:batchDelete",
"description": "Deletes multiple attachments on a given beacon. This operation is\npermanent and cannot be undone.\n\nYou can optionally specify `namespacedType` to choose which attachments\nshould be deleted. If you do not specify `namespacedType`, all your\nattachments on the given beacon will be deleted. You also may explicitly\nspecify `*/*` to delete all.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project."
},
"create": {
"httpMethod": "POST",
"parameterOrder": [
"beaconName"
],
"response": {
"$ref": "BeaconAttachment"
},
"parameters": {
"beaconName": {
"location": "path",
"description": "Beacon on which the attachment should be created. A beacon name has the\nformat \"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast\nby the beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone-UID, `4` for Eddystone-EID, `1` for iBeacon, or `5`\nfor AltBeacon. For Eddystone-EID beacons, you may use either the\ncurrent EID or the beacon's \"stable\" UID.\nRequired.",
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+$"
},
"projectId": {
"description": "The project id of the project the attachment will belong to. If\nthe project id is not specified then the project making the request\nis used.\nOptional.",
"type": "string",
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"flatPath": "v1beta1/beacons/{beaconsId}/attachments",
"path": "v1beta1/{+beaconName}/attachments",
"id": "proximitybeacon.beacons.attachments.create",
"description": "Associates the given data with the specified beacon. Attachment data must\ncontain two parts:\n\u003cul\u003e\n\u003cli\u003eA namespaced type.\u003c/li\u003e\n\u003cli\u003eThe actual attachment data itself.\u003c/li\u003e\n\u003c/ul\u003e\nThe namespaced type consists of two parts, the namespace and the type.\nThe namespace must be one of the values returned by the `namespaces`\nendpoint, while the type can be a string of any characters except for the\nforward slash (`/`) up to 100 characters in length.\n\nAttachment data can be up to 1024 bytes long.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.",
"request": {
"$ref": "BeaconAttachment"
}
},
"delete": {
"path": "v1beta1/{+attachmentName}",
"id": "proximitybeacon.beacons.attachments.delete",
"description": "Deletes the specified attachment for the given beacon. Each attachment has\na unique attachment name (`attachmentName`) which is returned when you\nfetch the attachment data via this API. You specify this with the delete\nrequest to control which attachment is removed. This operation cannot be\nundone.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **Is owner** or **Can edit** permissions in the\nGoogle Developers Console project.",
"httpMethod": "DELETE",
"parameterOrder": [
"attachmentName"
],
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"parameters": {
"attachmentName": {
"type": "string",
"required": true,
"pattern": "^beacons/[^/]+/attachments/[^/]+$",
"location": "path",
"description": "The attachment name (`attachmentName`) of\nthe attachment to remove. For example:\n`beacons/3!893737abc9/attachments/c5e937-af0-494-959-ec49d12738`. For\nEddystone-EID beacons, the beacon ID portion (`3!893737abc9`) may be the\nbeacon's current EID, or its \"stable\" Eddystone-UID.\nRequired."
},
"projectId": {
"location": "query",
"description": "The project id of the attachment to delete. If not provided, the project\nthat is making the request is used.\nOptional.",
"type": "string"
}
},
"flatPath": "v1beta1/beacons/{beaconsId}/attachments/{attachmentsId}"
}
}
}
}
},
"beaconinfo": {
"methods": {
"getforobserved": {
"description": "Given one or more beacon observations, returns any beacon information\nand attachments accessible to your application. Authorize by using the\n[API key](https://developers.google.com/beacons/proximity/get-started#request_a_browser_api_key)\nfor the application.",
"request": {
"$ref": "GetInfoForObservedBeaconsRequest"
},
"response": {
"$ref": "GetInfoForObservedBeaconsResponse"
},
"parameterOrder": [],
"httpMethod": "POST",
"parameters": {},
"flatPath": "v1beta1/beaconinfo:getforobserved",
"id": "proximitybeacon.beaconinfo.getforobserved",
"path": "v1beta1/beaconinfo:getforobserved"
}
}
},
"namespaces": {
"methods": {
"update": {
"flatPath": "v1beta1/namespaces/{namespacesId}",
"path": "v1beta1/{+namespaceName}",
"id": "proximitybeacon.namespaces.update",
"request": {
"$ref": "Namespace"
},
"description": "Updates the information about the specified namespace. Only the namespace\nvisibility can be updated.",
"httpMethod": "PUT",
"parameterOrder": [
"namespaceName"
],
"response": {
"$ref": "Namespace"
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"parameters": {
"projectId": {
"location": "query",
"description": "The project id of the namespace to update. If the project id is not\nspecified then the project making the request is used. The project id\nmust match the project that owns the beacon.\nOptional.",
"type": "string"
},
"namespaceName": {
"pattern": "^namespaces/[^/]+$",
"location": "path",
"description": "Resource name of this namespace. Namespaces names have the format:\n\u003ccode\u003enamespaces/\u003cvar\u003enamespace\u003c/var\u003e\u003c/code\u003e.",
"type": "string",
"required": true
}
}
},
"list": {
"httpMethod": "GET",
"response": {
"$ref": "ListNamespacesResponse"
},
"parameterOrder": [],
"parameters": {
"projectId": {
"location": "query",
"description": "The project id to list namespaces under.\nOptional.",
"type": "string"
}
},
"scopes": [
"https://www.googleapis.com/auth/userlocation.beacon.registry"
],
"flatPath": "v1beta1/namespaces",
"path": "v1beta1/namespaces",
"id": "proximitybeacon.namespaces.list",
"description": "Lists all attachment namespaces owned by your Google Developers Console\nproject. Attachment data associated with a beacon must include a\nnamespaced type, and the namespace must be owned by your project.\n\nAuthenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2)\nfrom a signed-in user with **viewer**, **Is owner** or **Can edit**\npermissions in the Google Developers Console project."
}
}
}
},
"parameters": {
"upload_protocol": {
"location": "query",
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string"
},
"prettyPrint": {
"location": "query",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"type": "boolean"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"type": "string",
"location": "query"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string",
"location": "query"
},
"callback": {
"type": "string",
"location": "query",
"description": "JSONP"
},
"$.xgafv": {
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"enum": [
"1",
"2"
],
"description": "V1 error format.",
"type": "string"
},
"alt": {
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"description": "Data format for response.",
"default": "json",
"enum": [
"json",
"media",
"proto"
]
},
"key": {
"location": "query",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"type": "string",
"location": "query"
},
"quotaUser": {
"location": "query",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string"
},
"pp": {
"location": "query",
"description": "Pretty-print response.",
"default": "true",
"type": "boolean"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"type": "string",
"location": "query"
},
"bearer_token": {
"description": "OAuth bearer token.",
"type": "string",
"location": "query"
}
},
"schemas": {
"Namespace": {
"description": "An attachment namespace defines read and write access for all the attachments\ncreated under it. Each namespace is globally unique, and owned by one\nproject which is the only project that can create attachments under it.",
"type": "object",
"properties": {
"servingVisibility": {
"description": "Specifies what clients may receive attachments under this namespace\nvia `beaconinfo.getforobserved`.",
"type": "string",
"enumDescriptions": [
"Do not use this value.",
"Served only to the project that owns the namespace.",
"Any project can subscribe to attachments under the namespace."
],
"enum": [
"VISIBILITY_UNSPECIFIED",
"UNLISTED",
"PUBLIC"
]
},
"namespaceName": {
"description": "Resource name of this namespace. Namespaces names have the format:\n\u003ccode\u003enamespaces/\u003cvar\u003enamespace\u003c/var\u003e\u003c/code\u003e.",
"type": "string"
}
},
"id": "Namespace"
},
"AttachmentInfo": {
"description": "A subset of attachment information served via the\n`beaconinfo.getforobserved` method, used when your users encounter your\nbeacons.",
"type": "object",
"properties": {
"namespacedType": {
"type": "string",
"description": "Specifies what kind of attachment this is. Tells a client how to\ninterpret the `data` field. Format is \u003cvar\u003enamespace/type\u003c/var\u003e, for\nexample \u003ccode\u003escrupulous-wombat-12345/welcome-message\u003c/code\u003e"
},
"data": {
"format": "byte",
"description": "An opaque data container for client-provided data.",
"type": "string"
}
},
"id": "AttachmentInfo"
},
"BeaconInfo": {
"description": "A subset of beacon information served via the `beaconinfo.getforobserved`\nmethod, which you call when users of your app encounter your beacons.",
"type": "object",
"properties": {
"beaconName": {
"description": "The name under which the beacon is registered.",
"type": "string"
},
"attachments": {
"description": "Attachments matching the type(s) requested.\nMay be empty if no attachment types were requested.",
"items": {
"$ref": "AttachmentInfo"
},
"type": "array"
},
"advertisedId": {
"description": "The ID advertised by the beacon.",
"$ref": "AdvertisedId"
}
},
"id": "BeaconInfo"
},
"DeleteAttachmentsResponse": {
"properties": {
"numDeleted": {
"type": "integer",
"format": "int32",
"description": "The number of attachments that were deleted."
}
},
"id": "DeleteAttachmentsResponse",
"description": "Response for a request to delete attachments.",
"type": "object"
},
"EphemeralIdRegistrationParams": {
"description": "Information a client needs to provision and register beacons that\nbroadcast Eddystone-EID format beacon IDs, using Elliptic curve\nDiffie-Hellman key exchange. See\n[the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.",
"type": "object",
"properties": {
"serviceEcdhPublicKey": {
"format": "byte",
"description": "The beacon service's public key for use by a beacon to derive its\nIdentity Key using Elliptic Curve Diffie-Hellman key exchange.",
"type": "string"
},
"maxRotationPeriodExponent": {
"format": "uint32",
"description": "Indicates the maximum rotation period supported by the service.\nSee EddystoneEidRegistration.rotation_period_exponent",
"type": "integer"
},
"minRotationPeriodExponent": {
"format": "uint32",
"description": "Indicates the minimum rotation period supported by the service.\nSee EddystoneEidRegistration.rotation_period_exponent",
"type": "integer"
}
},
"id": "EphemeralIdRegistrationParams"
},
"Observation": {
"type": "object",
"properties": {
"telemetry": {
"format": "byte",
"description": "The array of telemetry bytes received from the beacon. The server is\nresponsible for parsing it. This field may frequently be empty, as\nwith a beacon that transmits telemetry only occasionally.",
"type": "string"
},
"timestampMs": {
"format": "google-datetime",
"description": "Time when the beacon was observed.",
"type": "string"
},
"advertisedId": {
"$ref": "AdvertisedId",
"description": "The ID advertised by the beacon the client has encountered.\n\nIf the submitted `advertised_id` type is Eddystone-EID, then the client\nmust be authorized to resolve the given beacon. Otherwise no data will be\nreturned for that beacon.\nRequired."
}
},
"id": "Observation",
"description": "Represents one beacon observed once."
},
"ListDiagnosticsResponse": {
"properties": {
"diagnostics": {
"description": "The diagnostics matching the given request.",
"items": {
"$ref": "Diagnostics"
},
"type": "array"
},
"nextPageToken": {
"description": "Token that can be used for pagination. Returned only if the\nrequest matches more beacons than can be returned in this response.",
"type": "string"
}
},
"id": "ListDiagnosticsResponse",
"description": "Response that contains the requested diagnostics.",
"type": "object"
},
"GetInfoForObservedBeaconsResponse": {
"type": "object",
"properties": {
"beacons": {
"description": "Public information about beacons.\nMay be empty if the request matched no beacons.",
"items": {
"$ref": "BeaconInfo"
},
"type": "array"
}
},
"id": "GetInfoForObservedBeaconsResponse",
"description": "Information about the requested beacons, optionally including attachment\ndata."
},
"Beacon": {
"description": "Details of a beacon device.",
"type": "object",
"properties": {
"ephemeralIdRegistration": {
"description": "Write-only registration parameters for beacons using Eddystone-EID\n(remotely resolved ephemeral ID) format. This information will not be\npopulated in API responses. When submitting this data, the `advertised_id`\nfield must contain an ID of type Eddystone-UID. Any other ID type will\nresult in an error.",
"$ref": "EphemeralIdRegistration"
},
"provisioningKey": {
"format": "byte",
"description": "Some beacons may require a user to provide an authorization key before\nchanging any of its configuration (e.g. broadcast frames, transmit power).\nThis field provides a place to store and control access to that key.\nThis field is populated in responses to `GET /v1beta1/beacons/3!beaconId`\nfrom users with write access to the given beacon. That is to say: If the\nuser is authorized to write the beacon's confidential data in the service,\nthe service considers them authorized to configure the beacon. Note\nthat this key grants nothing on the service, only on the beacon itself.",
"type": "string"
},
"latLng": {
"$ref": "LatLng",
"description": "The location of the beacon, expressed as a latitude and longitude pair.\nThis location is given when the beacon is registered or updated. It does\nnot necessarily indicate the actual current location of the beacon.\nOptional."
},
"placeId": {
"description": "The [Google Places API](/places/place-id) Place ID of the place where\nthe beacon is deployed. This is given when the beacon is registered or\nupdated, not automatically detected in any way.\nOptional.",
"type": "string"
},
"description": {
"description": "Free text used to identify and describe the beacon. Maximum length 140\ncharacters.\nOptional.",
"type": "string"
},
"properties": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Properties of the beacon device, for example battery type or firmware\nversion.\nOptional."
},
"status": {
"description": "Current status of the beacon.\nRequired.",
"type": "string",
"enumDescriptions": [
"Do not use this value.",
"The \"normal\" in-use state of a beacon.",
"Beacon should no longer be used for any purpose. This is irreversible.",
"The beacon should not be visible to mobile devices. This is reversible."
],
"enum": [
"STATUS_UNSPECIFIED",
"ACTIVE",
"DECOMMISSIONED",
"INACTIVE"
]
},
"indoorLevel": {
"description": "The indoor level information for this beacon, if known. As returned by the\nGoogle Maps API.\nOptional.",
"$ref": "IndoorLevel"
},
"beaconName": {
"description": "Resource name of this beacon. A beacon name has the format\n\"beacons/N!beaconId\" where the beaconId is the base16 ID broadcast by\nthe beacon and N is a code for the beacon's type. Possible values are\n`3` for Eddystone, `1` for iBeacon, or `5` for AltBeacon.\n\nThis field must be left empty when registering. After reading a beacon,\nclients can use the name for future operations.",
"type": "string"
},
"expectedStability": {
"enum": [
"STABILITY_UNSPECIFIED",
"STABLE",
"PORTABLE",
"MOBILE",
"ROVING"
],
"description": "Expected location stability. This is set when the beacon is registered or\nupdated, not automatically detected in any way.\nOptional.",
"type": "string",
"enumDescriptions": [
"Do not use this value.",
"Not expected to move, for example a store's front door.",
"Usually stable but may move rarely, usually within a single place,\nfor example a store display.",
"Moves frequently, for example a personal item or food truck.",
"Moves continuously in service, for example a bus or train."
]
},
"advertisedId": {
"$ref": "AdvertisedId",
"description": "The identifier of a beacon as advertised by it. This field must be\npopulated when registering. It may be empty when updating a beacon\nrecord because it is ignored in updates.\n\nWhen registering a beacon that broadcasts Eddystone-EID, this field\nshould contain a \"stable\" Eddystone-UID that identifies the beacon and\nlinks it to its attachments. The stable Eddystone-UID is only used for\nadministering the beacon."
}
},
"id": "Beacon"
},
"AdvertisedId": {
"description": "Defines a unique identifier of a beacon as broadcast by the device.",
"type": "object",
"properties": {
"type": {
"enumDescriptions": [
"Do not use this value.",
"Eddystone, an open beacon format that supports Android and iOS devices\nhttps://github.com/google/eddystone/wiki/Beacon-Specification",
"Apple iBeacon compatible beacon",
"See http://altbeacon.org and/or https://github.com/AltBeacon/spec.",
"Eddystone Ephemeral ID"
],
"enum": [
"TYPE_UNSPECIFIED",
"EDDYSTONE",
"IBEACON",
"ALTBEACON",
"EDDYSTONE_EID"
],
"description": "Specifies the identifier type.\nRequired.",
"type": "string"
},
"id": {
"format": "byte",
"description": "The actual beacon identifier, as broadcast by the beacon hardware. Must be\n[base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP\nrequests, and will be so encoded (with padding) in responses. The base64\nencoding should be of the binary byte-stream and not any textual (such as\nhex) representation thereof.\nRequired.",
"type": "string"
}
},
"id": "AdvertisedId"
},
"Date": {
"properties": {
"month": {
"type": "integer",
"format": "int32",
"description": "Month of year. Must be from 1 to 12."
},
"day": {
"format": "int32",
"description": "Day of month. Must be from 1 to 31 and valid for the year and month, or 0\nif specifying a year/month where the day is not significant.",
"type": "integer"
},
"year": {
"format": "int32",
"description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without\na year.",
"type": "integer"
}
},
"id": "Date",
"description": "Represents a whole calendar date, e.g. date of birth. The time of day and\ntime zone are either specified elsewhere or are not significant. The date\nis relative to the Proleptic Gregorian Calendar. The day may be 0 to\nrepresent a year and month where the day is not significant, e.g. credit card\nexpiration date. The year may be 0 to represent a month and day independent\nof year, e.g. anniversary date. Related types are google.type.TimeOfDay\nand `google.protobuf.Timestamp`.",
"type": "object"
},
"IndoorLevel": {
"description": "Indoor level, a human-readable string as returned by Google Maps APIs,\nuseful to indicate which floor of a building a beacon is located on.",
"type": "object",
"properties": {
"name": {
"description": "The name of this level.",
"type": "string"
}
},
"id": "IndoorLevel"
},
"ListNamespacesResponse": {
"description": "Response to ListNamespacesRequest that contains all the project's namespaces.",
"type": "object",
"properties": {
"namespaces": {
"description": "The attachments that corresponded to the request params.",
"items": {
"$ref": "Namespace"
},
"type": "array"
}
},
"id": "ListNamespacesResponse"
},
"ListBeaconsResponse": {
"description": "Response that contains list beacon results and pagination help.",
"type": "object",
"properties": {
"nextPageToken": {
"description": "An opaque pagination token that the client may provide in their next\nrequest to retrieve the next page of results.",
"type": "string"
},
"totalCount": {
"format": "int64",
"description": "Estimate of the total number of beacons matched by the query. Higher\nvalues may be less accurate.",
"type": "string"
},
"beacons": {
"description": "The beacons that matched the search criteria.",
"items": {
"$ref": "Beacon"
},
"type": "array"
}
},
"id": "ListBeaconsResponse"
},
"Diagnostics": {
"description": "Diagnostics for a single beacon.",
"type": "object",
"properties": {
"estimatedLowBatteryDate": {
"$ref": "Date",
"description": "The date when the battery is expected to be low. If the value is missing\nthen there is no estimate for when the battery will be low.\nThis value is only an estimate, not an exact date."
},
"beaconName": {
"description": "Resource name of the beacon. For Eddystone-EID beacons, this may\nbe the beacon's current EID, or the beacon's \"stable\" Eddystone-UID.",
"type": "string"
},
"alerts": {
"enumDescriptions": [
"Invalid value. Should never appear.",
"The beacon has been reported in a location different than its registered\nlocation. This may indicate that the beacon has been moved. This signal\nis not 100% accurate, but indicates that further investigation is worth\nwhile.",
"The battery level for the beacon is low enough that, given the beacon's\ncurrent use, its battery will run out with in the next 60 days. This\nindicates that the battery should be replaced soon."
],
"description": "An unordered list of Alerts that the beacon has.",
"items": {
"enum": [
"ALERT_UNSPECIFIED",
"WRONG_LOCATION",
"LOW_BATTERY"
],
"type": "string"
},
"type": "array"
}
},
"id": "Diagnostics"
},
"Empty": {
"id": "Empty",
"description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
"type": "object",
"properties": {}
},
"GetInfoForObservedBeaconsRequest": {
"description": "Request for beacon and attachment information about beacons that\na mobile client has encountered \"in the wild\".",
"type": "object",
"properties": {
"observations": {
"items": {
"$ref": "Observation"
},
"type": "array",
"description": "The beacons that the client has encountered.\nAt least one must be given."
},
"namespacedTypes": {
"description": "Specifies what kind of attachments to include in the response.\nWhen given, the response will include only attachments of the given types.\nWhen empty, no attachments will be returned. Must be in the format\n\u003cvar\u003enamespace/type\u003c/var\u003e. Accepts `*` to specify all types in\nall namespaces owned by the client.\nOptional.",
"items": {
"type": "string"
},
"type": "array"
}
},
"id": "GetInfoForObservedBeaconsRequest"
},
"BeaconAttachment": {
"properties": {
"data": {
"format": "byte",
"description": "An opaque data container for client-provided data. Must be\n[base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP\nrequests, and will be so encoded (with padding) in responses.\nRequired.",
"type": "string"
},
"creationTimeMs": {
"format": "google-datetime",
"description": "The UTC time when this attachment was created, in milliseconds since the\nUNIX epoch.",
"type": "string"
},
"attachmentName": {
"type": "string",
"description": "Resource name of this attachment. Attachment names have the format:\n\u003ccode\u003ebeacons/\u003cvar\u003ebeacon_id\u003c/var\u003e/attachments/\u003cvar\u003eattachment_id\u003c/var\u003e\u003c/code\u003e.\nLeave this empty on creation."
},
"namespacedType": {
"description": "Specifies what kind of attachment this is. Tells a client how to\ninterpret the `data` field. Format is \u003cvar\u003enamespace/type\u003c/var\u003e. Namespace\nprovides type separation between clients. Type describes the type of\n`data`, for use by the client when parsing the `data` field.\nRequired.",
"type": "string"
}
},
"id": "BeaconAttachment",
"description": "Project-specific data associated with a beacon.",
"type": "object"
},
"EphemeralIdRegistration": {
"type": "object",
"properties": {
"rotationPeriodExponent": {
"type": "integer",
"format": "uint32",
"description": "Indicates the nominal period between each rotation of the beacon's\nephemeral ID. \"Nominal\" because the beacon should randomize the\nactual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid)\nfor details. This value corresponds to a power-of-two scaler on the\nbeacon's clock: when the scaler value is K, the beacon will begin\nbroadcasting a new ephemeral ID on average every 2^K seconds."
},
"serviceEcdhPublicKey": {
"format": "byte",
"description": "The service's public key used for the Elliptic curve Diffie-Hellman\nkey exchange. When this field is populated, `beacon_ecdh_public_key`\nmust also be populated, and `beacon_identity_key` must not be.",
"type": "string"
},
"beaconIdentityKey": {
"format": "byte",
"description": "The private key of the beacon. If this field is populated,\n`beacon_ecdh_public_key` and `service_ecdh_public_key` must not be\npopulated.",
"type": "string"
},
"initialEid": {
"format": "byte",
"description": "An initial ephemeral ID calculated using the clock value submitted as\n`initial_clock_value`, and the secret key generated by the\nDiffie-Hellman key exchange using `service_ecdh_public_key` and\n`service_ecdh_public_key`. This initial EID value will be used by the\nservice to confirm that the key exchange process was successful.",
"type": "string"
},
"initialClockValue": {
"format": "uint64",
"description": "The initial clock value of the beacon. The beacon's clock must have\nbegun counting at this value immediately prior to transmitting this\nvalue to the resolving service. Significant delay in transmitting this\nvalue to the service risks registration or resolution failures. If a\nvalue is not provided, the default is zero.",
"type": "string"
},
"beaconEcdhPublicKey": {
"format": "byte",
"description": "The beacon's public key used for the Elliptic curve Diffie-Hellman\nkey exchange. When this field is populated, `service_ecdh_public_key`\nmust also be populated, and `beacon_identity_key` must not be.",
"type": "string"
}
},
"id": "EphemeralIdRegistration",
"description": "Write-only registration parameters for beacons using Eddystone-EID format.\nTwo ways of securely registering an Eddystone-EID beacon with the service\nare supported:\n\n1. Perform an ECDH key exchange via this API, including a previous call\n to `GET /v1beta1/eidparams`. In this case the fields\n `beacon_ecdh_public_key` and `service_ecdh_public_key` should be\n populated and `beacon_identity_key` should not be populated. This\n method ensures that only the two parties in the ECDH key exchange can\n compute the identity key, which becomes a secret between them.\n2. Derive or obtain the beacon's identity key via other secure means\n (perhaps an ECDH key exchange between the beacon and a mobile device\n or any other secure method), and then submit the resulting identity key\n to the service. In this case `beacon_identity_key` field should be\n populated, and neither of `beacon_ecdh_public_key` nor\n `service_ecdh_public_key` fields should be. The security of this method\n depends on how securely the parties involved (in particular the\n bluetooth client) handle the identity key, and obviously on how\n securely the identity key was generated.\n\nSee [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub."
},
"LatLng": {
"description": "An object representing a latitude/longitude pair. This is expressed as a pair\nof doubles representing degrees latitude and degrees longitude. Unless\nspecified otherwise, this must conform to the\n\u003ca href=\"http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf\"\u003eWGS84\nstandard\u003c/a\u003e. Values must be within normalized ranges.\n\nExample of normalization code in Python:\n\n def NormalizeLongitude(longitude):\n \"\"\"Wraps decimal degrees longitude to [-180.0, 180.0].\"\"\"\n q, r = divmod(longitude, 360.0)\n if r \u003e 180.0 or (r == 180.0 and q \u003c= -1.0):\n return r - 360.0\n return r\n\n def NormalizeLatLng(latitude, longitude):\n \"\"\"Wraps decimal degrees latitude and longitude to\n [-90.0, 90.0] and [-180.0, 180.0], respectively.\"\"\"\n r = latitude % 360.0\n if r \u003c= 90.0:\n return r, NormalizeLongitude(longitude)\n elif r \u003e= 270.0:\n return r - 360, NormalizeLongitude(longitude)\n else:\n return 180 - r, NormalizeLongitude(longitude + 180.0)\n\n assert 180.0 == NormalizeLongitude(180.0)\n assert -180.0 == NormalizeLongitude(-180.0)\n assert -179.0 == NormalizeLongitude(181.0)\n assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)\n assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)\n assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)\n assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)\n assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)\n assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)\n assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)\n assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)\n assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)",
"type": "object",
"properties": {
"latitude": {
"format": "double",
"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
"type": "number"
},
"longitude": {
"format": "double",
"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
"type": "number"
}
},
"id": "LatLng"
},
"ListBeaconAttachmentsResponse": {
"description": "Response to `ListBeaconAttachments` that contains the requested attachments.",
"type": "object",
"properties": {
"attachments": {
"description": "The attachments that corresponded to the request params.",
"items": {
"$ref": "BeaconAttachment"
},
"type": "array"
}
},
"id": "ListBeaconAttachmentsResponse"
}
},
"protocol": "rest",
"icons": {
"x32": "http://www.google.com/images/icons/product/search-32.gif",
"x16": "http://www.google.com/images/icons/product/search-16.gif"
}
}