{"note":"OpenAPI conversion -- returning structured metadata","name":"intellifi-nl","description":"Brain Web API","version":"2.27.2+0.gd5006bf.dirty","base_url":"https://brain.intellifi.cloud/api","endpoints":77,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Brain Web API\n@base https://brain.intellifi.cloud/api\n@version 2.27.2+0.gd5006bf.dirty\n@auth ApiKey key in query | ApiKey X-Api-Key in header | ApiKey brain.sid in cookie\n@endpoints 77\n@hint download_for_search\n@toc authinfo(1), blobs(6), events(2), items(5), keys(5), kvpairs(5), locations(5), locationrules(5), presences(2), services(3), sets(16), spots(7), spotsets(4), subscriptions(6), users(5)\n\n@group authinfo\n@endpoint GET /authinfo\n@desc Authentication information\n@returns(200) {api_key_id: str, auth_method: str, authenticated: bool, permissions: map{mutate: bool}, url: str, user_id: str} # A JSON object containing the authentication information\n\n@endgroup\n\n@group blobs\n@endpoint GET /blobs\n@desc Get all binary large objects (blob)\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, hash: str # Filter based on the hash of the blob., blob_key: str # Filter based on the unique blob_key, content_type: str # Filter based on the content type of the blob., filename: str # Filter based on the filename of the blob., time_last_accessed: str # Filter based on the last time the blob was accessed}\n@returns(200) A JSON object containing a list of blobs\n\n@endpoint POST /blobs\n@desc Create binary large object (blob) metadata\n@optional {content_type: str # Media type of the resource. Automatically detected when not given in a POST., download_url: str # Url to the individual resource., filename: str # Filename of the blob, hash: str # Hash of the blob, id: str # Unique identifier for resource., blob_key: str # Unique key to the blob, time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_last_accessed: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was last accessed., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., upload_url: str # Url to the individual resource., url: str # Url to the individual resource.}\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /blobs/{id}\n@desc Get binary large object (blob)\n@required {id: str # Unique identifier}\n@returns(200) {content_type: str, download_url: str, filename: str, hash: str, id: str, blob_key: str, time_created: str(dateTime), time_last_accessed: str(dateTime), time_updated: str(dateTime), upload_url: str, url: str} # A JSON object containing the blob\n\n@endpoint DELETE /blobs/{id}\n@desc Delete binary large object (blob)\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endpoint GET /blobs/{id}/download/{filename}\n@desc Download a binary large object (blob)\n@required {id: str # Unique identifier, filename: str # Filename of the blob.}\n@returns(200) The stored binary blob\n\n@endpoint POST /blobs/{id}/upload\n@desc Create binary large object (blob)\n@required {id: str # Unique identifier}\n@returns(200) Upload was successful\n\n@endgroup\n\n@group events\n@endpoint GET /events\n@desc Get all events\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., topic.resource_type: str # Filter on the topic resource type, topic.action: str # Filter on the topic action, topic.resource: str # Filter on the topic resource id, time_event: str(dateTime) # Filter on the time the event was generated on the device., time_expire: str(dateTime) # Filter on the time the event will expire.}\n@returns(200) A JSON object containing a list of events\n\n@endpoint GET /events/{id}\n@desc Get event\n@required {id: str # Unique identifier}\n@returns(200) {id: str, payload: any, time_created: str(dateTime), time_event: str(dateTime), time_expire: str(dateTime), topic: map{action: str, arguments: any, resource_id: str, resource_type: str, resource_url: str}, url: str} # A JSON object containing the event\n\n@endgroup\n\n@group items\n@endpoint GET /items\n@desc Get all items\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., after_code: str # Limits directly on `code_hex`. Marks the start of a range, optionally use `before_code` to set the end. Result output excludes the given `code_hex` value., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., before_code: str # Limits directly on `code_hex`. Marks the end of a range, optionally use `after_code` to set the start. Result output excludes the given `code_hex` value., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., from_code: str # Limits on `code_hex`. Marks the start of a range, optionally use `until_code` to set the end. Result output includes the given `code_hex` value., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., until_code: str # Limits on `code_hex`. Marks the end of a range, optionally use `from_code` to set the start. Result output includes the given `code_hex` value., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, code_hex: str # Filter based on the hexadecimal string representation of the item. Supports wildcards: `*`., is_present: bool # Only show items which are present of not., label: str # Filter based on the label value. Supports wildcards: `*`, location: str # Filter based on the location, metadata: str # Filter based on metadata. Does a partial match on any value in the metadata object. It is also possible to do an exact/wildcard match on specific properties, e.g. `metadata.foo=bar`, move_count: int # Filter based on move count, protocol: str # Filter based on the detected protocol of an item., sets: str # Filter based on the set the resource is in., technology: str # Filter based on the detected technology of an item., text: str # Filter based on a full text search. Searched properties depend on the resource type. Matches on any of the given words. Supports quote (exact words) and minus (exclude) operators., time_last_present: str # Filter based on the time last present, time_moved: str(dateTime) # Filter based on time last moved, type: str # Filter based on the type of an item.}\n@returns(200) A JSON object containing a list of items\n\n@endpoint POST /items\n@desc Create item\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /items/{id}\n@desc Get item\n@required {id: str # Unique identifier}\n@returns(200) A JSON object containing the items\n\n@endpoint PUT /items/{id}\n@desc Update existing item\n@required {id: str # Unique identifier}\n@optional {config_request: map # Object containing the new configuration. This will be applied automatically when the values are valid., custom: any # The `custom` value is only for your custom references, you may use it to save additional attributes. The custom value is not used in any other place. This field may contain any datatype that you like: null (default), string, integer, boolean, object etc..., label: str # A name or a label for this resource. This is used in the user interface, may be empty., location_request: str # Instruction for the location engine to forcibly localize the item at the specified location id as soon as possible. Cleared automatically., metadata: map # Object of searchable metadata for this resource. Can be freely used to store metadata properties.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint DELETE /items/{id}\n@desc Delete item\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endgroup\n\n@group keys\n@endpoint GET /keys\n@desc Get all keys\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, secret: str # Filter on the secret token., label: str # Filter on the label., is_read_only: bool # Filter on read only status.}\n@returns(200) A JSON object containing a list of keys\n\n@endpoint POST /keys\n@desc Create key\n@optional {id: str # Unique identifier for resource., is_read_only: bool # Whether or not this key can only read and not write., label: str # Custom label for this API key., secret: str # The secret token for authentication., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., url: str # Url to the individual resource.}\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /keys/{id}\n@desc Get key\n@required {id: str # Unique identifier}\n@returns(200) {id: str, is_read_only: bool, label: str, secret: str, time_created: str(dateTime), time_updated: str(dateTime), url: str} # A JSON object containing the key\n\n@endpoint PUT /keys/{id}\n@desc Update existing key\n@required {id: str # Unique identifier}\n@optional {id: str # Unique identifier for resource., is_read_only: bool # Whether or not this key can only read and not write., label: str # Custom label for this API key., secret: str # The secret token for authentication., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., url: str # Url to the individual resource.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint DELETE /keys/{id}\n@desc Delete key\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endgroup\n\n@group kvpairs\n@endpoint GET /kvpairs\n@desc Get all key-value pairs\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, kv_key: str # Filter on the key-value pair key value.}\n@returns(200) A JSON object containing a list of key-value pairs\n\n@endpoint POST /kvpairs\n@desc Create key-value pair\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /kvpairs/{id}\n@desc Get key-value pair\n@required {id: str # Unique identifier}\n@returns(200) A JSON object containing the subscription\n\n@endpoint PUT /kvpairs/{id}\n@desc Update existing Key-value pair\n@required {id: str # Unique identifier}\n@optional {kv_value: any # The value of the key value pair.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint DELETE /kvpairs/{id}\n@desc Delete key-value pair\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endgroup\n\n@group locations\n@endpoint GET /locations\n@desc Get all locations\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, label: str # Filter based on the label value. Supports wildcards: `*`, metadata: str # Filter based on metadata. Does a partial match on any value in the metadata object. It is also possible to do an exact/wildcard match on specific properties, e.g. `metadata.foo=bar`, text: str # Filter based on a full text search. Searched properties depend on the resource type. Matches on any of the given words. Supports quote (exact words) and minus (exclude) operators.}\n@returns(200) A JSON object containing a list of locations\n\n@endpoint POST /locations\n@desc Create location\n@optional {custom: any # The `custom` value is only for your custom references, you may use it to save additional attributes. The custom value is not used in any other place. This field may contain any datatype that you like: null (default), string, integer, boolean, object etc..., id: str # Unique identifier for resource., label: str # A name or a label for this resource. This is used in the user interface, may be empty., metadata: map # Object of searchable metadata for this resource. Can be freely used to store metadata properties., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., url: str # Url to the individual resource.}\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /locations/{id}\n@desc Get location\n@required {id: str # Unique identifier}\n@returns(200) {custom: any?, id: str, label: str, metadata: map, time_created: str(dateTime), time_updated: str(dateTime), url: str} # A JSON object containing the location\n\n@endpoint PUT /locations/{id}\n@desc Update existing location\n@required {id: str # Unique identifier}\n@optional {custom: any # The `custom` value is only for your custom references, you may use it to save additional attributes. The custom value is not used in any other place. This field may contain any datatype that you like: null (default), string, integer, boolean, object etc..., id: str # Unique identifier for resource., label: str # A name or a label for this resource. This is used in the user interface, may be empty., metadata: map # Object of searchable metadata for this resource. Can be freely used to store metadata properties., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., url: str # Url to the individual resource.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint DELETE /locations/{id}\n@desc Delete location\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endgroup\n\n@group locationrules\n@endpoint GET /locationrules\n@desc Get all location rules\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, label: str # Filter based on the label value. Supports wildcards: `*`, type: str # Filter based on the type of location rule., enabled: bool # Filter based on the `enabled` property.}\n@returns(200) A JSON object containing a list of location rules\n\n@endpoint POST /locationrules\n@desc Create location rule\n@optional {conditions: map{from_location: str, to_location: str} # Scope of this rule, e.g. moves at or away from a specific location or towards a specific location. The `from_location` is mandatory. The `to_location` is either mandatory, optional or not allowed depending on rule type., enabled: bool # Whether this rule should be in effect (`true`) or on hold (`false`)., label: str # A name or a label for this resource. This is used in the user interface, may be empty., parameters: map # Parameters for this rule; depends on the rule type. Refer to the rule type specification for details., type: str(allow/disallow/disappeared/debounce) # The type of location rule to be applied. Allow: items at `conditions.from_location` can only move to `conditions.to_location` and locations allowed in other `allow` rules (destination whitelist). Disallow: items at `conditions.from_location` cannot be moved to `conditions.to_location` and locations disallowed in other `disallow` rules (destination blacklist). Disappeared: items disappearing at `conditions.from_location` will be moved to `parameters.location` after `parameters.time_s` seconds. Debounce: items moves from `conditions.from_location` (and optionally to `conditions.to_location`) will be debounced with a period of `parameters.time_s` seconds, for a maximum of `parameters.max_periods` periods.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /locationrules/{id}\n@desc Get location rule\n@required {id: str # Unique identifier}\n@returns(200) {conditions: any, enabled: bool, id: str, label: str, parameters: map, time_created: str(dateTime), time_updated: str(dateTime), type: str, url: str} # A JSON object containing the location rule\n\n@endpoint PUT /locationrules/{id}\n@desc Update existing location rule\n@required {id: str # Unique identifier}\n@optional {conditions: map{from_location: str, to_location: str} # Scope of this rule, e.g. moves at or away from a specific location or towards a specific location. The `from_location` is mandatory. The `to_location` is either mandatory, optional or not allowed depending on rule type., enabled: bool # Whether this rule should be in effect (`true`) or on hold (`false`)., label: str # A name or a label for this resource. This is used in the user interface, may be empty., parameters: map # Parameters for this rule; depends on the rule type. Refer to the rule type specification for details., type: str(allow/disallow/disappeared/debounce) # The type of location rule to be applied. Allow: items at `conditions.from_location` can only move to `conditions.to_location` and locations allowed in other `allow` rules (destination whitelist). Disallow: items at `conditions.from_location` cannot be moved to `conditions.to_location` and locations disallowed in other `disallow` rules (destination blacklist). Disappeared: items disappearing at `conditions.from_location` will be moved to `parameters.location` after `parameters.time_s` seconds. Debounce: items moves from `conditions.from_location` (and optionally to `conditions.to_location`) will be debounced with a period of `parameters.time_s` seconds, for a maximum of `parameters.max_periods` periods.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint DELETE /locationrules/{id}\n@desc Delete location rule\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endgroup\n\n@group presences\n@endpoint GET /presences\n@desc Get all presences\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, item: str # Filter based on the item, location: str # Filter based on the location, proximity: str # Filter based on the proximity., technology: str # Filter based on the detected technology of an item.}\n@returns(200) A JSON object containing a list of presences\n\n@endpoint GET /presences/{id}\n@desc Get presence\n@required {id: str # Unique identifier}\n@returns(200) {id: str, item: any, item_id: str, item_url: str, location: map{custom: any?, id: str, label: str, metadata: map, time_created: str(dateTime), time_updated: str(dateTime), url: str}, location_id: str, location_url: str, proximity: str, technology: str, time_created: str(dateTime), time_updated: str(dateTime), url: str} # A JSON object containing the presence\n\n@endgroup\n\n@group services\n@endpoint GET /services\n@desc Get all services\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, name: str # Filter based on the name of the resource. Supports wildcards: `*`}\n@returns(200) A JSON object containing a list of services\n\n@endpoint GET /services/{id}\n@desc Get service\n@required {id: str # Unique identifier}\n@returns(200) {boot_count: int, config: map, config_request: map, id: str, name: str, restart_request: bool, time_created: str(dateTime), time_updated: str(dateTime), url: str, version: str} # A JSON object containing the service\n\n@endpoint PUT /services/{id}\n@desc Update existing service\n@required {id: str # Unique identifier}\n@optional {boot_count: int # Is increased with 1 when the service starts. Is never cleared (unless the database is adjusted)., config: map # JSON object with possible settings. Refer to individual service documentation for a good overview., config_request: map # Object containing the new configuration. This will be applied automatically when the values are valid., id: str # Unique identifier for resource., name: str # Human readable name for the resource., restart_request: bool # Set this to `true` to send a reset request for the specific resource., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., url: str # Url to the individual resource., version: str # Current running version of the resource.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endgroup\n\n@group sets\n@endpoint GET /sets/itemlists\n@desc Get all item lists\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, label: str # Filter based on the label value. Supports wildcards: `*`, metadata: str # Filter based on metadata. Does a partial match on any value in the metadata object. It is also possible to do an exact/wildcard match on specific properties, e.g. `metadata.foo=bar`, text: str # Filter based on a full text search. Searched properties depend on the resource type. Matches on any of the given words. Supports quote (exact words) and minus (exclude) operators., total: int # Filter based on the total amount of items in the list, sha1: str # The sha1 checksum of the list. This will change when the list is mutated.}\n@returns(200) A JSON object containing a list of item lists\n\n@endpoint POST /sets/itemlists\n@desc Create item list\n@optional {custom: any # The `custom` value is only for your custom references, you may use it to save additional attributes. The custom value is not used in any other place. This field may contain any datatype that you like: null (default), string, integer, boolean, object etc..., id: str # Unique identifier for resource., label: str # A name or a label for this resource. This is used in the user interface, may be empty., list: str # Url to the individual resource., metadata: map # Object of searchable metadata for this resource. Can be freely used to store metadata properties., sha1: str # The sha1 checksum of the list. This will change when the list is mutated., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., total: int # Total amount of items in this set}\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /sets/itemlists/{id}\n@desc Get item list\n@required {id: str # Unique identifier}\n@returns(200) {custom: any?, id: str, label: str, list: str, metadata: map, sha1: str, time_created: str(dateTime), time_updated: str(dateTime), total: int} # A JSON object containing the item list\n\n@endpoint PUT /sets/itemlists/{id}\n@desc Update existing item list\n@required {id: str # Unique identifier}\n@optional {custom: any # The `custom` value is only for your custom references, you may use it to save additional attributes. The custom value is not used in any other place. This field may contain any datatype that you like: null (default), string, integer, boolean, object etc..., id: str # Unique identifier for resource., label: str # A name or a label for this resource. This is used in the user interface, may be empty., list: str # Url to the individual resource., metadata: map # Object of searchable metadata for this resource. Can be freely used to store metadata properties., sha1: str # The sha1 checksum of the list. This will change when the list is mutated., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., total: int # Total amount of items in this set}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint DELETE /sets/itemlists/{id}\n@desc Delete item list\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endpoint GET /sets/itemlists/{id}/ids\n@desc Get item ids for this list\n@required {id: str # Unique identifier}\n@returns(200) An array object containing the item ids for this list\n\n@endpoint POST /sets/itemlists/{id}/ids\n@desc Add items to an existing list\n@required {id: str # Unique identifier}\n@returns(200) {status: int, total: int} # A JSON object containing the status and the total amount of items in the newly added list\n\n@endpoint DELETE /sets/itemlists/{id}/ids/{itemId}\n@desc Delete item from list\n@required {id: str # Unique identifier, itemId: str # Item ID.}\n@returns(200) {status: int, total: int} # A JSON object containing the status and the total amount of items in the list\n\n@endpoint GET /sets/spotlists\n@desc Get all spot lists\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, label: str # Filter based on the label value. Supports wildcards: `*`, metadata: str # Filter based on metadata. Does a partial match on any value in the metadata object. It is also possible to do an exact/wildcard match on specific properties, e.g. `metadata.foo=bar`, text: str # Filter based on a full text search. Searched properties depend on the resource type. Matches on any of the given words. Supports quote (exact words) and minus (exclude) operators., total: int # Filter based on the total amount of spots in the list}\n@returns(200) A JSON object containing a list of spot lists\n\n@endpoint POST /sets/spotlists\n@desc Create spot list\n@optional {custom: any # The `custom` value is only for your custom references, you may use it to save additional attributes. The custom value is not used in any other place. This field may contain any datatype that you like: null (default), string, integer, boolean, object etc..., id: str # Unique identifier for resource., label: str # A name or a label for this resource. This is used in the user interface, may be empty., list: str # Url to the individual resource., metadata: map # Object of searchable metadata for this resource. Can be freely used to store metadata properties., sha1: str # The sha1 checksum of the list. This will change when the list is mutated., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., total: int # Total amount of items in this set}\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /sets/spotlists/{id}\n@desc Info for a specific spot list\n@required {id: str # Unique identifier}\n@returns(200) {custom: any?, id: str, label: str, list: str, metadata: map, time_created: str(dateTime), time_updated: str(dateTime), total: int} # A JSON object containing the spot list\n\n@endpoint PUT /sets/spotlists/{id}\n@desc Update existing spot list\n@required {id: str # Unique identifier}\n@optional {custom: any # The `custom` value is only for your custom references, you may use it to save additional attributes. The custom value is not used in any other place. This field may contain any datatype that you like: null (default), string, integer, boolean, object etc..., id: str # Unique identifier for resource., label: str # A name or a label for this resource. This is used in the user interface, may be empty., list: str # Url to the individual resource., metadata: map # Object of searchable metadata for this resource. Can be freely used to store metadata properties., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., total: int # Total amount of spots in this set}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint DELETE /sets/spotlists/{id}\n@desc Delete spot list\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endpoint GET /sets/spotlists/{id}/ids\n@desc Get spot ids for this list\n@required {id: str # Unique identifier}\n@returns(200) An array object containing the item ids for this list\n\n@endpoint POST /sets/spotlists/{id}/ids\n@desc Add spots to an existing list\n@required {id: str # Unique identifier}\n@returns(200) {status: int, total: int} # A JSON object containing the status and the total amount of items in the newly added list\n\n@endpoint DELETE /sets/spotlists/{id}/ids/{itemId}\n@desc Delete spot from list\n@required {id: str # Unique identifier, itemId: str # Item ID.}\n@returns(200) {status: int, total: int} # A JSON object containing the status and the total amount of items in the list\n\n@endgroup\n\n@group spots\n@endpoint GET /spots\n@desc Get all spots\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, is_online: bool # Filter based on the online status., request_counter: int # Filter based on the amount of request made, serial_number: int # Filter based on the serial number.}\n@returns(200) A JSON object containing a list of spots\n\n@endpoint GET /spots/{id}\n@desc Get spot\n@required {id: str # Unique identifier}\n@returns(200) A JSON object containing the spot\n\n@endpoint PUT /spots/{id}\n@desc Update existing spot\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint GET /spots/{id}/sets\n@desc Get spotsets\n@required {id: str # Unique identifier}\n@returns(200) A JSON object containing the spotset\n\n@endpoint POST /spots/{id}/sets\n@desc Create spotset\n@required {id: str # Unique identifier}\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint PUT /spots/{id}/sets/{setId}\n@desc Update existing spotset\n@required {id: str # Unique identifier, setId: str # Unique spot set identifier}\n@optional {delete: bool # Request to delete a set. Remove request needs to be synchronized to the device, so it may take some time before the resource is being removed.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint GET /spots/{id}/sets/{setId}\n@desc Get spotset\n@required {id: str # Unique identifier, setId: str # Unique spot set identifier}\n@returns(200) A JSON object containing the spotset\n\n@endgroup\n\n@group spotsets\n@endpoint GET /spotsets\n@desc Get spotsets\n@returns(200) A JSON object containing the spotset\n\n@endpoint POST /spotsets\n@desc Create spotset\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint PUT /spotsets/{id}\n@desc Update existing spotset\n@required {id: str # Unique identifier}\n@optional {delete: bool # Request to delete a set. Remove request needs to be synchronized to the device, so it may take some time before the resource is being removed.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint GET /spotsets/{id}\n@desc Get spotset\n@required {id: str # Unique identifier}\n@returns(200) A JSON object containing the spotset\n\n@endgroup\n\n@group subscriptions\n@endpoint GET /subscriptions\n@desc Get all subscriptions\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, topic_filter: str # Filter on the topic filter. Make sure to use [percent-encoding](https://en.wikipedia.org/wiki/Percent-encoding) in the query parameter., description: str # Filter based on the description., database_hold_time_h: int # Filter based on the number of hours events are retained in the database., populate_events: bool # Filter based on subscriptions that populate the events, verify_target_certificate: bool # Filter on the verification of the target certificate.}\n@returns(200) A JSON object containing a list of subscriptions\n\n@endpoint POST /subscriptions\n@desc Create subscription\n@optional {custom: any # The `custom` value is only for your custom references, you may use it to save additional attributes. The custom value is not used in any other place. This field may contain any datatype that you like: null (default), string, integer, boolean, object etc..., database_hold_time_h: int # The number of hours this event is retained in the database. *Only use larger numbers if you know what you are doing.* A couple of hours is enough for most use cases., description: str # Additional field to add some notes about this subscription., events_url: str # Url to the individual resource., id: str # Unique identifier for resource., populate_events: bool # If set to `true`, resource references in an event (e.g. the location an item moved to) are resolved and populated with data instead of giving just an ID., target_delivery_last_failure: map # If `target_url` is set or has been set before, and delivery to the target URL failed at least once, this contains debugging information about the nature of the most recent failure., target_delivery_status: map # If `target_url` is set, `target_delivery_status.ok` will be `true` or `false` depending on whether events are being succesfully delivered. `target_delivery_status.since` indicates when t his status last changed., target_retry: bool # Set to `true` if you want our server to retry if `target_url` is not giving back a `2xx` success code., target_url: str # Url to an external service that all applicable events are pushed to (webhook). Configure to `null` if you don't wish to use this (default)., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., topic_filter: str # MQTT filter that is applied to all events. Allows you to select and filter events. See [Event filtering](https://intellifi.zendesk.com/hc/en-us/articles/360008791494) for more information, url: str # Url to the individual resource., verify_target_certificate: bool # Whether or not the `target_url` endpoint TLS certificate is verified to be valid.}\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /subscriptions/{id}\n@desc Get subscription\n@required {id: str # Unique identifier}\n@returns(200) {custom: any?, database_hold_time_h: int, description: str?, events_url: str, id: str, populate_events: bool, target_delivery_last_failure: map, target_delivery_status: map, target_retry: bool, target_url: str, time_created: str(dateTime), time_updated: str(dateTime), topic_filter: str, url: str, verify_target_certificate: bool} # A JSON object containing the subscription\n\n@endpoint PUT /subscriptions/{id}\n@desc Update existing subscription\n@required {id: str # Unique identifier}\n@optional {custom: any # The `custom` value is only for your custom references, you may use it to save additional attributes. The custom value is not used in any other place. This field may contain any datatype that you like: null (default), string, integer, boolean, object etc..., database_hold_time_h: int # The number of hours this event is retained in the database. *Only use larger numbers if you know what you are doing.* A couple of hours is enough for most use cases., description: str # Additional field to add some notes about this subscription., events_url: str # Url to the individual resource., id: str # Unique identifier for resource., populate_events: bool # If set to `true`, resource references in an event (e.g. the location an item moved to) are resolved and populated with data instead of giving just an ID., target_delivery_last_failure: map # If `target_url` is set or has been set before, and delivery to the target URL failed at least once, this contains debugging information about the nature of the most recent failure., target_delivery_status: map # If `target_url` is set, `target_delivery_status.ok` will be `true` or `false` depending on whether events are being succesfully delivered. `target_delivery_status.since` indicates when t his status last changed., target_retry: bool # Set to `true` if you want our server to retry if `target_url` is not giving back a `2xx` success code., target_url: str # Url to an external service that all applicable events are pushed to (webhook). Configure to `null` if you don't wish to use this (default)., time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was updated., topic_filter: str # MQTT filter that is applied to all events. Allows you to select and filter events. See [Event filtering](https://intellifi.zendesk.com/hc/en-us/articles/360008791494) for more information, url: str # Url to the individual resource., verify_target_certificate: bool # Whether or not the `target_url` endpoint TLS certificate is verified to be valid.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint DELETE /subscriptions/{id}\n@desc Delete subscription\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endpoint GET /subscriptions/{id}/events\n@desc Get subscription events\n@required {id: str # Unique identifier}\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., topic.resource_type: str # Filter on the topic resource type, topic.action: str # Filter on the topic action, topic.resource: str # Filter on the topic resource id, time_event: str(dateTime) # Filter on the time the event was generated on the device., time_expire: str(dateTime) # Filter on the time the event will expire.}\n@returns(200) A JSON object containing the events for a specific subscription\n\n@endgroup\n\n@group users\n@endpoint GET /users\n@desc Get all users\n@optional {after: str(date-time) # Limits on `time_created`, Marks the start of a range, optionally use `before` to set the end. Result output excludes the given timestamp., after_id: str # Limits directly on `id`. Marks the start of a range, optionally use `before_id` to set the end. Result output excludes the given `id` value. Please note that `id` is in chronological order., before: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `after` to set the start. Result output excludes the given timestamp., before_id: str # Limits directly on `id`. Marks the end of a range, optionally use `after_id` to set the start. Result output excludes the given `id` value. Please note that `id` is in chronological order., from: str(dateTime) # Limits on `time_created`. Marks the start of a range, optionally use `until` to set the end. Result output includes the given timestamp., from_id: str # Limits on `id`. Marks the start of a range, optionally use `until_id` to set the end. Result output includes the given `id` value. Please note that `id` is in chronological order., id_only: bool=false # Removes `url` fields from output and shows `_id` instead of `_url` in references., limit: int=100 # Sets the maximum number of returned resources. You may increase this number to large values, keep in mind that query times could become large. We advise you to use the pagination feature whenever you can., populate: str # Expand a reference into the actual resource (lookup). You may add multiple fields by giving a comma separated value., results_only: bool=false # Removes response envelope with information about query, only sends back a JSON array with the applicable resources., select: str # Select which properties should be returned. You may add multiple fields by giving a comma separated value. Select can also be used together with populate: Specify the resource first, then a period(.) followed by the field., sort: str=-id # Allows you to sort on on or more fields in the resource. You may append a minus sign (`-`) to request reverse order (new to old)., until: str(dateTime) # Limits on `time_created`. Marks the end of a range, optionally use `from` to set the start. Result output includes the given timestamp., until_id: str # Limits on `id`. Marks the end of a range, optionally use `from_id` to set the start. Result output includes the given `id` value. Please note that `id` is in chronological order., timeout_s: num # Overrides the default query timeout (in seconds). A value of 0 means unlimited. IMPORTANT: using high timeouts in production code is strongly discouraged as it may lead to stability issues., id: str # Unique identifier, time_created: str(dateTime) # Filter on the time the resource was created., time_updated: str(dateTime) # Filter on the time the resource was last updated, email: str # Filter on the email address., first_name: str # Filter on the first name., last_name: str # Filter on the last name., is_admin: bool # Filter on the administrator status., is_locked: bool # Filter on the locked status.}\n@returns(200) A JSON object containing a list of users\n\n@endpoint POST /users\n@desc Create user\n@optional {email: str # Email address, first_name: str # First name, id: str # Unique identifier for resource., is_admin: bool # Whether or not this is an administrator., is_locked: bool # Whether or not this user is locked and can't change the password., last_name: str # Last name, password: str # Password of the user, time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., url: str # Url to the individual resource.}\n@returns(201) {resource: map{id: str, url: str}, status: int} # A JSON object containing the newly added resource\n\n@endpoint GET /users/{id}\n@desc Get user\n@required {id: str # Unique identifier}\n@returns(200) {email: str, first_name: str, id: str, is_admin: bool, is_locked: bool, last_name: str, password: str, time_created: str(dateTime), time_updated: str(dateTime), url: str} # A JSON object containing the user\n\n@endpoint PUT /users/{id}\n@desc Update existing user\n@required {id: str # Unique identifier}\n@optional {email: str # Email address, first_name: str # First name, id: str # Unique identifier for resource., is_admin: bool # Whether or not this is an administrator., is_locked: bool # Whether or not this user is locked and can't change the password., last_name: str # Last name, password: str # Password of the user, time_created: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., time_updated: str(dateTime) # [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted string for when this resource was created., url: str # Url to the individual resource.}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the modified resource\n\n@endpoint DELETE /users/{id}\n@desc Delete user\n@required {id: str # Unique identifier}\n@returns(200) {resource: map{id: str, url: str}, status: int} # A JSON object containing the deleted resource\n\n@endgroup\n\n@end\n"}