{
 "kind": "discovery#restDescription",
 "etag": "\"jQLIOHBVnDZie4rQHGH1WJF-INE/InJfaYgEs4kvxVpfe1cZDPrjhv0\"",
 "discoveryVersion": "v1",
 "id": "proximitybeacon:v1beta1",
 "name": "proximitybeacon",
 "version": "v1beta1",
 "revision": "20160429",
 "title": "Google Proximity Beacon API",
 "description": "Registers, manages, indexes, and searches beacons.",
 "ownerDomain": "google.com",
 "ownerName": "Google",
 "icons": {
  "x16": "http://www.google.com/images/icons/product/search-16.gif",
  "x32": "http://www.google.com/images/icons/product/search-32.gif"
 },
 "documentationLink": "https://developers.google.com/beacons/proximity/",
 "protocol": "rest",
 "baseUrl": "https://proximitybeacon.googleapis.com/",
 "basePath": "",
 "rootUrl": "https://proximitybeacon.googleapis.com/",
 "servicePath": "",
 "batchPath": "batch",
 "version_module": true,
 "parameters": {
  "access_token": {
   "type": "string",
   "description": "OAuth access token.",
   "location": "query"
  },
  "alt": {
   "type": "string",
   "description": "Data format for response.",
   "default": "json",
   "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"
  },
  "bearer_token": {
   "type": "string",
   "description": "OAuth bearer token.",
   "location": "query"
  },
  "callback": {
   "type": "string",
   "description": "JSONP",
   "location": "query"
  },
  "fields": {
   "type": "string",
   "description": "Selector specifying which fields to include in a partial response.",
   "location": "query"
  },
  "key": {
   "type": "string",
   "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.",
   "location": "query"
  },
  "oauth_token": {
   "type": "string",
   "description": "OAuth 2.0 token for the current user.",
   "location": "query"
  },
  "pp": {
   "type": "boolean",
   "description": "Pretty-print response.",
   "default": "true",
   "location": "query"
  },
  "prettyPrint": {
   "type": "boolean",
   "description": "Returns response with indentations and line breaks.",
   "default": "true",
   "location": "query"
  },
  "quotaUser": {
   "type": "string",
   "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.",
   "location": "query"
  },
  "upload_protocol": {
   "type": "string",
   "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
   "location": "query"
  },
  "uploadType": {
   "type": "string",
   "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
   "location": "query"
  },
  "$.xgafv": {
   "type": "string",
   "description": "V1 error format.",
   "enumDescriptions": [
    "v1 error format",
    "v2 error format"
   ],
   "location": "query"
  }
 },
 "auth": {
  "oauth2": {
   "scopes": {
    "https://www.googleapis.com/auth/userlocation.beacon.registry": {
     "description": "View and modify your beacons"
    }
   }
  }
 },
 "schemas": {
  "Beacon": {
   "id": "Beacon",
   "type": "object",
   "description": "Details of a beacon device.",
   "properties": {
    "beaconName": {
     "type": "string",
     "description": "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."
    },
    "advertisedId": {
     "$ref": "AdvertisedId",
     "description": "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."
    },
    "status": {
     "type": "string",
     "description": "Current status of the beacon. Required.",
     "enum": [
      "STATUS_UNSPECIFIED",
      "ACTIVE",
      "DECOMMISSIONED",
      "INACTIVE"
     ]
    },
    "placeId": {
     "type": "string",
     "description": "The [Google Places API](/places/place-id) 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."
    },
    "latLng": {
     "$ref": "LatLng",
     "description": "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."
    },
    "indoorLevel": {
     "$ref": "IndoorLevel",
     "description": "The indoor level information for this beacon, if known. As returned by the Google Maps API. Optional."
    },
    "expectedStability": {
     "type": "string",
     "description": "Expected location stability. This is set when the beacon is registered or updated, not automatically detected in any way. Optional.",
     "enum": [
      "STABILITY_UNSPECIFIED",
      "STABLE",
      "PORTABLE",
      "MOBILE",
      "ROVING"
     ]
    },
    "description": {
     "type": "string",
     "description": "Free text used to identify and describe the beacon. Maximum length 140 characters. Optional."
    },
    "properties": {
     "type": "object",
     "description": "Properties of the beacon device, for example battery type or firmware version. Optional.",
     "additionalProperties": {
      "type": "string"
     }
    },
    "ephemeralIdRegistration": {
     "$ref": "EphemeralIdRegistration",
     "description": "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."
    },
    "provisioningKey": {
     "type": "string",
     "description": "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.",
     "format": "byte"
    }
   }
  },
  "AdvertisedId": {
   "id": "AdvertisedId",
   "type": "object",
   "description": "Defines a unique identifier of a beacon as broadcast by the device.",
   "properties": {
    "type": {
     "type": "string",
     "description": "Specifies the identifier type. Required.",
     "enum": [
      "TYPE_UNSPECIFIED",
      "EDDYSTONE",
      "IBEACON",
      "ALTBEACON",
      "EDDYSTONE_EID"
     ]
    },
    "id": {
     "type": "string",
     "description": "The actual beacon identifier, as broadcast by the beacon hardware. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) 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.",
     "format": "byte"
    }
   }
  },
  "LatLng": {
   "id": "LatLng",
   "type": "object",
   "description": "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 \u003e 180.0 or (r == 180.0 and q \u003c= -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)",
   "properties": {
    "latitude": {
     "type": "number",
     "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
     "format": "double"
    },
    "longitude": {
     "type": "number",
     "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
     "format": "double"
    }
   }
  },
  "IndoorLevel": {
   "id": "IndoorLevel",
   "type": "object",
   "description": "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.",
   "properties": {
    "name": {
     "type": "string",
     "description": "The name of this level."
    }
   }
  },
  "EphemeralIdRegistration": {
   "id": "EphemeralIdRegistration",
   "type": "object",
   "description": "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 [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.",
   "properties": {
    "beaconEcdhPublicKey": {
     "type": "string",
     "description": "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.",
     "format": "byte"
    },
    "serviceEcdhPublicKey": {
     "type": "string",
     "description": "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.",
     "format": "byte"
    },
    "beaconIdentityKey": {
     "type": "string",
     "description": "The private key of the beacon. If this field is populated, `beacon_ecdh_public_key` and `service_ecdh_public_key` must not be populated.",
     "format": "byte"
    },
    "rotationPeriodExponent": {
     "type": "integer",
     "description": "Indicates the nominal period between each rotation of the beacon's ephemeral ID. \"Nominal\" because the beacon should randomize the actual interval. See [the spec at github](https://github.com/google/eddystone/tree/master/eddystone-eid) 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.",
     "format": "uint32"
    },
    "initialClockValue": {
     "type": "string",
     "description": "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.",
     "format": "uint64"
    },
    "initialEid": {
     "type": "string",
     "description": "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.",
     "format": "byte"
    }
   }
  },
  "Empty": {
   "id": "Empty",
   "type": "object",
   "description": "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 `{}`."
  },
  "ListBeaconsResponse": {
   "id": "ListBeaconsResponse",
   "type": "object",
   "description": "Response that contains list beacon results and pagination help.",
   "properties": {
    "beacons": {
     "type": "array",
     "description": "The beacons that matched the search criteria.",
     "items": {
      "$ref": "Beacon"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "An opaque pagination token that the client may provide in their next request to retrieve the next page of results."
    },
    "totalCount": {
     "type": "string",
     "description": "Estimate of the total number of beacons matched by the query. Higher values may be less accurate.",
     "format": "int64"
    }
   }
  },
  "BeaconAttachment": {
   "id": "BeaconAttachment",
   "type": "object",
   "description": "Project-specific data associated with a beacon.",
   "properties": {
    "attachmentName": {
     "type": "string",
     "description": "Resource name of this attachment. Attachment names have the format: beacons/beacon_id/attachments/attachment_id. Leave this empty on creation."
    },
    "namespacedType": {
     "type": "string",
     "description": "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."
    },
    "data": {
     "type": "string",
     "description": "An opaque data container for client-provided data. Must be [base64](http://tools.ietf.org/html/rfc4648#section-4) encoded in HTTP requests, and will be so encoded (with padding) in responses. Required.",
     "format": "byte"
    }
   }
  },
  "ListBeaconAttachmentsResponse": {
   "id": "ListBeaconAttachmentsResponse",
   "type": "object",
   "description": "Response to ListBeaconAttachments that contains the requested attachments.",
   "properties": {
    "attachments": {
     "type": "array",
     "description": "The attachments that corresponded to the request params.",
     "items": {
      "$ref": "BeaconAttachment"
     }
    }
   }
  },
  "DeleteAttachmentsResponse": {
   "id": "DeleteAttachmentsResponse",
   "type": "object",
   "description": "Response for a request to delete attachments.",
   "properties": {
    "numDeleted": {
     "type": "integer",
     "description": "The number of attachments that were deleted.",
     "format": "int32"
    }
   }
  },
  "ListNamespacesResponse": {
   "id": "ListNamespacesResponse",
   "type": "object",
   "description": "Response to ListNamespacesRequest that contains all the project's namespaces.",
   "properties": {
    "namespaces": {
     "type": "array",
     "description": "The attachments that corresponded to the request params.",
     "items": {
      "$ref": "Namespace"
     }
    }
   }
  },
  "Namespace": {
   "id": "Namespace",
   "type": "object",
   "description": "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.",
   "properties": {
    "namespaceName": {
     "type": "string",
     "description": "Resource name of this namespace. Namespaces names have the format: namespaces/namespace."
    },
    "servingVisibility": {
     "type": "string",
     "description": "Specifies what clients may receive attachments under this namespace via `beaconinfo.getforobserved`.",
     "enum": [
      "VISIBILITY_UNSPECIFIED",
      "UNLISTED",
      "PUBLIC"
     ]
    }
   }
  },
  "EphemeralIdRegistrationParams": {
   "id": "EphemeralIdRegistrationParams",
   "type": "object",
   "description": "Information a client needs to provision and register beacons that broadcast Eddystone-EID format beacon IDs, using Elliptic curve Diffie-Hellman key exchange. See [the Eddystone specification](https://github.com/google/eddystone/tree/master/eddystone-eid) at GitHub.",
   "properties": {
    "serviceEcdhPublicKey": {
     "type": "string",
     "description": "The beacon service's public key for use by a beacon to derive its Identity Key using Elliptic Curve Diffie-Hellman key exchange.",
     "format": "byte"
    },
    "minRotationPeriodExponent": {
     "type": "integer",
     "description": "Indicates the minimum rotation period supported by the service. See EddystoneEidRegistration.rotation_period_exponent",
     "format": "uint32"
    },
    "maxRotationPeriodExponent": {
     "type": "integer",
     "description": "Indicates the maximum rotation period supported by the service. See EddystoneEidRegistration.rotation_period_exponent",
     "format": "uint32"
    }
   }
  },
  "ListDiagnosticsResponse": {
   "id": "ListDiagnosticsResponse",
   "type": "object",
   "description": "Response that contains the requested diagnostics.",
   "properties": {
    "diagnostics": {
     "type": "array",
     "description": "The diagnostics matching the given request.",
     "items": {
      "$ref": "Diagnostics"
     }
    },
    "nextPageToken": {
     "type": "string",
     "description": "Token that can be used for pagination. Returned only if the request matches more beacons than can be returned in this response."
    }
   }
  },
  "Diagnostics": {
   "id": "Diagnostics",
   "type": "object",
   "description": "Diagnostics for a single beacon.",
   "properties": {
    "beaconName": {
     "type": "string",
     "description": "Resource name of the beacon. For Eddystone-EID beacons, this may be the beacon's current EID, or the beacon's \"stable\" Eddystone-UID."
    },
    "estimatedLowBatteryDate": {
     "$ref": "Date",
     "description": "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."
    },
    "alerts": {
     "type": "array",
     "description": "An unordered list of Alerts that the beacon has.",
     "enumDescriptions": [
      "Invalid value. Should never appear.",
      "The beacon has been reported in a location different than its registered location. This may indicate that the beacon has been moved. This signal is not 100% accurate, but indicates that further investigation is worth while.",
      "The battery level for the beacon is low enough that, given the beacon's current use, its battery will run out with in the next 60 days. This indicates that the battery should be replaced soon."
     ],
     "items": {
      "type": "string",
      "enum": [
       "ALERT_UNSPECIFIED",
       "WRONG_LOCATION",
       "LOW_BATTERY"
      ]
     }
    }
   }
  },
  "Date": {
   "id": "Date",
   "type": "object",
   "description": "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`.",
   "properties": {
    "year": {
     "type": "integer",
     "description": "Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.",
     "format": "int32"
    },
    "month": {
     "type": "integer",
     "description": "Month of year. Must be from 1 to 12.",
     "format": "int32"
    },
    "day": {
     "type": "integer",
     "description": "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.",
     "format": "int32"
    }
   }
  },
  "GetInfoForObservedBeaconsRequest": {
   "id": "GetInfoForObservedBeaconsRequest",
   "type": "object",
   "description": "Request for beacon and attachment information about beacons that a mobile client has encountered \"in the wild\".",
   "properties": {
    "observations": {
     "type": "array",
     "description": "The beacons that the client has encountered. At least one must be given.",
     "items": {
      "$ref": "Observation"
     }
    },
    "namespacedTypes": {
     "type": "array",
     "description": "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.",
     "items": {
      "type": "string"
     }
    }
   }
  },
  "Observation": {
   "id": "Observation",
   "type": "object",
   "description": "Represents one beacon observed once.",
   "properties": {
    "advertisedId": {
     "$ref": "AdvertisedId",
     "description": "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."
    },
    "telemetry": {
     "type": "string",
     "description": "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.",
     "format": "byte"
    },
    "timestampMs": {
     "type": "string",
     "description": "Time when the beacon was observed."
    }
   }
  },
  "GetInfoForObservedBeaconsResponse": {
   "id": "GetInfoForObservedBeaconsResponse",
   "type": "object",
   "description": "Information about the requested beacons, optionally including attachment data.",
   "properties": {
    "beacons": {
     "type": "array",
     "description": "Public information about beacons. May be empty if the request matched no beacons.",
     "items": {
      "$ref": "BeaconInfo"
     }
    }
   }
  },
  "BeaconInfo": {
   "id": "BeaconInfo",
   "type": "object",
   "description": "A subset of beacon information served via the `beaconinfo.getforobserved` method, which you call when users of your app encounter your beacons.",
   "properties": {
    "advertisedId": {
     "$ref": "AdvertisedId",
     "description": "The ID advertised by the beacon."
    },
    "beaconName": {
     "type": "string",
     "description": "The name under which the beacon is registered."
    },
    "attachments": {
     "type": "array",
     "description": "Attachments matching the type(s) requested. May be empty if no attachment types were requested, or if none matched.",
     "items": {
      "$ref": "AttachmentInfo"
     }
    }
   }
  },
  "AttachmentInfo": {
   "id": "AttachmentInfo",
   "type": "object",
   "description": "A subset of attachment information served via the `beaconinfo.getforobserved` method, used when your users encounter your beacons.",
   "properties": {
    "namespacedType": {
     "type": "string",
     "description": "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"
    },
    "data": {
     "type": "string",
     "description": "An opaque data container for client-provided data.",
     "format": "byte"
    }
   }
  }
 },
 "resources": {
  "beacons": {
   "methods": {
    "register": {
     "id": "proximitybeacon.beacons.register",
     "path": "v1beta1/beacons:register",
     "httpMethod": "POST",
     "description": "Registers a previously unregistered beacon given its `advertisedId`. These IDs are unique within the system. An ID can be registered only once. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.",
     "parameters": {
      "projectId": {
       "type": "string",
       "description": "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.",
       "location": "query"
      }
     },
     "request": {
      "$ref": "Beacon"
     },
     "response": {
      "$ref": "Beacon"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    },
    "decommission": {
     "id": "proximitybeacon.beacons.decommission",
     "path": "v1beta1/{+beaconName}:decommission",
     "httpMethod": "POST",
     "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.",
     "parameters": {
      "beaconName": {
       "type": "string",
       "description": "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.",
       "required": true,
       "pattern": "^beacons/[^/]*$",
       "location": "path"
      },
      "projectId": {
       "type": "string",
       "description": "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.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "beaconName"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    },
    "get": {
     "id": "proximitybeacon.beacons.get",
     "path": "v1beta1/{+beaconName}",
     "httpMethod": "GET",
     "description": "Returns detailed information about the specified beacon. Authenticate using an [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) 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.",
     "parameters": {
      "beaconName": {
       "type": "string",
       "description": "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.",
       "required": true,
       "pattern": "^beacons/[^/]*$",
       "location": "path"
      },
      "projectId": {
       "type": "string",
       "description": "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.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "beaconName"
     ],
     "response": {
      "$ref": "Beacon"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    },
    "list": {
     "id": "proximitybeacon.beacons.list",
     "path": "v1beta1/beacons",
     "httpMethod": "GET",
     "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.",
     "parameters": {
      "q": {
       "type": "string",
       "description": "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 [Google Places API](/places/place-id). 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\u003e=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`",
       "location": "query"
      },
      "pageToken": {
       "type": "string",
       "description": "A pagination token obtained from a previous request to list beacons.",
       "location": "query"
      },
      "pageSize": {
       "type": "integer",
       "description": "The maximum number of records to return for this request, up to a server-defined upper limit.",
       "format": "int32",
       "location": "query"
      },
      "projectId": {
       "type": "string",
       "description": "The project id to list beacons under. If not present then the project credential that made the request is used as the project. Optional.",
       "location": "query"
      }
     },
     "response": {
      "$ref": "ListBeaconsResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    },
    "update": {
     "id": "proximitybeacon.beacons.update",
     "path": "v1beta1/{+beaconName}",
     "httpMethod": "PUT",
     "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.",
     "parameters": {
      "beaconName": {
       "type": "string",
       "description": "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.",
       "required": true,
       "pattern": "^beacons/[^/]*$",
       "location": "path"
      },
      "projectId": {
       "type": "string",
       "description": "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.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "beaconName"
     ],
     "request": {
      "$ref": "Beacon"
     },
     "response": {
      "$ref": "Beacon"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    },
    "activate": {
     "id": "proximitybeacon.beacons.activate",
     "path": "v1beta1/{+beaconName}:activate",
     "httpMethod": "POST",
     "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.",
     "parameters": {
      "beaconName": {
       "type": "string",
       "description": "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.",
       "required": true,
       "pattern": "^beacons/[^/]*$",
       "location": "path"
      },
      "projectId": {
       "type": "string",
       "description": "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.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "beaconName"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    },
    "deactivate": {
     "id": "proximitybeacon.beacons.deactivate",
     "path": "v1beta1/{+beaconName}:deactivate",
     "httpMethod": "POST",
     "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.",
     "parameters": {
      "beaconName": {
       "type": "string",
       "description": "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.",
       "required": true,
       "pattern": "^beacons/[^/]*$",
       "location": "path"
      },
      "projectId": {
       "type": "string",
       "description": "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.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "beaconName"
     ],
     "response": {
      "$ref": "Empty"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    }
   },
   "resources": {
    "attachments": {
     "methods": {
      "create": {
       "id": "proximitybeacon.beacons.attachments.create",
       "path": "v1beta1/{+beaconName}/attachments",
       "httpMethod": "POST",
       "description": "Associates the given data with the specified beacon. Attachment data must contain two parts:  \n- A namespaced type. \n- 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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.",
       "parameters": {
        "beaconName": {
         "type": "string",
         "description": "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.",
         "required": true,
         "pattern": "^beacons/[^/]*$",
         "location": "path"
        },
        "projectId": {
         "type": "string",
         "description": "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.",
         "location": "query"
        }
       },
       "parameterOrder": [
        "beaconName"
       ],
       "request": {
        "$ref": "BeaconAttachment"
       },
       "response": {
        "$ref": "BeaconAttachment"
       },
       "scopes": [
        "https://www.googleapis.com/auth/userlocation.beacon.registry"
       ]
      },
      "list": {
       "id": "proximitybeacon.beacons.attachments.list",
       "path": "v1beta1/{+beaconName}/attachments",
       "httpMethod": "GET",
       "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.",
       "parameters": {
        "beaconName": {
         "type": "string",
         "description": "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.",
         "required": true,
         "pattern": "^beacons/[^/]*$",
         "location": "path"
        },
        "namespacedType": {
         "type": "string",
         "description": "Specifies the namespace and type of attachment to include in response in namespace/type format. Accepts `*/*` to specify \"all types in all namespaces\".",
         "location": "query"
        },
        "projectId": {
         "type": "string",
         "description": "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.",
         "location": "query"
        }
       },
       "parameterOrder": [
        "beaconName"
       ],
       "response": {
        "$ref": "ListBeaconAttachmentsResponse"
       },
       "scopes": [
        "https://www.googleapis.com/auth/userlocation.beacon.registry"
       ]
      },
      "delete": {
       "id": "proximitybeacon.beacons.attachments.delete",
       "path": "v1beta1/{+attachmentName}",
       "httpMethod": "DELETE",
       "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.",
       "parameters": {
        "attachmentName": {
         "type": "string",
         "description": "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.",
         "required": true,
         "pattern": "^beacons/[^/]*/attachments/[^/]*$",
         "location": "path"
        },
        "projectId": {
         "type": "string",
         "description": "The project id of the attachment to delete. If not provided, the project that is making the request is used. Optional.",
         "location": "query"
        }
       },
       "parameterOrder": [
        "attachmentName"
       ],
       "response": {
        "$ref": "Empty"
       },
       "scopes": [
        "https://www.googleapis.com/auth/userlocation.beacon.registry"
       ]
      },
      "batchDelete": {
       "id": "proximitybeacon.beacons.attachments.batchDelete",
       "path": "v1beta1/{+beaconName}/attachments:batchDelete",
       "httpMethod": "POST",
       "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **Is owner** or **Can edit** permissions in the Google Developers Console project.",
       "parameters": {
        "beaconName": {
         "type": "string",
         "description": "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.",
         "required": true,
         "pattern": "^beacons/[^/]*$",
         "location": "path"
        },
        "namespacedType": {
         "type": "string",
         "description": "Specifies the namespace and type of attachments to delete in `namespace/type` format. Accepts `*/*` to specify \"all types in all namespaces\". Optional.",
         "location": "query"
        },
        "projectId": {
         "type": "string",
         "description": "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.",
         "location": "query"
        }
       },
       "parameterOrder": [
        "beaconName"
       ],
       "response": {
        "$ref": "DeleteAttachmentsResponse"
       },
       "scopes": [
        "https://www.googleapis.com/auth/userlocation.beacon.registry"
       ]
      }
     }
    },
    "diagnostics": {
     "methods": {
      "list": {
       "id": "proximitybeacon.beacons.diagnostics.list",
       "path": "v1beta1/{+beaconName}/diagnostics",
       "httpMethod": "GET",
       "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.",
       "parameters": {
        "beaconName": {
         "type": "string",
         "description": "Beacon that the diagnostics are for.",
         "required": true,
         "pattern": "^beacons/[^/]*$",
         "location": "path"
        },
        "pageSize": {
         "type": "integer",
         "description": "Specifies the maximum number of results to return. Defaults to 10. Maximum 1000. Optional.",
         "format": "int32",
         "location": "query"
        },
        "pageToken": {
         "type": "string",
         "description": "Requests results that occur after the `page_token`, obtained from the response to a previous request. Optional.",
         "location": "query"
        },
        "alertFilter": {
         "type": "string",
         "description": "Requests only beacons that have the given alert. For example, to find beacons that have low batteries use `alert_filter=LOW_BATTERY`.",
         "enum": [
          "ALERT_UNSPECIFIED",
          "WRONG_LOCATION",
          "LOW_BATTERY"
         ],
         "location": "query"
        },
        "projectId": {
         "type": "string",
         "description": "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.",
         "location": "query"
        }
       },
       "parameterOrder": [
        "beaconName"
       ],
       "response": {
        "$ref": "ListDiagnosticsResponse"
       },
       "scopes": [
        "https://www.googleapis.com/auth/userlocation.beacon.registry"
       ]
      }
     }
    }
   }
  },
  "namespaces": {
   "methods": {
    "list": {
     "id": "proximitybeacon.namespaces.list",
     "path": "v1beta1/namespaces",
     "httpMethod": "GET",
     "description": "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 [OAuth access token](https://developers.google.com/identity/protocols/OAuth2) from a signed-in user with **viewer**, **Is owner** or **Can edit** permissions in the Google Developers Console project.",
     "parameters": {
      "projectId": {
       "type": "string",
       "description": "The project id to list namespaces under. Optional.",
       "location": "query"
      }
     },
     "response": {
      "$ref": "ListNamespacesResponse"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    },
    "update": {
     "id": "proximitybeacon.namespaces.update",
     "path": "v1beta1/{+namespaceName}",
     "httpMethod": "PUT",
     "description": "Updates the information about the specified namespace. Only the namespace visibility can be updated.",
     "parameters": {
      "namespaceName": {
       "type": "string",
       "description": "Resource name of this namespace. Namespaces names have the format: namespaces/namespace.",
       "required": true,
       "pattern": "^namespaces/[^/]*$",
       "location": "path"
      },
      "projectId": {
       "type": "string",
       "description": "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.",
       "location": "query"
      }
     },
     "parameterOrder": [
      "namespaceName"
     ],
     "request": {
      "$ref": "Namespace"
     },
     "response": {
      "$ref": "Namespace"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    }
   }
  },
  "v1beta1": {
   "methods": {
    "getEidparams": {
     "id": "proximitybeacon.getEidparams",
     "path": "v1beta1/eidparams",
     "httpMethod": "GET",
     "description": "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.",
     "response": {
      "$ref": "EphemeralIdRegistrationParams"
     },
     "scopes": [
      "https://www.googleapis.com/auth/userlocation.beacon.registry"
     ]
    }
   }
  },
  "beaconinfo": {
   "methods": {
    "getforobserved": {
     "id": "proximitybeacon.beaconinfo.getforobserved",
     "path": "v1beta1/beaconinfo:getforobserved",
     "httpMethod": "POST",
     "description": "Given one or more beacon observations, returns any beacon information and attachments accessible to your application. Authorize by using the [API key](https://developers.google.com/beacons/proximity/how-tos/authorizing#APIKey) for the application.",
     "request": {
      "$ref": "GetInfoForObservedBeaconsRequest"
     },
     "response": {
      "$ref": "GetInfoForObservedBeaconsResponse"
     }
    }
   }
  }
 }
}
