ldb: use #include <ldb.h> for ldb
[samba.git] / source4 / param / provision.h
1 /* 
2    Unix SMB/CIFS implementation.
3    Samba utility functions
4    Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
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 _PROVISION_H_
21 #define _PROVISION_H_
22
23 struct provision_settings {
24         const char *site_name;
25         const char *root_dn_str; 
26         const char *domain_dn_str;
27         const char *config_dn_str;
28         const char *schema_dn_str;
29         const char *server_dn_str;
30         const struct GUID *invocation_id;
31         const char *netbios_name;
32         const char *host_ip;
33         const char *realm;
34         const char *domain;
35         const char *ntds_dn_str;
36         const char *machine_password;
37         const char *targetdir;
38 };
39
40 /* FIXME: Rename this to hostconfig ? */
41 struct provision_result {
42         const char *domaindn;
43         struct ldb_context *samdb;
44         struct loadparm_context *lp_ctx;
45 };
46
47 struct provision_store_self_join_settings {
48         const char *domain_name;
49         const char *realm;
50         const char *netbios_name;
51         enum netr_SchannelType secure_channel_type;
52         const char *machine_password;
53         int key_version_number;
54         struct dom_sid *domain_sid;
55 };
56
57 NTSTATUS provision_bare(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx,
58                                                 struct provision_settings *settings,
59                                                 struct provision_result *result);
60
61 NTSTATUS provision_store_self_join(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx,
62                                    struct tevent_context *ev_ctx,
63                                    struct provision_store_self_join_settings *settings,
64                                    const char **error_string);
65
66 struct ldb_context *provision_get_schema(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx,
67                                          DATA_BLOB *override_prefixmap);
68
69 #endif /* _PROVISION_H_ */