samldb: Allow automatic generation of mAPIIDs
[sfrench/samba-autobuild/.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         bool use_ntvfs;
39 };
40
41 /* FIXME: Rename this to hostconfig ? */
42 struct provision_result {
43         const char *domaindn;
44         struct ldb_context *samdb;
45         struct loadparm_context *lp_ctx;
46 };
47
48 struct provision_store_self_join_settings {
49         const char *domain_name;
50         const char *realm;
51         const char *netbios_name;
52         enum netr_SchannelType secure_channel_type;
53         const char *machine_password;
54         int key_version_number;
55         struct dom_sid *domain_sid;
56 };
57
58 NTSTATUS provision_bare(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx,
59                                                 struct provision_settings *settings,
60                                                 struct provision_result *result);
61
62 NTSTATUS provision_store_self_join(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx,
63                                    struct tevent_context *ev_ctx,
64                                    struct provision_store_self_join_settings *settings,
65                                    const char **error_string);
66
67 struct ldb_context *provision_get_schema(TALLOC_CTX *mem_ctx,
68                                          struct loadparm_context *lp_ctx,
69                                          const char *schema_dn,
70                                          DATA_BLOB *override_prefixmap);
71
72 #endif /* _PROVISION_H_ */