Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ././../../../../../../usr/man/man3rad/compliance_mgr.3rad
Real path: /usr/share/man/man3rad/compliance_mgr-1.3rad
Zurück
'\" t .\" Title: compliance_mgr-1 .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> .\" Date: 2018-03-21 .\" Manual: RAD Module Definitions .\" Source: Solaris 11.4 .\" Language: English .\" .TH "COMPLIANCE_MGR\-1" "3rad" "2018\-03\-21" "Solaris 11.4" "RAD Module Definitions" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" compliance_mgr \- Solaris Compliance .SH "SYNOPSIS" .nf #include <rad/client/1/compliance_mgr\&.h> cc [ flag\&.\&.\&. ] file\&.\&.\&. \fB\-lcompliance_mgr1_client\fR [ library\&.\&.\&. ] .fi .SS "interface Assessment" .nf const char *\ \&uuid\ \&; (ro) .fi .nf const compliance_mgr__rad_dict_string_opaque_t *\ \&contents\ \&; (rw) .fi .nf const compliance_mgr__rad_dict_string_string_t *\ \&metadata\ \&; (ro) .fi .nf compliance_mgr_AssessmentStatus_t\ \&state\ \&; (rw) .fi .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment__rad_create\fR('u .R rc_err_t \fBcompliance_mgr_Assessment__rad_create\fR(rc_instance_t\ *inst, . const\ char\ *uuid, . const\ char\ *name, . const\ char\ *benchmark, . const\ char\ *profile, . const\ char\ *tailoring, . const\ char\ *match, . const\ char\ *store, . rc_instance_t\ **result, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment__rad_delete\fR('u .R rc_err_t \fBcompliance_mgr_Assessment__rad_delete\fR(rc_instance_t\ *inst, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .nf .HP \w'typedef\ void\ \fB(*compliance_mgr_Assessment_AssessmentProgress_cb_f)\fR('u .R typedef void \fB(*compliance_mgr_Assessment_AssessmentProgress_cb_f)\fR(rc_instance_t\ *inst, . compliance_mgr_AssessmentProgress_t\ *payload, . struct\ timespec\ ts, . void\ *arg); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_subscribe_AssessmentProgress\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_subscribe_AssessmentProgress\fR(rc_instance_t\ *inst, . compliance_mgr_Assessment_AssessmentProgress_cb_f\ cb, . void\ *arg); .RS .RE .fi .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_unsubscribe_AssessmentProgress\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_unsubscribe_AssessmentProgress\fR(rc_instance_t\ *inst, . void\ **arg); .RS .RE .fi .SS "interface Benchmark" .nf const char *\ \&name\ \&; (ro) .fi .nf const char *\ \&title\ \&; (ro) .fi .nf const char **\ \&profiles\ \&; (ro) .fi .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Benchmark_get_descriptions\fR('u .R rc_err_t \fBcompliance_mgr_Benchmark_get_descriptions\fR(rc_instance_t\ *inst, . const\ char\ *tailoring, . compliance_mgr_RuleDescriptor_t\ ***result, . int\ *result_cnt, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .SS "interface Tailoring" .nf const char *\ \&name\ \&; (ro) .fi .SS "Enumerated Types" .PP \fBenum CMRetErrCode\fR .\" blockquote { .RS 4 .PP .nf typedef enum compliance_mgr_CMRetErrCode { CMCMREC_CMRE_OK = 0, CMCMREC_CMRE_GENERAL_ERROR = 1, CMCMREC_CMRE_BAD_ARGS = 2, CMCMREC_CMRE_PARTIAL_SUCCESS = 3, CMCMREC_CMRE_EXISTS = 4, CMCMREC_CMRE_BUSY = 5, CMCMREC_CMRE_ACCESS = 6, CMCMREC_CMRE_UNANTICIPATED = 99, } compliance_mgr_CMRetErrCode_t; .fi .RE .\" } blockquote .PP \fBenum AssessmentStatus\fR .\" blockquote { .RS 4 .PP .nf typedef enum compliance_mgr_AssessmentStatus { CMAS_AS_CREATING = 0, CMAS_AS_RUNNING = 1, CMAS_AS_COMPLETE = 2, CMAS_AS_ERROR = 3, CMAS_AS_ABORT = 4, } compliance_mgr_AssessmentStatus_t; .fi .RE .\" } blockquote .SS "Structured Types" .PP \fBstruct CMError\fR .\" blockquote { .RS 4 .PP typedef struct compliance_mgr_CMError compliance_mgr_CMError_t; .PP .nf struct compliance_mgr_CMError { compliance_mgr_CMRetErrCode_t cmcme_error_code; char *cmcme_error_message; }; .fi .nf .HP \w'void\ \fBcompliance_mgr_CMError_free\fR('u .R void \fBcompliance_mgr_CMError_free\fR(compliance_mgr_CMError_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct AssessmentProgress\fR .\" blockquote { .RS 4 .PP typedef struct compliance_mgr_AssessmentProgress compliance_mgr_AssessmentProgress_t; .PP .nf struct compliance_mgr_AssessmentProgress { compliance_mgr_AssessmentStatus_t cmap_state; char *cmap_message; compliance_mgr_CMRetErrCode_t cmap_err_code; }; .fi .nf .HP \w'void\ \fBcompliance_mgr_AssessmentProgress_free\fR('u .R void \fBcompliance_mgr_AssessmentProgress_free\fR(compliance_mgr_AssessmentProgress_t\ *in); .RS .RE .fi .RE .\" } blockquote .PP \fBstruct RuleDescriptor\fR .\" blockquote { .RS 4 .PP typedef struct compliance_mgr_RuleDescriptor compliance_mgr_RuleDescriptor_t; .PP .nf struct compliance_mgr_RuleDescriptor { char *cmrd_ruleid; char *cmrd_title; char *cmrd_description; }; .fi .nf .HP \w'void\ \fBcompliance_mgr_RuleDescriptor_free\fR('u .R void \fBcompliance_mgr_RuleDescriptor_free\fR(compliance_mgr_RuleDescriptor_t\ *in); .RS .RE .fi .RE .\" } blockquote .SS "Dictionaries" .PP \fBDictionary { string : opaque }\fR .\" blockquote { .RS 4 .PP typedef struct base_rad_dict compliance_mgr__rad_dict_string_opaque_t; .RE .\" } blockquote .PP \fBDictionary { string : string }\fR .\" blockquote { .RS 4 .PP typedef struct base_rad_dict compliance_mgr__rad_dict_string_string_t; .RE .\" } blockquote .SH "DESCRIPTION" .PP \fBAPI com\&.oracle\&.solaris\&.rad\&.compliance_mgr \fR\fB\&\s-2\u[1]\d\s+2\fR .PP This API provides functionality for the administering compliance operations\&. At present, the API supports running assessments remotely, retrieving information about benchmarks and tailorings, and accepting assessments to be stored in the slave assessment store\&. .SH "INTERFACES" .SS "interface Assessment" .PP An interface describing an assessment\&. .PP There is one key: \'uuid\', the unique identifier\&. .PP Note that if the user lacks access rights to the assessments store, a rad\&.client\&.PrivError exception can be raised for invocations of the Assessment create_object(), list_objects(), and get_object() interfaces\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAssessment Properties\fR .RS 4 .PP \fB\fIconst char *\fR\fR\ \&\fBuuid\fR (\fIread\-only\fR) \(em UUID of the assessment .\" blockquote { .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_get_uuid\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_get_uuid\fR(rc_instance_t\ *inst, . char\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .RE .\" } blockquote .RE .\" } blockquote .PP \fB\fIconst compliance_mgr__rad_dict_string_opaque_t *\fR\fR\ \&\fBcontents\fR (\fIread\-write\fR) .\" blockquote { .RS 4 .PP Contents of the assessment (assessment results file, report file, and log file)\&. A fetch of the contents property retrieves all available content\&. .RE .\" } blockquote .\" blockquote { .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_get_contents\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_get_contents\fR(rc_instance_t\ *inst, . compliance_mgr__rad_dict_string_opaque_t\ **result, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_set_contents\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_set_contents\fR(rc_instance_t\ *inst, . const\ compliance_mgr__rad_dict_string_opaque_t\ *contents, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Set property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIcontents\fR \(em Property value written .PP \fIerror\fR .RE .\" } blockquote .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBRead\-Write Error:\fR \fB\fIcompliance_mgr_CMError_t **\fR\fR .RE .\" } blockquote .PP \fB\fIconst compliance_mgr__rad_dict_string_string_t *\fR\fR\ \&\fBmetadata\fR (\fIread\-only\fR) \(em Metadata on the assessment\&. A fetch of the metadata property retrieves the match keys and values associated with the assessment\&. .\" blockquote { .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_get_metadata\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_get_metadata\fR(rc_instance_t\ *inst, . compliance_mgr__rad_dict_string_string_t\ **result, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .PP \fIerror\fR .RE .\" } blockquote .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBRead Error:\fR \fB\fIcompliance_mgr_CMError_t **\fR\fR .RE .\" } blockquote .PP \fB\fIcompliance_mgr_AssessmentStatus_t\fR\fR\ \&\fBstate\fR (\fIread\-write\fR) .\" blockquote { .RS 4 .PP State of the assessment\&. At creation, the state is AS_CREATING\&. After updating the contents, the state will reflect the newly stored assessment contents\&. .RE .\" } blockquote .\" blockquote { .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_get_state\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_get_state\fR(rc_instance_t\ *inst, . compliance_mgr_AssessmentStatus_t\ *result, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .PP \fIerror\fR .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_set_state\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_set_state\fR(rc_instance_t\ *inst, . compliance_mgr_AssessmentStatus_t\ state, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Set property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIstate\fR \(em Property value written .PP \fIerror\fR .RE .\" } blockquote .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBRead\-Write Error:\fR \fB\fIcompliance_mgr_CMError_t **\fR\fR .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAssessment Create\fR .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment__rad_create\fR('u .R rc_err_t \fBcompliance_mgr_Assessment__rad_create\fR(rc_instance_t\ *inst, . const\ char\ *uuid, . const\ char\ *name, . const\ char\ *benchmark, . const\ char\ *profile, . const\ char\ *tailoring, . const\ char\ *match, . const\ char\ *store, . rc_instance_t\ **result, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Create an assessment object instance\&. .PP Constructor of new assessment\&. Accessed through the RADConnection\&.create_object(\&.\&.\&.) method\&. .PP The following example will create a new assessment object\&. This object can have contents supplied by direct assignment\&. .PP The following example creates a new assessment object using various properties of the assignment such as benchmark, profile, etc\&. The create_object() interface returns an Assessment object handle\&. Setting the \'state\' property initiates the actual execution of the assessment\&. Subscription of events is done on the object being created so that the actual assessment execution can be observed via event notification\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIuuid\fR (\fInullable\fR) \(em UUID of the new assessment\&. .PP \fIname\fR (\fInullable\fR) \(em name of the new assessment, which can be specified by user\&. .PP \fIbenchmark\fR (\fInullable\fR) \(em name of the benchmark used to create an assessment\&. .PP \fIprofile\fR (\fInullable\fR) \(em name of the profile used to create an assessment\&. .PP \fItailoring\fR (\fInullable\fR) \(em name of the tailoring used to create an assessment\&. .PP \fImatch\fR (\fInullable\fR) \(em user specified match data for this assessment\&. .PP \fIstore\fR (\fInullable\fR) \(em user specified store_URI for this assessment\&. The assessment results will be pushed to an assessment store using the store_URI\&. .PP \fIresult\fR \(em New Assessment instance .PP \fIerror\fR .\" blockquote { .RS 4 .PP This constructor will return an error immediately if it was not possible to create the assessment, such as if an assessment with the given uuid already existed or some arguments fail to validate\&. In such a case no new assessment is created\&. .RE .\" } blockquote .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAssessment Retrieve\fR .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment__rad_get_name\fR('u .R rc_err_t \fBcompliance_mgr_Assessment__rad_get_name\fR(adr_name_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Obtain RAD name of a Assessment object\&. .PP \fBArguments:\fR .PP \fIresult\fR \(em RAD name .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment__rad_lookup\fR('u .R rc_err_t \fBcompliance_mgr_Assessment__rad_lookup\fR(rc_conn_t\ *c, . boolean_t\ strict, . rc_instance_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Lookup a Assessment instance\&. .PP Construct a RAD name for the interface based on the provided key\-value pairs and perform a lookup\&. If successful, instance reference is returned in the result\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIresult\fR \(em RAD instance .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment__rad_list\fR('u .R rc_err_t \fBcompliance_mgr_Assessment__rad_list\fR(rc_conn_t\ *c, . boolean_t\ strict, . adr_pattern_scheme_t\ scheme, . adr_name_t\ ***result, . int\ *result_count, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP List RAD names of a available Assessment instances\&. .PP Returns an array and array size of matching object names\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIscheme\fR \(em Apply glob (NS_GLOB) or regex (NS_REGEX) matching .PP \fIresult\fR \(em Array of RAD names .PP \fIresult_count\fR \(em Number of names in result array .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAssessment Delete\fR .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment__rad_delete\fR('u .R rc_err_t \fBcompliance_mgr_Assessment__rad_delete\fR(rc_instance_t\ *inst, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Delete an assessment object instance\&. .PP Assessment destructor to delete a particular assessment (one which this particular instance represents) from the store\&. The following example illustrates deletion of all assessments from the store: .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIerror\fR \(em This interface can return an error if the object instance can not be deleted, e\&.g\&. the assessment is still being created or updated\&. .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAssessment Events\fR .RS 4 .PP \fIAssessmentProgress\fR \(em Event that is dispatched during an assessment\&. .\" blockquote { .RS 4 .nf .HP \w'typedef\ void\ \fB(*compliance_mgr_Assessment_AssessmentProgress_cb_f)\fR('u .R typedef void \fB(*compliance_mgr_Assessment_AssessmentProgress_cb_f)\fR(rc_instance_t\ *inst, . compliance_mgr_AssessmentProgress_t\ *payload, . struct\ timespec\ ts, . void\ *arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Function invoked when event "AssessmentProgress" occurs\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance that generated the event .PP \fIpayload\fR \(em Event payload .PP \fIts\fR \(em Time stamp .PP \fIarg\fR \(em User data: custom parameter to invoke the function with .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_subscribe_AssessmentProgress\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_subscribe_AssessmentProgress\fR(rc_instance_t\ *inst, . compliance_mgr_Assessment_AssessmentProgress_cb_f\ cb, . void\ *arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Subscribe to event "AssessmentProgress"\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIcb\fR \(em Event callback function .PP \fIarg\fR \(em User data: custom parameter to invoke the function with .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Assessment_unsubscribe_AssessmentProgress\fR('u .R rc_err_t \fBcompliance_mgr_Assessment_unsubscribe_AssessmentProgress\fR(rc_instance_t\ *inst, . void\ **arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Unsubscribe from event "AssessmentProgress"\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIarg\fR \(em User data returned .RE .\" } blockquote .RE .\" } blockquote .RE .SS "interface Benchmark" .PP An interface describing a benchmark\&. .PP There is one key: \'name\', the benchmark name\&. .PP The following example shows how to use the Benchmark interface to get a list of benchmark objects and the properties of the project\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBBenchmark Properties\fR .RS 4 .PP \fB\fIconst char *\fR\fR\ \&\fBname\fR (\fIread\-only\fR) .\" blockquote { .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Benchmark_get_name\fR('u .R rc_err_t \fBcompliance_mgr_Benchmark_get_name\fR(rc_instance_t\ *inst, . char\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .RE .\" } blockquote .RE .\" } blockquote .PP \fB\fIconst char *\fR\fR\ \&\fBtitle\fR (\fIread\-only\fR) .\" blockquote { .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Benchmark_get_title\fR('u .R rc_err_t \fBcompliance_mgr_Benchmark_get_title\fR(rc_instance_t\ *inst, . char\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .RE .\" } blockquote .RE .\" } blockquote .PP \fB\fIconst char **\fR\fR\ \&\fBprofiles\fR (\fIread\-only\fR, \fInullable\fR) .\" blockquote { .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Benchmark_get_profiles\fR('u .R rc_err_t \fBcompliance_mgr_Benchmark_get_profiles\fR(rc_instance_t\ *inst, . char\ ***result, . int\ *result_cnt); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .PP \fIresult_cnt\fR \(em Number of items in result array .RE .\" } blockquote .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBBenchmark Methods\fR .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Benchmark_get_descriptions\fR('u .R rc_err_t \fBcompliance_mgr_Benchmark_get_descriptions\fR(rc_instance_t\ *inst, . const\ char\ *tailoring, . compliance_mgr_RuleDescriptor_t\ ***result, . int\ *result_cnt, . compliance_mgr_CMError_t\ **error); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fItailoring\fR \(em The name of the tailoring (if any) to use when constructing descriptions, replacing any default OSCV\-xxx values defined by the benchmark with any matching tailored values from this tailoring\&. Passing an empty string implies no tailoring is needed\&. .PP \fIresult\fR \(em A list of the rules this benchmark contains\&. .PP \fIresult_cnt\fR \(em Number of items in result array .PP \fIerror\fR .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBBenchmark Retrieve\fR .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Benchmark__rad_get_name\fR('u .R rc_err_t \fBcompliance_mgr_Benchmark__rad_get_name\fR(adr_name_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Obtain RAD name of a Benchmark object\&. .PP \fBArguments:\fR .PP \fIresult\fR \(em RAD name .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Benchmark__rad_lookup\fR('u .R rc_err_t \fBcompliance_mgr_Benchmark__rad_lookup\fR(rc_conn_t\ *c, . boolean_t\ strict, . rc_instance_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Lookup a Benchmark instance\&. .PP Construct a RAD name for the interface based on the provided key\-value pairs and perform a lookup\&. If successful, instance reference is returned in the result\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIresult\fR \(em RAD instance .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Benchmark__rad_list\fR('u .R rc_err_t \fBcompliance_mgr_Benchmark__rad_list\fR(rc_conn_t\ *c, . boolean_t\ strict, . adr_pattern_scheme_t\ scheme, . adr_name_t\ ***result, . int\ *result_count, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP List RAD names of a available Benchmark instances\&. .PP Returns an array and array size of matching object names\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIscheme\fR \(em Apply glob (NS_GLOB) or regex (NS_REGEX) matching .PP \fIresult\fR \(em Array of RAD names .PP \fIresult_count\fR \(em Number of names in result array .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .RE .SS "interface Tailoring" .PP An interface describing a tailoring\&. .PP There is one key: \'name\', the tailoring name\&. .PP The following example shows how to use the Tailoring interface to get a known tailoring name\&. Note: to get installed tailorings, the tailoring name should have the form mybench/mytailoring\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBTailoring Properties\fR .RS 4 .PP \fB\fIconst char *\fR\fR\ \&\fBname\fR (\fIread\-only\fR) .\" blockquote { .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Tailoring_get_name\fR('u .R rc_err_t \fBcompliance_mgr_Tailoring_get_name\fR(rc_instance_t\ *inst, . char\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Get property value\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .PP \fIresult\fR \(em Property value returned .RE .\" } blockquote .RE .\" } blockquote .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBTailoring Retrieve\fR .RS 4 .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Tailoring__rad_get_name\fR('u .R rc_err_t \fBcompliance_mgr_Tailoring__rad_get_name\fR(adr_name_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Obtain RAD name of a Tailoring object\&. .PP \fBArguments:\fR .PP \fIresult\fR \(em RAD name .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Tailoring__rad_lookup\fR('u .R rc_err_t \fBcompliance_mgr_Tailoring__rad_lookup\fR(rc_conn_t\ *c, . boolean_t\ strict, . rc_instance_t\ **result, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP Lookup a Tailoring instance\&. .PP Construct a RAD name for the interface based on the provided key\-value pairs and perform a lookup\&. If successful, instance reference is returned in the result\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIresult\fR \(em RAD instance .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr_Tailoring__rad_list\fR('u .R rc_err_t \fBcompliance_mgr_Tailoring__rad_list\fR(rc_conn_t\ *c, . boolean_t\ strict, . adr_pattern_scheme_t\ scheme, . adr_name_t\ ***result, . int\ *result_count, . int\ n, . \&.\&.\&.); .RS .RE .fi .\" blockquote { .RS 4 .PP List RAD names of a available Tailoring instances\&. .PP Returns an array and array size of matching object names\&. .PP \fBArguments:\fR .PP \fIc\fR \(em RAD connection handle .PP \fIstrict\fR \(em Strict (B_TRUE) or relaxed (B_FALSE) versioning .PP \fIscheme\fR \(em Apply glob (NS_GLOB) or regex (NS_REGEX) matching .PP \fIresult\fR \(em Array of RAD names .PP \fIresult_count\fR \(em Number of names in result array .PP \fIn\fR \(em Number of key\-value pairs provided as variadic arguments .PP \&.\&.\&. \(em Optional key\-value pairs that compose the primary key .RE .\" } blockquote .RE .SH "ENUMERATED TYPES" .PP \fBenum CMRetErrCode\fR \(em This enum contains a list of codes for compliance_mgr operation return or error\&. .\" blockquote { .RS 4 .PP .nf typedef enum compliance_mgr_CMRetErrCode { CMCMREC_CMRE_OK = 0, CMCMREC_CMRE_GENERAL_ERROR = 1, CMCMREC_CMRE_BAD_ARGS = 2, CMCMREC_CMRE_PARTIAL_SUCCESS = 3, CMCMREC_CMRE_EXISTS = 4, CMCMREC_CMRE_BUSY = 5, CMCMREC_CMRE_ACCESS = 6, CMCMREC_CMRE_UNANTICIPATED = 99, } compliance_mgr_CMRetErrCode_t; .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP CMCMREC_CMRE_OK (0) \(em Operation succeeded\&. .PP CMCMREC_CMRE_GENERAL_ERROR (1) \(em General error\&. .PP CMCMREC_CMRE_BAD_ARGS (2) \(em Argument usage error\&. .PP CMCMREC_CMRE_PARTIAL_SUCCESS (3) \(em Multiple operations were requested, but not all succeeded\&. .PP CMCMREC_CMRE_EXISTS (4) \(em Object to be created already exists\&. .PP CMCMREC_CMRE_BUSY (5) \(em Object cannot be updated or removed now\&. .PP CMCMREC_CMRE_ACCESS (6) \(em Insufficient privileges to access the object\&. .PP CMCMREC_CMRE_UNANTICIPATED (99) \(em An unanticipated error occurred\&. .RE .\" } blockquote .PP \fBenum AssessmentStatus\fR \(em Different states of an Assessment .\" blockquote { .RS 4 .PP .nf typedef enum compliance_mgr_AssessmentStatus { CMAS_AS_CREATING = 0, CMAS_AS_RUNNING = 1, CMAS_AS_COMPLETE = 2, CMAS_AS_ERROR = 3, CMAS_AS_ABORT = 4, } compliance_mgr_AssessmentStatus_t; .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP CMAS_AS_CREATING (0) .\" blockquote { .RS 4 .PP CREATING is an interim state, indicating either an assessment is being pushed from a remote node or is being prepared for running on local node\&. .RE .\" } blockquote .PP CMAS_AS_RUNNING (1) \(em RUNNING state indicates that an assessment is underway, or that the node was unable to complete the assessment run and publish results\&. .PP CMAS_AS_COMPLETE (2) \(em COMPLETE state indicates that the assessment ran to completion, and that a results\&.xccdf\&.xml file was generated\&. .PP CMAS_AS_ERROR (3) \(em ERROR state indicates that the underlying \'oscap\' command has terminated without producing a results file\&. .PP CMAS_AS_ABORT (4) .\" blockquote { .RS 4 .PP ABORT state indicates that the underlying \'oscap\' command was terminated by a signal, for example, a keyboard interrupt during a synchronous assessment\&. .RE .\" } blockquote .RE .\" } blockquote .SH "STRUCTURED TYPES" .PP \fBstruct CMError\fR \(em This struct is used as a general error payload for compliance_mgr\-related methods\&. .\" blockquote { .RS 4 .PP typedef struct compliance_mgr_CMError compliance_mgr_CMError_t; .PP .nf struct compliance_mgr_CMError { compliance_mgr_CMRetErrCode_t cmcme_error_code; char *cmcme_error_message; }; .fi .nf .HP \w'void\ \fBcompliance_mgr_CMError_free\fR('u .R void \fBcompliance_mgr_CMError_free\fR(compliance_mgr_CMError_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIcmcme_error_code\fR \(em Error code\&. .\" blockquote { .RS 4 .PP Current possible values are listed in CMRetErrCode enum but would not include value CMRE_OK\&. .RE .\" } blockquote .PP \fIcmcme_error_message\fR \(em Error message\&. .RE .\" } blockquote .PP \fBstruct AssessmentProgress\fR \(em Event that is dispatched during assessment on a local system\&. It is a way of showing the assessment is making progress\&. .\" blockquote { .RS 4 .PP typedef struct compliance_mgr_AssessmentProgress compliance_mgr_AssessmentProgress_t; .PP .nf struct compliance_mgr_AssessmentProgress { compliance_mgr_AssessmentStatus_t cmap_state; char *cmap_message; compliance_mgr_CMRetErrCode_t cmap_err_code; }; .fi .nf .HP \w'void\ \fBcompliance_mgr_AssessmentProgress_free\fR('u .R void \fBcompliance_mgr_AssessmentProgress_free\fR(compliance_mgr_AssessmentProgress_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIcmap_state\fR \(em State of the assessment\&. .PP \fIcmap_message\fR \(em The progress message, e\&.g\&. the assessment check that is being perform\&. .PP \fIcmap_err_code\fR \(em Error that caused assessment to fail\&. .RE .\" } blockquote .PP \fBstruct RuleDescriptor\fR \(em Describe a rule, providing access to its identifier string, its title and its description\&. .\" blockquote { .RS 4 .PP typedef struct compliance_mgr_RuleDescriptor compliance_mgr_RuleDescriptor_t; .PP .nf struct compliance_mgr_RuleDescriptor { char *cmrd_ruleid; char *cmrd_title; char *cmrd_description; }; .fi .nf .HP \w'void\ \fBcompliance_mgr_RuleDescriptor_free\fR('u .R void \fBcompliance_mgr_RuleDescriptor_free\fR(compliance_mgr_RuleDescriptor_t\ *in); .RS .RE .fi .RE .\" } blockquote .\" blockquote { .RS 4 .PP \fBFields:\fR .PP \fIcmrd_ruleid\fR \(em The XCCDF identifier of the rule\&. (e\&.g\&. OSC\-12345) .PP \fIcmrd_title\fR \(em The title of the rule\&. .PP \fIcmrd_description\fR \(em The description of the rule\&. This is formatted "as is" from the source xccdf file, and may not suit all screen layouts\&. .RE .\" } blockquote .SH "DICTIONARIES" .SS "Dictionary { string : opaque }" .PP Dictionary with a key type of string and a value type of opaque\&. .PP typedef struct base_rad_dict compliance_mgr__rad_dict_string_opaque_t; .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_opaque_get\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_opaque_get\fR(compliance_mgr__rad_dict_string_opaque_t\ *dict, . const\ char\ *key, . rc_opaque_t\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Get the value for given key\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIkey\fR \(em Key value .PP \fIresult\fR \(em Value returned .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_opaque_put\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_opaque_put\fR(compliance_mgr__rad_dict_string_opaque_t\ *dict, . const\ char\ *key, . const\ rc_opaque_t\ *value, . rc_opaque_t\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Put a key\-value pair into the dictionary\&. .PP Returns a previous value stored with the same key if one exists\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIkey\fR \(em Key value .PP \fIvalue\fR \(em Value written .PP \fIresult\fR \(em Original value for the key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_opaque_contains\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_opaque_contains\fR(compliance_mgr__rad_dict_string_opaque_t\ *dict, . const\ char\ *key); .RS .RE .fi .\" blockquote { .RS 4 .PP Check whether a key exists in the dictionary\&. .PP Returns RCE_OK when key exists, RCE_CLIENT_NOTFOUND otherwise\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIkey\fR \(em Key value .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_opaque_remove\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_opaque_remove\fR(compliance_mgr__rad_dict_string_opaque_t\ *dict, . const\ char\ *key, . rc_opaque_t\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Remove key\-value pair from the dictionary\&. .PP Returns RCE_OK when key was sucessfully removed, RCE_CLIENT_NOTFOUND otherwise\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIkey\fR \(em Key value .PP \fIresult\fR \(em Original value for the key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_opaque_keys\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_opaque_keys\fR(compliance_mgr__rad_dict_string_opaque_t\ *dict, . char\ ***result, . int\ *count); .RS .RE .fi .\" blockquote { .RS 4 .PP Get list of keys from the dictionary\&. .PP Memory associated with the result array should be freed by the user\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIresult\fR \(em Array of dictionary keys .PP \fIcount\fR \(em Number of items in result array .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_opaque_values\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_opaque_values\fR(compliance_mgr__rad_dict_string_opaque_t\ *dict, . rc_opaque_t\ ***result, . int\ *count); .RS .RE .fi .\" blockquote { .RS 4 .PP Get list of values from the dictionary\&. .PP Memory associated with the result array should be freed by the user\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIresult\fR \(em Array of dictionary values .PP \fIcount\fR \(em Number of items in result array .RE .\" } blockquote .nf .HP \w'unsigned\ int\ \fBcompliance_mgr__rad_dict_string_opaque_size\fR('u .R unsigned int \fBcompliance_mgr__rad_dict_string_opaque_size\fR(compliance_mgr__rad_dict_string_opaque_t\ *dict); .RS .RE .fi .\" blockquote { .RS 4 .PP Get number of key\-value pairs in the dictionary\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .RE .\" } blockquote .nf .HP \w'compliance_mgr__rad_dict_string_opaque_t\ *\ \fBcompliance_mgr__rad_dict_string_opaque_create\fR('u .R compliance_mgr__rad_dict_string_opaque_t * \fBcompliance_mgr__rad_dict_string_opaque_create\fR(const\ rc_instance_t\ *inst); .RS .RE .fi .\" blockquote { .RS 4 .PP Create a new, empty dictionary\&. .PP Returns a pointer to the dictionary, or NULL on error\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .RE .\" } blockquote .nf .HP \w'void\ \fBcompliance_mgr__rad_dict_string_opaque_free\fR('u .R void \fBcompliance_mgr__rad_dict_string_opaque_free\fR(compliance_mgr__rad_dict_string_opaque_t\ *dict); .RS .RE .fi .\" blockquote { .RS 4 .PP Destroy the dictionary and release the allocated memory\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_opaque_map\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_opaque_map\fR(compliance_mgr__rad_dict_string_opaque_t\ *dict, . rc_err_t(*func)(const\ char\ *,\ const\ rc_opaque_t\ *,\ void\ *), . void\ *arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Invoke a function with each key\-value pair in the dictionary\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIfunc\fR \(em Function to invoke .\" blockquote { .RS 4 .PP The arguments are: key, value, user\-data\&. .RE .\" } blockquote .PP \fIarg\fR \(em User data: custom parameter to invoke the function with .RE .\" } blockquote .SS "Dictionary { string : string }" .PP Dictionary with a key type of string and a value type of string\&. .PP typedef struct base_rad_dict compliance_mgr__rad_dict_string_string_t; .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_string_get\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_string_get\fR(compliance_mgr__rad_dict_string_string_t\ *dict, . const\ char\ *key, . char\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Get the value for given key\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIkey\fR \(em Key value .PP \fIresult\fR \(em Value returned .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_string_put\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_string_put\fR(compliance_mgr__rad_dict_string_string_t\ *dict, . const\ char\ *key, . const\ char\ *value, . char\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Put a key\-value pair into the dictionary\&. .PP Returns a previous value stored with the same key if one exists\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIkey\fR \(em Key value .PP \fIvalue\fR \(em Value written .PP \fIresult\fR \(em Original value for the key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_string_contains\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_string_contains\fR(compliance_mgr__rad_dict_string_string_t\ *dict, . const\ char\ *key); .RS .RE .fi .\" blockquote { .RS 4 .PP Check whether a key exists in the dictionary\&. .PP Returns RCE_OK when key exists, RCE_CLIENT_NOTFOUND otherwise\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIkey\fR \(em Key value .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_string_remove\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_string_remove\fR(compliance_mgr__rad_dict_string_string_t\ *dict, . const\ char\ *key, . char\ **result); .RS .RE .fi .\" blockquote { .RS 4 .PP Remove key\-value pair from the dictionary\&. .PP Returns RCE_OK when key was sucessfully removed, RCE_CLIENT_NOTFOUND otherwise\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIkey\fR \(em Key value .PP \fIresult\fR \(em Original value for the key .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_string_keys\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_string_keys\fR(compliance_mgr__rad_dict_string_string_t\ *dict, . char\ ***result, . int\ *count); .RS .RE .fi .\" blockquote { .RS 4 .PP Get list of keys from the dictionary\&. .PP Memory associated with the result array should be freed by the user\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIresult\fR \(em Array of dictionary keys .PP \fIcount\fR \(em Number of items in result array .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_string_values\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_string_values\fR(compliance_mgr__rad_dict_string_string_t\ *dict, . char\ ***result, . int\ *count); .RS .RE .fi .\" blockquote { .RS 4 .PP Get list of values from the dictionary\&. .PP Memory associated with the result array should be freed by the user\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIresult\fR \(em Array of dictionary values .PP \fIcount\fR \(em Number of items in result array .RE .\" } blockquote .nf .HP \w'unsigned\ int\ \fBcompliance_mgr__rad_dict_string_string_size\fR('u .R unsigned int \fBcompliance_mgr__rad_dict_string_string_size\fR(compliance_mgr__rad_dict_string_string_t\ *dict); .RS .RE .fi .\" blockquote { .RS 4 .PP Get number of key\-value pairs in the dictionary\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .RE .\" } blockquote .nf .HP \w'compliance_mgr__rad_dict_string_string_t\ *\ \fBcompliance_mgr__rad_dict_string_string_create\fR('u .R compliance_mgr__rad_dict_string_string_t * \fBcompliance_mgr__rad_dict_string_string_create\fR(const\ rc_instance_t\ *inst); .RS .RE .fi .\" blockquote { .RS 4 .PP Create a new, empty dictionary\&. .PP Returns a pointer to the dictionary, or NULL on error\&. .PP \fBArguments:\fR .PP \fIinst\fR \(em RAD instance .RE .\" } blockquote .nf .HP \w'void\ \fBcompliance_mgr__rad_dict_string_string_free\fR('u .R void \fBcompliance_mgr__rad_dict_string_string_free\fR(compliance_mgr__rad_dict_string_string_t\ *dict); .RS .RE .fi .\" blockquote { .RS 4 .PP Destroy the dictionary and release the allocated memory\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .RE .\" } blockquote .nf .HP \w'rc_err_t\ \fBcompliance_mgr__rad_dict_string_string_map\fR('u .R rc_err_t \fBcompliance_mgr__rad_dict_string_string_map\fR(compliance_mgr__rad_dict_string_string_t\ *dict, . rc_err_t(*func)(const\ char\ *,\ const\ char\ *,\ void\ *), . void\ *arg); .RS .RE .fi .\" blockquote { .RS 4 .PP Invoke a function with each key\-value pair in the dictionary\&. .PP \fBArguments:\fR .PP \fIdict\fR \(em Dictionary .PP \fIfunc\fR \(em Function to invoke .\" blockquote { .RS 4 .PP The arguments are: key, value, user\-data\&. .RE .\" } blockquote .PP \fIarg\fR \(em User data: custom parameter to invoke the function with .RE .\" } blockquote .SH "VERSION" .PP 1\&.0 .SH "ATTRIBUTES" .PP See attributes(7) for descriptions of the following attributes: .TS allbox tab(:); cB cB. T{ ATTRIBUTE TYPE T}:T{ ATTRIBUTE VALUE T} .T& l l l l. T{ Availability T}:T{ system/management/rad/module/rad\-compliance T} T{ Interface Stability T}:T{ Private T} .TE .sp 1 .SH "SEE ALSO" .PP \fBrad\fR(8) .SH "NOTES" .IP " 1." 4 Accessing Python documentation for this module: .sp .RS 4 .nf $ pydoc rad.bindings.com.oracle.solaris.rad.compliance_mgr_1 .fi .RE