r23784: use the GPLv3 boilerplate as recommended by the FSF and the license text
[tprouty/samba.git] / source / python / py_samr.h
1 /* 
2    Python wrappers for DCERPC/SMB client routines.
3
4    Copyright (C) Tim Potter, 2002
5    
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3 of the License, or
9    (at your option) any later version.
10    
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15    
16    You should have received a copy of the GNU General Public License
17    along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #ifndef _PY_SAMR_H
21 #define _PY_SAMR_H
22
23 #include "python/py_common.h"
24
25 /* SAMR connect policy handle object */
26
27 typedef struct {
28         PyObject_HEAD
29         struct rpc_pipe_client *cli;
30         TALLOC_CTX *mem_ctx;
31         POLICY_HND connect_pol;
32 } samr_connect_hnd_object;
33      
34 /* SAMR domain policy handle object */
35
36 typedef struct {
37         PyObject_HEAD
38         struct rpc_pipe_client *cli;
39         TALLOC_CTX *mem_ctx;
40         POLICY_HND domain_pol;
41 } samr_domain_hnd_object;
42
43 /* SAMR user policy handle object */
44
45 typedef struct {
46         PyObject_HEAD
47         struct rpc_pipe_client *cli;
48         TALLOC_CTX *mem_ctx;
49         POLICY_HND user_pol;
50 } samr_user_hnd_object;
51
52 /* SAMR group policy handle object */
53
54 typedef struct {
55         PyObject_HEAD
56         struct cli_state *cli;
57         TALLOC_CTX *mem_ctx;
58         POLICY_HND group_pol;
59 } samr_group_hnd_object;
60      
61 /* SAMR alias policy handle object */
62
63 typedef struct {
64         PyObject_HEAD
65         struct cli_state *cli;
66         TALLOC_CTX *mem_ctx;
67         POLICY_HND alias_pol;
68 } samr_alias_hnd_object;
69      
70 extern PyTypeObject samr_connect_hnd_type, samr_domain_hnd_type,
71         samr_user_hnd_type, samr_group_hnd_type, samr_alias_hnd_type; 
72
73 /* Exceptions raised by this module */
74
75 extern PyObject *samr_error;
76
77 /* The following definitions are from py_samr_conv.c */
78
79 BOOL py_from_acct_info(PyObject **array, struct acct_info *info, int num_accts);
80 BOOL py_from_SAM_USER_INFO_16(PyObject **dict, SAM_USER_INFO_16 *info);
81 BOOL py_to_SAM_USER_INFO_16(SAM_USER_INFO_16 *info, PyObject *dict);
82 BOOL py_from_SAM_USER_INFO_21(PyObject **dict, SAM_USER_INFO_21 *info);
83 BOOL py_to_SAM_USER_INFO_21(SAM_USER_INFO_21 *info, PyObject *dict);
84
85 #endif /* _PY_SAMR_H */