1 /*
2   Copyright 2021 Northern.tech AS
3 
4   This file is part of CFEngine 3 - written and maintained by Northern.tech AS.
5 
6   This program is free software; you can redistribute it and/or modify it
7   under the terms of the GNU General Public License as published by the
8   Free Software Foundation; version 3.
9 
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14 
15   You should have received a copy of the GNU General Public License
16   along with this program; if not, write to the Free Software
17   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
18 
19   To the extent this program is licensed as part of the Enterprise
20   versions of CFEngine, the applicable Commercial Open Source License
21   (COSL) may apply to this file if you as a licensee so wish it. See
22   included file COSL.txt.
23 */
24 
25 #ifndef CFENGINE_ATTRIBUTES_H
26 #define CFENGINE_ATTRIBUTES_H
27 
28 #include <cf3.defs.h>
29 
30 LogLevel ActionAttributeLogLevelFromString(const char *log_level);
31 bool IsClassesBodyConstraint(const char *constraint);
32 Attributes GetClassContextAttributes(const EvalContext *ctx, const Promise *pp);
33 Attributes GetColumnAttributes(const EvalContext *ctx, const Promise *pp);
34 Attributes GetDatabaseAttributes(const EvalContext *ctx, const Promise *pp);
35 Attributes GetDeletionAttributes(const EvalContext *ctx, const Promise *pp);
36 Attributes GetEnvironmentsAttributes(const EvalContext *ctx, const Promise *pp);
37 Attributes GetExecAttributes(const EvalContext *ctx, const Promise *pp);
38 void ClearFilesAttributes(Attributes *whom);
39 /* Every return from GetFilesAttributes() must be passed to
40  * ClearFilesAttributes() when you're done with it. */
41 Attributes GetFilesAttributes(const EvalContext *ctx, const Promise *pp);
42 Attributes GetInferencesAttributes(const EvalContext *ctx, const Promise *pp);
43 Attributes GetInsertionAttributes(const EvalContext *ctx, const Promise *pp);
44 Attributes GetMeasurementAttributes(const EvalContext *ctx, const Promise *pp);
45 Attributes GetMethodAttributes(const EvalContext *ctx, const Promise *pp);
46 Attributes GetOccurrenceAttributes(const EvalContext *ctx, const Promise *pp);
47 Attributes GetPackageAttributes(const EvalContext *ctx, const Promise *pp);
48 Attributes GetUserAttributes(const EvalContext *ctx, const Promise *pp);
49 Attributes GetProcessAttributes(const EvalContext *ctx, const Promise *pp);
50 Attributes GetReplaceAttributes(const EvalContext *ctx, const Promise *pp);
51 Attributes GetReportsAttributes(const EvalContext *ctx, const Promise *pp);
52 Attributes GetServicesAttributes(const EvalContext *ctx, const Promise *pp);
53 Attributes GetStorageAttributes(const EvalContext *ctx, const Promise *pp);
54 
55 Acl GetAclConstraints(const EvalContext *ctx, const Promise *pp);
56 ContextConstraint GetContextConstraints(const EvalContext *ctx, const Promise *pp);
57 Database GetDatabaseConstraints(const EvalContext *ctx, const Promise *pp);
58 DefineClasses GetClassDefinitionConstraints(const EvalContext *ctx, const Promise *pp);
59 EditColumn GetColumnConstraints(const EvalContext *ctx, const Promise *pp);
60 EditDefaults GetEditDefaults(const EvalContext *ctx, const Promise *pp);
61 EditLocation GetLocationAttributes(const Promise *pp);
62 EditXml GetXmlConstraints(const Promise *pp);
63 EditRegion GetRegionConstraints(const EvalContext *ctx, const Promise *pp);
64 EditReplace GetReplaceConstraints(const Promise *pp);
65 Environments GetEnvironmentsConstraints(const EvalContext *ctx, const Promise *pp);
66 ExecContain GetExecContainConstraints(const EvalContext *ctx, const Promise *pp);
67 ENTERPRISE_FUNC_0ARG_DECLARE(HashMethod, GetBestFileChangeHashMethod);
68 FileChange GetChangeMgtConstraints(const EvalContext *ctx, const Promise *pp);
69 FileCopy GetCopyConstraints(const EvalContext *ctx, const Promise *pp);
70 FileDelete GetDeleteConstraints(const EvalContext *ctx, const Promise *pp);
71 FileLink GetLinkConstraints(const EvalContext *ctx, const Promise *pp);
72 FileRename GetRenameConstraints(const EvalContext *ctx, const Promise *pp);
73 FileSelect GetSelectConstraints(const EvalContext *ctx, const Promise *pp);
74 LineSelect GetDeleteSelectConstraints(const EvalContext *ctx, const Promise *pp);
75 LineSelect GetInsertSelectConstraints(const EvalContext *ctx, const Promise *pp);
76 Measurement GetMeasurementConstraint(const EvalContext *ctx, const Promise *pp);
77 Packages GetPackageConstraints(const EvalContext *ctx, const Promise *pp);
78 NewPackages GetNewPackageConstraints(const EvalContext *ctx, const Promise *pp);
79 ProcessCount GetMatchesConstraints(const EvalContext *ctx, const Promise *pp);
80 ProcessSelect GetProcessFilterConstraints(const EvalContext *ctx, const Promise *pp);
81 DirectoryRecursion GetRecursionConstraints(const EvalContext *ctx, const Promise *pp);
82 Report GetReportConstraints(const EvalContext *ctx, const Promise *pp);
83 Services GetServicesConstraints(const EvalContext *ctx, const Promise *pp);
84 StorageMount GetMountConstraints(const EvalContext *ctx, const Promise *pp);
85 StorageVolume GetVolumeConstraints(const EvalContext *ctx, const Promise *pp);
86 TransactionContext GetTransactionConstraints(const EvalContext *ctx, const Promise *pp);
87 
88 #endif
89