netapi: add IDL for NetFileGetInfo.
[metze/samba/wip.git] / source3 / librpc / idl / libnetapi.idl
index 71bbccb8fd6e0852b732fbe6670d9a4fb50edc5e..6ecfdccdfd68ff7a205f4718b719676ccf2711e6 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;
@@ -150,6 +214,11 @@ interface libnetapi
                string usri0_name;
        } USER_INFO_0;
 
+       /* priv */
+       const int USER_PRIV_GUEST       = 0;
+       const int USER_PRIV_USER        = 1;
+       const int USER_PRIV_ADMIN       = 2;
+
        [public] typedef struct {
                string usri1_name;
                string usri1_password;
@@ -161,6 +230,16 @@ interface libnetapi
                string usri1_script_path;
        } USER_INFO_1;
 
+       /* auth_flags in USER_INFO_2 */
+
+       const int AF_OP_PRINT           = 0x1;
+       const int AF_OP_COMM            = 0x2;
+       const int AF_OP_SERVER          = 0x4;
+       const int AF_OP_ACCOUNTS        = 0x8;
+       const int AF_SETTABLE_BITS      = (AF_OP_PRINT | AF_OP_COMM | AF_OP_SERVER | AF_OP_ACCOUNTS);
+
+       const int USER_MAXSTORAGE_UNLIMITED = (uint32_t)-1L;
+
        [public] typedef struct {
                string usri2_name;
                string usri2_password;
@@ -244,7 +323,7 @@ interface libnetapi
                string usri4_logon_server;
                uint32 usri4_country_code;
                uint32 usri4_code_page;
-               dom_sid *usri4_user_sid;
+               domsid *usri4_user_sid;
                uint32 usri4_primary_group_id;
                string usri4_profile;
                string usri4_home_dir_drive;
@@ -512,6 +591,62 @@ interface libnetapi
                [out] uint32 *parm_err
                );
 
+       /*******************************************/
+       /* NetUserGetGroups                        */
+       /*******************************************/
+
+       [public] typedef struct {
+               string grui0_name;
+       } GROUP_USERS_INFO_0;
+
+       [public] typedef struct {
+               string grui1_name;
+               uint32 grui1_attributes;
+       } GROUP_USERS_INFO_1;
+
+       [nopush,nopull] NET_API_STATUS NetUserGetGroups(
+               [in] string server_name,
+               [in] string user_name,
+               [in] uint32 level,
+               [out] uint8 **buffer,
+               [in] uint32 prefmaxlen,
+               [out,ref] uint32 *entries_read,
+               [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                        */
        /*******************************************/
@@ -738,15 +873,6 @@ interface libnetapi
        /* NetGroupGetUsers                        */
        /*******************************************/
 
-       [public] typedef struct {
-               string grui0_name;
-       } GROUP_USERS_INFO_0;
-
-       [public] typedef struct {
-               string grui1_name;
-               uint32 grui1_attributes;
-       } GROUP_USERS_INFO_1;
-
        [nopush,nopull] NET_API_STATUS NetGroupGetUsers(
                [in] string server_name,
                [in] string group_name,
@@ -758,6 +884,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                        */
        /*******************************************/
@@ -935,4 +1073,149 @@ interface libnetapi
                [in] string server_name,
                [out,ref] uint8 **buffer
                );
+
+       /*******************************************/
+       /* 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;
+               string shi2_remark;
+               uint32 shi2_permissions;
+               uint32 shi2_max_uses;
+               uint32 shi2_current_uses;
+               string shi2_path;
+               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
+               );
 }