This repository has been archived by the owner on Jul 1, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 125
/
bluez-5.55.json
executable file
·1 lines (1 loc) · 169 KB
/
bluez-5.55.json
1
{"Version":"5.55","Api":[{"FileName":"adapter-api.txt","Name":"BlueZ D-Bus Adapter API description","Description":"\n","Api":[{"Title":"Adapter hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.Adapter1","ObjectPath":"[variable prefix]/{hci0,hci1,...}","Methods":[{"Name":"StartDiscovery","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotReady","org.bluez.Error.NotReady"],"Docs":"\t\t\tThis method starts the device discovery session. This\n\t\t\tincludes an inquiry procedure and remote device name\n\t\t\tresolving. Use StopDiscovery to release the sessions\n\t\t\tacquired.\n\t\t\tThis process will start creating Device objects as\n\t\t\tnew devices are discovered.\n\t\t\tDuring discovery RSSI delta-threshold is imposed.\n\t\t\tPossible errors: org.bluez.Error.NotReady\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"StopDiscovery","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotReady","org.bluez.Error.NotReady"],"Docs":"\t\t\tThis method will cancel any previous StartDiscovery\n\t\t\ttransaction.\n\t\t\tNote that a discovery procedure is shared between all\n\t\t\tdiscovery sessions thus calling StopDiscovery will only\n\t\t\trelease a single session.\n\t\t\tPossible errors: org.bluez.Error.NotReady\n\t\t\t\t\t org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.NotAuthorized\n"},{"Name":"RemoveDevice","ReturnType":"void","Args":[{"Type":"object","Name":"device"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis removes the remote device object at the given\n\t\t\tpath. It will remove also the pairing information.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"SetDiscoveryFilter","ReturnType":"void","Args":[{"Type":"dict","Name":"filter"}],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tThis method sets the device discovery filter for the\n\t\t\tcaller. When this method is called with no filter\n\t\t\tparameter, filter is removed.\n\t\t\tParameters that may be set in the filter dictionary\n\t\t\tinclude the following:\n\t\t\tarray{string} UUIDs\n\t\t\t\tFilter by service UUIDs, empty means match\n\t\t\t\t_any_ UUID.\n\t\t\t\tWhen a remote device is found that advertises\n\t\t\t\tany UUID from UUIDs, it will be reported if:\n\t\t\t\t- Pathloss and RSSI are both empty.\n\t\t\t\t- only Pathloss param is set, device advertise\n\t\t\t\t TX pwer, and computed pathloss is less than\n\t\t\t\t Pathloss param.\n\t\t\t\t- only RSSI param is set, and received RSSI is\n\t\t\t\t higher than RSSI param.\n\t\t\tint16 RSSI\n\t\t\t\tRSSI threshold value.\n\t\t\t\tPropertiesChanged signals will be emitted\n\t\t\t\tfor already existing Device objects, with\n\t\t\t\tupdated RSSI value. If one or more discovery\n\t\t\t\tfilters have been set, the RSSI delta-threshold,\n\t\t\t\tthat is imposed by StartDiscovery by default,\n\t\t\t\twill not be applied.\n\t\t\tuint16 Pathloss\n\t\t\t\tPathloss threshold value.\n\t\t\t\tPropertiesChanged signals will be emitted\n\t\t\t\tfor already existing Device objects, with\n\t\t\t\tupdated Pathloss value.\n\t\t\tstring Transport (Default \"auto\")\n\t\t\t\tTransport parameter determines the type of\n\t\t\t\tscan.\n\t\t\t\tPossible values:\n\t\t\t\t\t\"auto\"\t- interleaved scan\n\t\t\t\t\t\"bredr\"\t- BR/EDR inquiry\n\t\t\t\t\t\"le\"\t- LE scan only\n\t\t\t\tIf \"le\" or \"bredr\" Transport is requested,\n\t\t\t\tand the controller doesn't support it,\n\t\t\t\torg.bluez.Error.Failed error will be returned.\n\t\t\t\tIf \"auto\" transport is requested, scan will use\n\t\t\t\tLE, BREDR, or both, depending on what's\n\t\t\t\tcurrently enabled on the controller.\n\t\t\tbool DuplicateData (Default: true)\n\t\t\t\tDisables duplicate detection of advertisement\n\t\t\t\tdata.\n\t\t\t\tWhen enabled PropertiesChanged signals will be\n\t\t\t\tgenerated for either ManufacturerData and\n\t\t\t\tServiceData everytime they are discovered.\n\t\t\tbool Discoverable (Default: false)\n\t\t\t\tMake adapter discoverable while discovering,\n\t\t\t\tif the adapter is already discoverable setting\n\t\t\t\tthis filter won't do anything.\n\t\t\tstring Pattern (Default: none)\n\t\t\t\tDiscover devices where the pattern matches\n\t\t\t\teither the prefix of the address or\n\t\t\t\tdevice name which is convenient way to limited\n\t\t\t\tthe number of device objects created during a\n\t\t\t\tdiscovery.\n\t\t\t\tWhen set disregards device discoverable flags.\n\t\t\t\tNote: The pattern matching is ignored if there\n\t\t\t\tare other client that don't set any pattern as\n\t\t\t\tit work as a logical OR, also setting empty\n\t\t\t\tstring \"\" pattern will match any device found.\n\t\t\tWhen discovery filter is set, Device objects will be\n\t\t\tcreated as new devices with matching criteria are\n\t\t\tdiscovered regardless of they are connectable or\n\t\t\tdiscoverable which enables listening to\n\t\t\tnon-connectable and non-discoverable devices.\n\t\t\tWhen multiple clients call SetDiscoveryFilter, their\n\t\t\tfilters are internally merged, and notifications about\n\t\t\tnew devices are sent to all clients. Therefore, each\n\t\t\tclient must check that device updates actually match\n\t\t\tits filter.\n\t\t\tWhen SetDiscoveryFilter is called multiple times by the\n\t\t\tsame client, last filter passed will be active for\n\t\t\tgiven client.\n\t\t\tSetDiscoveryFilter can be called before StartDiscovery.\n\t\t\tIt is useful when client will create first discovery\n\t\t\tsession, to ensure that proper scan will be started\n\t\t\tright after call to StartDiscovery.\n\t\t\tPossible errors: org.bluez.Error.NotReady\n\t\t\t\t\t org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"GetDiscoveryFilters","ReturnType":"array{string}","Args":[],"Errors":null,"Docs":"\t\t\tReturn available filters that can be given to\n\t\t\tSetDiscoveryFilter.\n\t\t\tPossible errors: None\n"},{"Name":"ConnectDevice","ReturnType":"object","Args":[{"Type":"dict","Name":"properties"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis method connects to device without need of\n\t\t\tperforming General Discovery. Connection mechanism is\n\t\t\tsimilar to Connect method from Device1 interface with\n\t\t\texception that this method returns success when physical\n\t\t\tconnection is established. After this method returns,\n\t\t\tservices discovery will continue and any supported\n\t\t\tprofile will be connected. There is no need for calling\n\t\t\tConnect on Device1 after this call. If connection was\n\t\t\tsuccessful this method returns object path to created\n\t\t\tdevice object.\n\t\t\tParameters that may be set in the filter dictionary\n\t\t\tinclude the following:\n\t\t\tstring Address\n\t\t\t\tThe Bluetooth device address of the remote\n\t\t\t\tdevice. This parameter is mandatory.\n\t\t\tstring AddressType\n\t\t\t\tThe Bluetooth device Address Type. This is\n\t\t\t\taddress type that should be used for initial\n\t\t\t\tconnection. If this parameter is not present\n\t\t\t\tBR/EDR device is created.\n\t\t\t\tPossible values:\n\t\t\t\t\t\"public\" - Public address\n\t\t\t\t\t\"random\" - Random address\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.AlreadyExists\n\t\t\t\t\t org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.NotReady\n\t\t\t\t\t org.bluez.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"Address","Type":"string","Docs":"The Bluetooth device address.","Flags":[]},{"Name":"AddressType","Type":"string","Docs":"The Bluetooth Address Type. For dual-mode and BR/EDR\n\t\t\tonly adapter this defaults to \"public\". Single mode LE\n\t\t\tadapters may have either value. With privacy enabled\n\t\t\tthis contains type of Identity Address and not type of\n\t\t\taddress used for connection.\n\n\t\t\tPossible values:\n\t\t\t\t\"public\" - Public address\n\t\t\t\t\"random\" - Random address","Flags":[]},{"Name":"Name","Type":"string","Docs":"The Bluetooth system name (pretty hostname).\n\n\t\t\tThis property is either a static system default\n\t\t\tor controlled by an external daemon providing\n\t\t\taccess to the pretty hostname configuration.","Flags":[]},{"Name":"Alias","Type":"string","Docs":"The Bluetooth friendly name. This value can be\n\t\t\tchanged.\n\n\t\t\tIn case no alias is set, it will return the system\n\t\t\tprovided name. Setting an empty string as alias will\n\t\t\tconvert it back to the system provided name.\n\n\t\t\tWhen resetting the alias with an empty string, the\n\t\t\tproperty will default back to system name.\n\n\t\t\tOn a well configured system, this property never\n\t\t\tneeds to be changed since it defaults to the system\n\t\t\tname and provides the pretty hostname. Only if the\n\t\t\tlocal name needs to be different from the pretty\n\t\t\thostname, this property should be used as last\n\t\t\tresort.","Flags":[]},{"Name":"Class","Type":"uint32","Docs":"The Bluetooth class of device.\n\n\t\t\tThis property represents the value that is either\n\t\t\tautomatically configured by DMI/ACPI information\n\t\t\tor provided as static configuration.","Flags":[]},{"Name":"Powered","Type":"boolean","Docs":"Switch an adapter on or off. This will also set the\n\t\t\tappropriate connectable state of the controller.\n\n\t\t\tThe value of this property is not persistent. After\n\t\t\trestart or unplugging of the adapter it will reset\n\t\t\tback to false.","Flags":[]},{"Name":"Discoverable","Type":"boolean","Docs":"Switch an adapter to discoverable or non-discoverable\n\t\t\tto either make it visible or hide it. This is a global\n\t\t\tsetting and should only be used by the settings\n\t\t\tapplication.\n\n\t\t\tIf the DiscoverableTimeout is set to a non-zero\n\t\t\tvalue then the system will set this value back to\n\t\t\tfalse after the timer expired.\n\n\t\t\tIn case the adapter is switched off, setting this\n\t\t\tvalue will fail.\n\n\t\t\tWhen changing the Powered property the new state of\n\t\t\tthis property will be updated via a PropertiesChanged\n\t\t\tsignal.\n\n\t\t\tFor any new adapter this settings defaults to false.","Flags":[]},{"Name":"Pairable","Type":"boolean","Docs":"Switch an adapter to pairable or non-pairable. This is\n\t\t\ta global setting and should only be used by the\n\t\t\tsettings application.\n\n\t\t\tNote that this property only affects incoming pairing\n\t\t\trequests.\n\n\t\t\tFor any new adapter this settings defaults to true.","Flags":[]},{"Name":"PairableTimeout","Type":"uint32","Docs":"The pairable timeout in seconds. A value of zero\n\t\t\tmeans that the timeout is disabled and it will stay in\n\t\t\tpairable mode forever.\n\n\t\t\tThe default value for pairable timeout should be\n\t\t\tdisabled (value 0).","Flags":[]},{"Name":"DiscoverableTimeout","Type":"uint32","Docs":"The discoverable timeout in seconds. A value of zero\n\t\t\tmeans that the timeout is disabled and it will stay in\n\t\t\tdiscoverable/limited mode forever.\n\n\t\t\tThe default value for the discoverable timeout should\n\t\t\tbe 180 seconds (3 minutes).","Flags":[]},{"Name":"Discovering","Type":"boolean","Docs":"Indicates that a device discovery procedure is active.","Flags":[]},{"Name":"UUIDs","Type":"array{string}","Docs":"List of 128-bit UUIDs that represents the available\n\t\t\tlocal services.","Flags":[]},{"Name":"Modalias","Type":"string","Docs":"Local Device ID information in modalias format\n\t\t\tused by the kernel and udev.","Flags":[5]},{"Name":"Roles","Type":"array{string}","Docs":"List of supported roles. Possible values:\n\t\t\t\t\"central\": Supports the central role.\n\t\t\t\t\"peripheral\": Supports the peripheral role.\n\t\t\t\t\"central-peripheral\": Supports both roles\n\t\t\t\t\t\t concurrently.","Flags":[]}]}]},{"FileName":"advertisement-monitor-api.txt","Name":"BlueZ D-Bus Advertisement Monitor API Description","Description":"This API allows an client to specify a job of monitoring advertisements by\nregistering the root of hierarchy and then exposing advertisement monitors\nunder the root with filtering conditions, thresholds of RSSI and timers\nof RSSI thresholds.\n\nOnce a monitoring job is activated by BlueZ, the client can expect to get\nnotified on the targeted advertisements no matter if there is an ongoing\ndiscovery session (a discovery session is started/stopped with methods in\norg.bluez.Adapter1 interface).\n\n","Api":[{"Title":"Advertisement Monitor hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.AdvertisementMonitor1 [experimental]","ObjectPath":"freely definable","Methods":[{"Name":"Release","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tThis gets called as a signal for a client to perform\n\t\t\tclean-up when (1)a monitor cannot be activated after it\n\t\t\twas exposed or (2)a monitor has been deactivated.\n"},{"Name":"Activate","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tAfter a monitor was exposed, this gets called as a\n\t\t\tsignal for client to get acknowledged when a monitor\n\t\t\thas been activated, so the client can expect to receive\n\t\t\tcalls on DeviceFound() or DeviceLost().\n"},{"Name":"DeviceFound","ReturnType":"void","Args":[{"Type":"object","Name":"device"}],"Errors":null,"Docs":"\t\t\tThis gets called to notify the client of finding the\n\t\t\ttargeted device. Once receiving the call, the client\n\t\t\tshould start to monitor the corresponding device to\n\t\t\tretrieve the changes on RSSI and advertisement content.\n"},{"Name":"DeviceLost","ReturnType":"void","Args":[{"Type":"object","Name":"device"}],"Errors":null,"Docs":"\t\t\tThis gets called to notify the client of losing the\n\t\t\ttargeted device. Once receiving this call, the client\n\t\t\tshould stop monitoring the corresponding device.\n"}],"Signals":[],"Properties":[{"Name":"Type","Type":"string","Docs":"The type of the monitor. See SupportedMonitorTypes in\n\t\t\torg.bluez.AdvertisementMonitorManager1 for the available\n\t\t\toptions.\n\n\t\t(Int16, Uint16, Int16, Uint16) RSSIThreshholdsAndTimers [read-only, optional]\n\n\t\t\tThis contains HighRSSIThreshold, HighRSSIThresholdTimer,\n\t\t\tLowRSSIThreshold, LowRSSIThresholdTimer in order. The\n\t\t\tunit of HighRSSIThreshold and LowRSSIThreshold is dBm.\n\t\t\tThe unit of HighRSSIThresholdTimer and\n\t\t\tLowRSSIThresholdTimer is second.\n\n\t\t\tIf these are provided, RSSI would be used as a factor to\n\t\t\tnotify the client of whether a device stays in range or\n\t\t\tmove out of range. A device is considered in-range when\n\t\t\tthe RSSIs of the received advertisement(s) during\n\t\t\tHighRSSIThresholdTimer seconds exceed HighRSSIThreshold.\n\t\t\tLikewise, a device is considered out-of-range when the\n\t\t\tRSSIs of the received advertisement(s) during\n\t\t\tLowRSSIThresholdTimer do not reach LowRSSIThreshold.","Flags":[1]},{"Name":"Patterns","Type":"array{(uint8, uint8, string)}","Docs":"If Type is set to 0x01, this must exist and has at least\n\t\t\tone entry in the array.\n\n\t\t\tThe structure of a pattern contains the following.\n\t\t\tuint8 start_position\n\t\t\t\tThe index in an AD data field where the search\n\t\t\t\tshould start. The beginning of an AD data field\n\t\t\t\tis index 0.\n\t\t\tuint8 AD_data_type\n\t\t\t\tSee https://www.bluetooth.com/specifications/\n\t\t\t\tassigned-numbers/generic-access-profile/ for\n\t\t\t\tthe possible allowed value.\n\t\t\tstring content_of_pattern\n\t\t\t\tThis is the value of the pattern.","Flags":[1,5]}]},{"Title":"Advertisement Monitor Manager hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.AdvertisementMonitorManager1 [experimental]","ObjectPath":"/org/bluez/{hci0,hci1,...}","Methods":[{"Name":"RegisterMonitor","ReturnType":"void","Args":[{"Type":"object","Name":"application"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis registers a hierarchy of advertisement monitors.\n\t\t\tThe application object path together with the D-Bus\n\t\t\tsystem bus connection ID define the identification of\n\t\t\tthe application registering advertisement monitors.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.AlreadyExists\n"},{"Name":"UnregisterMonitor","ReturnType":"void","Args":[{"Type":"object","Name":"application"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis unregisters advertisement monitors that have been\n\t\t\tpreviously registered. The object path parameter must\n\t\t\tmatch the same value that has been used on\n\t\t\tregistration.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.DoesNotExist\n"}],"Signals":[],"Properties":[{"Name":"SupportedMonitorTypes","Type":"array{string}","Docs":"This lists the supported types of advertisement\n\t\t\tmonitors. An application should check this before\n\t\t\tinstantiate and expose an object of\n\t\t\torg.bluez.AdvertisementMonitor1.\n\n\t\t\tPossible values for monitor types:\n\n\t\t\t\"or_patterns\"\n\t\t\t\tPatterns with logic OR applied. With this type,\n\t\t\t\tproperty \"Patterns\" must exist and has at least\n\t\t\t\tone pattern.","Flags":[1]},{"Name":"SupportedFeatures","Type":"array{string}","Docs":"This lists the features of advertisement monitoring\n\t\t\tsupported by BlueZ.\n\n\t\t\tPossible values for features:\n\n\t\t\t\"controller-patterns\"\n\t\t\t\tIf the controller is capable of performing\n\t\t\t\tadvertisement monitoring by patterns, BlueZ\n\t\t\t\twould offload the patterns to the controller to\n\t\t\t\treduce power consumption.","Flags":[1]}]}]},{"FileName":"advertising-api.txt","Name":"BlueZ D-Bus LE Advertising API Description","Description":"Advertising packets are structured data which is broadcast on the LE Advertising\nchannels and available for all devices in range. Because of the limited space\navailable in LE Advertising packets (31 bytes), each packet's contents must be\ncarefully controlled.\n\nBlueZ acts as a store for the Advertisement Data which is meant to be sent.\nIt constructs the correct Advertisement Data from the structured\ndata and configured the kernel to send the correct advertisement.\n\nAdvertisement Data objects are registered freely and then referenced by BlueZ\nwhen constructing the data sent to the kernel.\n\n","Api":[{"Title":"LE Advertisement Data hierarchy","Description":"\nSpecifies the Advertisement Data to be broadcast and some advertising\nparameters. Properties which are not present will not be included in the\ndata. Required advertisement data types will always be included.\nAll UUIDs are 128-bit versions in the API, and 16 or 32-bit\nversions of the same UUID will be used in the advertising data as appropriate.\n","Service":"org.bluez","Interface":"org.bluez.LEAdvertisement1","ObjectPath":"freely definable","Methods":[{"Name":"Release","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tremoves the Advertisement. A client can use it to do\n\t\t\tcleanup tasks. There is no need to call\n\t\t\tUnregisterAdvertisement because when this method gets\n\t\t\tcalled it has already been unregistered.\n"}],"Signals":[],"Properties":[{"Name":"Type","Type":"string","Docs":"Determines the type of advertising packet requested.\n\n\t\t\tPossible values: \"broadcast\" or \"peripheral\"","Flags":[]},{"Name":"ServiceUUIDs","Type":"array{string}","Docs":"List of UUIDs to include in the \"Service UUID\" field of\n\t\t\tthe Advertising Data.","Flags":[]},{"Name":"ManufacturerData","Type":"dict","Docs":"Manufactuer Data fields to include in\n\t\t\tthe Advertising Data. Keys are the Manufacturer ID\n\t\t\tto associate with the data.","Flags":[]},{"Name":"SolicitUUIDs","Type":"array{string}","Docs":"Array of UUIDs to include in \"Service Solicitation\"\n\t\t\tAdvertisement Data.","Flags":[]},{"Name":"ServiceData","Type":"dict","Docs":"Service Data elements to include. The keys are the\n\t\t\tUUID to associate with the data.","Flags":[]},{"Name":"Data","Type":"dict","Docs":"Advertising Type to include in the Advertising\n\t\t\tData. Key is the advertising type and value is the\n\t\t\tdata as byte array.\n\n\t\t\tNote: Types already handled by other properties shall\n\t\t\tnot be used.\n\n\t\t\tPossible values:\n\t\t\t\t\u003ctype\u003e \u003cbyte array\u003e\n\t\t\t\t...\n\n\t\t\tExample:\n\t\t\t\t\u003cTransport Discovery\u003e \u003cOrganization Flags...\u003e\n\t\t\t\t0x26 0x01 0x01...","Flags":[4]},{"Name":"Discoverable","Type":"bool","Docs":"Advertise as general discoverable. When present this\n\t\t\twill override adapter Discoverable property.\n\n\t\t\tNote: This property shall not be set when Type is set\n\t\t\tto broadcast.","Flags":[4]},{"Name":"DiscoverableTimeout","Type":"uint16","Docs":"The discoverable timeout in seconds. A value of zero\n\t\t\tmeans that the timeout is disabled and it will stay in\n\t\t\tdiscoverable/limited mode forever.\n\n\t\t\tNote: This property shall not be set when Type is set\n\t\t\tto broadcast.","Flags":[4]},{"Name":"Includes","Type":"array{string}","Docs":"List of features to be included in the advertising\n\t\t\tpacket.\n\n\t\t\tPossible values: as found on\n\t\t\t\t\tLEAdvertisingManager.SupportedIncludes","Flags":[]},{"Name":"LocalName","Type":"string","Docs":"Local name to be used in the advertising report. If the\n\t\t\tstring is too big to fit into the packet it will be\n\t\t\ttruncated.\n\n\t\t\tIf this property is available 'local-name' cannot be\n\t\t\tpresent in the Includes.","Flags":[]},{"Name":"Appearance","Type":"uint16","Docs":"Appearance to be used in the advertising report.\n\n\t\t\tPossible values: as found on GAP Service.","Flags":[]},{"Name":"Duration","Type":"uint16_t","Docs":"Duration of the advertisement in seconds. If there are\n\t\t\tother applications advertising no duration is set the\n\t\t\tdefault is 2 seconds.","Flags":[]},{"Name":"Timeout","Type":"uint16_t","Docs":"Timeout of the advertisement in seconds. This defines\n\t\t\tthe lifetime of the advertisement.","Flags":[]},{"Name":"SecondaryChannel","Type":"string","Docs":"Secondary channel to be used. Primary channel is\n\t\t\talways set to \"1M\" except when \"Coded\" is set.\n\n\t\t\tPossible value: \"1M\" (default)\n\t\t\t\t\t\"2M\"\n\t\t\t\t\t\"Coded\"","Flags":[4]}]},{"Title":"LE Advertising Manager hierarchy","Description":"\nThe Advertising Manager allows external applications to register Advertisement\nData which should be broadcast to devices. Advertisement Data elements must\nfollow the API for LE Advertisement Data described above.\n","Service":"org.bluez","Interface":"org.bluez.LEAdvertisingManager1","ObjectPath":"/org/bluez/{hci0,hci1,...}","Methods":[{"Name":"RegisterAdvertisement","ReturnType":"","Args":[{"Type":"object","Name":"advertisement"},{"Type":"dict","Name":"options"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tRegisters an advertisement object to be sent over the LE\n\t\t\tAdvertising channel. The service must be exported\n\t\t\tunder interface LEAdvertisement1.\n\t\t\tInvalidArguments error indicates that the object has\n\t\t\tinvalid or conflicting properties.\n\t\t\tInvalidLength error indicates that the data\n\t\t\tprovided generates a data packet which is too long.\n\t\t\tThe properties of this object are parsed when it is\n\t\t\tregistered, and any changes are ignored.\n\t\t\tIf the same object is registered twice it will result in\n\t\t\tan AlreadyExists error.\n\t\t\tIf the maximum number of advertisement instances is\n\t\t\treached it will result in NotPermitted error.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.AlreadyExists\n\t\t\t\t\t org.bluez.Error.InvalidLength\n\t\t\t\t\t org.bluez.Error.NotPermitted\n"},{"Name":"UnregisterAdvertisement","ReturnType":"","Args":[{"Type":"object","Name":"advertisement"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis unregisters an advertisement that has been\n\t\t\tpreviously registered. The object path parameter must\n\t\t\tmatch the same value that has been used on registration.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.DoesNotExist\n"}],"Signals":[],"Properties":[{"Name":"ActiveInstances","Type":"byte","Docs":"Number of active advertising instances.","Flags":[]},{"Name":"SupportedInstances","Type":"byte","Docs":"Number of available advertising instances.","Flags":[]},{"Name":"SupportedIncludes","Type":"array{string}","Docs":"List of supported system includes.\n\n\t\t\tPossible values: \"tx-power\"\n\t\t\t\t\t \"appearance\"\n\t\t\t\t\t \"local-name\"","Flags":[]},{"Name":"SupportedSecondaryChannels","Type":"array{string}","Docs":"List of supported Secondary channels. Secondary\n\t\t\tchannels can be used to advertise with the\n\t\t\tcorresponding PHY.\n\n\t\t\tPossible values: \"1M\"\n\t\t\t\t\t \"2M\"\n\t\t\t\t\t \"Coded\"","Flags":[4]}]}]},{"FileName":"agent-api.txt","Name":"BlueZ D-Bus Agent API description","Description":"\n","Api":[{"Title":"Agent Manager hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.AgentManager1","ObjectPath":"/org/bluez","Methods":[{"Name":"RegisterAgent","ReturnType":"void","Args":[{"Type":"object","Name":"agent"},{"Type":"string","Name":"capability"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis registers an agent handler.\n\t\t\tThe object path defines the path of the agent\n\t\t\tthat will be called when user input is needed.\n\t\t\tEvery application can register its own agent and\n\t\t\tfor all actions triggered by that application its\n\t\t\tagent is used.\n\t\t\tIt is not required by an application to register\n\t\t\tan agent. If an application does chooses to not\n\t\t\tregister an agent, the default agent is used. This\n\t\t\tis on most cases a good idea. Only application\n\t\t\tlike a pairing wizard should register their own\n\t\t\tagent.\n\t\t\tAn application can only register one agent. Multiple\n\t\t\tagents per application is not supported.\n\t\t\tThe capability parameter can have the values\n\t\t\t\"DisplayOnly\", \"DisplayYesNo\", \"KeyboardOnly\",\n\t\t\t\"NoInputNoOutput\" and \"KeyboardDisplay\" which\n\t\t\treflects the input and output capabilities of the\n\t\t\tagent.\n\t\t\tIf an empty string is used it will fallback to\n\t\t\t\"KeyboardDisplay\".\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.AlreadyExists\n"},{"Name":"UnregisterAgent","ReturnType":"void","Args":[{"Type":"object","Name":"agent"}],"Errors":["org.bluez.Error.DoesNotExist","org.bluez.Error.DoesNotExist"],"Docs":"\t\t\tThis unregisters the agent that has been previously\n\t\t\tregistered. The object path parameter must match the\n\t\t\tsame value that has been used on registration.\n\t\t\tPossible errors: org.bluez.Error.DoesNotExist\n"},{"Name":"RequestDefaultAgent","ReturnType":"void","Args":[{"Type":"object","Name":"agent"}],"Errors":["org.bluez.Error.DoesNotExist","org.bluez.Error.DoesNotExist"],"Docs":"\t\t\tThis requests is to make the application agent\n\t\t\tthe default agent. The application is required\n\t\t\tto register an agent.\n\t\t\tSpecial permission might be required to become\n\t\t\tthe default agent.\n\t\t\tPossible errors: org.bluez.Error.DoesNotExist\n"}],"Signals":[],"Properties":[]},{"Title":"Agent hierarchy","Description":"","Service":"unique name","Interface":"org.bluez.Agent1","ObjectPath":"freely definable","Methods":[{"Name":"Release","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tunregisters the agent. An agent can use it to do\n\t\t\tcleanup tasks. There is no need to unregister the\n\t\t\tagent, because when this method gets called it has\n\t\t\talready been unregistered.\n"},{"Name":"RequestPinCode","ReturnType":"string","Args":[{"Type":"object","Name":"device"}],"Errors":["org.bluez.Error.Rejected","org.bluez.Error.Rejected"],"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tneeds to get the passkey for an authentication.\n\t\t\tThe return value should be a string of 1-16 characters\n\t\t\tlength. The string can be alphanumeric.\n\t\t\tPossible errors: org.bluez.Error.Rejected\n\t\t\t org.bluez.Error.Canceled\n"},{"Name":"DisplayPinCode","ReturnType":"void","Args":[{"Type":"object","Name":"device"},{"Type":"string","Name":"pincode"}],"Errors":["org.bluez.Error.Rejected","org.bluez.Error.Rejected"],"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tneeds to display a pincode for an authentication.\n\t\t\tAn empty reply should be returned. When the pincode\n\t\t\tneeds no longer to be displayed, the Cancel method\n\t\t\tof the agent will be called.\n\t\t\tThis is used during the pairing process of keyboards\n\t\t\tthat don't support Bluetooth 2.1 Secure Simple Pairing,\n\t\t\tin contrast to DisplayPasskey which is used for those\n\t\t\tthat do.\n\t\t\tThis method will only ever be called once since\n\t\t\tolder keyboards do not support typing notification.\n\t\t\tNote that the PIN will always be a 6-digit number,\n\t\t\tzero-padded to 6 digits. This is for harmony with\n\t\t\tthe later specification.\n\t\t\tPossible errors: org.bluez.Error.Rejected\n\t\t\t org.bluez.Error.Canceled\n"},{"Name":"RequestPasskey","ReturnType":"uint32","Args":[{"Type":"object","Name":"device"}],"Errors":["org.bluez.Error.Rejected","org.bluez.Error.Rejected"],"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tneeds to get the passkey for an authentication.\n\t\t\tThe return value should be a numeric value\n\t\t\tbetween 0-999999.\n\t\t\tPossible errors: org.bluez.Error.Rejected\n\t\t\t org.bluez.Error.Canceled\n"},{"Name":"DisplayPasskey","ReturnType":"void","Args":[{"Type":"object","Name":"device"},{"Type":"uint32","Name":"passkey"},{"Type":"uint16","Name":"entered"}],"Errors":null,"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tneeds to display a passkey for an authentication.\n\t\t\tThe entered parameter indicates the number of already\n\t\t\ttyped keys on the remote side.\n\t\t\tAn empty reply should be returned. When the passkey\n\t\t\tneeds no longer to be displayed, the Cancel method\n\t\t\tof the agent will be called.\n\t\t\tDuring the pairing process this method might be\n\t\t\tcalled multiple times to update the entered value.\n\t\t\tNote that the passkey will always be a 6-digit number,\n\t\t\tso the display should be zero-padded at the start if\n\t\t\tthe value contains less than 6 digits.\n"},{"Name":"RequestConfirmation","ReturnType":"void","Args":[{"Type":"object","Name":"device"},{"Type":"uint32","Name":"passkey"}],"Errors":["org.bluez.Error.Rejected","org.bluez.Error.Rejected"],"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tneeds to confirm a passkey for an authentication.\n\t\t\tTo confirm the value it should return an empty reply\n\t\t\tor an error in case the passkey is invalid.\n\t\t\tNote that the passkey will always be a 6-digit number,\n\t\t\tso the display should be zero-padded at the start if\n\t\t\tthe value contains less than 6 digits.\n\t\t\tPossible errors: org.bluez.Error.Rejected\n\t\t\t org.bluez.Error.Canceled\n"},{"Name":"RequestAuthorization","ReturnType":"void","Args":[{"Type":"object","Name":"device"}],"Errors":["org.bluez.Error.Rejected","org.bluez.Error.Rejected"],"Docs":"\t\t\tThis method gets called to request the user to\n\t\t\tauthorize an incoming pairing attempt which\n\t\t\twould in other circumstances trigger the just-works\n\t\t\tmodel, or when the user plugged in a device that\n\t\t\timplements cable pairing. In the latter case, the\n\t\t\tdevice would not be connected to the adapter via\n\t\t\tBluetooth yet.\n\t\t\tPossible errors: org.bluez.Error.Rejected\n\t\t\t org.bluez.Error.Canceled\n"},{"Name":"AuthorizeService","ReturnType":"void","Args":[{"Type":"object","Name":"device"},{"Type":"string","Name":"uuid"}],"Errors":["org.bluez.Error.Rejected","org.bluez.Error.Rejected"],"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tneeds to authorize a connection/service request.\n\t\t\tPossible errors: org.bluez.Error.Rejected\n\t\t\t org.bluez.Error.Canceled\n"},{"Name":"Cancel","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tThis method gets called to indicate that the agent\n\t\t\trequest failed before a reply was returned.\n"}],"Signals":[],"Properties":[]}]},{"FileName":"battery-api.txt","Name":"BlueZ D-Bus Battery API description","Description":"\n","Api":[{"Title":"Battery hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.Battery1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX","Methods":[],"Signals":[],"Properties":[{"Name":"Percentage","Type":"byte","Docs":"The percentage of battery left as an unsigned 8-bit integer.","Flags":[]}]}]},{"FileName":"device-api.txt","Name":"BlueZ D-Bus Device API description","Description":"\n","Api":[{"Title":"Device hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.Device1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX","Methods":[{"Name":"Connect","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotReady","org.bluez.Error.NotReady"],"Docs":"\t\t\tThis is a generic method to connect any profiles\n\t\t\tthe remote device supports that can be connected\n\t\t\tto and have been flagged as auto-connectable on\n\t\t\tour side. If only subset of profiles is already\n\t\t\tconnected it will try to connect currently disconnected\n\t\t\tones.\n\t\t\tIf at least one profile was connected successfully this\n\t\t\tmethod will indicate success.\n\t\t\tFor dual-mode devices only one bearer is connected at\n\t\t\ttime, the conditions are in the following order:\n\t\t\t\t1. Connect the disconnected bearer if already\n\t\t\t\tconnected.\n\t\t\t\t2. Connect first the bonded bearer. If no\n\t\t\t\tbearers are bonded or both are skip and check\n\t\t\t\tlatest seen bearer.\n\t\t\t\t3. Connect last seen bearer, in case the\n\t\t\t\ttimestamps are the same BR/EDR takes\n\t\t\t\tprecedence.\n\t\t\tPossible errors: org.bluez.Error.NotReady\n\t\t\t\t\t org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.InProgress\n\t\t\t\t\t org.bluez.Error.AlreadyConnected\n"},{"Name":"Disconnect","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotConnected","org.bluez.Error.NotConnected"],"Docs":"\t\t\tThis method gracefully disconnects all connected\n\t\t\tprofiles and then terminates low-level ACL connection.\n\t\t\tACL connection will be terminated even if some profiles\n\t\t\twere not disconnected properly e.g. due to misbehaving\n\t\t\tdevice.\n\t\t\tThis method can be also used to cancel a preceding\n\t\t\tConnect call before a reply to it has been received.\n\t\t\tFor non-trusted devices connected over LE bearer calling\n\t\t\tthis method will disable incoming connections until\n\t\t\tConnect method is called again.\n\t\t\tPossible errors: org.bluez.Error.NotConnected\n"},{"Name":"ConnectProfile","ReturnType":"void","Args":[{"Type":"string","Name":"uuid"}],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tThis method connects a specific profile of this\n\t\t\tdevice. The UUID provided is the remote service\n\t\t\tUUID for the profile.\n\t\t\tPossible errors: org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.InProgress\n\t\t\t\t\t org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotAvailable\n\t\t\t\t\t org.bluez.Error.NotReady\n"},{"Name":"DisconnectProfile","ReturnType":"void","Args":[{"Type":"string","Name":"uuid"}],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tThis method disconnects a specific profile of\n\t\t\tthis device. The profile needs to be registered\n\t\t\tclient profile.\n\t\t\tThere is no connection tracking for a profile, so\n\t\t\tas long as the profile is registered this will always\n\t\t\tsucceed.\n\t\t\tPossible errors: org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.InProgress\n\t\t\t\t\t org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotSupported\n"},{"Name":"Pair","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis method will connect to the remote device,\n\t\t\tinitiate pairing and then retrieve all SDP records\n\t\t\t(or GATT primary services).\n\t\t\tIf the application has registered its own agent,\n\t\t\tthen that specific agent will be used. Otherwise\n\t\t\tit will use the default agent.\n\t\t\tOnly for applications like a pairing wizard it\n\t\t\twould make sense to have its own agent. In almost\n\t\t\tall other cases the default agent will handle\n\t\t\tthis just fine.\n\t\t\tIn case there is no application agent and also\n\t\t\tno default agent present, this method will fail.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.AlreadyExists\n\t\t\t\t\t org.bluez.Error.AuthenticationCanceled\n\t\t\t\t\t org.bluez.Error.AuthenticationFailed\n\t\t\t\t\t org.bluez.Error.AuthenticationRejected\n\t\t\t\t\t org.bluez.Error.AuthenticationTimeout\n\t\t\t\t\t org.bluez.Error.ConnectionAttemptFailed\n"},{"Name":"CancelPairing","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.DoesNotExist","org.bluez.Error.DoesNotExist"],"Docs":"\t\t\tThis method can be used to cancel a pairing\n\t\t\toperation initiated by the Pair method.\n\t\t\tPossible errors: org.bluez.Error.DoesNotExist\n\t\t\t\t\t org.bluez.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"Address","Type":"string","Docs":"The Bluetooth device address of the remote device.","Flags":[]},{"Name":"AddressType","Type":"string","Docs":"The Bluetooth device Address Type. For dual-mode and\n\t\t\tBR/EDR only devices this defaults to \"public\". Single\n\t\t\tmode LE devices may have either value. If remote device\n\t\t\tuses privacy than before pairing this represents address\n\t\t\ttype used for connection and Identity Address after\n\t\t\tpairing.\n\n\t\t\tPossible values:\n\t\t\t\t\"public\" - Public address\n\t\t\t\t\"random\" - Random address","Flags":[]},{"Name":"Name","Type":"string","Docs":"The Bluetooth remote name. This value can not be\n\t\t\tchanged. Use the Alias property instead.\n\n\t\t\tThis value is only present for completeness. It is\n\t\t\tbetter to always use the Alias property when\n\t\t\tdisplaying the devices name.\n\n\t\t\tIf the Alias property is unset, it will reflect\n\t\t\tthis value which makes it more convenient.","Flags":[5]},{"Name":"Icon","Type":"string","Docs":"Proposed icon name according to the freedesktop.org\n\t\t\ticon naming specification.","Flags":[5]},{"Name":"Class","Type":"uint32","Docs":"The Bluetooth class of device of the remote device.","Flags":[5]},{"Name":"Appearance","Type":"uint16","Docs":"External appearance of device, as found on GAP service.","Flags":[5]},{"Name":"UUIDs","Type":"array{string}","Docs":"List of 128-bit UUIDs that represents the available\n\t\t\tremote services.","Flags":[5]},{"Name":"Paired","Type":"boolean","Docs":"Indicates if the remote device is paired.","Flags":[]},{"Name":"Connected","Type":"boolean","Docs":"Indicates if the remote device is currently connected.\n\t\t\tA PropertiesChanged signal indicate changes to this\n\t\t\tstatus.","Flags":[]},{"Name":"Trusted","Type":"boolean","Docs":"Indicates if the remote is seen as trusted. This\n\t\t\tsetting can be changed by the application.","Flags":[]},{"Name":"Blocked","Type":"boolean","Docs":"If set to true any incoming connections from the\n\t\t\tdevice will be immediately rejected. Any device\n\t\t\tdrivers will also be removed and no new ones will\n\t\t\tbe probed as long as the device is blocked.","Flags":[]},{"Name":"WakeAllowed","Type":"boolean","Docs":"If set to true this device will be allowed to wake the\n\t\t\thost from system suspend.","Flags":[]},{"Name":"Alias","Type":"string","Docs":"The name alias for the remote device. The alias can\n\t\t\tbe used to have a different friendly name for the\n\t\t\tremote device.\n\n\t\t\tIn case no alias is set, it will return the remote\n\t\t\tdevice name. Setting an empty string as alias will\n\t\t\tconvert it back to the remote device name.\n\n\t\t\tWhen resetting the alias with an empty string, the\n\t\t\tproperty will default back to the remote name.","Flags":[]},{"Name":"Adapter","Type":"object","Docs":"The object path of the adapter the device belongs to.","Flags":[]},{"Name":"LegacyPairing","Type":"boolean","Docs":"Set to true if the device only supports the pre-2.1\n\t\t\tpairing mechanism. This property is useful during\n\t\t\tdevice discovery to anticipate whether legacy or\n\t\t\tsimple pairing will occur if pairing is initiated.\n\n\t\t\tNote that this property can exhibit false-positives\n\t\t\tin the case of Bluetooth 2.1 (or newer) devices that\n\t\t\thave disabled Extended Inquiry Response support.","Flags":[]},{"Name":"Modalias","Type":"string","Docs":"Remote Device ID information in modalias format\n\t\t\tused by the kernel and udev.","Flags":[5]},{"Name":"RSSI","Type":"int16","Docs":"Received Signal Strength Indicator of the remote\n\t\t\tdevice (inquiry or advertising).","Flags":[5]},{"Name":"TxPower","Type":"int16","Docs":"Advertised transmitted power level (inquiry or\n\t\t\tadvertising).","Flags":[5]},{"Name":"ManufacturerData","Type":"dict","Docs":"Manufacturer specific advertisement data. Keys are\n\t\t\t16 bits Manufacturer ID followed by its byte array\n\t\t\tvalue.","Flags":[5]},{"Name":"ServiceData","Type":"dict","Docs":"Service advertisement data. Keys are the UUIDs in\n\t\t\tstring format followed by its byte array value.","Flags":[5]},{"Name":"ServicesResolved","Type":"bool","Docs":"Indicate whether or not service discovery has been\n\t\t\tresolved.","Flags":[]},{"Name":"AdvertisingFlags","Type":"array{byte}","Docs":"The Advertising Data Flags of the remote device.","Flags":[]},{"Name":"AdvertisingData","Type":"dict","Docs":"The Advertising Data of the remote device. Keys are\n\t\t\tare 8 bits AD Type followed by data as byte array.\n\n\t\t\tNote: Only types considered safe to be handled by\n\t\t\tapplication are exposed.\n\n\t\t\tPossible values:\n\t\t\t\t\u003ctype\u003e \u003cbyte array\u003e\n\t\t\t\t...\n\n\t\t\tExample:\n\t\t\t\t\u003cTransport Discovery\u003e \u003cOrganization Flags...\u003e\n\t\t\t\t0x26 0x01 0x01...","Flags":[]}]}]},{"FileName":"gatt-api.txt","Name":"BlueZ D-Bus GATT API description","Description":"GATT local and remote services share the same high-level D-Bus API. Local\nrefers to GATT based service exported by a BlueZ plugin or an external\napplication. Remote refers to GATT services exported by the peer.\n\nBlueZ acts as a proxy, translating ATT operations to D-Bus method calls and\nProperties (or the opposite). Support for D-Bus Object Manager is mandatory for\nexternal services to allow seamless GATT declarations (Service, Characteristic\nand Descriptors) discovery. Each GATT service tree is required to export a D-Bus\nObject Manager at its root that is solely responsible for the objects that\nbelong to that service.\n\nReleasing a registered GATT service is not defined yet. Any API extension\nshould avoid breaking the defined API, and if possible keep an unified GATT\nremote and local services representation.\n\n","Api":[{"Title":"Service hierarchy","Description":"\nGATT remote and local service representation. Object path for local services\nis freely definable.\n\nExternal applications implementing local services must register the services\nusing GattManager1 registration method and must implement the methods and\nproperties defined in GattService1 interface.\n","Service":"org.bluez","Interface":"org.bluez.GattService1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/serviceXX","Methods":[],"Signals":[],"Properties":[{"Name":"UUID","Type":"string","Docs":"128-bit service UUID.","Flags":[1]},{"Name":"Primary","Type":"boolean","Docs":"Indicates whether or not this GATT service is a\n\t\t\tprimary service. If false, the service is secondary.","Flags":[1]},{"Name":"Device","Type":"object","Docs":"Object path of the Bluetooth device the service\n\t\t\tbelongs to. Only present on services from remote\n\t\t\tdevices.","Flags":[1,5]},{"Name":"Includes","Type":"array{object}","Docs":"Array of object paths representing the included\n\t\t\tservices of this service.","Flags":[1,5]},{"Name":"Handle","Type":"uint16","Docs":"Service handle. When available in the server it\n\t\t\twould attempt to use to allocate into the database\n\t\t\twhich may fail, to auto allocate the value 0x0000\n\t\t\tshall be used which will cause the allocated handle to\n\t\t\tbe set once registered.","Flags":[6,5]}]},{"Title":"Characteristic hierarchy","Description":"\nFor local GATT defined services, the object paths need to follow the service\npath hierarchy and are freely definable.\n","Service":"org.bluez","Interface":"org.bluez.GattCharacteristic1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/serviceXX/charYYYY","Methods":[{"Name":"ReadValue","ReturnType":"array{byte}","Args":[{"Type":"dict","Name":"options"}],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tIssues a request to read the value of the\n\t\t\tcharacteristic and returns the value if the\n\t\t\toperation was successful.\n\t\t\tPossible options: \"offset\": uint16 offset\n\t\t\t\t\t \"mtu\": Exchanged MTU (Server only)\n\t\t\t\t\t \"device\": Object Device (Server only)\n\t\t\tPossible Errors: org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.InProgress\n\t\t\t\t\t org.bluez.Error.NotPermitted\n\t\t\t\t\t org.bluez.Error.NotAuthorized\n\t\t\t\t\t org.bluez.Error.InvalidOffset\n\t\t\t\t\t org.bluez.Error.NotSupported\n"},{"Name":"WriteValue","ReturnType":"void","Args":[{"Type":"array{byte}","Name":"value"},{"Type":"dict","Name":"options"}],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tIssues a request to write the value of the\n\t\t\tcharacteristic.\n\t\t\tPossible options: \"offset\": Start offset\n\t\t\t\t\t \"type\": string\n\t\t\t\t\t\tPossible values:\n\t\t\t\t\t\t\"command\": Write without\n\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\"request\": Write with response\n\t\t\t\t\t\t\"reliable\": Reliable Write\n\t\t\t\t\t \"mtu\": Exchanged MTU (Server only)\n\t\t\t\t\t \"device\": Device path (Server only)\n\t\t\t\t\t \"link\": Link type (Server only)\n\t\t\t\t\t \"prepare-authorize\": True if prepare\n\t\t\t\t\t\t\t authorization\n\t\t\t\t\t\t\t request\n\t\t\tPossible Errors: org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.InProgress\n\t\t\t\t\t org.bluez.Error.NotPermitted\n\t\t\t\t\t org.bluez.Error.InvalidValueLength\n\t\t\t\t\t org.bluez.Error.NotAuthorized\n\t\t\t\t\t org.bluez.Error.NotSupported\n"},{"Name":"AcquireWrite","ReturnType":"fd, uint16","Args":[{"Type":"dict","Name":"options"}],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tAcquire file descriptor and MTU for writing. Only\n\t\t\tsockets are supported. Usage of WriteValue will be\n\t\t\tlocked causing it to return NotPermitted error.\n\t\t\tFor server the MTU returned shall be equal or smaller\n\t\t\tthan the negotiated MTU.\n\t\t\tFor client it only works with characteristic that has\n\t\t\tWriteAcquired property which relies on\n\t\t\twrite-without-response Flag.\n\t\t\tTo release the lock the client shall close the file\n\t\t\tdescriptor, a HUP is generated in case the device\n\t\t\tis disconnected.\n\t\t\tNote: the MTU can only be negotiated once and is\n\t\t\tsymmetric therefore this method may be delayed in\n\t\t\torder to have the exchange MTU completed, because of\n\t\t\tthat the file descriptor is closed during\n\t\t\treconnections as the MTU has to be renegotiated.\n\t\t\tPossible options: \"device\": Object Device (Server only)\n\t\t\t\t\t \"mtu\": Exchanged MTU (Server only)\n\t\t\t\t\t \"link\": Link type (Server only)\n\t\t\tPossible Errors: org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.NotSupported\n"},{"Name":"AcquireNotify","ReturnType":"fd, uint16","Args":[{"Type":"dict","Name":"options"}],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tAcquire file descriptor and MTU for notify. Only\n\t\t\tsockets are support. Usage of StartNotify will be locked\n\t\t\tcausing it to return NotPermitted error.\n\t\t\tFor server the MTU returned shall be equal or smaller\n\t\t\tthan the negotiated MTU.\n\t\t\tOnly works with characteristic that has NotifyAcquired\n\t\t\twhich relies on notify Flag and no other client have\n\t\t\tcalled StartNotify.\n\t\t\tNotification are enabled during this procedure so\n\t\t\tStartNotify shall not be called, any notification\n\t\t\twill be dispatched via file descriptor therefore the\n\t\t\tValue property is not affected during the time where\n\t\t\tnotify has been acquired.\n\t\t\tTo release the lock the client shall close the file\n\t\t\tdescriptor, a HUP is generated in case the device\n\t\t\tis disconnected.\n\t\t\tNote: the MTU can only be negotiated once and is\n\t\t\tsymmetric therefore this method may be delayed in\n\t\t\torder to have the exchange MTU completed, because of\n\t\t\tthat the file descriptor is closed during\n\t\t\treconnections as the MTU has to be renegotiated.\n\t\t\tPossible options: \"device\": Object Device (Server only)\n\t\t\t\t\t \"mtu\": Exchanged MTU (Server only)\n\t\t\t\t\t \"link\": Link type (Server only)\n\t\t\tPossible Errors: org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.NotSupported\n"},{"Name":"StartNotify","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tStarts a notification session from this characteristic\n\t\t\tif it supports value notifications or indications.\n\t\t\tPossible Errors: org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.NotPermitted\n\t\t\t\t\t org.bluez.Error.InProgress\n\t\t\t\t\t org.bluez.Error.NotSupported\n"},{"Name":"StopNotify","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tThis method will cancel any previous StartNotify\n\t\t\ttransaction. Note that notifications from a\n\t\t\tcharacteristic are shared between sessions thus\n\t\t\tcalling StopNotify will release a single session.\n\t\t\tPossible Errors: org.bluez.Error.Failed\n"},{"Name":"Confirm","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tThis method doesn't expect a reply so it is just a\n\t\t\tconfirmation that value was received.\n\t\t\tPossible Errors: org.bluez.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"UUID","Type":"string","Docs":"128-bit characteristic UUID.","Flags":[1]},{"Name":"Service","Type":"object","Docs":"Object path of the GATT service the characteristic\n\t\t\tbelongs to.","Flags":[1]},{"Name":"Value","Type":"array{byte}","Docs":"The cached value of the characteristic. This property\n\t\t\tgets updated only after a successful read request and\n\t\t\twhen a notification or indication is received, upon\n\t\t\twhich a PropertiesChanged signal will be emitted.","Flags":[1,5]},{"Name":"WriteAcquired","Type":"boolean","Docs":"True, if this characteristic has been acquired by any\n\t\t\tclient using AcquireWrite.\n\n\t\t\tFor client properties is ommited in case\n\t\t\t'write-without-response' flag is not set.\n\n\t\t\tFor server the presence of this property indicates\n\t\t\tthat AcquireWrite is supported.","Flags":[1,5]},{"Name":"NotifyAcquired","Type":"boolean","Docs":"True, if this characteristic has been acquired by any\n\t\t\tclient using AcquireNotify.\n\n\t\t\tFor client this properties is ommited in case 'notify'\n\t\t\tflag is not set.\n\n\t\t\tFor server the presence of this property indicates\n\t\t\tthat AcquireNotify is supported.","Flags":[1,5]},{"Name":"Notifying","Type":"boolean","Docs":"True, if notifications or indications on this\n\t\t\tcharacteristic are currently enabled.","Flags":[1,5]},{"Name":"Flags","Type":"array{string}","Docs":"Defines how the characteristic value can be used. See\n\t\t\tCore spec \"Table 3.5: Characteristic Properties bit\n\t\t\tfield\", and \"Table 3.8: Characteristic Extended\n\t\t\tProperties bit field\". Allowed values:\n\n\t\t\t\t\"broadcast\"\n\t\t\t\t\"read\"\n\t\t\t\t\"write-without-response\"\n\t\t\t\t\"write\"\n\t\t\t\t\"notify\"\n\t\t\t\t\"indicate\"\n\t\t\t\t\"authenticated-signed-writes\"\n\t\t\t\t\"extended-properties\"\n\t\t\t\t\"reliable-write\"\n\t\t\t\t\"writable-auxiliaries\"\n\t\t\t\t\"encrypt-read\"\n\t\t\t\t\"encrypt-write\"\n\t\t\t\t\"encrypt-authenticated-read\"\n\t\t\t\t\"encrypt-authenticated-write\"\n\t\t\t\t\"secure-read\" (Server only)\n\t\t\t\t\"secure-write\" (Server only)\n\t\t\t\t\"authorize\"","Flags":[1]},{"Name":"Handle","Type":"uint16","Docs":"Characteristic handle. When available in the server it\n\t\t\twould attempt to use to allocate into the database\n\t\t\twhich may fail, to auto allocate the value 0x0000\n\t\t\tshall be used which will cause the allocated handle to\n\t\t\tbe set once registered.","Flags":[6,5]}]},{"Title":"Characteristic Descriptors hierarchy","Description":"\nLocal or remote GATT characteristic descriptors hierarchy.\n","Service":"org.bluez","Interface":"org.bluez.GattDescriptor1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/serviceXX/charYYYY/descriptorZZZ","Methods":[{"Name":"ReadValue","ReturnType":"array{byte}","Args":[{"Type":"dict","Name":"flags"}],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tIssues a request to read the value of the\n\t\t\tcharacteristic and returns the value if the\n\t\t\toperation was successful.\n\t\t\tPossible options: \"offset\": Start offset\n\t\t\t\t\t \"device\": Device path (Server only)\n\t\t\t\t\t \"link\": Link type (Server only)\n\t\t\tPossible Errors: org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.InProgress\n\t\t\t\t\t org.bluez.Error.NotPermitted\n\t\t\t\t\t org.bluez.Error.NotAuthorized\n\t\t\t\t\t org.bluez.Error.NotSupported\n"},{"Name":"WriteValue","ReturnType":"void","Args":[{"Type":"array{byte}","Name":"value"},{"Type":"dict","Name":"flags"}],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tIssues a request to write the value of the\n\t\t\tcharacteristic.\n\t\t\tPossible options: \"offset\": Start offset\n\t\t\t\t\t \"device\": Device path (Server only)\n\t\t\t\t\t \"link\": Link type (Server only)\n\t\t\t\t\t \"prepare-authorize\": boolean Is prepare\n\t\t\t\t\t\t\t authorization\n\t\t\t\t\t\t\t request\n\t\t\tPossible Errors: org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.InProgress\n\t\t\t\t\t org.bluez.Error.NotPermitted\n\t\t\t\t\t org.bluez.Error.InvalidValueLength\n\t\t\t\t\t org.bluez.Error.NotAuthorized\n\t\t\t\t\t org.bluez.Error.NotSupported\n"}],"Signals":[],"Properties":[{"Name":"UUID","Type":"string","Docs":"128-bit descriptor UUID.","Flags":[1]},{"Name":"Characteristic","Type":"object","Docs":"Object path of the GATT characteristic the descriptor\n\t\t\tbelongs to.","Flags":[1]},{"Name":"Value","Type":"array{byte}","Docs":"The cached value of the descriptor. This property\n\t\t\tgets updated only after a successful read request, upon\n\t\t\twhich a PropertiesChanged signal will be emitted.","Flags":[1,5]},{"Name":"Flags","Type":"array{string}","Docs":"Defines how the descriptor value can be used.\n\n\t\t\tPossible values:\n\n\t\t\t\t\"read\"\n\t\t\t\t\"write\"\n\t\t\t\t\"encrypt-read\"\n\t\t\t\t\"encrypt-write\"\n\t\t\t\t\"encrypt-authenticated-read\"\n\t\t\t\t\"encrypt-authenticated-write\"\n\t\t\t\t\"secure-read\" (Server Only)\n\t\t\t\t\"secure-write\" (Server Only)\n\t\t\t\t\"authorize\"","Flags":[1]},{"Name":"Handle","Type":"uint16","Docs":"Characteristic handle. When available in the server it\n\t\t\twould attempt to use to allocate into the database\n\t\t\twhich may fail, to auto allocate the value 0x0000\n\t\t\tshall be used which will cause the allocated handle to\n\t\t\tbe set once registered.","Flags":[6,5]}]},{"Title":"GATT Profile hierarchy","Description":"\nLocal profile (GATT client) instance. By registering this type of object\nan application effectively indicates support for a specific GATT profile\nand requests automatic connections to be established to devices\nsupporting it.\n","Service":"\u003capplication dependent\u003e","Interface":"org.bluez.GattProfile1","ObjectPath":"\u003capplication dependent\u003e","Methods":[{"Name":"Release","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tunregisters the profile. The profile can use it to\n\t\t\tdo cleanup tasks. There is no need to unregister the\n\t\t\tprofile, because when this method gets called it has\n\t\t\talready been unregistered.\n"}],"Signals":[],"Properties":[{"Name":"UUIDs","Type":"array{string}","Docs":"128-bit GATT service UUIDs to auto connect.","Flags":[1]}]},{"Title":"GATT Manager hierarchy","Description":"\nGATT Manager allows external applications to register GATT services and\nprofiles.\n\nRegistering a profile allows applications to subscribe to *remote* services.\nThese must implement the GattProfile1 interface defined above.\n\nRegistering a service allows applications to publish a *local* GATT service,\nwhich then becomes available to remote devices. A GATT service is represented by\na D-Bus object hierarchy where the root node corresponds to a service and the\nchild nodes represent characteristics and descriptors that belong to that\nservice. Each node must implement one of GattService1, GattCharacteristic1,\nor GattDescriptor1 interfaces described above, based on the attribute it\nrepresents. Each node must also implement the standard D-Bus Properties\ninterface to expose their properties. These objects collectively represent a\nGATT service definition.\n\nTo make service registration simple, BlueZ requires that all objects that belong\nto a GATT service be grouped under a D-Bus Object Manager that solely manages\nthe objects of that service. Hence, the standard DBus.ObjectManager interface\nmust be available on the root service path. An example application hierarchy\ncontaining two separate GATT services may look like this:\n\n-\u003e /com/example\n | - org.freedesktop.DBus.ObjectManager\n |\n -\u003e /com/example/service0\n | | - org.freedesktop.DBus.Properties\n | | - org.bluez.GattService1\n | |\n | -\u003e /com/example/service0/char0\n | | - org.freedesktop.DBus.Properties\n | | - org.bluez.GattCharacteristic1\n | |\n | -\u003e /com/example/service0/char1\n | | - org.freedesktop.DBus.Properties\n | | - org.bluez.GattCharacteristic1\n | |\n | -\u003e /com/example/service0/char1/desc0\n | - org.freedesktop.DBus.Properties\n | - org.bluez.GattDescriptor1\n |\n -\u003e /com/example/service1\n | - org.freedesktop.DBus.Properties\n | - org.bluez.GattService1\n |\n -\u003e /com/example/service1/char0\n - org.freedesktop.DBus.Properties\n - org.bluez.GattCharacteristic1\n\nWhen a service is registered, BlueZ will automatically obtain information about\nall objects using the service's Object Manager. Once a service has been\nregistered, the objects of a service should not be removed. If BlueZ receives an\nInterfacesRemoved signal from a service's Object Manager, it will immediately\nunregister the service. Similarly, if the application disconnects from the bus,\nall of its registered services will be automatically unregistered.\nInterfacesAdded signals will be ignored.\n\nExamples:\n\t- Client\n\t\ttest/example-gatt-client\n\t\tclient/bluetoothctl\n\t- Server\n\t\ttest/example-gatt-server\n\t\ttools/gatt-service\n\n","Service":"org.bluez","Interface":"org.bluez.GattManager1","ObjectPath":"[variable prefix]/{hci0,hci1,...}","Methods":[{"Name":"RegisterApplication","ReturnType":"void","Args":[{"Type":"object","Name":"application"},{"Type":"dict","Name":"options"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tRegisters a local GATT services hierarchy as described\n\t\t\tabove (GATT Server) and/or GATT profiles (GATT Client).\n\t\t\tThe application object path together with the D-Bus\n\t\t\tsystem bus connection ID define the identification of\n\t\t\tthe application registering a GATT based\n\t\t\tservice or profile.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.AlreadyExists\n"},{"Name":"UnregisterApplication","ReturnType":"void","Args":[{"Type":"object","Name":"application"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis unregisters the services that has been\n\t\t\tpreviously registered. The object path parameter\n\t\t\tmust match the same value that has been used\n\t\t\ton registration.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.DoesNotExist\n"}],"Signals":[],"Properties":[]}]},{"FileName":"health-api.txt","Name":"BlueZ D-Bus Health API description","Description":"\n","Api":[{"Title":"HealthManager hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.HealthManager1","ObjectPath":"/org/bluez/","Methods":[{"Name":"CreateApplication","ReturnType":"object","Args":[{"Type":"dict","Name":"config"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tReturns the path of the new registered application.\n\t\t\tApplication will be closed by the call or implicitly\n\t\t\twhen the programs leaves the bus.\n\t\t\tconfig:\n\t\t\t\tuint16 DataType:\n\t\t\t\t\tMandatory\n\t\t\t\tstring Role:\n\t\t\t\t\tMandatory. Possible values: \"source\",\n\t\t\t\t\t\t\t\t\t\"sink\"\n\t\t\t\tstring Description:\n\t\t\t\t\tOptional\n\t\t\t\tChannelType:\n\t\t\t\t\tOptional, just for sources. Possible\n\t\t\t\t\tvalues: \"reliable\", \"streaming\"\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n"},{"Name":"DestroyApplication","ReturnType":"void","Args":[{"Type":"object","Name":"application"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tCloses the HDP application identified by the object\n\t\t\tpath. Also application will be closed if the process\n\t\t\tthat started it leaves the bus. Only the creator of the\n\t\t\tapplication will be able to destroy it.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotFound\n\t\t\t\t\t org.bluez.Error.NotAllowed\n"}],"Signals":[],"Properties":[]},{"Title":"HealthDevice hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.HealthDevice1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX","Methods":[{"Name":"Echo","ReturnType":"boolean","Args":[],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tSends an echo petition to the remote service. Returns\n\t\t\tTrue if response matches with the buffer sent. If some\n\t\t\terror is detected False value is returned.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.OutOfRange\n"},{"Name":"CreateChannel","ReturnType":"object","Args":[{"Type":"object","Name":"application"},{"Type":"string","Name":"configuration"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tCreates a new data channel. The configuration should\n\t\t\tindicate the channel quality of service using one of\n\t\t\tthis values \"reliable\", \"streaming\", \"any\".\n\t\t\tReturns the object path that identifies the data\n\t\t\tchannel that is already connected.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.HealthError\n"},{"Name":"DestroyChannel","ReturnType":"void","Args":[{"Type":"object","Name":"channel"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tDestroys the data channel object. Only the creator of\n\t\t\tthe channel or the creator of the HealthApplication\n\t\t\tthat received the data channel will be able to destroy\n\t\t\tit.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotFound\n\t\t\t\t org.bluez.Error.NotAllowed\n"}],"Signals":[{"Name":"ChannelConnected","ReturnType":"void","Args":[{"Type":"object","Name":"channel"}],"Errors":null,"Docs":"\n\t\t\tThis signal is launched when a new data channel is\n\t\t\tcreated or when a known data channel is reconnected.\n\n"},{"Name":"ChannelDeleted","ReturnType":"void","Args":[{"Type":"object","Name":"channel"}],"Errors":null,"Docs":"\n\t\t\tThis signal is launched when a data channel is deleted.\n\n\t\t\tAfter this signal the data channel path will not be\n\t\t\tvalid and its path can be reused for future data\n\t\t\tchannels."}],"Properties":[{"Name":"MainChannel","Type":"object","Docs":"The first reliable channel opened. It is needed by\n\t\t\tupper applications in order to send specific protocol\n\t\t\tdata units. The first reliable can change after a\n\t\t\treconnection.","Flags":[]}]},{"Title":"HealthChannel hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.HealthChannel1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/chanZZZ","Methods":[{"Name":"Acquire","ReturnType":"fd","Args":[],"Errors":["org.bluez.Error.NotConnected","org.bluez.Error.NotConnected"],"Docs":"\t\t\tReturns the file descriptor for this data channel. If\n\t\t\tthe data channel is not connected it will also\n\t\t\treconnect.\n\t\t\tPossible Errors: org.bluez.Error.NotConnected\n\t\t\t\t\t org.bluez.Error.NotAllowed\n"},{"Name":"Release","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotAcquired","org.bluez.Error.NotAcquired"],"Docs":"\t\t\tReleases the fd. Application should also need to\n\t\t\tclose() it.\n\t\t\tPossible Errors: org.bluez.Error.NotAcquired\n\t\t\t\t\t org.bluez.Error.NotAllowed\n"}],"Signals":[],"Properties":[{"Name":"Type","Type":"string","Docs":"The quality of service of the data channel. (\"reliable\"\n\t\t\tor \"streaming\")","Flags":[]},{"Name":"Device","Type":"object","Docs":"Identifies the Remote Device that is connected with.\n\t\t\tMaps with a HealthDevice object.","Flags":[]},{"Name":"Application","Type":"object","Docs":"Identifies the HealthApplication to which this channel\n\t\t\tis related to (which indirectly defines its role and\n\t\t\tdata type).","Flags":[]}]}]},{"FileName":"input-api.txt","Name":"BlueZ D-Bus Input API description","Description":"","Api":[{"Title":"Input hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.Input1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX","Methods":[],"Signals":[],"Properties":[{"Name":"ReconnectMode","Type":"string","Docs":"Determines the Connectability mode of the HID device as\n\t\t\tdefined by the HID Profile specification, Section 5.4.2.\n\n\t\t\tThis mode is based in the two properties\n\t\t\tHIDReconnectInitiate (see Section 5.3.4.6) and\n\t\t\tHIDNormallyConnectable (see Section 5.3.4.14) which\n\t\t\tdefine the following four possible values:\n\n\t\t\t\"none\"\t\tDevice and host are not required to\n\t\t\t\t\tautomatically restore the connection.\n\n\t\t\t\"host\"\t\tBluetooth HID host restores connection.\n\n\t\t\t\"device\"\tBluetooth HID device restores\n\t\t\t\t\tconnection.\n\n\t\t\t\"any\"\t\tBluetooth HID device shall attempt to\n\t\t\t\t\trestore the lost connection, but\n\t\t\t\t\tBluetooth HID Host may also restore the\n\t\t\t\t\tconnection.","Flags":[]}]}]},{"FileName":"media-api.txt","Name":"BlueZ D-Bus Media API description","Description":"\n","Api":[{"Title":"Media hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.Media1","ObjectPath":"[variable prefix]/{hci0,hci1,...}","Methods":[{"Name":"RegisterEndpoint","ReturnType":"void","Args":[{"Type":"object","Name":"endpoint"},{"Type":"dict","Name":"properties"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tRegister a local end point to sender, the sender can\n\t\t\tregister as many end points as it likes.\n\t\t\tNote: If the sender disconnects the end points are\n\t\t\tautomatically unregistered.\n\t\t\tpossible properties:\n\t\t\t\tstring UUID:\n\t\t\t\t\tUUID of the profile which the endpoint\n\t\t\t\t\tis for.\n\t\t\t\tbyte Codec:\n\t\t\t\t\tAssigned number of codec that the\n\t\t\t\t\tendpoint implements. The values should\n\t\t\t\t\tmatch the profile specification which\n\t\t\t\t\tis indicated by the UUID.\n\t\t\t\tarray{byte} Capabilities:\n\t\t\t\t\tCapabilities blob, it is used as it is\n\t\t\t\t\tso the size and byte order must match.\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotSupported - emitted\n\t\t\t\t\t when interface for the end-point is\n\t\t\t\t\t disabled.\n"},{"Name":"UnregisterEndpoint","ReturnType":"void","Args":[{"Type":"object","Name":"endpoint"}],"Errors":null,"Docs":"\t\t\tUnregister sender end point.\n"},{"Name":"RegisterPlayer","ReturnType":"void","Args":[{"Type":"object","Name":"player"},{"Type":"dict","Name":"properties"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tRegister a media player object to sender, the sender\n\t\t\tcan register as many objects as it likes.\n\t\t\tObject must implement at least\n\t\t\torg.mpris.MediaPlayer2.Player as defined in MPRIS 2.2\n\t\t\tspec:\n\t\t\thttp://specifications.freedesktop.org/mpris-spec/latest/\n\t\t\tNote: If the sender disconnects its objects are\n\t\t\tautomatically unregistered.\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotSupported\n"},{"Name":"UnregisterPlayer","ReturnType":"void","Args":[{"Type":"object","Name":"player"}],"Errors":null,"Docs":"\t\t\tUnregister sender media player.\n"},{"Name":"RegisterApplication","ReturnType":"void","Args":[{"Type":"object","Name":"root"},{"Type":"dict","Name":"options"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tRegister endpoints an player objects within root\n\t\t\tobject which must implement ObjectManager.\n\t\t\tThe application object path together with the D-Bus\n\t\t\tsystem bus connection ID define the identification of\n\t\t\tthe application.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.AlreadyExists\n"},{"Name":"UnregisterApplication","ReturnType":"void","Args":[{"Type":"object","Name":"application"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis unregisters the services that has been\n\t\t\tpreviously registered. The object path parameter\n\t\t\tmust match the same value that has been used\n\t\t\ton registration.\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.DoesNotExist\n"}],"Signals":[],"Properties":[]},{"Title":"Media Control hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.MediaControl1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX","Methods":[{"Name":"Play","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tResume playback.\n"},{"Name":"Pause","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tPause playback.\n"},{"Name":"Stop","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tStop playback.\n"},{"Name":"Next","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tNext item.\n"},{"Name":"Previous","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tPrevious item.\n"},{"Name":"VolumeUp","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tAdjust remote volume one step up\n"},{"Name":"VolumeDown","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tAdjust remote volume one step down\n"},{"Name":"FastForward","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tFast forward playback, this action is only stopped\n\t\t\twhen another method in this interface is called.\n"},{"Name":"Rewind","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tRewind playback, this action is only stopped\n\t\t\twhen another method in this interface is called.\n"}],"Signals":[],"Properties":[{"Name":"Connected","Type":"boolean","Docs":"","Flags":[]},{"Name":"Player","Type":"object","Docs":"Addressed Player object path.","Flags":[5]}]},{"Title":"MediaPlayer1 hierarchy","Description":"","Service":"org.bluez (Controller role)","Interface":"org.bluez.MediaPlayer1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/playerX","Methods":[{"Name":"Play","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tResume playback.\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"Pause","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tPause playback.\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"Stop","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tStop playback.\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"Next","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tNext item.\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"Previous","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tPrevious item.\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"FastForward","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tFast forward playback, this action is only stopped\n\t\t\twhen another method in this interface is called.\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"Rewind","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tRewind playback, this action is only stopped\n\t\t\twhen another method in this interface is called.\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"Press","ReturnType":"void","Args":[{"Type":"byte","Name":"avc_key"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tPress a specific key to send as passthrough command.\n\t\t\tThe key will be released automatically. Use Hold()\n\t\t\tinstead if the intention is to hold down the key.\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"Hold","ReturnType":"void","Args":[{"Type":"byte","Name":"avc_key"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tPress and hold a specific key to send as passthrough\n\t\t\tcommand. It is your responsibility to make sure that\n\t\t\tRelease() is called after calling this method. The held\n\t\t\tkey will also be released when any other method in this\n\t\t\tinterface is called.\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"Release","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tRelease the previously held key invoked using Hold().\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"Equalizer","Type":"string","Docs":"Possible values: \"off\" or \"on\"","Flags":[]},{"Name":"Repeat","Type":"string","Docs":"Possible values: \"off\", \"singletrack\", \"alltracks\" or\n\t\t\t\t\t\"group\"","Flags":[]},{"Name":"Shuffle","Type":"string","Docs":"Possible values: \"off\", \"alltracks\" or \"group\"","Flags":[]},{"Name":"Scan","Type":"string","Docs":"Possible values: \"off\", \"alltracks\" or \"group\"","Flags":[]},{"Name":"Status","Type":"string","Docs":"Possible status: \"playing\", \"stopped\", \"paused\",\n\t\t\t\t\t\"forward-seek\", \"reverse-seek\"\n\t\t\t\t\tor \"error\"","Flags":[]},{"Name":"Position","Type":"uint32","Docs":"Playback position in milliseconds. Changing the\n\t\t\tposition may generate additional events that will be\n\t\t\tsent to the remote device. When position is 0 it means\n\t\t\tthe track is starting and when it's greater than or\n\t\t\tequal to track's duration the track has ended. Note\n\t\t\tthat even if duration is not available in metadata it's\n\t\t\tpossible to signal its end by setting position to the\n\t\t\tmaximum uint32 value.","Flags":[]},{"Name":"Track","Type":"dict","Docs":"Track metadata.\n\n\t\t\tPossible values:","Flags":[]},{"Name":"Title:","Type":"string","Docs":"Track title name","Flags":[]},{"Name":"Artist:","Type":"string","Docs":"Track artist name","Flags":[]},{"Name":"Album:","Type":"string","Docs":"Track album name","Flags":[]},{"Name":"Genre:","Type":"string","Docs":"Track genre name","Flags":[]},{"Name":"NumberOfTracks:","Type":"uint32","Docs":"Number of tracks in total","Flags":[]},{"Name":"TrackNumber:","Type":"uint32","Docs":"Track number","Flags":[]},{"Name":"Duration:","Type":"uint32","Docs":"Track duration in milliseconds","Flags":[]},{"Name":"Device","Type":"object","Docs":"Device object path.","Flags":[]},{"Name":"Name","Type":"string","Docs":"Player name","Flags":[]},{"Name":"Type","Type":"string","Docs":"Player type\n\n\t\t\tPossible values:\n\n\t\t\t\t\"Audio\"\n\t\t\t\t\"Video\"\n\t\t\t\t\"Audio Broadcasting\"\n\t\t\t\t\"Video Broadcasting\"","Flags":[]},{"Name":"Subtype","Type":"string","Docs":"Player subtype\n\n\t\t\tPossible values:\n\n\t\t\t\t\"Audio Book\"\n\t\t\t\t\"Podcast\"","Flags":[]},{"Name":"Browsable","Type":"boolean","Docs":"If present indicates the player can be browsed using\n\t\t\tMediaFolder interface.\n\n\t\t\tPossible values:\n\n\t\t\t\tTrue: Supported and active\n\t\t\t\tFalse: Supported but inactive\n\n\t\t\tNote: If supported but inactive clients can enable it\n\t\t\tby using MediaFolder interface but it might interfere\n\t\t\tin the playback of other players.","Flags":[]},{"Name":"Searchable","Type":"boolean","Docs":"If present indicates the player can be searched using\n\t\t\tMediaFolder interface.\n\n\t\t\tPossible values:\n\n\t\t\t\tTrue: Supported and active\n\t\t\t\tFalse: Supported but inactive\n\n\t\t\tNote: If supported but inactive clients can enable it\n\t\t\tby using MediaFolder interface but it might interfere\n\t\t\tin the playback of other players.","Flags":[]},{"Name":"Playlist","Type":"object","Docs":"Playlist object path.","Flags":[]}]},{"Title":"MediaFolder1 hierarchy","Description":"","Service":"unique name (Target role)\n\t\torg.bluez (Controller role)","Interface":"org.bluez.MediaFolder1","ObjectPath":"freely definable (Target role)\n\t\t[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/playerX\n\t\t(Controller role)","Methods":[{"Name":"Search","ReturnType":"object","Args":[{"Type":"string","Name":"value"},{"Type":"dict","Name":"filter"}],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tReturn a folder object containing the search result.\n\t\t\tTo list the items found use the folder object returned\n\t\t\tand pass to ChangeFolder.\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"ListItems","ReturnType":"array{objects, properties}","Args":[{"Type":"dict","Name":"filter"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tReturn a list of items found\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"ChangeFolder","ReturnType":"void","Args":[{"Type":"object","Name":"folder"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tChange current folder.\n\t\t\tNote: By changing folder the items of previous folder\n\t\t\tmight be destroyed and have to be listed again, the\n\t\t\texception is NowPlaying folder which should be always\n\t\t\tpresent while the player is active.\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\t org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"NumberOfItems","Type":"uint32","Docs":"Number of items in the folder","Flags":[]},{"Name":"Name","Type":"string","Docs":"Folder name:\n\n\t\t\tPossible values:\n\t\t\t\t\"/Filesystem/...\": Filesystem scope\n\t\t\t\t\"/NowPlaying/...\": NowPlaying scope\n\n\t\t\tNote: /NowPlaying folder might not be listed if player\n\t\t\tis stopped, folders created by Search are virtual so\n\t\t\tonce another Search is perform or the folder is\n\t\t\tchanged using ChangeFolder it will no longer be listed.\n\nFilters","Flags":[]},{"Name":"Start:","Type":"uint32","Docs":"Offset of the first item.\n\n\t\t\tDefault value: 0","Flags":[]},{"Name":"End:","Type":"uint32","Docs":"Offset of the last item.\n\n\t\t\tDefault value: NumbeOfItems","Flags":[]},{"Name":"Attributes","Type":"array{string}","Docs":"Item properties that should be included in the list.\n\n\t\t\tPossible Values:\n\n\t\t\t\t\"title\", \"artist\", \"album\", \"genre\",\n\t\t\t\t\"number-of-tracks\", \"number\", \"duration\"\n\n\t\t\tDefault Value: All","Flags":[]}]},{"Title":"MediaItem1 hierarchy","Description":"","Service":"unique name (Target role)\n\t\torg.bluez (Controller role)","Interface":"org.bluez.MediaItem1","ObjectPath":"freely definable (Target role)\n\t\t[variable\n\t\tprefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/playerX/itemX\n\t\t(Controller role)","Methods":[{"Name":"Play","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tPlay item\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"AddtoNowPlaying","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.NotSupported","org.bluez.Error.NotSupported"],"Docs":"\t\t\tAdd item to now playing list\n\t\t\tPossible Errors: org.bluez.Error.NotSupported\n\t\t\t\t\t org.bluez.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"Player","Type":"object","Docs":"Player object path the item belongs to","Flags":[]},{"Name":"Name","Type":"string","Docs":"Item displayable name","Flags":[]},{"Name":"Type","Type":"string","Docs":"Item type\n\n\t\t\tPossible values: \"video\", \"audio\", \"folder\"","Flags":[]},{"Name":"FolderType","Type":"string","Docs":"Folder type.\n\n\t\t\tPossible values: \"mixed\", \"titles\", \"albums\", \"artists\"\n\n\t\t\tAvailable if property Type is \"Folder\"","Flags":[5]},{"Name":"Playable","Type":"boolean","Docs":"Indicates if the item can be played\n\n\t\t\tAvailable if property Type is \"folder\"","Flags":[5]},{"Name":"Metadata","Type":"dict","Docs":"Item metadata.\n\n\t\t\tPossible values:","Flags":[]},{"Name":"Title","Type":"string","Docs":"Item title name\n\n\t\t\t\t\tAvailable if property Type is \"audio\"\n\t\t\t\t\tor \"video\"","Flags":[]},{"Name":"Artist","Type":"string","Docs":"Item artist name\n\n\t\t\t\t\tAvailable if property Type is \"audio\"\n\t\t\t\t\tor \"video\"","Flags":[]},{"Name":"Album","Type":"string","Docs":"Item album name\n\n\t\t\t\t\tAvailable if property Type is \"audio\"\n\t\t\t\t\tor \"video\"","Flags":[]},{"Name":"Genre","Type":"string","Docs":"Item genre name\n\n\t\t\t\t\tAvailable if property Type is \"audio\"\n\t\t\t\t\tor \"video\"","Flags":[]},{"Name":"NumberOfTracks","Type":"uint32","Docs":"Item album number of tracks in total\n\n\t\t\t\t\tAvailable if property Type is \"audio\"\n\t\t\t\t\tor \"video\"","Flags":[]},{"Name":"Number","Type":"uint32","Docs":"Item album number\n\n\t\t\t\t\tAvailable if property Type is \"audio\"\n\t\t\t\t\tor \"video\"","Flags":[]},{"Name":"Duration","Type":"uint32","Docs":"Item duration in milliseconds\n\n\t\t\t\t\tAvailable if property Type is \"audio\"\n\t\t\t\t\tor \"video\"","Flags":[]}]},{"Title":"MediaEndpoint1 hierarchy","Description":"","Service":"unique name (Server role)\n\t\torg.bluez (Client role)","Interface":"org.bluez.MediaEndpoint1","ObjectPath":"freely definable (Server role)\n\t\t[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/sepX\n\t\t(Client role)","Methods":[{"Name":"SetConfiguration","ReturnType":"void","Args":[{"Type":"object","Name":"transport"},{"Type":"dict","Name":"properties"}],"Errors":null,"Docs":"\t\t\tSet configuration for the transport.\n\t\t\tFor client role transport must be set with a server\n\t\t\tendpoint oject which will be configured and the\n\t\t\tproperties must contain the following properties:\n\t\t\t\tarray{byte} Capabilities\n"},{"Name":"SelectConfiguration","ReturnType":"array{byte}","Args":[{"Type":"array{byte}","Name":"capabilities"}],"Errors":null,"Docs":"\t\t\tSelect preferable configuration from the supported\n\t\t\tcapabilities.\n\t\t\tReturns a configuration which can be used to setup\n\t\t\ta transport.\n\t\t\tNote: There is no need to cache the selected\n\t\t\tconfiguration since on success the configuration is\n\t\t\tsend back as parameter of SetConfiguration.\n"},{"Name":"ClearConfiguration","ReturnType":"void","Args":[{"Type":"object","Name":"transport"}],"Errors":null,"Docs":"\t\t\tClear transport configuration.\n"},{"Name":"Release","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tunregisters the endpoint. An endpoint can use it to do\n\t\t\tcleanup tasks. There is no need to unregister the\n\t\t\tendpoint, because when this method gets called it has\n\t\t\talready been unregistered.\n"}],"Signals":[],"Properties":[{"Name":"UUID","Type":"string","Docs":"UUID of the profile which the endpoint is for.","Flags":[5]},{"Name":"Codec","Type":"byte","Docs":"Assigned number of codec that the endpoint implements.\n\t\t\tThe values should match the profile specification which\n\t\t\tis indicated by the UUID.","Flags":[5]},{"Name":"Capabilities","Type":"array{byte}","Docs":"Capabilities blob, it is used as it is so the size and\n\t\t\tbyte order must match.","Flags":[5]},{"Name":"Device","Type":"object","Docs":"Device object which the endpoint is belongs to.","Flags":[5]},{"Name":"DelayReporting","Type":"bool","Docs":"Indicates if endpoint supports Delay Reporting.","Flags":[5]}]},{"Title":"MediaTransport1 hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.MediaTransport1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/fdX","Methods":[{"Name":"Acquire","ReturnType":"fd, uint16, uint16","Args":[],"Errors":["org.bluez.Error.NotAuthorized","org.bluez.Error.NotAuthorized"],"Docs":"\t\t\tAcquire transport file descriptor and the MTU for read\n\t\t\tand write respectively.\n\t\t\tPossible Errors: org.bluez.Error.NotAuthorized\n\t\t\t\t\t org.bluez.Error.Failed\n"},{"Name":"TryAcquire","ReturnType":"fd, uint16, uint16","Args":[],"Errors":["org.bluez.Error.NotAvailable","org.bluez.Error.NotAvailable"],"Docs":"\t\t\tAcquire transport file descriptor only if the transport\n\t\t\tis in \"pending\" state at the time the message is\n\t\t\treceived by BlueZ. Otherwise no request will be sent\n\t\t\tto the remote device and the function will just fail\n\t\t\twith org.bluez.Error.NotAvailable.\n\t\t\tPossible Errors: org.bluez.Error.NotAuthorized\n\t\t\t\t\t org.bluez.Error.Failed\n\t\t\t\t\t org.bluez.Error.NotAvailable\n"},{"Name":"Release","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tReleases file descriptor.\n"}],"Signals":[],"Properties":[{"Name":"Device","Type":"object","Docs":"Device object which the transport is connected to.","Flags":[]},{"Name":"UUID","Type":"string","Docs":"UUID of the profile which the transport is for.","Flags":[]},{"Name":"Codec","Type":"byte","Docs":"Assigned number of codec that the transport support.\n\t\t\tThe values should match the profile specification which\n\t\t\tis indicated by the UUID.","Flags":[]},{"Name":"Configuration","Type":"array{byte}","Docs":"Configuration blob, it is used as it is so the size and\n\t\t\tbyte order must match.","Flags":[]},{"Name":"State","Type":"string","Docs":"Indicates the state of the transport. Possible\n\t\t\tvalues are:\n\t\t\t\t\"idle\": not streaming\n\t\t\t\t\"pending\": streaming but not acquired\n\t\t\t\t\"active\": streaming and acquired","Flags":[]},{"Name":"Delay","Type":"uint16","Docs":"Optional. Transport delay in 1/10 of millisecond, this\n\t\t\tproperty is only writeable when the transport was\n\t\t\tacquired by the sender.","Flags":[]},{"Name":"Volume","Type":"uint16","Docs":"Optional. Indicates volume level of the transport,\n\t\t\tthis property is only writeable when the transport was\n\t\t\tacquired by the sender.\n\n\t\t\tPossible Values: 0-127","Flags":[]},{"Name":"Endpoint","Type":"object","Docs":"Endpoint object which the transport is associated\n\t\t\twith.","Flags":[5]}]}]},{"FileName":"mesh-api.txt","Name":"BlueZ D-Bus Mesh API description","Description":"","Api":[{"Title":"Mesh Network Hierarchy","Description":"","Service":"org.bluez.mesh","Interface":"org.bluez.mesh.Network1","ObjectPath":"/org/bluez/mesh","Methods":[{"Name":"Join","ReturnType":"void","Args":[{"Type":"object","Name":"app_root"},{"Type":"array{byte}[16]","Name":"uuid"}],"Errors":null,"Docs":"\t\tThis is the first method that an application has to call to\n\t\tbecome a provisioned node on a mesh network. The call will\n\t\tinitiate broadcasting of Unprovisioned Device Beacon.\n\t\tThe app_root parameter is a D-Bus object root path of\n\t\tthe application that implements org.bluez.mesh.Application1\n\t\tinterface. The application represents a node where child mesh\n\t\telements have their own objects that implement\n\t\torg.bluez.mesh.Element1 interface. The application hierarchy\n\t\talso contains a provision agent object that implements\n\t\torg.bluez.mesh.ProvisionAgent1 interface. The standard\n\t\tDBus.ObjectManager interface must be available on the\n\t\tapp_root path.\n\t\tThe uuid parameter is a 16-byte array that contains Device UUID.\n\t\tThis UUID must be unique (at least from the daemon perspective),\n\t\ttherefore attempting to call this function using already\n\t\tregistered UUID results in an error.\n\t\tWhen provisioning finishes, the daemon will call either\n\t\tJoinComplete or JoinFailed method on object implementing\n\t\torg.bluez.mesh.Application1 interface.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.AlreadyExists,\n"},{"Name":"Cancel","ReturnType":"void","Args":null,"Errors":null,"Docs":""},{"Name":"Attach","ReturnType":"object node, array{byte, array{(uint16, dict)}} configuration","Args":[{"Type":"object","Name":"app_root"},{"Type":"uint64","Name":"token"}],"Errors":null,"Docs":"\t\tThis is the first method that an application must call to get\n\t\taccess to mesh node functionalities.\n\t\tThe app_root parameter is a D-Bus object root path of\n\t\tthe application that implements org.bluez.mesh.Application1\n\t\tinterface. The application represents a node where child mesh\n\t\telements have their own objects that implement\n\t\torg.bluez.mesh.Element1 interface. The standard\n\t\tDBus.ObjectManager interface must be available on the\n\t\tapp_root path.\n\t\tThe token parameter is a 64-bit number that has been assigned to\n\t\tthe application when it first got provisioned/joined mesh\n\t\tnetwork, i.e. upon receiving JoinComplete() method. The daemon\n\t\tuses the token to verify whether the application is authorized\n\t\tto assume the mesh node identity.\n\t\tIn case of success, the method call returns mesh node object\n\t\t(see Mesh Node Hierarchy section) and current configuration\n\t\tsettings. The return value of configuration parameter is an\n\t\tarray, where each entry is a structure that contains element\n\t\tconfiguration. The element configuration structure is organized\n\t\tas follows:\n\t\tbyte\n\t\t\tElement index, identifies the element to which this\n\t\t\tconfiguration entry pertains.\n\t\tarray{struct}\n\t\t\tModels array where each entry is a structure with the\n\t\t\tfollowing members:\n\t\t\tuint16\n\t\t\t\tEither a SIG Model Identifier or, if Vendor key\n\t\t\t\tis present in model configuration dictionary, a\n\t\t\t\t16-bit vendor-assigned Model Identifier\n\t\t\tdict\n\t\t\t\tA dictionary that contains model configuration\n\t\t\t\twith the following keys defined:\n\t\t\t\tarray{uint16} Bindings\n\t\t\t\t\tIndices of application keys bound to the\n\t\t\t\t\tmodel\n\t\t\t\tuint32 PublicationPeriod\n\t\t\t\t\tModel publication period in milliseconds\n\t\t\t\tuint16 Vendor\n\t\t\t\t\tA 16-bit Company ID as defined by the\n\t\t\t\t\tBluetooth SIG\n\t\t\t\tarray{variant} Subscriptions\n\t\t\t\t\tAddresses the model is subscribed to.\n\t\t\t\t\tEach address is provided either as\n\t\t\t\t\tuint16 for group addresses, or\n\t\t\t\t\tas array{byte} for virtual labels.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.NotFound,\n\t\t\torg.bluez.mesh.Error.AlreadyExists,\n\t\t\torg.bluez.mesh.Error.Busy,\n\t\t\torg.bluez.mesh.Error.Failed\n"},{"Name":"Leave","ReturnType":"void","Args":[{"Type":"uint64","Name":"token"}],"Errors":null,"Docs":"\t\tThis removes the configuration information about the mesh node\n\t\tidentified by the 64-bit token parameter. The token parameter\n\t\thas been obtained as a result of successful Join() method call.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.NotFound\n\t\t\torg.bluez.mesh.Error.Busy\n"},{"Name":"CreateNetwork","ReturnType":"void","Args":[{"Type":"object","Name":"app_root"},{"Type":"array{byte}[16]","Name":"uuid"}],"Errors":null,"Docs":"\t\tThis is the first method that an application calls to become\n\t\ta Provisioner node, and a Configuration Client on a newly\n\t\tcreated Mesh Network.\n\t\tThe app_root parameter is a D-Bus object root path of the\n\t\tapplication that implements org.bluez.mesh.Application1\n\t\tinterface, and a org.bluez.mesh.Provisioner1 interface. The\n\t\tapplication represents a node where child mesh elements have\n\t\ttheir own objects that implement org.bluez.mesh.Element1\n\t\tinterface. The application hierarchy also contains a provision\n\t\tagent object that implements org.bluez.mesh.ProvisionAgent1\n\t\tinterface. The standard DBus.ObjectManager interface must be\n\t\tavailable on the app_root path.\n\t\tThe uuid parameter is a 16-byte array that contains Device UUID.\n\t\tThis UUID must be unique (at least from the daemon perspective),\n\t\ttherefore attempting to call this function using already\n\t\tregistered UUID results in an error.\n\t\tThe other information the bluetooth-meshd daemon will preserve\n\t\tabout the initial node, is to give it the initial primary\n\t\tunicast address (0x0001), and create and assign a net_key as the\n\t\tprimary network net_index (0x000).\n\t\tUpon successful processing of Create() method, the daemon\n\t\twill call JoinComplete method on object implementing\n\t\torg.bluez.mesh.Application1.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.AlreadyExists,\n"},{"Name":"Import","ReturnType":"void","Args":[{"Type":"object","Name":"app_root"},{"Type":"array{byte}[16]","Name":"uuid"},{"Type":"array{byte}[16]","Name":"dev_key"},{"Type":"array{byte}[16]","Name":"net_key"},{"Type":"uint16","Name":"net_index"},{"Type":"dict","Name":"flags"},{"Type":"uint32","Name":"iv_index"},{"Type":"uint16","Name":"unicast"}],"Errors":null,"Docs":"\t\tThis method creates a local mesh node based on node\n\t\tconfiguration that has been generated outside bluetooth-meshd.\n\t\tThe app_root parameter is a D-Bus object root path of the\n\t\tapplication that implements org.bluez.mesh.Application1\n\t\tinterface.\n\t\tThe uuid parameter is a 16-byte array that contains Device UUID.\n\t\tThis UUID must be unique (at least from the daemon perspective),\n\t\ttherefore attempting to call this function using already\n\t\tregistered UUID results in an error.\n\t\tThe dev_key parameter is the 16-byte value of the dev key of\n\t\tthe imported mesh node.\n\t\tRemaining parameters correspond to provisioning data:\n\t\tThe net_key and net_index parameters describe the network (or a\n\t\tsubnet, if net_index is not 0) the imported mesh node belongs\n\t\tto.\n\t\tThe flags parameter is a dictionary containing provisioning\n\t\tflags. Supported values are:\n\t\t\tboolean IvUpdate\n\t\t\t\tWhen true, indicates that the network is in the\n\t\t\t\tmiddle of IV Index Update procedure.\n\t\t\tboolean KeyRefresh\n\t\t\t\tWhen true, indicates that the specified net key\n\t\t\t\tis in the middle of a key refresh procedure.\n\t\tThe iv_index parameter is the current IV Index value used by\n\t\tthe network. This value is known by the provisioner.\n\t\tThe unicast parameter is the primary unicast address of the\n\t\timported node.\n\t\tUpon successful processing of Import() method, the daemon will\n\t\tcall JoinComplete method on object implementing\n\t\torg.bluez.mesh.Application1 interface.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments,\n\t\t\torg.bluez.mesh.Error.AlreadyExists,\n\t\t\torg.bluez.mesh.Error.NotSupported,\n\t\t\torg.bluez.mesh.Error.Failed\n"}],"Signals":[],"Properties":[]},{"Title":"Mesh Node Hierarchy","Description":"","Service":"org.bluez.mesh","Interface":"org.bluez.mesh.Node1","ObjectPath":"/org/bluez/mesh/node\u003cuuid\u003e\n\t\twhere \u003cuuid\u003e is the Device UUID passed to Join(),\n\t\tCreateNetwork() or Import()","Methods":[{"Name":"Send","ReturnType":"void","Args":[{"Type":"object","Name":"element_path"},{"Type":"uint16","Name":"destination"},{"Type":"uint16","Name":"key_index"},{"Type":"dict","Name":"options"},{"Type":"array{byte}","Name":"data"}],"Errors":null,"Docs":"\t\tThis method is used to send a message originated by a local\n\t\tmodel.\n\t\tThe element_path parameter is the object path of an element from\n\t\ta collection of the application elements (see Mesh Application\n\t\tHierarchy section).\n\t\tThe destination parameter contains the destination address. This\n\t\tdestination must be a uint16 to a unicast address, or a well\n\t\tknown group address.\n\t\tThe key_index parameter determines which application key to use\n\t\tfor encrypting the message. The key_index must be valid for that\n\t\telement, i.e., the application key must be bound to a model on\n\t\tthis element. Otherwise, org.bluez.mesh.Error.NotAuthorized will\n\t\tbe returned.\n\t\tThe options parameter is a dictionary with the following keys\n\t\tdefined:\n\t\t\tbool ForceSegmented\n\t\t\t\tSpecifies whether to force sending of a short\n\t\t\t\tmessage as one-segment payload. If not present,\n\t\t\t\tthe default setting is \"false\".\n\t\tThe data parameter is an outgoing message to be encypted by the\n\t\tbluetooth-meshd daemon and sent on.\n\t\tPossible errors:\n\t\t\torg.bluez.mesh.Error.NotAuthorized\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.NotFound\n"},{"Name":"DevKeySend","ReturnType":"void","Args":[{"Type":"object","Name":"element_path"},{"Type":"uint16","Name":"destination"},{"Type":"boolean","Name":"remote"},{"Type":"uint16","Name":"net_index"},{"Type":"dict","Name":"options"},{"Type":"array{byte}","Name":"data"}],"Errors":null,"Docs":"\t\tThis method is used to send a message originated by a local\n\t\tmodel encoded with the device key of the remote node.\n\t\tThe element_path parameter is the object path of an element from\n\t\ta collection of the application elements (see Mesh Application\n\t\tHierarchy section).\n\t\tThe destination parameter contains the destination address. This\n\t\tdestination must be a uint16 to a unicast address, or a well\n\t\tknown group address.\n\t\tThe remote parameter, if true, looks up the device key by the\n\t\tdestination address in the key database to encrypt the message.\n\t\tIf remote is true, but requested key does not exist, a NotFound\n\t\terror will be returned. If set to false, the local node's\n\t\tdevice key is used.\n\t\tThe net_index parameter is the subnet index of the network on\n\t\twhich the message is to be sent.\n\t\tThe options parameter is a dictionary with the following keys\n\t\tdefined:\n\t\t\tbool ForceSegmented\n\t\t\t\tSpecifies whether to force sending of a short\n\t\t\t\tmessage as one-segment payload. If not present,\n\t\t\t\tthe default setting is \"false\".\n\t\tThe data parameter is an outgoing message to be encypted by the\n\t\tmeshd daemon and sent on.\n\t\tPossible errors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.NotFound\n"},{"Name":"AddNetKey","ReturnType":"void","Args":[{"Type":"object","Name":"element_path"},{"Type":"uint16","Name":"destination"},{"Type":"uint16","Name":"subnet_index"},{"Type":"uint16","Name":"net_index"},{"Type":"boolean","Name":"update"}],"Errors":null,"Docs":"\t\tThis method is used to send add or update network key originated\n\t\tby the local configuration client to a remote configuration\n\t\tserver.\n\t\tThe element_path parameter is the object path of an element from\n\t\ta collection of the application elements (see Mesh Application\n\t\tHierarchy section).\n\t\tThe destination parameter contains the destination address. This\n\t\tdestination must be a uint16 to a nodes primary unicast address.\n\t\tThe subnet_index parameter refers to the subnet index of the\n\t\tnetwork that is being added or updated. This key must exist in\n\t\tthe local key database.\n\t\tThe net_index parameter is the subnet index of the network on\n\t\twhich the message is to be sent.\n\t\tThe update parameter indicates if this is an addition or an\n\t\tupdate. If true, the subnet key must be in the phase 1 state of\n\t\tthe key update procedure.\n\t\tPossible errors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.NotFound\n"},{"Name":"AddAppKey","ReturnType":"void","Args":[{"Type":"object","Name":"element_path"},{"Type":"uint16","Name":"destination"},{"Type":"uint16","Name":"app_index"},{"Type":"uint16","Name":"net_index"},{"Type":"boolean","Name":"update"}],"Errors":null,"Docs":"\t\tThis method is used to send add or update network key originated\n\t\tby the local configuration client to a remote configuration\n\t\tserver.\n\t\tThe element_path parameter is the object path of an element from\n\t\ta collection of the application elements (see Mesh Application\n\t\tHierarchy section).\n\t\tThe destination parameter contains the destination address. This\n\t\tdestination must be a uint16 to a nodes primary unicast address.\n\t\tThe app_index parameter refers to the application key which is\n\t\tbeing added or updated. This key must exist in the local key\n\t\tdatabase.\n\t\tThe net_index parameter is the subnet index of the network on\n\t\twhich the message is to be sent.\n\t\tThe update parameter indicates if this is an addition or an\n\t\tupdate. If true, the subnet key must be in the phase 1 state of\n\t\tthe key update procedure.\n\t\tPossible errors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.NotFound\n"},{"Name":"Publish","ReturnType":"void","Args":[{"Type":"object","Name":"element_path"},{"Type":"uint16","Name":"model"},{"Type":"dict","Name":"options"},{"Type":"array{byte}","Name":"data"}],"Errors":null,"Docs":"\t\tThis method is used to send a publication originated by a local\n\t\tmodel. If the model does not exist, or it has no publication\n\t\trecord, the method returns org.bluez.mesh.Error.DoesNotExist\n\t\terror.\n\t\tThe element_path parameter is the object path of an element from\n\t\ta collection of the application elements (see Mesh Application\n\t\tHierarchy section).\n\t\tThe model parameter contains a model ID, as defined by the\n\t\tBluetooth SIG. If the options dictionary contains a \"Vendor\"\n\t\tkey, then this ID is defined by the specified vendor.\n\t\tThe options parameter is a dictionary with the following keys\n\t\tdefined:\n\t\t\tbool ForceSegmented\n\t\t\t\tSpecifies whether to force sending of a short\n\t\t\t\tmessage as one-segment payload. If not present,\n\t\t\t\tthe default setting is \"false\".\n\t\t\tuint16 Vendor\n\t\t\t\tA 16-bit Company ID as defined by the\n\t\t\t\tBluetooth SIG. This key should only exist when\n\t\t\t\tpublishing on a Vendor defined model.\n\t\tThe data parameter is an outgoing message to be encypted by the\n\t\tmeshd daemon and sent on.\n\t\tSince only one Publish record may exist per element-model, the\n\t\tdestination and key_index are obtained from the Publication\n\t\trecord cached by the daemon.\n\t\tPossible errors:\n\t\t\torg.bluez.mesh.Error.DoesNotExist\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n"}],"Signals":[],"Properties":[{"Name":"Features","Type":"dict","Docs":"The dictionary that contains information about feature support.\n\t\tThe following keys are defined:","Flags":[1]},{"Name":"Friend","Type":"boolean","Docs":"Indicates the ability to establish a friendship with a\n\t\t\tLow Power node","Flags":[]},{"Name":"LowPower","Type":"boolean","Docs":"Indicates support for operating in Low Power node mode","Flags":[]},{"Name":"Proxy","Type":"boolean","Docs":"Indicates support for GATT proxy","Flags":[]},{"Name":"Relay","Type":"boolean","Docs":"Indicates support for relaying messages\n\n\tIf a key is absent from the dictionary, the feature is not supported.\n\tOtherwise, true means that the feature is enabled and false means that\n\tthe feature is disabled.","Flags":[]},{"Name":"Beacon","Type":"boolean","Docs":"This property indicates whether the periodic beaconing is\n\t\tenabled (true) or disabled (false).","Flags":[1]},{"Name":"IvUpdate","Type":"boolean","Docs":"When true, indicates that the network is in the middle of IV\n\t\tIndex Update procedure. This information is only useful for\n\t\tprovisioning.","Flags":[1]},{"Name":"IvIndex","Type":"uint32","Docs":"This property may be read at any time to determine the IV_Index\n\t\tthat the current network is on. This information is only useful\n\t\tfor provisioning.","Flags":[1]},{"Name":"SecondsSinceLastHeard","Type":"uint32","Docs":"This property may be read at any time to determine the number of\n\t\tseconds since mesh network layer traffic was last detected on\n\t\tthis node's network.","Flags":[1]},{"Name":"Addresses","Type":"array{uint16}","Docs":"This property contains unicast addresses of node's elements.","Flags":[1]},{"Name":"SequenceNumber","Type":"uint32","Docs":"This property may be read at any time to determine the\n\t\tsequence number.","Flags":[1]}]},{"Title":"Mesh Provisioning Hierarchy","Description":"","Service":"org.bluez.mesh","Interface":"org.bluez.mesh.Management1","ObjectPath":"/org/bluez/mesh/node\u003cuuid\u003e\n\t\twhere \u003cuuid\u003e is the Device UUID passed to Join(),\n\t\tCreateNetwork() or Import()","Methods":[{"Name":"UnprovisionedScan","ReturnType":"void","Args":[{"Type":"dict","Name":"options"}],"Errors":null,"Docs":"\t\tThis method is used by the application that supports\n\t\torg.bluez.mesh.Provisioner1 interface to start listening\n\t\t(scanning) for unprovisioned devices in the area.\n\t\tThe options parameter is a dictionary with the following keys\n\t\tdefined:\n\t\tuint16 Seconds\n\t\t\tSpecifies number of seconds for scanning to be active.\n\t\t\tIf set to 0 or if this key is not present, then the\n\t\t\tscanning will continue until UnprovisionedScanCancel()\n\t\t\tor AddNode() methods are called.\n\t\tEach time a unique unprovisioned beacon is heard, the\n\t\tScanResult() method on the app will be called with the result.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.NotAuthorized\n\t\t\torg.bluez.mesh.Error.Busy\n"},{"Name":"UnprovisionedScanCancel","ReturnType":"void","Args":null,"Errors":null,"Docs":""},{"Name":"AddNode","ReturnType":"void","Args":[{"Type":"array{byte}[16]","Name":"uuid"},{"Type":"dict","Name":"options"}],"Errors":null,"Docs":"\t\tThis method is used by the application that supports\n\t\torg.bluez.mesh.Provisioner1 interface to add the\n\t\tunprovisioned device specified by uuid, to the Network.\n\t\tThe uuid parameter is a 16-byte array that contains Device UUID\n\t\tof the unprovisioned device to be added to the network.\n\t\tThe options parameter is a dictionary that may contain\n\t\tadditional configuration info (currently an empty placeholder\n\t\tfor forward compatibility).\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.NotAuthorized\n"},{"Name":"CreateSubnet","ReturnType":"void","Args":[{"Type":"uint16","Name":"net_index"}],"Errors":null,"Docs":"\t\tThis method is used by the application to generate and add a new\n\t\tnetwork subnet key.\n\t\tThe net_index parameter is a 12-bit value (0x001-0xFFF)\n\t\tspecifying which net key to add.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.Failed\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.AlreadyExists\n"},{"Name":"ImportSubnet","ReturnType":"void","Args":[{"Type":"uint16","Name":"net_index"},{"Type":"array{byte}[16]","Name":"net_key"}],"Errors":null,"Docs":"\t\tThis method is used by the application to add a network subnet\n\t\tkey, that was originally generated by a remote Config Client.\n\t\tThe net_index parameter is a 12-bit value (0x000-0xFFF)\n\t\tspecifying which net key to add.\n\t\tThe net_key parameter is the 16-byte value of the net key being\n\t\timported.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.Failed\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.AlreadyExists\n"},{"Name":"UpdateSubnet","ReturnType":"void","Args":[{"Type":"uint16","Name":"net_index"}],"Errors":null,"Docs":"\t\tThis method is used by the application to generate a new network\n\t\tsubnet key, and set it's key refresh state to Phase 1.\n\t\tThe net_index parameter is a 12-bit value (0x000-0xFFF)\n\t\tspecifying which net key to update. Note that the subnet must\n\t\texist prior to updating.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.Failed\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.DoesNotExist\n\t\t\torg.bluez.mesh.Error.Busy\n"},{"Name":"DeleteSubnet","ReturnType":"void","Args":[{"Type":"uint16","Name":"net_index"}],"Errors":null,"Docs":"\t\tThis method is used by the application that to delete a subnet.\n\t\tThe net_index parameter is a 12-bit value (0x001-0xFFF)\n\t\tspecifying which net key to delete. The primary net key (0x000)\n\t\tmay not be deleted.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n"},{"Name":"SetKeyPhase","ReturnType":"void","Args":[{"Type":"uint16","Name":"net_index"},{"Type":"uint8","Name":"phase"}],"Errors":null,"Docs":"\t\tThis method is used to set the master key update phase of the\n\t\tgiven subnet. When finalizing the procedure, it is important\n\t\tto CompleteAppKeyUpdate() on all app keys that have been\n\t\tupdated during the procedure prior to setting phase 3.\n\t\tThe net_index parameter is a 12-bit value (0x000-0xFFF)\n\t\tspecifying which subnet phase to set.\n\t\tThe phase parameter is used to cycle the local key database\n\t\tthrough the phases as defined by the Mesh Profile Specification.\n\t\tAllowed values:\n\t\t\t0 - Cancel Key Refresh (May only be called from Phase 1,\n\t\t\t\tand should never be called once the new key has\n\t\t\t\tstarted propagating)\n\t\t\t1 - Invalid Argument (see NetKeyUpdate method)\n\t\t\t2 - Go to Phase 2 (May only be called from Phase 1)\n\t\t\t3 - Complete Key Refresh procedure (May only be called\n\t\t\t\tfrom Phase 2)\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tIt is the responsibility of the application to maintain the key\n\t\trefresh phases per the Mesh Profile Specification.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.Failed\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.DoesNotExist\n"},{"Name":"CreateAppKey","ReturnType":"void","Args":[{"Type":"uint16","Name":"net_index"},{"Type":"uint16","Name":"app_index"}],"Errors":null,"Docs":"\t\tThis method is used by the application to generate and add a new\n\t\tapplication key.\n\t\tThe net_index parameter is a 12-bit value (0x000-0xFFF)\n\t\tspecifying which net key to bind the application key to.\n\t\tThe app_index parameter is a 12-bit value (0x000-0xFFF)\n\t\tspecifying which app key to add.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.Failed\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.AlreadyExists\n\t\t\torg.bluez.mesh.Error.DoesNotExist\n"},{"Name":"ImportAppKey","ReturnType":"void","Args":[{"Type":"uint16","Name":"net_index"},{"Type":"uint16","Name":"app_index"},{"Type":"array{byte}[16]","Name":"app_key"}],"Errors":null,"Docs":"\t\tThis method is used by the application to add an application\n\t\tkey, that was originally generated by a remote Config Client.\n\t\tThe net_index parameter is a 12-bit value (0x000-0xFFF)\n\t\tspecifying which net key to bind the application key to.\n\t\tThe app_index parameter is a 12-bit value (0x000-0xFFF)\n\t\tspecifying which app key to import.\n\t\tThe app_key parameter is the 16-byte value of the key being\n\t\timported.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.Failed\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.AlreadyExists\n\t\t\torg.bluez.mesh.Error.DoesNotExist\n"},{"Name":"UpdateAppKey","ReturnType":"void","Args":[{"Type":"uint16","Name":"app_index"}],"Errors":null,"Docs":"\t\tThis method is used by the application to generate a new\n\t\tapplication key.\n\t\tThe app_index parameter is a 12-bit value (0x000-0xFFF)\n\t\tspecifying which app key to update. Note that the subnet that\n\t\tthe key is bound to must exist and be in Phase 1.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.Failed\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n\t\t\torg.bluez.mesh.Error.DoesNotExist\n\t\t\torg.bluez.mesh.Error.InProgress\n"},{"Name":"DeleteAppKey","ReturnType":"void","Args":[{"Type":"uint16","Name":"app_index"}],"Errors":null,"Docs":"\t\tThis method is used by the application to delete an application\n\t\tkey.\n\t\tThe app_index parameter is a 12-bit value (0x000-0xFFF)\n\t\tspecifying which app key to delete.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n"},{"Name":"ImportRemoteNode","ReturnType":"void","Args":[{"Type":"uint16","Name":"primary"},{"Type":"uint8","Name":"count"},{"Type":"array{byte}[16]","Name":"device_key"}],"Errors":null,"Docs":"\t\tThis method is used by the application to import a remote node\n\t\tthat has been provisioned by an external process.\n\t\tThe primary parameter specifies the unicast address of the\n\t\tthe node being imported.\n\t\tThe count parameter specifies the number of elements that are\n\t\tassigned to this remote node.\n\t\tThe device_key parameter is the access layer key that will be\n\t\twill used to decrypt privledged messages from this remote node.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tIt is an error to call this with address range overlapping\n\t\twith local element addresses.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.Failed\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n"},{"Name":"DeleteRemoteNode","ReturnType":"void","Args":[{"Type":"uint16","Name":"primary"},{"Type":"uint8","Name":"count"}],"Errors":null,"Docs":"\t\tThis method is used by the application to delete a remote node\n\t\tfrom the local device key database.\n\t\tThe primary parameter specifies the unicast address of the\n\t\tthe node being deleted.\n\t\tThe count parameter specifies the number of elements that were\n\t\tassigned to the remote node.\n\t\tThis call affects the local bluetooth-meshd key database only.\n\t\tIt is an error to call this with address range overlapping\n\t\twith local element addresses.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.InvalidArguments\n"}],"Signals":[],"Properties":[]},{"Title":"Mesh Application Hierarchy","Description":"","Service":"unique name","Interface":"org.bluez.mesh.Application1","ObjectPath":"\u003capp_root\u003e","Methods":[{"Name":"JoinComplete","ReturnType":"void","Args":[{"Type":"uint64","Name":"token"}],"Errors":null,"Docs":"\t\tThis method is called when the node provisioning initiated\n\t\tby a Join() method call successfully completed.\n\t\tThe token parameter serves as a unique identifier of the\n\t\tparticular node. The token must be preserved by the application\n\t\tin order to authenticate itself to the mesh daemon and attach to\n\t\tthe network as a mesh node by calling Attach() method or\n\t\tpermanently remove the identity of the mesh node by calling\n\t\tLeave() method.\n\t\tIf this method returns an error, the daemon will assume that the\n\t\tapplication failed to preserve the token, and will remove the\n\t\tfreshly created node.\n"},{"Name":"JoinFailed","ReturnType":"void","Args":[{"Type":"string","Name":"reason"}],"Errors":null,"Docs":"\t\tThis method is called when the node provisioning initiated by\n\t\tJoin() has failed.\n\t\tThe reason parameter identifies the reason for provisioning\n\t\tfailure. The defined values are: \"timeout\", \"bad-pdu\",\n\t\t\"confirmation-failed\", \"out-of-resources\", \"decryption-error\",\n\t\t\"unexpected-error\", \"cannot-assign-addresses\".\n"}],"Signals":[],"Properties":[{"Name":"CompanyID","Type":"uint16","Docs":"A 16-bit Bluetooth-assigned Company Identifier of the vendor as\n\t\tdefined by Bluetooth SIG","Flags":[1]},{"Name":"ProductID","Type":"uint16","Docs":"A 16-bit vendor-assigned product identifier","Flags":[1]},{"Name":"VersionID","Type":"uint16","Docs":"A 16-bit vendor-assigned product version identifier","Flags":[1]},{"Name":"CRPL","Type":"uint16","Docs":"A 16-bit minimum number of replay protection list entries","Flags":[1,5]}]},{"Title":"Mesh Element Hierarchy","Description":"","Service":"unique name","Interface":"org.bluez.mesh.Element1","ObjectPath":"\u003capp_defined_element_path\u003e","Methods":[{"Name":"MessageReceived","ReturnType":"void","Args":[{"Type":"uint16","Name":"source"},{"Type":"uint16","Name":"key_index"},{"Type":"variant","Name":"destination"},{"Type":"array{byte}","Name":"data"}],"Errors":null,"Docs":"\t\tThis method is called by bluetooth-meshd daemon when a message\n\t\tarrives addressed to the application.\n\t\tThe source parameter is unicast address of the remote\n\t\tnode-element that sent the message.\n\t\tThe key_index parameter indicates which application key has been\n\t\tused to decode the incoming message. The same key_index should\n\t\tbe used by the application when sending a response to this\n\t\tmessage (in case a response is expected).\n\t\tThe destination parameter contains the destination address of\n\t\treceived message. Underlying variant types are:\n\t\tuint16\n\t\t\tDestination is an unicast address, or a well known\n\t\t\tgroup address\n\t\tarray{byte}\n\t\t\tDestination is a virtual address label\n\t\tThe data parameter is the incoming message.\n"},{"Name":"DevKeyMessageReceived","ReturnType":"void","Args":[{"Type":"uint16","Name":"source"},{"Type":"boolean","Name":"remote"},{"Type":"uint16","Name":"net_index"},{"Type":"array{byte}","Name":"data"}],"Errors":null,"Docs":"\t\tThis method is called by meshd daemon when a message arrives\n\t\taddressed to the application, which was sent with the remote\n\t\tnode's device key.\n\t\tThe source parameter is unicast address of the remote\n\t\tnode-element that sent the message.\n\t\tThe remote parameter if true indicates that the device key\n\t\tused to decrypt the message was from the sender. False\n\t\tindicates that the local nodes device key was used, and the\n\t\tmessage has permissions to modify local states.\n\t\tThe net_index parameter indicates what subnet the message was\n\t\treceived on, and if a response is required, the same subnet\n\t\tmust be used to send the response.\n\t\tThe data parameter is the incoming message.\n"},{"Name":"UpdateModelConfiguration","ReturnType":"void","Args":[{"Type":"uint16","Name":"model_id"},{"Type":"dict","Name":"config"}],"Errors":null,"Docs":"\t\tThis method is called by bluetooth-meshd daemon when a model's\n\t\tconfiguration is updated.\n\t\tThe model_id parameter contains BT SIG Model Identifier or, if\n\t\tVendor key is present in config dictionary, a 16-bit\n\t\tvendor-assigned Model Identifier.\n\t\tThe config parameter is a dictionary with the following keys\n\t\tdefined:\n\t\tarray{uint16} Bindings\n\t\t\tIndices of application keys bound to the model\n\t\tuint32 PublicationPeriod\n\t\t\tModel publication period in milliseconds\n\t\tuint16 Vendor\n\t\t\tA 16-bit Bluetooth-assigned Company Identifier of the\n\t\t\tvendor as defined by Bluetooth SIG\n\t\tarray{variant} Subscriptions\n\t\t\tAddresses the model is subscribed to.\n\t\t\tEach address is provided either as uint16 for group\n\t\t\taddresses, or as array{byte} for virtual labels.\n"}],"Signals":[],"Properties":[{"Name":"Models","Type":"array{(uint16 id, dict caps)}","Docs":"An array of SIG Models:\n\n\t\t\tid - SIG Model Identifier\n\n\t\t\toptions - a dictionary that may contain additional model\n\t\t\tinfo. The following keys are defined:","Flags":[1]},{"Name":"Publish","Type":"boolean","Docs":"supports publication mechanism. If not\n\t\t\t\t\tpresent, publication is enabled.","Flags":[]},{"Name":"Subscribe","Type":"boolean","Docs":"supports subscription mechanism. If not\n\t\t\t\t\tpresent, subscriptons are enabled.\n\n\t\tThe array may be empty.","Flags":[]},{"Name":"VendorModels","Type":"array{(uint16 vendor, uint16 id, dict options)}","Docs":"An array of Vendor Models:\n\n\t\t\tvendor - a 16-bit Bluetooth-assigned Company ID as\n\t\t\tdefined by Bluetooth SIG.\n\n\t\t\tid - a 16-bit vendor-assigned Model Identifier\n\n\t\t\toptions - a dictionary that may contain additional model\n\t\t\tinfo. The following keys are defined:","Flags":[1]},{"Name":"Publish","Type":"boolean","Docs":"supports publication mechanism","Flags":[]},{"Name":"Subscribe","Type":"boolean","Docs":"supports subscription mechanism\n\n\t\tThe array may be empty.","Flags":[]},{"Name":"Location","Type":"uint16","Docs":"Location descriptor as defined in the GATT Bluetooth Namespace\n\t\tDescriptors section of the Bluetooth SIG Assigned Numbers","Flags":[1,5]}]},{"Title":"Mesh Attention Hierarchy","Description":"","Service":"unique name","Interface":"org.bluez.mesh.Attention1","ObjectPath":"freely definable","Methods":[{"Name":"SetTimer","ReturnType":"void","Args":[{"Type":"uint8","Name":"element_index"},{"Type":"uint16","Name":"time"}],"Errors":null,"Docs":"\t\tThe element_index parameter is the element's index within the\n\t\tnode where the health server model is hosted.\n\t\tThe time parameter indicates how many seconds the attention\n\t\tstate shall be on.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.NotSupported\n"},{"Name":"GetTimer","ReturnType":"uint16","Args":[{"Type":"uint16","Name":"element"}],"Errors":null,"Docs":"\t\tThe element parameter is the unicast address within the node\n\t\twhere the health server model is hosted.\n\t\tReturns the number of seconds for how long the attention action\n\t\tremains staying on.\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.NotSupported\n"}],"Signals":[],"Properties":[]},{"Title":"Mesh Provisioner Hierarchy","Description":"","Service":"unique name","Interface":"org.bluez.mesh.Provisioner1","ObjectPath":"freely definable","Methods":[{"Name":"ScanResult","ReturnType":"void","Args":[{"Type":"int16","Name":"rssi"},{"Type":"array{byte}","Name":"data"},{"Type":"dict","Name":"options"}],"Errors":null,"Docs":"\t\tThe method is called from the bluetooth-meshd daemon when a\n\t\tunique UUID has been seen during UnprovisionedScan() for\n\t\tunprovsioned devices.\n\t\tThe rssi parameter is a signed, normalized measurement of the\n\t\tsignal strength of the recieved unprovisioned beacon.\n\t\tThe data parameter is a variable length byte array, that may\n\t\thave 1, 2 or 3 distinct fields contained in it including the 16\n\t\tbyte remote device UUID (always), a 16 bit mask of OOB\n\t\tauthentication flags (optional), and a 32 bit URI hash (if URI\n\t\tbit set in OOB mask). Whether these fields exist or not is a\n\t\tdecision of the remote device.\n\t\tThe options parameter is a dictionary that may contain\n\t\tadditional scan result info (currently an empty placeholder for\n\t\tforward compatibility).\n\t\tIf a beacon with a UUID that has already been reported is\n\t\trecieved by the daemon, it will be silently discarded unless it\n\t\twas recieved at a higher rssi power level.\n"},{"Name":"RequestProvData","ReturnType":"uint16 net_index, uint16 unicast","Args":[{"Type":"uint8","Name":"count"}],"Errors":null,"Docs":"\t\tThis method is implemented by a Provisioner capable application\n\t\tand is called when the remote device has been fully\n\t\tauthenticated and confirmed.\n\t\tThe count parameter is the number of consecutive unicast\n\t\taddresses the remote device is requesting.\n\t\tReturn Parameters are from the Mesh Profile Spec:\n\t\tnet_index - Subnet index of the net_key\n\t\tunicast - Primary Unicast address of the new node\n\t\tPossibleErrors:\n\t\t\torg.bluez.mesh.Error.Abort\n"},{"Name":"AddNodeComplete","ReturnType":"void","Args":[{"Type":"array{byte}[16]","Name":"uuid"},{"Type":"uint16","Name":"unicast"},{"Type":"uint8","Name":"count"}],"Errors":null,"Docs":"\t\tThis method is called when the node provisioning initiated\n\t\tby an AddNode() method call successfully completed.\n\t\tThe unicast parameter is the primary address that has been\n\t\tassigned to the new node, and the address of it's config server.\n\t\tThe count parameter is the number of unicast addresses assigned\n\t\tto the new node.\n\t\tThe new node may now be sent messages using the credentials\n\t\tsupplied by the RequestProvData method.\n"},{"Name":"AddNodeFailed","ReturnType":"void","Args":[{"Type":"array{byte}[16]","Name":"uuid"},{"Type":"string","Name":"reason"}],"Errors":null,"Docs":"\t\tThis method is called when the node provisioning initiated by\n\t\tAddNode() has failed. Depending on how far Provisioning\n\t\tproceeded before failing, some cleanup of cached data may be\n\t\trequired.\n\t\tThe reason parameter identifies the reason for provisioning\n\t\tfailure. The defined values are: \"aborted\", \"timeout\",\n\t\t\"bad-pdu\", \"confirmation-failed\", \"out-of-resources\",\n\t\t\"decryption-error\", \"unexpected-error\",\n\t\t\"cannot-assign-addresses\".\n"}],"Signals":[],"Properties":[]},{"Title":"Provisioning Agent Hierarchy","Description":"","Service":"unique name","Interface":"org.bluez.mesh.ProvisionAgent1","ObjectPath":"freely definable","Methods":[{"Name":"PrivateKey","ReturnType":"array{byte}","Args":[],"Errors":null,"Docs":"\t\tThis method is called during provisioning if the Provisioner\n\t\thas requested Out-Of-Band ECC key exchange. The Private key is\n\t\treturned to the Daemon, and the Public Key is delivered to the\n\t\tremote Provisioner using a method that does not involve the\n\t\tBluetooth Mesh system. The Private Key returned must be 32\n\t\toctets in size, or the Provisioning procedure will fail and be\n\t\tcanceled.\n\t\tThis function will only be called if the Provisioner has\n\t\trequested pre-determined keys to be exchanged Out-of-Band, and\n\t\tthe local role is Unprovisioned device.\n"},{"Name":"PublicKey","ReturnType":"array{byte}","Args":[],"Errors":null,"Docs":"\t\tThis method is called during provisioning if the local device is\n\t\tthe Provisioner, and is requestng Out-Of-Band ECC key exchange.\n\t\tThe Public key is returned to the Daemon that is the matched\n\t\tpair of the Private key of the remote device. The Public Key\n\t\treturned must be 64 octets in size, or the Provisioning\n\t\tprocedure will fail and be canceled.\n\t\tThis function will only be called if the Provisioner has\n\t\trequested pre-determined keys to be exchanged Out-of-Band, and\n\t\tthe local role is Provisioner.\n"},{"Name":"DisplayString","ReturnType":"void","Args":[{"Type":"string","Name":"value"}],"Errors":null,"Docs":"\t\tThis method is called when the Daemon has something important\n\t\tfor the Agent to Display, but does not require any additional\n\t\tinput locally. For instance: \"Enter \"ABCDE\" on remote device\".\n"},{"Name":"DisplayNumeric","ReturnType":"void","Args":[{"Type":"string","Name":"type"},{"Type":"uint32","Name":"number"}],"Errors":null,"Docs":"\t\tThis method is called when the Daemon has something important\n\t\tfor the Agent to Display, but does not require any additional\n\t\tinput locally. For instance: \"Enter 14939264 on remote device\".\n\t\tThe type parameter indicates the display method. Allowed values\n\t\tare:\n\t\t\t\"blink\" - Locally blink LED\n\t\t\t\"beep\" - Locally make a noise\n\t\t\t\"vibrate\" - Locally vibrate\n\t\t\t\"out-numeric\" - Display value to enter remotely\n\t\t\t\"push\" - Request pushes on remote button\n\t\t\t\"twist\" - Request twists on remote knob\n\t\tThe number parameter is the specific value represented by the\n\t\tPrompt.\n"},{"Name":"PromptNumeric","ReturnType":"uint32","Args":[{"Type":"string","Name":"type"}],"Errors":null,"Docs":"\t\tThis method is called when the Daemon requests the user to\n\t\tenter a decimal value between 1-99999999.\n\t\tThe type parameter indicates the input method. Allowed values\n\t\tare:\n\t\t\t\"blink\" - Enter times remote LED blinked\n\t\t\t\"beep\" - Enter times remote device beeped\n\t\t\t\"vibrate\" - Enter times remote device vibrated\n\t\t\t\"in-numeric\" - Enter remotely displayed value\n\t\t\t\"push\" - Push local button remotely requested times\n\t\t\t\"twist\" - Twist local knob remotely requested times\n\t\tThis agent should prompt the user for specific input. For\n\t\tinstance: \"Enter value being displayed by remote device\".\n"},{"Name":"PromptStatic","ReturnType":"array{byte}[16]","Args":[{"Type":"string","Name":"type"}],"Errors":null,"Docs":"\t\tThis method is called when the Daemon requires a 16 octet byte\n\t\tarray, as an Out-of-Band authentication.\n\t\tThe type parameter indicates the input method. Allowed values\n\t\tare:\n\t\t\t\"static-oob\" - return 16 octet array\n\t\t\t\"in-alpha\" - return 16 octet alpha array\n\t\tThe Static data returned must be 16 octets in size, or the\n\t\tProvisioning procedure will fail and be canceled. If input type\n\t\tis \"in-alpha\", the printable characters should be\n\t\tleft-justified, with trailing 0x00 octets filling the remaining\n\t\tbytes.\n"},{"Name":"Cancel","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\tThis method gets called by the daemon to cancel any existing\n\t\tAgent Requests. When called, any pending user input should be\n\t\tcanceled, and any display requests removed.\n"}],"Signals":[],"Properties":[{"Name":"Capabilities","Type":"array{string}","Docs":"An array of strings with the following allowed values:\n\t\t\t\"blink\"\n\t\t\t\"beep\"\n\t\t\t\"vibrate\"\n\t\t\t\"out-numeric\"\n\t\t\t\"out-alpha\"\n\t\t\t\"push\"\n\t\t\t\"twist\"\n\t\t\t\"in-numeric\"\n\t\t\t\"in-alpha\"\n\t\t\t\"static-oob\"\n\t\t\t\"public-oob\"","Flags":[1]},{"Name":"OutOfBandInfo","Type":"array{string}","Docs":"Indicates availability of OOB data. An array of strings with the\n\t\tfollowing allowed values:\n\t\t\t\"other\"\n\t\t\t\"uri\"\n\t\t\t\"machine-code-2d\"\n\t\t\t\"bar-code\"\n\t\t\t\"nfc\"\n\t\t\t\"number\"\n\t\t\t\"string\"\n\t\t\t\"on-box\"\n\t\t\t\"in-box\"\n\t\t\t\"on-paper\",\n\t\t\t\"in-manual\"\n\t\t\t\"on-device\"","Flags":[1,5]},{"Name":"URI","Type":"string","Docs":"Uniform Resource Identifier points to out-of-band (OOB)\n\t\tinformation (e.g., a public key)","Flags":[1,5]}]}]},{"FileName":"network-api.txt","Name":"BlueZ D-Bus Network API description","Description":"\n","Api":[{"Title":"Network hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.Network1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX","Methods":[{"Name":"Connect","ReturnType":"string","Args":[{"Type":"string","Name":"uuid"}],"Errors":["org.bluez.Error.AlreadyConnected","org.bluez.Error.AlreadyConnected"],"Docs":"\t\t\tConnect to the network device and return the network\n\t\t\tinterface name. Examples of the interface name are\n\t\t\tbnep0, bnep1 etc.\n\t\t\tuuid can be either one of \"gn\", \"panu\" or \"nap\" (case\n\t\t\tinsensitive) or a traditional string representation of\n\t\t\tUUID or a hexadecimal number.\n\t\t\tThe connection will be closed and network device\n\t\t\treleased either upon calling Disconnect() or when\n\t\t\tthe client disappears from the message bus.\n\t\t\tPossible errors: org.bluez.Error.AlreadyConnected\n\t\t\t\t\t org.bluez.Error.ConnectionAttemptFailed\n"},{"Name":"Disconnect","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tDisconnect from the network device.\n\t\t\tTo abort a connection attempt in case of errors or\n\t\t\ttimeouts in the client it is fine to call this method.\n\t\t\tPossible errors: org.bluez.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"Connected","Type":"boolean","Docs":"Indicates if the device is connected.","Flags":[]},{"Name":"Interface","Type":"string","Docs":"Indicates the network interface name when available.","Flags":[]},{"Name":"UUID","Type":"string","Docs":"Indicates the connection role when available.","Flags":[]}]},{"Title":"Network server hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.NetworkServer1","ObjectPath":"/org/bluez/{hci0,hci1,...}","Methods":[{"Name":"Register","ReturnType":"void","Args":[{"Type":"string","Name":"uuid"},{"Type":"string","Name":"bridge"}],"Errors":null,"Docs":"\t\t\tRegister server for the provided UUID. Every new\n\t\t\tconnection to this server will be added the bridge\n\t\t\tinterface.\n\t\t\tValid UUIDs are \"gn\", \"panu\" or \"nap\".\n\t\t\tInitially no network server SDP is provided. Only\n\t\t\tafter this method a SDP record will be available\n\t\t\tand the BNEP server will be ready for incoming\n\t\t\tconnections.\n"},{"Name":"Unregister","ReturnType":"void","Args":[{"Type":"string","Name":"uuid"}],"Errors":null,"Docs":"\t\t\tUnregister the server for provided UUID.\n\t\t\tAll servers will be automatically unregistered when\n\t\t\tthe calling application terminates.\n"}],"Signals":[],"Properties":[]}]},{"FileName":"obex-agent-api.txt","Name":"OBEX D-Bus Agent API description","Description":"\n","Api":[{"Title":"Agent Manager hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.AgentManager1","ObjectPath":"/org/bluez/obex","Methods":[{"Name":"RegisterAgent","ReturnType":"void","Args":[{"Type":"object","Name":"agent"}],"Errors":null,"Docs":"\t\t\tRegister an agent to request authorization of\n\t\t\tthe user to accept/reject objects. Object push\n\t\t\tservice needs to authorize each received object.\n\t\t\tPossible errors: org.bluez.obex.Error.AlreadyExists\n"},{"Name":"UnregisterAgent","ReturnType":"void","Args":[{"Type":"object","Name":"agent"}],"Errors":null,"Docs":"\t\t\tThis unregisters the agent that has been previously\n\t\t\tregistered. The object path parameter must match the\n\t\t\tsame value that has been used on registration.\n\t\t\tPossible errors: org.bluez.obex.Error.DoesNotExist\n"}],"Signals":[],"Properties":[]},{"Title":"Agent hierarchy","Description":"","Service":"unique name","Interface":"org.bluez.obex.Agent1","ObjectPath":"freely definable","Methods":[{"Name":"Release","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tunregisters the agent. An agent can use it to do\n\t\t\tcleanup tasks. There is no need to unregister the\n\t\t\tagent, because when this method gets called it has\n\t\t\talready been unregistered.\n"},{"Name":"AuthorizePush","ReturnType":"string","Args":[{"Type":"object","Name":"transfer"}],"Errors":null,"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tneeds to accept/reject a Bluetooth object push request.\n\t\t\tReturns the full path (including the filename) where\n\t\t\tthe object shall be stored. The tranfer object will\n\t\t\tcontain a Filename property that contains the default\n\t\t\tlocation and name that can be returned.\n\t\t\tPossible errors: org.bluez.obex.Error.Rejected\n\t\t\t org.bluez.obex.Error.Canceled\n"},{"Name":"Cancel","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tThis method gets called to indicate that the agent\n\t\t\trequest failed before a reply was returned. It cancels\n\t\t\tthe previous request.\n"}],"Signals":[],"Properties":[]}]},{"FileName":"obex-api.txt","Name":"OBEX D-Bus API description","Description":"\n","Api":[{"Title":"Client hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.Client1","ObjectPath":"/org/bluez/obex","Methods":[{"Name":"CreateSession","ReturnType":"object","Args":[{"Type":"string","Name":"destination"},{"Type":"dict","Name":"args"}],"Errors":null,"Docs":"\t\t\tCreate a new OBEX session for the given remote address.\n\t\t\tThe last parameter is a dictionary to hold optional or\n\t\t\ttype-specific parameters. Typical parameters that can\n\t\t\tbe set in this dictionary include the following:\n\t\t\t\tstring \"Target\" : type of session to be created\n\t\t\t\tstring \"Source\" : local address to be used\n\t\t\t\tbyte \"Channel\"\n\t\t\tThe currently supported targets are the following:\n\t\t\t\t\"ftp\"\n\t\t\t\t\"map\"\n\t\t\t\t\"opp\"\n\t\t\t\t\"pbap\"\n\t\t\t\t\"sync\"\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"RemoveSession","ReturnType":"void","Args":[{"Type":"object","Name":"session"}],"Errors":null,"Docs":"\t\t\tUnregister session and abort pending transfers.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.NotAuthorized\n"}],"Signals":[],"Properties":[]},{"Title":"Session hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.Session1","ObjectPath":"/org/bluez/obex/server/session{0, 1, 2, ...} or\n\t\t/org/bluez/obex/client/session{0, 1, 2, ...}","Methods":[{"Name":"GetCapabilities","ReturnType":"string","Args":[],"Errors":null,"Docs":"\t\t\tGet remote device capabilities.\n\t\t\tPossible errors: org.bluez.obex.Error.NotSupported\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"Source","Type":"string","Docs":"Bluetooth adapter address","Flags":[]},{"Name":"Destination","Type":"string","Docs":"Bluetooth device address","Flags":[]},{"Name":"Channel","Type":"byte","Docs":"Bluetooth channel","Flags":[]},{"Name":"Target","Type":"string","Docs":"Target UUID","Flags":[]},{"Name":"Root","Type":"string","Docs":"Root path","Flags":[]}]},{"Title":"Transfer hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.Transfer1","ObjectPath":"[Session object path]/transfer{0, 1, 2, ...}","Methods":[{"Name":"Cancel","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tStops the current transference.\n\t\t\tPossible errors: org.bluez.obex.Error.NotAuthorized\n\t\t\t\t\t org.bluez.obex.Error.InProgress\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"Suspend","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tSuspend transference.\n\t\t\tPossible errors: org.bluez.obex.Error.NotAuthorized\n\t\t\t\t\t org.bluez.obex.Error.NotInProgress\n\t\t\tNote that it is not possible to suspend transfers\n\t\t\twhich are queued which is why NotInProgress is listed\n\t\t\tas possible error.\n"},{"Name":"Resume","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tResume transference.\n\t\t\tPossible errors: org.bluez.obex.Error.NotAuthorized\n\t\t\t\t\t org.bluez.obex.Error.NotInProgress\n\t\t\tNote that it is not possible to resume transfers\n\t\t\twhich are queued which is why NotInProgress is listed\n\t\t\tas possible error.\n"}],"Signals":[],"Properties":[{"Name":"Status","Type":"string","Docs":"Inform the current status of the transfer.\n\n\t\t\tPossible values: \"queued\", \"active\", \"suspended\",\n\t\t\t\t\t\"complete\" or \"error\"","Flags":[]},{"Name":"Session","Type":"object","Docs":"The object path of the session the transfer belongs\n\t\t\tto.","Flags":[]},{"Name":"Name","Type":"string","Docs":"Name of the transferred object. Either Name or Type\n\t\t\tor both will be present.","Flags":[]},{"Name":"Type","Type":"string","Docs":"Type of the transferred object. Either Name or Type\n\t\t\tor both will be present.\n\n\t\tuint64 Time [readonly, optional]\n\n\t\t\tTime of the transferred object if this is\n\t\t\tprovided by the remote party.\n\n\t\tuint64 Size [readonly, optional]\n\n\t\t\tSize of the transferred object. If the size is\n\t\t\tunknown, then this property will not be present.\n\n\t\tuint64 Transferred [readonly, optional]\n\n\t\t\tNumber of bytes transferred. For queued transfers, this\n\t\t\tvalue will not be present.","Flags":[]},{"Name":"Filename","Type":"string","Docs":"Complete name of the file being received or sent.\n\n\t\t\tFor incoming object push transaction, this will be\n\t\t\tthe proposed default location and name. It can be\n\t\t\toverwritten by the AuthorizePush agent callback\n\t\t\tand will be then updated accordingly.","Flags":[5]}]},{"Title":"Object Push hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.ObjectPush1","ObjectPath":"[Session object path]","Methods":[{"Name":"SendFile","ReturnType":"object, dict","Args":[{"Type":"string","Name":"sourcefile"}],"Errors":null,"Docs":"\t\t\tSend one local file to the remote device.\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"PullBusinessCard","ReturnType":"object, dict","Args":[{"Type":"string","Name":"targetfile"}],"Errors":null,"Docs":"\t\t\tRequest the business card from a remote device and\n\t\t\tstore it in the local file.\n\t\t\tIf an empty target file is given, a name will be\n\t\t\tautomatically calculated for the temporary file.\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"ExchangeBusinessCards","ReturnType":"object, dict","Args":[{"Type":"string","Name":"clientfile"},{"Type":"string","Name":"targetfile"}],"Errors":null,"Docs":"\t\t\tPush the client's business card to the remote device\n\t\t\tand then retrieve the remote business card and store\n\t\t\tit in a local file.\n\t\t\tIf an empty target file is given, a name will be\n\t\t\tautomatically calculated for the temporary file.\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"}],"Signals":[],"Properties":[]},{"Title":"File Transfer hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.FileTransfer","ObjectPath":"[Session object path]","Methods":[{"Name":"ChangeFolder","ReturnType":"void","Args":[{"Type":"string","Name":"folder"}],"Errors":null,"Docs":"\t\t\tChange the current folder of the remote device.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"CreateFolder","ReturnType":"void","Args":[{"Type":"string","Name":"folder"}],"Errors":null,"Docs":"\t\t\tCreate a new folder in the remote device.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"ListFolder","ReturnType":"array{dict}","Args":[],"Errors":null,"Docs":"\t\t\tReturns a dictionary containing information about\n\t\t\tthe current folder content.\n\t\t\tThe following keys are defined:\n\t\t\t\tstring Name : Object name in UTF-8 format\n\t\t\t\tstring Type : Either \"folder\" or \"file\"\n\t\t\t\tuint64 Size : Object size or number of items in\n\t\t\t\t\t\tfolder\n\t\t\t\tstring Permission : Group, owner and other\n\t\t\t\t\t\t\tpermission\n\t\t\t\tuint64 Modified : Last change\n\t\t\t\tuint64 Accessed : Last access\n\t\t\t\tuint64 Created : Creation date\n\t\t\tPossible errors: org.bluez.obex.Error.Failed\n"},{"Name":"GetFile","ReturnType":"object, dict","Args":[{"Type":"string","Name":"targetfile"},{"Type":"string","Name":"sourcefile"}],"Errors":null,"Docs":"\t\t\tCopy the source file (from remote device) to the\n\t\t\ttarget file (on local filesystem).\n\t\t\tIf an empty target file is given, a name will be\n\t\t\tautomatically calculated for the temporary file.\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"PutFile","ReturnType":"object, dict","Args":[{"Type":"string","Name":"sourcefile"},{"Type":"string","Name":"targetfile"}],"Errors":null,"Docs":"\t\t\tCopy the source file (from local filesystem) to the\n\t\t\ttarget file (on remote device).\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"CopyFile","ReturnType":"void","Args":[{"Type":"string","Name":"sourcefile"},{"Type":"string","Name":"targetfile"}],"Errors":null,"Docs":"\t\t\tCopy a file within the remote device from source file\n\t\t\tto target file.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"MoveFile","ReturnType":"void","Args":[{"Type":"string","Name":"sourcefile"},{"Type":"string","Name":"targetfile"}],"Errors":null,"Docs":"\t\t\tMove a file within the remote device from source file\n\t\t\tto the target file.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"Delete","ReturnType":"void","Args":[{"Type":"string","Name":"file"}],"Errors":null,"Docs":"\t\t\tDeletes the specified file/folder.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"}],"Signals":[],"Properties":[]},{"Title":"Phonebook Access hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.PhonebookAccess1","ObjectPath":"[Session object path]","Methods":[{"Name":"Select","ReturnType":"void","Args":[{"Type":"string","Name":"location"},{"Type":"string","Name":"phonebook"}],"Errors":null,"Docs":"\t\t\tSelect the phonebook object for other operations. Should\n\t\t\tbe call before all the other operations.\n\t\t\tlocation : Where the phonebook is stored, possible\n\t\t\tinputs :\n\t\t\t\t\"int\" ( \"internal\" which is default )\n\t\t\t\t\"sim\" ( \"sim1\" )\n\t\t\t\t\"sim2\"\n\t\t\t\t...\n\t\t\tphonebook : Possible inputs :\n\t\t\t\t\"pb\" :\tphonebook for the saved contacts\n\t\t\t\t\"ich\":\tincoming call history\n\t\t\t\t\"och\":\toutgoing call history\n\t\t\t\t\"mch\":\tmissing call history\n\t\t\t\t\"cch\":\tcombination of ich och mch\n\t\t\t\t\"spd\":\tspeed dials entry ( only for \"internal\" )\n\t\t\t\t\"fav\":\tfavorites entry ( only for \"internal\" )\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"PullAll","ReturnType":"object, dict","Args":[{"Type":"string","Name":"targetfile"},{"Type":"dict","Name":"filters"}],"Errors":null,"Docs":"\t\t\tReturn the entire phonebook object from the PSE server\n\t\t\tin plain string with vcard format, and store it in\n\t\t\ta local file.\n\t\t\tIf an empty target file is given, a name will be\n\t\t\tautomatically calculated for the temporary file.\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossible filters: Format, Order, Offset, MaxCount and\n\t\t\tFields\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\torg.bluez.obex.Forbidden\n"},{"Name":"List","ReturnType":"array{string vcard, string name}","Args":[{"Type":"dict","Name":"filters"}],"Errors":null,"Docs":"\t\t\tReturn an array of vcard-listing data where every entry\n\t\t\tconsists of a pair of strings containing the vcard\n\t\t\thandle and the contact name. For example:\n\t\t\t\t\"1.vcf\" : \"John\"\n\t\t\tPossible filters: Order, Offset and MaxCount\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Forbidden\n"},{"Name":"Pull","ReturnType":"object, dict","Args":[{"Type":"string","Name":"vcard"},{"Type":"string","Name":"targetfile"},{"Type":"dict","Name":"filters"}],"Errors":null,"Docs":"\t\t\tGiven a vcard handle, retrieve the vcard in the current\n\t\t\tphonebook object and store it in a local file.\n\t\t\tIf an empty target file is given, a name will be\n\t\t\tautomatically calculated for the temporary file.\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossbile filters: Format and Fields\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Forbidden\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"Search","ReturnType":"array{string vcard, string name}","Args":[{"Type":"string","Name":"field"},{"Type":"string","Name":"value"},{"Type":"dict","Name":"filters"}],"Errors":null,"Docs":"\t\t\tSearch for entries matching the given condition and\n\t\t\treturn an array of vcard-listing data where every entry\n\t\t\tconsists of a pair of strings containing the vcard\n\t\t\thandle and the contact name.\n\t\t\tvcard : name paired string match the search condition.\n\t\t\tfield : the field in the vcard to search with\n\t\t\t\t{ \"name\" (default) | \"number\" | \"sound\" }\n\t\t\tvalue : the string value to search for\n\t\t\tPossible filters: Order, Offset and MaxCount\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Forbidden\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"GetSize","ReturnType":"uint16","Args":[],"Errors":null,"Docs":"\t\t\tReturn the number of entries in the selected phonebook\n\t\t\tobject that are actually used (i.e. indexes that\n\t\t\tcorrespond to non-NULL entries).\n\t\t\tPossible errors: org.bluez.obex.Error.Forbidden\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"UpdateVersion","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tAttempt to update PrimaryCounter and SecondaryCounter.\n\t\t\tPossible errors: org.bluez.obex.Error.NotSupported\n\t\t\t\t\t org.bluez.obex.Error.Forbidden\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"ListFilterFields","ReturnType":"array{string}","Args":[],"Errors":null,"Docs":"\t\t\tReturn All Available fields that can be used in Fields\n\t\t\tfilter.\n\t\t\tPossible errors: None\n"}],"Signals":[],"Properties":[{"Name":"Folder","Type":"string","Docs":"Current folder.","Flags":[]},{"Name":"DatabaseIdentifier","Type":"string","Docs":"128 bits persistent database identifier.\n\n\t\t\tPossible values: 32-character hexadecimal such\n\t\t\tas A1A2A3A4B1B2C1C2D1D2E1E2E3E4E5E6","Flags":[5]},{"Name":"PrimaryCounter","Type":"string","Docs":"128 bits primary version counter.\n\n\t\t\tPossible values: 32-character hexadecimal such\n\t\t\tas A1A2A3A4B1B2C1C2D1D2E1E2E3E4E5E6","Flags":[5]},{"Name":"SecondaryCounter","Type":"string","Docs":"128 bits secondary version counter.\n\n\t\t\tPossible values: 32-character hexadecimal such\n\t\t\tas A1A2A3A4B1B2C1C2D1D2E1E2E3E4E5E6","Flags":[5]},{"Name":"FixedImageSize","Type":"bool","Docs":"Indicate support for fixed image size.\n\n\t\t\tPossible values: True if image is JPEG 300x300 pixels\n\t\t\totherwise False.","Flags":[5]}]},{"Title":"Synchronization hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.Synchronization1","ObjectPath":"[Session object path]","Methods":[{"Name":"SetLocation","ReturnType":"void","Args":[{"Type":"string","Name":"location"}],"Errors":null,"Docs":"\t\t\tSet the phonebook object store location for other\n\t\t\toperations. Should be called before all the other\n\t\t\toperations.\n\t\t\tlocation: Where the phonebook is stored, possible\n\t\t\tvalues:\n\t\t\t\t\"int\" ( \"internal\" which is default )\n\t\t\t\t\"sim1\"\n\t\t\t\t\"sim2\"\n\t\t\t\t......\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n"},{"Name":"GetPhonebook","ReturnType":"object, dict","Args":[{"Type":"string","Name":"targetfile"}],"Errors":null,"Docs":"\t\t\tRetrieve an entire Phonebook Object store from remote\n\t\t\tdevice, and stores it in a local file.\n\t\t\tIf an empty target file is given, a name will be\n\t\t\tautomatically calculated for the temporary file.\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"PutPhonebook","ReturnType":"object, dict","Args":[{"Type":"string","Name":"sourcefile"}],"Errors":null,"Docs":"\t\t\tSend an entire Phonebook Object store to remote device.\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"}],"Signals":[],"Properties":[]},{"Title":"Message Access hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.MessageAccess1","ObjectPath":"[Session object path]","Methods":[{"Name":"SetFolder","ReturnType":"void","Args":[{"Type":"string","Name":"name"}],"Errors":null,"Docs":"\t\t\tSet working directory for current session, *name* may\n\t\t\tbe the directory name or '..[/dir]'.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"ListFolders","ReturnType":"array{dict}","Args":[{"Type":"dict","Name":"filter"}],"Errors":null,"Docs":"\t\t\tReturns a dictionary containing information about\n\t\t\tthe current folder content.\n\t\t\tThe following keys are defined:\n\t\t\t\tstring Name : Folder name\n\t\t\tPossible filters: Offset and MaxCount\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"ListFilterFields","ReturnType":"array{string}","Args":[],"Errors":null,"Docs":"\t\t\tReturn all available fields that can be used in Fields\n\t\t\tfilter.\n\t\t\tPossible errors: None\n"},{"Name":"ListMessages","ReturnType":"array{object, dict}","Args":[{"Type":"string","Name":"folder"},{"Type":"dict","Name":"filter"}],"Errors":null,"Docs":"\t\t\tReturns an array containing the messages found in the\n\t\t\tgiven subfolder of the current folder, or in the\n\t\t\tcurrent folder if folder is empty.\n\t\t\tPossible Filters: Offset, MaxCount, SubjectLength, Fields,\n\t\t\tType, PeriodStart, PeriodEnd, Status, Recipient, Sender,\n\t\t\tPriority\n\t\t\tEach message is represented by an object path followed\n\t\t\tby a dictionary of the properties.\n\t\t\tProperties:\n\t\t\t\tstring Subject:\n\t\t\t\t\tMessage subject\n\t\t\t\tstring Timestamp:\n\t\t\t\t\tMessage timestamp\n\t\t\t\tstring Sender:\n\t\t\t\t\tMessage sender name\n\t\t\t\tstring SenderAddress:\n\t\t\t\t\tMessage sender address\n\t\t\t\tstring ReplyTo:\n\t\t\t\t\tMessage Reply-To address\n\t\t\t\tstring Recipient:\n\t\t\t\t\tMessage recipient name\n\t\t\t\tstring RecipientAddress:\n\t\t\t\t\tMessage recipient address\n\t\t\t\tstring Type:\n\t\t\t\t\tMessage type\n\t\t\t\t\tPossible values: \"email\", \"sms-gsm\",\n\t\t\t\t\t\"sms-cdma\" and \"mms\"\n\t\t\t\tuint64 Size:\n\t\t\t\t\tMessage size in bytes\n\t\t\t\tboolean Text:\n\t\t\t\t\tMessage text flag\n\t\t\t\t\tSpecifies whether message has textual\n\t\t\t\t\tcontent or is binary only\n\t\t\t\tstring Status:\n\t\t\t\t\tMessage status\n\t\t\t\t\tPossible values for received messages:\n\t\t\t\t\t\"complete\", \"fractioned\", \"notification\"\n\t\t\t\t\tPossible values for sent messages:\n\t\t\t\t\t\"delivery-success\", \"sending-success\",\n\t\t\t\t\t\"delivery-failure\", \"sending-failure\"\n\t\t\t\tuint64 AttachmentSize:\n\t\t\t\t\tMessage overall attachment size in bytes\n\t\t\t\tboolean Priority:\n\t\t\t\t\tMessage priority flag\n\t\t\t\tboolean Read:\n\t\t\t\t\tMessage read flag\n\t\t\t\tboolean Sent:\n\t\t\t\t\tMessage sent flag\n\t\t\t\tboolean Protected:\n\t\t\t\t\tMessage protected flag\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"},{"Name":"UpdateInbox","ReturnType":"void","Args":null,"Errors":null,"Docs":""}],"Signals":[],"Properties":[]},{"Title":"Message hierarchy","Description":"","Service":"org.bluez.obex","Interface":"org.bluez.obex.Message1","ObjectPath":"[Session object path]/{message0,...}","Methods":[{"Name":"Get","ReturnType":"object, dict","Args":[{"Type":"string","Name":"targetfile"},{"Type":"boolean","Name":"attachment"}],"Errors":null,"Docs":"\t\t\tDownload message and store it in the target file.\n\t\t\tIf an empty target file is given, a temporary file\n\t\t\twill be automatically generated.\n\t\t\tThe returned path represents the newly created transfer,\n\t\t\twhich should be used to find out if the content has been\n\t\t\tsuccessfully transferred or if the operation fails.\n\t\t\tThe properties of this transfer are also returned along\n\t\t\twith the object path, to avoid a call to GetProperties.\n\t\t\tPossible errors: org.bluez.obex.Error.InvalidArguments\n\t\t\t\t\t org.bluez.obex.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"Folder","Type":"string","Docs":"Folder which the message belongs to","Flags":[]},{"Name":"Subject","Type":"string","Docs":"Message subject","Flags":[]},{"Name":"Timestamp","Type":"string","Docs":"Message timestamp","Flags":[]},{"Name":"Sender","Type":"string","Docs":"Message sender name","Flags":[]},{"Name":"SenderAddress","Type":"string","Docs":"Message sender address","Flags":[]},{"Name":"ReplyTo","Type":"string","Docs":"Message Reply-To address","Flags":[]},{"Name":"Recipient","Type":"string","Docs":"Message recipient name","Flags":[]},{"Name":"RecipientAddress","Type":"string","Docs":"Message recipient address","Flags":[]},{"Name":"Type","Type":"string","Docs":"Message type\n\n\t\t\tPossible values: \"email\", \"sms-gsm\",\n\t\t\t\"sms-cdma\" and \"mms\"\n\n\t\tuint64 Size [readonly]\n\n\t\t\tMessage size in bytes","Flags":[]},{"Name":"Status","Type":"string","Docs":"Message reception status\n\n\t\t\tPossible values: \"complete\",\n\t\t\t\"fractioned\" and \"notification\"","Flags":[]},{"Name":"Priority","Type":"boolean","Docs":"Message priority flag","Flags":[]},{"Name":"Read","Type":"boolean","Docs":"Message read flag","Flags":[3]},{"Name":"Deleted","Type":"boolean","Docs":"Message deleted flag","Flags":[]},{"Name":"Sent","Type":"boolean","Docs":"Message sent flag","Flags":[]},{"Name":"Protected","Type":"boolean","Docs":"Message protected flag","Flags":[]}]}]},{"FileName":"profile-api.txt","Name":"BlueZ D-Bus Profile API description","Description":"\n","Api":[{"Title":"Profile Manager hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.ProfileManager1","ObjectPath":"/org/bluez","Methods":[{"Name":"RegisterProfile","ReturnType":"void","Args":[{"Type":"object","Name":"profile"},{"Type":"string","Name":"uuid"},{"Type":"dict","Name":"options"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tThis registers a profile implementation.\n\t\t\tIf an application disconnects from the bus all\n\t\t\tits registered profiles will be removed.\n\t\t\tSome predefined services:\n\t\t\tHFP AG UUID: 0000111f-0000-1000-8000-00805f9b34fb\n\t\t\t\tDefault profile Version is 1.7, profile Features\n\t\t\t\tis 0b001001 and RFCOMM channel is 13.\n\t\t\t\tAuthentication is required.\n\t\t\tHFP HS UUID: 0000111e-0000-1000-8000-00805f9b34fb\n\t\t\t\tDefault profile Version is 1.7, profile Features\n\t\t\t\tis 0b000000 and RFCOMM channel is 7.\n\t\t\t\tAuthentication is required.\n\t\t\tHSP AG UUID: 00001112-0000-1000-8000-00805f9b34fb\n\t\t\t\tDefault profile Version is 1.2, RFCOMM channel\n\t\t\t\tis 12 and Authentication is required. Does not\n\t\t\t\tsupport any Features, option is ignored.\n\t\t\tHSP HS UUID: 00001108-0000-1000-8000-00805f9b34fb\n\t\t\t\tDefault profile Version is 1.2, profile Features\n\t\t\t\tis 0b0 and RFCOMM channel is 6. Authentication\n\t\t\t\tis required. Features is one bit value, specify\n\t\t\t\tcapability of Remote Audio Volume Control\n\t\t\t\t(by default turned off).\n\t\t\tAvailable options:\n\t\t\t\tstring Name\n\t\t\t\t\tHuman readable name for the profile\n\t\t\t\tstring Service\n\t\t\t\t\tThe primary service class UUID\n\t\t\t\t\t(if different from the actual\n\t\t\t\t\t profile UUID)\n\t\t\t\tstring Role\n\t\t\t\t\tFor asymmetric profiles that do not\n\t\t\t\t\thave UUIDs available to uniquely\n\t\t\t\t\tidentify each side this\n\t\t\t\t\tparameter allows specifying the\n\t\t\t\t\tprecise local role.\n\t\t\t\t\tPossible values: \"client\", \"server\"\n\t\t\t\tuint16 Channel\n\t\t\t\t\tRFCOMM channel number that is used\n\t\t\t\t\tfor client and server UUIDs.\n\t\t\t\t\tIf applicable it will be used in the\n\t\t\t\t\tSDP record as well.\n\t\t\t\tuint16 PSM\n\t\t\t\t\tPSM number that is used for client\n\t\t\t\t\tand server UUIDs.\n\t\t\t\t\tIf applicable it will be used in the\n\t\t\t\t\tSDP record as well.\n\t\t\t\tboolean RequireAuthentication\n\t\t\t\t\tPairing is required before connections\n\t\t\t\t\twill be established. No devices will\n\t\t\t\t\tbe connected if not paired.\n\t\t\t\tboolean RequireAuthorization\n\t\t\t\t\tRequest authorization before any\n\t\t\t\t\tconnection will be established.\n\t\t\t\tboolean AutoConnect\n\t\t\t\t\tIn case of a client UUID this will\n\t\t\t\t\tforce connection of the RFCOMM or\n\t\t\t\t\tL2CAP channels when a remote device\n\t\t\t\t\tis connected.\n\t\t\t\tstring ServiceRecord\n\t\t\t\t\tProvide a manual SDP record.\n\t\t\t\tuint16 Version\n\t\t\t\t\tProfile version (for SDP record)\n\t\t\t\tuint16 Features\n\t\t\t\t\tProfile features (for SDP record)\n\t\t\tPossible errors: org.bluez.Error.InvalidArguments\n\t\t\t org.bluez.Error.AlreadyExists\n"},{"Name":"UnregisterProfile","ReturnType":"void","Args":[{"Type":"object","Name":"profile"}],"Errors":["org.bluez.Error.DoesNotExist","org.bluez.Error.DoesNotExist"],"Docs":"\t\t\tThis unregisters the profile that has been previously\n\t\t\tregistered. The object path parameter must match the\n\t\t\tsame value that has been used on registration.\n\t\t\tPossible errors: org.bluez.Error.DoesNotExist\n"}],"Signals":[],"Properties":[]},{"Title":"Profile hierarchy","Description":"","Service":"unique name","Interface":"org.bluez.Profile1","ObjectPath":"freely definable","Methods":[{"Name":"Release","ReturnType":"void","Args":[],"Errors":null,"Docs":"\t\t\tThis method gets called when the service daemon\n\t\t\tunregisters the profile. A profile can use it to do\n\t\t\tcleanup tasks. There is no need to unregister the\n\t\t\tprofile, because when this method gets called it has\n\t\t\talready been unregistered.\n"},{"Name":"NewConnection","ReturnType":"void","Args":[{"Type":"object","Name":"device"},{"Type":"int32","Name":"fd"},{"Type":"dict","Name":"fd_properties"}],"Errors":["org.bluez.Error.Rejected","org.bluez.Error.Rejected"],"Docs":"\t\t\tThis method gets called when a new service level\n\t\t\tconnection has been made and authorized.\n\t\t\tCommon fd_properties:\n\t\t\tuint16 Version\t\tProfile version (optional)\n\t\t\tuint16 Features\t\tProfile features (optional)\n\t\t\tPossible errors: org.bluez.Error.Rejected\n\t\t\t org.bluez.Error.Canceled\n"},{"Name":"RequestDisconnection","ReturnType":"void","Args":[{"Type":"object","Name":"device"}],"Errors":["org.bluez.Error.Rejected","org.bluez.Error.Rejected"],"Docs":"\t\t\tThis method gets called when a profile gets\n\t\t\tdisconnected.\n\t\t\tThe file descriptor is no longer owned by the service\n\t\t\tdaemon and the profile implementation needs to take\n\t\t\tcare of cleaning up all connections.\n\t\t\tIf multiple file descriptors are indicated via\n\t\t\tNewConnection, it is expected that all of them\n\t\t\tare disconnected before returning from this\n\t\t\tmethod call.\n\t\t\tPossible errors: org.bluez.Error.Rejected\n\t\t\t org.bluez.Error.Canceled\n"}],"Signals":[],"Properties":[]}]},{"FileName":"sap-api.txt","Name":"BlueZ D-Bus Sim Access API description","Description":"\n","Api":[{"Title":"Sim Access Profile hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.SimAccess1","ObjectPath":"[variable prefix]/{hci0,hci1,...}","Methods":[{"Name":"Disconnect","ReturnType":"void","Args":[],"Errors":["org.bluez.Error.Failed","org.bluez.Error.Failed"],"Docs":"\t\t\tDisconnects SAP client from the server.\n\t\t\tPossible errors: org.bluez.Error.Failed\n"}],"Signals":[],"Properties":[{"Name":"Connected","Type":"boolean","Docs":"Indicates if SAP client is connected to the server.","Flags":[]}]}]},{"FileName":"thermometer-api.txt","Name":"BlueZ D-Bus Thermometer API description","Description":"\tSantiago Carot-Nemesio \[email protected]\u003e\n\n","Api":[{"Title":"Health Thermometer Manager hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.ThermometerManager1","ObjectPath":"[variable prefix]/{hci0,hci1,...}","Methods":[{"Name":"RegisterWatcher","ReturnType":"","Args":[{"Type":"object","Name":"agent"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tRegisters a watcher to monitor scanned measurements.\n\t\t\tThis agent will be notified about final temperature\n\t\t\tmeasurements.\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n"},{"Name":"UnregisterWatcher","ReturnType":"","Args":[{"Type":"object","Name":"agent"}],"Errors":null,"Docs":"\t\t\tUnregisters a watcher.\n"},{"Name":"EnableIntermediateMeasurement","ReturnType":"","Args":[{"Type":"object","Name":"agent"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tEnables intermediate measurement notifications\n\t\t\tfor this agent. Intermediate measurements will\n\t\t\tbe enabled only for thermometers which support it.\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n"},{"Name":"DisableIntermediateMeasurement","ReturnType":"","Args":[{"Type":"object","Name":"agent"}],"Errors":["org.bluez.Error.InvalidArguments","org.bluez.Error.InvalidArguments"],"Docs":"\t\t\tDisables intermediate measurement notifications\n\t\t\tfor this agent. It will disable notifications in\n\t\t\tthermometers when the last agent removes the\n\t\t\twatcher for intermediate measurements.\n\t\t\tPossible Errors: org.bluez.Error.InvalidArguments\n\t\t\t\t\torg.bluez.Error.NotFound\n"}],"Signals":[],"Properties":[]},{"Title":"Health Thermometer Profile hierarchy","Description":"","Service":"org.bluez","Interface":"org.bluez.Thermometer1","ObjectPath":"[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX","Methods":[],"Signals":[],"Properties":[{"Name":"Intermediate","Type":"boolean","Docs":"True if the thermometer supports intermediate\n\t\t\tmeasurement notifications.","Flags":[]},{"Name":"Interval","Type":"uint16","Docs":"(optional) The Measurement Interval defines the time (in\n\t\t\tseconds) between measurements. This interval is\n\t\t\tnot related to the intermediate measurements and\n\t\t\tmust be defined into a valid range. Setting it\n\t\t\tto zero means that no periodic measurements will\n\t\t\tbe taken.","Flags":[5]},{"Name":"Maximum","Type":"uint16","Docs":"(optional) Defines the maximum value allowed for the interval\n\t\t\tbetween periodic measurements.","Flags":[5]},{"Name":"Minimum","Type":"uint16","Docs":"(optional) Defines the minimum value allowed for the interval\n\t\t\tbetween periodic measurements.","Flags":[5]}]},{"Title":"Health Thermometer Watcher hierarchy","Description":"","Service":"unique name","Interface":"org.bluez.ThermometerWatcher1","ObjectPath":"freely definable","Methods":[{"Name":"MeasurementReceived","ReturnType":"void","Args":[{"Type":"dict","Name":"measurement"}],"Errors":null,"Docs":"\t\t\tThis callback gets called when a measurement has been\n\t\t\tscanned in the thermometer.\n\t\t\tMeasurement:\n\t\t\t\tint16 Exponent:\n\t\t\t\tint32 Mantissa:\n\t\t\t\t\tExponent and Mantissa values as\n\t\t\t\t\textracted from float value defined by\n\t\t\t\t\tIEEE-11073-20601.\n\t\t\t\t\tMeasurement value is calculated as\n\t\t\t\t\t(Mantissa) * (10^Exponent)\n\t\t\t\t\tFor special cases Exponent is\n\t\t\t\t\tset to 0 and Mantissa is set to\n\t\t\t\t\tone of following values:\n\t\t\t\t\t+(2^23 - 1)\tNaN (invalid or\n\t\t\t\t\t\t\tmissing data)\n\t\t\t\t\t-(2^23)\t\tNRes\n\t\t\t\t\t+(2^23 - 2)\t+Infinity\n\t\t\t\t\t-(2^23 - 2)\t-Infinity\n\t\t\t\tstring Unit:\n\t\t\t\t\tPossible values: \"celsius\" or\n\t\t\t\t\t\t\t\"fahrenheit\"\n\t\t\t\tuint64 Time (optional):\n\t\t\t\t\tTime of measurement, if\n\t\t\t\t\tsupported by device.\n\t\t\t\t\tExpressed in seconds since epoch.\n\t\t\t\tstring Type (optional):\n\t\t\t\t\tOnly present if measurement type\n\t\t\t\t\tis known.\n\t\t\t\t\tPossible values: \"armpit\", \"body\",\n\t\t\t\t\t\t\"ear\", \"finger\", \"intestines\",\n\t\t\t\t\t\t\"mouth\", \"rectum\", \"toe\",\n\t\t\t\t\t\t\"tympanum\"\n\t\t\t\tstring Measurement:\n\t\t\t\t\tPossible values: \"final\" or\n\t\t\t\t\t\t\t\"intermediate\"\n"}],"Signals":[],"Properties":[]}]}]}