doc: Make session methods as experimental for now
[platform/upstream/connman.git] / doc / manager-api.txt
index 1aeb055..02fd89d 100644 (file)
@@ -1,8 +1,8 @@
 Manager hierarchy
 =================
 
-Service                org.moblin.connman
-Interface      org.moblin.connman.Manager
+Service                net.connman
+Interface      net.connman.Manager
 Object path    /
 
 Methods                dict GetProperties()
@@ -22,33 +22,6 @@ Methods              dict GetProperties()
                        Possible Errors: [service].Error.InvalidArguments
                                         [service].Error.InvalidProperty
 
-               string GetState()
-
-                       Return global connection state of a system. The
-                       same value is return via the State property.
-
-                       Possible Errors: [service].Error.InvalidArguments
-
-               object CreateProfile(string name)
-
-                       Create and add new profile with the specified
-                       identifier name.
-
-                       Possible Errors: [service].Error.InvalidArguments
-
-               void RemoveProfile(object path)
-
-                       Remove profile with specified object path.
-
-                       It is not possible to remove the current active
-                       profile. To remove the active profile a different
-                       one must be selected via ActiveProfile property
-                       first.
-
-                       At minimum one profile must be available all the time.
-
-                       Possible Errors: [service].Error.InvalidArguments
-
                void RequestScan(string type)
 
                        Request to trigger a scan for the specified
@@ -69,42 +42,35 @@ Methods             dict GetProperties()
 
                        Possible Errors: [service].Error.InvalidArguments
 
-               object LookupService(string pattern)
+               array{object,dict} GetServices()
 
-                       Lookup a service matching the specific pattern.
+                       Returns a sorted list of tuples with service
+                       object path and dictionary of service properties.
 
-                       Examples are interface names like "eth0", "wlan0"
-                       etc. or service names like "hotspot" etc.
-
-                       In case of multiple services match the the pattern
-                       an error is returned.
+                       This list will not contain sensitive information
+                       like passphrases etc.
 
                        Possible Errors: [service].Error.InvalidArguments
-                                        [service].Error.NotUnique
-                                        [service].Error.NotFound
 
-               object ConnectService(dict network)
+               object ConnectProvider(dict provider)
 
-                       Connect to a network specified by the given
+                       Connect to a VPN specified by the given provider
                        properties.
 
-                       For connecting to a hidden WiFi network for example
-                       it is required that Type = "wifi" and the SSID
-                       properties are provided.
-
-                       When successful this method will return object
-                       path of the service object.
+                       When successful this method will return the object
+                       path of the VPN service object.
 
                        This method can also be used to connect to an
-                       already existing service. It works exactly the
-                       same as executing the Connect method from the
-                       service interface.
+                       already existing VPN.
 
                        This method call will only return in case of an
                        error or when the service is fully connected. So
                        setting a longer D-Bus timeout might be a really
                        good idea.
 
+                       When 'SessionMode' property is enabled, this method
+                       call is disallowed.
+
                        Possible Errors: [service].Error.InvalidArguments
 
                void RegisterAgent(object path)
@@ -119,38 +85,72 @@ Methods            dict GetProperties()
 
                        Possible Errors: [service].Error.InvalidArguments
 
-               void RegisterCounter(object path, uint32 interval)
+               void RegisterCounter(object path, uint32 accuracy, uint32 period)  [experimental]
 
                        Register a new counter for user notifications.
 
-                       If the interval is zero then no timer for updates
-                       will be started. Only kernel events can then
-                       trigger updates. Otherwise the kernel will be
-                       polled every n seconds for an update.
+                       The accuracy is specified in kilo-bytes and defines
+                       a threshold for counter updates. Together with the
+                       period value it defines how often user space needs
+                       to be updated. The period value is in seconds.
+
+                       This interface is not meant for time tracking. If
+                       the time needs to be tracked down to the second, it
+                       is better to have a real timer running inside the
+                       application than using this interface.
+
+                       Also getting notified for every kilo-byte is a bad
+                       choice (even if the interface supports it). Something
+                       like 10 kilo-byte units or better 1 mega-byte seems
+                       to be a lot more reasonable and better for the user.
 
                        Possible Errors: [service].Error.InvalidArguments
 
-               void UnregisterCounter(object path)
+               void UnregisterCounter(object path)  [experimental]
 
                        Unregister an existing counter.
 
                        Possible Errors: [service].Error.InvalidArguments
 
-               object RequestSession(string bearer)
+               object CreateSession(dict settings, object notifier)  [experimental]
 
-                       Request a networking session.
+                       Create a new session for the application. Every
+                       application can create multiple session with
+                       different settings. The settings are described
+                       as part of the session interface.
 
-                       If the bearer is an empty string the best available
-                       service will be picked.
+                       The notifier allows asynchronous notification about
+                       session specific changes. These changes can be
+                       for online/offline state or IP address changes or
+                       similar things the application is required to
+                       handle.
 
-                       When successful this method will return the object
-                       path of the corresponding service.
+                       Every application should at least create one session
+                       to inform about its requirements and it purpose.
+
+               void DestroySession(object session)  [experimental]
+
+                       Remove the previously created session.
+
+                       If an application exits unexpectatly the session
+                       will be automatically destroyed.
+
+               object path, dict, fd RequestPrivateNetwork(dict options)
+                                                               [experimental]
+
+                       Request a new Private Network, which includes the
+                       creation of a tun/tap interface, and IP
+                       configuration, NAT and IP forwarding on that
+                       interface.
+                       An object path, a dictionnary and a file descriptor
+                       with IP settings are returned.
 
                        Possible Errors: [service].Error.InvalidArguments
+                                        [service].Error.NotSupported
 
-               void ReleaseSession()
+               void ReleasePrivateNetwork(object path) [experimental]
 
-                       Release a networking session.
+                       Releases a private network.
 
                        Possible Errors: [service].Error.InvalidArguments
 
@@ -159,15 +159,6 @@ Signals            PropertyChanged(string name, variant value)
                        This signal indicates a changed value of the given
                        property.
 
-               StateChanged(string state)
-
-                       This signal is similar to the PropertyChanged signal
-                       for the State property.
-
-                       It exists for application state only care about the
-                       current state and so can avoid to be woken up when
-                       other details changes.
-
 Properties     string State [readonly]
 
                        The global connection state of a system. Possible
@@ -211,14 +202,6 @@ Properties string State [readonly]
                        the limited usage of WiFi or Bluetooth devices might
                        be allowed in some situations.
 
-               object ActiveProfile [readwrite]
-
-                       Object path of the current active profile.
-
-               array{object} Profiles [readonly]
-
-                       List of profile object paths.
-
                array{object} Technologies [readonly]
 
                        List of technology object paths.
@@ -238,3 +221,12 @@ Properties string State [readonly]
                        itself. It is just provided here for convenience of
                        applications only dealing with the current active
                        profile.
+
+               boolean SessionMode [readwrite]  [experminental]
+
+                       This disables the auto connect feature. It should be
+                       enabled when the Session API is used. When SessionMode
+                       is enabled, 'ConnectService' and 'ConnectProvider'
+                       method calls are disallowed.
+
+                       The default value is false.