Merge branch 'master' of ssh://git.samba.org/data/git/samba into regsrv
[kai/samba.git] / source3 / librpc / idl / libnetapi.idl
index 62363c4bee978b281a67bb10a6b02b0fcd610379..f2f4a16c1243b13ae9ff4e5477f7010ab3dd945d 100644 (file)
@@ -29,13 +29,28 @@ interface libnetapi
        /* NetJoinDomain                           */
        /*******************************************/
 
+       typedef [public,bitmap32bit] bitmap {
+               NETSETUP_JOIN_DOMAIN                    = 0x00000001,
+               NETSETUP_ACCT_CREATE                    = 0x00000002,
+               NETSETUP_ACCT_DELETE                    = 0x00000004,
+               NETSETUP_WIN9X_UPGRADE                  = 0x00000010,
+               NETSETUP_DOMAIN_JOIN_IF_JOINED          = 0x00000020,
+               NETSETUP_JOIN_UNSECURE                  = 0x00000040,
+               NETSETUP_MACHINE_PWD_PASSED             = 0x00000080,
+               NETSETUP_DEFER_SPN_SET                  = 0x00000100,
+               NETSETUP_JOIN_DC_ACCOUNT                = 0x00000200,
+               NETSETUP_JOIN_WITH_NEW_NAME             = 0x00000400,
+               NETSETUP_INSTALL_INVOCATION             = 0x00040000,
+               NETSETUP_IGNORE_UNSUPPORTED_FLAGS       = 0x10000000
+       } NetJoinFlags;
+
        [nopush,nopull] NET_API_STATUS NetJoinDomain(
                [in,unique] string *server,
                [in,ref] string *domain,
                [in,unique] string *account_ou,
                [in,unique] string *account,
                [in,unique] string *password,
-               [in] uint32 join_flags
+               [in] NetJoinFlags join_flags
                );
 
        /*******************************************/
@@ -46,13 +61,20 @@ interface libnetapi
                [in,unique] string *server_name,
                [in,unique] string *account,
                [in,unique] string *password,
-               [in] uint32 unjoin_flags
+               [in] NetJoinFlags unjoin_flags
                );
 
        /*******************************************/
        /* NetGetJoinInformation                   */
        /*******************************************/
 
+       typedef enum {
+               NetSetupUnknownStatus = 0,
+               NetSetupUnjoined = 1,
+               NetSetupWorkgroupName = 2,
+               NetSetupDomainName = 3
+       } NETSETUP_JOIN_STATUS;
+
        [nopush,nopull] NET_API_STATUS NetGetJoinInformation(
                [in,unique] string *server_name,
                [out] string **name_buffer,
@@ -72,10 +94,52 @@ interface libnetapi
                [out] string ***ous
                );
 
+       /*******************************************/
+       /* NetRenameMachineInDomain                */
+       /*******************************************/
+
+       [nopush,nopull] NET_API_STATUS NetRenameMachineInDomain(
+               [in] string server_name,
+               [in] string new_machine_name,
+               [in] string account,
+               [in] string password,
+               [in] uint32 rename_options
+               );
+
        /*******************************************/
        /* NetServerGetInfo                        */
        /*******************************************/
 
+       [public] typedef struct {
+               uint32 sv100_platform_id;
+               string sv100_name;
+       } SERVER_INFO_100;
+
+       [public] typedef struct {
+               uint32 sv101_platform_id;
+               string sv101_name;
+               uint32 sv101_version_major;
+               uint32 sv101_version_minor;
+               uint32 sv101_type;
+               string sv101_comment;
+       } SERVER_INFO_101;
+
+       [public] typedef struct {
+               uint32 sv102_platform_id;
+               string sv102_name;
+               uint32 sv102_version_major;
+               uint32 sv102_version_minor;
+               uint32 sv102_type;
+               string sv102_comment;
+               uint32 sv102_users;
+               uint32 sv102_disc;
+               boolean8 sv102_hidden;
+               uint32 sv102_announce;
+               uint32 sv102_anndelta;
+               uint32 sv102_licenses;
+               string sv102_userpath;
+       } SERVER_INFO_102;
+
        [public] typedef struct {
                string sv1005_comment;
        } SERVER_INFO_1005;
@@ -453,7 +517,9 @@ interface libnetapi
                uint32 usriX_code_page;
                string usriX_profile;
                string usriX_home_dir_drive;
+               uint32 usriX_user_id;
                uint32 usriX_primary_group_id;
+               uint32 usriX_password_expired;
        } USER_INFO_X;
 
        [nopush,nopull] NET_API_STATUS NetUserAdd(
@@ -550,6 +616,39 @@ interface libnetapi
                [out,ref] uint32 *total_entries
                );
 
+       /*******************************************/
+       /* NetUserSetGroups                        */
+       /*******************************************/
+
+       [nopush,nopull] NET_API_STATUS NetUserSetGroups(
+               [in] string server_name,
+               [in] string user_name,
+               [in] uint32 level,
+               [in] uint8 *buffer,
+               [in] uint32 num_entries
+               );
+
+       /*******************************************/
+       /* NetUserGetLocalGroups                   */
+       /*******************************************/
+
+       const int LG_INCLUDE_INDIRECT = 0x0001;
+
+       typedef struct {
+               string lgrui0_name;
+       } LOCALGROUP_USERS_INFO_0;
+
+       [nopush,nopull] NET_API_STATUS NetUserGetLocalGroups(
+               [in] string server_name,
+               [in] string user_name,
+               [in] uint32 level,
+               [in] uint32 flags,
+               [out] uint8 **buffer,
+               [in] uint32 prefmaxlen,
+               [out,ref] uint32 *entries_read,
+               [out,ref] uint32 *total_entries
+               );
+
        /*******************************************/
        /* NetUserModalsGet                        */
        /*******************************************/
@@ -787,6 +886,18 @@ interface libnetapi
                [in,out,ref] uint32 *resume_handle
                );
 
+       /*******************************************/
+       /* NetGroupSetUsers                        */
+       /*******************************************/
+
+       [nopush,nopull] NET_API_STATUS NetGroupSetUsers(
+               [in] string server_name,
+               [in] string group_name,
+               [in] uint32 level,
+               [in] uint8 *buffer,
+               [in] uint32 num_entries
+               );
+
        /*******************************************/
        /* NetLocalGroupAdd                        */
        /*******************************************/
@@ -969,6 +1080,16 @@ interface libnetapi
        /* NetShareAdd                             */
        /*******************************************/
 
+       typedef struct {
+               string shi0_netname;
+       } SHARE_INFO_0;
+
+       typedef struct {
+               string shi1_netname;
+               uint32 shi1_type;
+               string shi1_remark;
+       } SHARE_INFO_1;
+
        typedef struct {
                string shi2_netname;
                uint32 shi2_type;
@@ -980,10 +1101,139 @@ interface libnetapi
                string shi2_passwd;
        } SHARE_INFO_2;
 
+       typedef struct {
+               string shi501_netname;
+               uint32 shi501_type;
+               string shi501_remark;
+               uint32 shi501_flags;
+       } SHARE_INFO_501;
+
+       typedef struct {
+               string shi1004_remark;
+       } SHARE_INFO_1004;
+
+       const int CSC_MASK = 0x30;
+
+       typedef [public,bitmap32bit] bitmap {
+               SHI1005_FLAGS_DFS                               = 0x01,
+               SHI1005_FLAGS_DFS_ROOT                          = 0x02,
+               CSC_CACHE_MANUAL_REINT                          = 0x00,
+               CSC_CACHE_AUTO_REINT                            = 0x10,
+               CSC_CACHE_VDO                                   = 0x20,
+               CSC_CACHE_NONE                                  = 0x30,
+               SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS          = 0x0100,
+               SHI1005_FLAGS_FORCE_SHARED_DELETE               = 0x0200,
+               SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING           = 0x0400,
+               SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM       = 0x0800
+       } SHARE_INFO_1005_FLAGS;
+
+       typedef struct {
+               SHARE_INFO_1005_FLAGS shi1005_flags;
+       } SHARE_INFO_1005;
+
+       typedef struct {
+               uint32 shi1006_max_uses;
+       } SHARE_INFO_1006;
+
        [nopush,nopull] NET_API_STATUS NetShareAdd(
                [in] string server_name,
                [in] uint32 level,
                [in] uint8 *buffer,
                [out] uint32 *parm_err
                );
+
+       /*******************************************/
+       /* NetShareDel                             */
+       /*******************************************/
+
+       [nopush,nopull] NET_API_STATUS NetShareDel(
+               [in] string server_name,
+               [in] string net_name,
+               [in] uint32 reserved
+               );
+
+       /*******************************************/
+       /* NetShareEnum                            */
+       /*******************************************/
+
+       [nopush,nopull] NET_API_STATUS NetShareEnum(
+               [in] string server_name,
+               [in] uint32 level,
+               [out] uint8 **buffer,
+               [in] uint32 prefmaxlen,
+               [out] uint32 *entries_read,
+               [out] uint32 *total_entries,
+               [in,out] uint32 *resume_handle
+               );
+
+       /*******************************************/
+       /* NetShareGetInfo                         */
+       /*******************************************/
+
+       [nopush,nopull] NET_API_STATUS NetShareGetInfo(
+               [in] string server_name,
+               [in] string net_name,
+               [in] uint32 level,
+               [out] uint8 **buffer
+               );
+
+       /*******************************************/
+       /* NetShareSetInfo                         */
+       /*******************************************/
+
+       [nopush,nopull] NET_API_STATUS NetShareSetInfo(
+               [in] string server_name,
+               [in] string net_name,
+               [in] uint32 level,
+               [in] uint8 *buffer,
+               [out] uint32 *parm_err
+               );
+
+       /*******************************************/
+       /* NetFileClose                            */
+       /*******************************************/
+
+       [nopush,nopull] NET_API_STATUS NetFileClose(
+               [in] string server_name,
+               [in] uint32 fileid
+               );
+
+       /*******************************************/
+       /* NetFileGetInfo                          */
+       /*******************************************/
+
+       typedef struct {
+               uint32 fi2_id;
+       } FILE_INFO_2;
+
+       typedef struct {
+               uint32 fi3_id;
+               uint32 fi3_permissions;
+               uint32 fi3_num_locks;
+               string fi3_pathname;
+               string fi3_username;
+       } FILE_INFO_3;
+
+       [nopush,nopull] NET_API_STATUS NetFileGetInfo(
+               [in] string server_name,
+               [in] uint32 fileid,
+               [in] uint32 level,
+               [out] uint8 **buffer
+               );
+
+       /*******************************************/
+       /* NetFileEnum                             */
+       /*******************************************/
+
+       [nopush,nopull] NET_API_STATUS NetFileEnum(
+               [in] string server_name,
+               [in] string base_path,
+               [in] string user_name,
+               [in] uint32 level,
+               [out] uint8 **buffer,
+               [in] uint32 prefmaxlen,
+               [out] uint32 *entries_read,
+               [out] uint32 *total_entries,
+               [in,out] uint32 *resume_handle
+               );
 }