compliance_mgr-1 - Solaris Compliance
#include <rad/client/1/compliance_mgr.h> cc [ flag... ] file... -lcompliance_mgr1_client [ library... ] interface Assessment const char * uuid ; (ro) const compliance_mgr__rad_dict_string_opaque_t * contents ; (rw) const compliance_mgr__rad_dict_string_string_t * metadata ; (ro) compliance_mgr_AssessmentStatus_t state ; (rw) rc_err_t compliance_mgr_Assessment__rad_create(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); rc_err_t compliance_mgr_Assessment__rad_delete(rc_instance_t *inst, compliance_mgr_CMError_t **error); typedef void (*compliance_mgr_Assessment_AssessmentProgress_cb_f)(rc_instance_t *inst, compliance_mgr_AssessmentProgress_t *payload, struct timespec ts, void *arg); rc_err_t compliance_mgr_Assessment_subscribe_AssessmentProgress(rc_instance_t *inst, compliance_mgr_Assessment_AssessmentProgress_cb_f cb, void *arg); rc_err_t compliance_mgr_Assessment_unsubscribe_AssessmentProgress(rc_instance_t *inst, void **arg); interface Benchmark const char * name ; (ro) const char * title ; (ro) const char ** profiles ; (ro) rc_err_t compliance_mgr_Benchmark_get_descriptions(rc_instance_t *inst, const char *tailoring, compliance_mgr_RuleDescriptor_t ***result, int *result_cnt, compliance_mgr_CMError_t **error); interface Tailoring const char * name ; (ro) Enumerated Types enum CMRetErrCode 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; enum AssessmentStatus 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; Structured Types struct CMError typedef struct compliance_mgr_CMError compliance_mgr_CMError_t; struct compliance_mgr_CMError { compliance_mgr_CMRetErrCode_t cmcme_error_code; char *cmcme_error_message; }; void compliance_mgr_CMError_free(compliance_mgr_CMError_t *in); struct AssessmentProgress typedef struct compliance_mgr_AssessmentProgress compliance_mgr_AssessmentProgress_t; struct compliance_mgr_AssessmentProgress { compliance_mgr_AssessmentStatus_t cmap_state; char *cmap_message; compliance_mgr_CMRetErrCode_t cmap_err_code; }; void compliance_mgr_AssessmentProgress_free(compliance_mgr_AssessmentProgress_t *in); struct RuleDescriptor typedef struct compliance_mgr_RuleDescriptor compliance_mgr_RuleDescriptor_t; struct compliance_mgr_RuleDescriptor { char *cmrd_ruleid; char *cmrd_title; char *cmrd_description; }; void compliance_mgr_RuleDescriptor_free(compliance_mgr_RuleDescriptor_t *in); Dictionaries Dictionary { string : opaque } typedef struct base_rad_dict compliance_mgr__rad_dict_string_opaque_t; Dictionary { string : string } typedef struct base_rad_dict compliance_mgr__rad_dict_string_string_t;
COMPLIANCE_MGR-1(3rad) RAD Module Definitions COMPLIANCE_MGR-1(3rad) NAME compliance_mgr - Solaris Compliance SYNOPSIS #include <rad/client/1/compliance_mgr.h> cc [ flag... ] file... -lcompliance_mgr1_client [ library... ] interface Assessment const char * uuid ; (ro) const compliance_mgr__rad_dict_string_opaque_t * contents ; (rw) const compliance_mgr__rad_dict_string_string_t * metadata ; (ro) compliance_mgr_AssessmentStatus_t state ; (rw) rc_err_t compliance_mgr_Assessment__rad_create(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); rc_err_t compliance_mgr_Assessment__rad_delete(rc_instance_t *inst, compliance_mgr_CMError_t **error); typedef void (*compliance_mgr_Assessment_AssessmentProgress_cb_f)(rc_instance_t *inst, compliance_mgr_AssessmentProgress_t *payload, struct timespec ts, void *arg); rc_err_t compliance_mgr_Assessment_subscribe_AssessmentProgress(rc_instance_t *inst, compliance_mgr_Assessment_AssessmentProgress_cb_f cb, void *arg); rc_err_t compliance_mgr_Assessment_unsubscribe_AssessmentProgress(rc_instance_t *inst, void **arg); interface Benchmark const char * name ; (ro) const char * title ; (ro) const char ** profiles ; (ro) rc_err_t compliance_mgr_Benchmark_get_descriptions(rc_instance_t *inst, const char *tailoring, compliance_mgr_RuleDescriptor_t ***result, int *result_cnt, compliance_mgr_CMError_t **error); interface Tailoring const char * name ; (ro) Enumerated Types enum CMRetErrCode 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; enum AssessmentStatus 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; Structured Types struct CMError typedef struct compliance_mgr_CMError compliance_mgr_CMError_t; struct compliance_mgr_CMError { compliance_mgr_CMRetErrCode_t cmcme_error_code; char *cmcme_error_message; }; void compliance_mgr_CMError_free(compliance_mgr_CMError_t *in); struct AssessmentProgress typedef struct compliance_mgr_AssessmentProgress compliance_mgr_AssessmentProgress_t; struct compliance_mgr_AssessmentProgress { compliance_mgr_AssessmentStatus_t cmap_state; char *cmap_message; compliance_mgr_CMRetErrCode_t cmap_err_code; }; void compliance_mgr_AssessmentProgress_free(compliance_mgr_AssessmentProgress_t *in); struct RuleDescriptor typedef struct compliance_mgr_RuleDescriptor compliance_mgr_RuleDescriptor_t; struct compliance_mgr_RuleDescriptor { char *cmrd_ruleid; char *cmrd_title; char *cmrd_description; }; void compliance_mgr_RuleDescriptor_free(compliance_mgr_RuleDescriptor_t *in); Dictionaries Dictionary { string : opaque } typedef struct base_rad_dict compliance_mgr__rad_dict_string_opaque_t; Dictionary { string : string } typedef struct base_rad_dict compliance_mgr__rad_dict_string_string_t; DESCRIPTION API com.oracle.solaris.rad.compliance_mgr [1] 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. INTERFACES interface Assessment An interface describing an assessment. There is one key: 'uuid', the unique identifier. 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. Assessment Properties const char * uuid (read-only) -- UUID of the assessment rc_err_t compliance_mgr_Assessment_get_uuid(rc_instance_t *inst, char **result); Get property value. Arguments: inst -- RAD instance result -- Property value returned const compliance_mgr__rad_dict_string_opaque_t * contents (read-write) Contents of the assessment (assessment results file, report file, and log file). A fetch of the contents property retrieves all available content. rc_err_t compliance_mgr_Assessment_get_contents(rc_instance_t *inst, compliance_mgr__rad_dict_string_opaque_t **result, compliance_mgr_CMError_t **error); Get property value. Arguments: inst -- RAD instance result -- Property value returned error rc_err_t compliance_mgr_Assessment_set_contents(rc_instance_t *inst, const compliance_mgr__rad_dict_string_opaque_t *contents, compliance_mgr_CMError_t **error); Set property value. Arguments: inst -- RAD instance contents -- Property value written error Read-Write Error: compliance_mgr_CMError_t ** const compliance_mgr__rad_dict_string_string_t * metadata (read-only) -- Metadata on the assessment. A fetch of the metadata property retrieves the match keys and values associated with the assessment. rc_err_t compliance_mgr_Assessment_get_metadata(rc_instance_t *inst, compliance_mgr__rad_dict_string_string_t **result, compliance_mgr_CMError_t **error); Get property value. Arguments: inst -- RAD instance result -- Property value returned error Read Error: compliance_mgr_CMError_t ** compliance_mgr_AssessmentStatus_t state (read-write) State of the assessment. At creation, the state is AS_CREATING. After updating the contents, the state will reflect the newly stored assessment contents. rc_err_t compliance_mgr_Assessment_get_state(rc_instance_t *inst, compliance_mgr_AssessmentStatus_t *result, compliance_mgr_CMError_t **error); Get property value. Arguments: inst -- RAD instance result -- Property value returned error rc_err_t compliance_mgr_Assessment_set_state(rc_instance_t *inst, compliance_mgr_AssessmentStatus_t state, compliance_mgr_CMError_t **error); Set property value. Arguments: inst -- RAD instance state -- Property value written error Read-Write Error: compliance_mgr_CMError_t ** Assessment Create rc_err_t compliance_mgr_Assessment__rad_create(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); Create an assessment object instance. Constructor of new assessment. Accessed through the RADConnection.create_object(...) method. The following example will create a new assessment object. This object can have contents supplied by direct assignment. 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. Arguments: inst -- RAD instance uuid (nullable) -- UUID of the new assessment. name (nullable) -- name of the new assessment, which can be specified by user. benchmark (nullable) -- name of the benchmark used to create an assessment. profile (nullable) -- name of the profile used to create an assessment. tailoring (nullable) -- name of the tailoring used to create an assessment. match (nullable) -- user specified match data for this assessment. store (nullable) -- user specified store_URI for this assessment. The assessment results will be pushed to an assessment store using the store_URI. result -- New Assessment instance error 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. Assessment Retrieve rc_err_t compliance_mgr_Assessment__rad_get_name(adr_name_t **result, int n, ...); Obtain RAD name of a Assessment object. Arguments: result -- RAD name n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key rc_err_t compliance_mgr_Assessment__rad_lookup(rc_conn_t *c, boolean_t strict, rc_instance_t **result, int n, ...); Lookup a Assessment instance. 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. Arguments: c -- RAD connection handle strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning result -- RAD instance n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key rc_err_t compliance_mgr_Assessment__rad_list(rc_conn_t *c, boolean_t strict, adr_pattern_scheme_t scheme, adr_name_t ***result, int *result_count, int n, ...); List RAD names of a available Assessment instances. Returns an array and array size of matching object names. Arguments: c -- RAD connection handle strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning scheme -- Apply glob (NS_GLOB) or regex (NS_REGEX) matching result -- Array of RAD names result_count -- Number of names in result array n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key Assessment Delete rc_err_t compliance_mgr_Assessment__rad_delete(rc_instance_t *inst, compliance_mgr_CMError_t **error); Delete an assessment object instance. 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: Arguments: inst -- RAD instance error -- This interface can return an error if the object instance can not be deleted, e.g. the assessment is still being created or updated. Assessment Events AssessmentProgress -- Event that is dispatched during an assessment. typedef void (*compliance_mgr_Assessment_AssessmentProgress_cb_f)(rc_instance_t *inst, compliance_mgr_AssessmentProgress_t *payload, struct timespec ts, void *arg); Function invoked when event "AssessmentProgress" occurs. Arguments: inst -- RAD instance that generated the event payload -- Event payload ts -- Time stamp arg -- User data: custom parameter to invoke the function with rc_err_t compliance_mgr_Assessment_subscribe_AssessmentProgress(rc_instance_t *inst, compliance_mgr_Assessment_AssessmentProgress_cb_f cb, void *arg); Subscribe to event "AssessmentProgress". Arguments: inst -- RAD instance cb -- Event callback function arg -- User data: custom parameter to invoke the function with rc_err_t compliance_mgr_Assessment_unsubscribe_AssessmentProgress(rc_instance_t *inst, void **arg); Unsubscribe from event "AssessmentProgress". Arguments: inst -- RAD instance arg -- User data returned interface Benchmark An interface describing a benchmark. There is one key: 'name', the benchmark name. The following example shows how to use the Benchmark interface to get a list of benchmark objects and the properties of the project. Benchmark Properties const char * name (read-only) rc_err_t compliance_mgr_Benchmark_get_name(rc_instance_t *inst, char **result); Get property value. Arguments: inst -- RAD instance result -- Property value returned const char * title (read-only) rc_err_t compliance_mgr_Benchmark_get_title(rc_instance_t *inst, char **result); Get property value. Arguments: inst -- RAD instance result -- Property value returned const char ** profiles (read-only, nullable) rc_err_t compliance_mgr_Benchmark_get_profiles(rc_instance_t *inst, char ***result, int *result_cnt); Get property value. Arguments: inst -- RAD instance result -- Property value returned result_cnt -- Number of items in result array Benchmark Methods rc_err_t compliance_mgr_Benchmark_get_descriptions(rc_instance_t *inst, const char *tailoring, compliance_mgr_RuleDescriptor_t ***result, int *result_cnt, compliance_mgr_CMError_t **error); Get property value. Arguments: inst -- RAD instance tailoring -- 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. result -- A list of the rules this benchmark contains. result_cnt -- Number of items in result array error Benchmark Retrieve rc_err_t compliance_mgr_Benchmark__rad_get_name(adr_name_t **result, int n, ...); Obtain RAD name of a Benchmark object. Arguments: result -- RAD name n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key rc_err_t compliance_mgr_Benchmark__rad_lookup(rc_conn_t *c, boolean_t strict, rc_instance_t **result, int n, ...); Lookup a Benchmark instance. 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. Arguments: c -- RAD connection handle strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning result -- RAD instance n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key rc_err_t compliance_mgr_Benchmark__rad_list(rc_conn_t *c, boolean_t strict, adr_pattern_scheme_t scheme, adr_name_t ***result, int *result_count, int n, ...); List RAD names of a available Benchmark instances. Returns an array and array size of matching object names. Arguments: c -- RAD connection handle strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning scheme -- Apply glob (NS_GLOB) or regex (NS_REGEX) matching result -- Array of RAD names result_count -- Number of names in result array n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key interface Tailoring An interface describing a tailoring. There is one key: 'name', the tailoring name. 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. Tailoring Properties const char * name (read-only) rc_err_t compliance_mgr_Tailoring_get_name(rc_instance_t *inst, char **result); Get property value. Arguments: inst -- RAD instance result -- Property value returned Tailoring Retrieve rc_err_t compliance_mgr_Tailoring__rad_get_name(adr_name_t **result, int n, ...); Obtain RAD name of a Tailoring object. Arguments: result -- RAD name n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key rc_err_t compliance_mgr_Tailoring__rad_lookup(rc_conn_t *c, boolean_t strict, rc_instance_t **result, int n, ...); Lookup a Tailoring instance. 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. Arguments: c -- RAD connection handle strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning result -- RAD instance n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key rc_err_t compliance_mgr_Tailoring__rad_list(rc_conn_t *c, boolean_t strict, adr_pattern_scheme_t scheme, adr_name_t ***result, int *result_count, int n, ...); List RAD names of a available Tailoring instances. Returns an array and array size of matching object names. Arguments: c -- RAD connection handle strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning scheme -- Apply glob (NS_GLOB) or regex (NS_REGEX) matching result -- Array of RAD names result_count -- Number of names in result array n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key ENUMERATED TYPES enum CMRetErrCode -- This enum contains a list of codes for compliance_mgr operation return or error. 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; CMCMREC_CMRE_OK (0) -- Operation succeeded. CMCMREC_CMRE_GENERAL_ERROR (1) -- General error. CMCMREC_CMRE_BAD_ARGS (2) -- Argument usage error. CMCMREC_CMRE_PARTIAL_SUCCESS (3) -- Multiple operations were requested, but not all succeeded. CMCMREC_CMRE_EXISTS (4) -- Object to be created already exists. CMCMREC_CMRE_BUSY (5) -- Object cannot be updated or removed now. CMCMREC_CMRE_ACCESS (6) -- Insufficient privileges to access the object. CMCMREC_CMRE_UNANTICIPATED (99) -- An unanticipated error occurred. enum AssessmentStatus -- Different states of an Assessment 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; CMAS_AS_CREATING (0) 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. CMAS_AS_RUNNING (1) -- RUNNING state indicates that an assessment is underway, or that the node was unable to complete the assessment run and publish results. CMAS_AS_COMPLETE (2) -- COMPLETE state indicates that the assessment ran to completion, and that a results.xccdf.xml file was generated. CMAS_AS_ERROR (3) -- ERROR state indicates that the underlying 'oscap' command has terminated without producing a results file. CMAS_AS_ABORT (4) ABORT state indicates that the underlying 'oscap' command was terminated by a signal, for example, a keyboard interrupt during a synchronous assessment. STRUCTURED TYPES struct CMError -- This struct is used as a general error payload for compliance_mgr-related methods. typedef struct compliance_mgr_CMError compliance_mgr_CMError_t; struct compliance_mgr_CMError { compliance_mgr_CMRetErrCode_t cmcme_error_code; char *cmcme_error_message; }; void compliance_mgr_CMError_free(compliance_mgr_CMError_t *in); Fields: cmcme_error_code -- Error code. Current possible values are listed in CMRetErrCode enum but would not include value CMRE_OK. cmcme_error_message -- Error message. struct AssessmentProgress -- Event that is dispatched during assessment on a local system. It is a way of showing the assessment is making progress. typedef struct compliance_mgr_AssessmentProgress compliance_mgr_AssessmentProgress_t; struct compliance_mgr_AssessmentProgress { compliance_mgr_AssessmentStatus_t cmap_state; char *cmap_message; compliance_mgr_CMRetErrCode_t cmap_err_code; }; void compliance_mgr_AssessmentProgress_free(compliance_mgr_AssessmentProgress_t *in); Fields: cmap_state -- State of the assessment. cmap_message -- The progress message, e.g. the assessment check that is being perform. cmap_err_code -- Error that caused assessment to fail. struct RuleDescriptor -- Describe a rule, providing access to its identifier string, its title and its description. typedef struct compliance_mgr_RuleDescriptor compliance_mgr_RuleDescriptor_t; struct compliance_mgr_RuleDescriptor { char *cmrd_ruleid; char *cmrd_title; char *cmrd_description; }; void compliance_mgr_RuleDescriptor_free(compliance_mgr_RuleDescriptor_t *in); Fields: cmrd_ruleid -- The XCCDF identifier of the rule. (e.g. OSC-12345) cmrd_title -- The title of the rule. cmrd_description -- The description of the rule. This is formatted "as is" from the source xccdf file, and may not suit all screen layouts. DICTIONARIES Dictionary { string : opaque } Dictionary with a key type of string and a value type of opaque. typedef struct base_rad_dict compliance_mgr__rad_dict_string_opaque_t; rc_err_t compliance_mgr__rad_dict_string_opaque_get(compliance_mgr__rad_dict_string_opaque_t *dict, const char *key, rc_opaque_t **result); Get the value for given key. Arguments: dict -- Dictionary key -- Key value result -- Value returned rc_err_t compliance_mgr__rad_dict_string_opaque_put(compliance_mgr__rad_dict_string_opaque_t *dict, const char *key, const rc_opaque_t *value, rc_opaque_t **result); Put a key-value pair into the dictionary. Returns a previous value stored with the same key if one exists. Arguments: dict -- Dictionary key -- Key value value -- Value written result -- Original value for the key rc_err_t compliance_mgr__rad_dict_string_opaque_contains(compliance_mgr__rad_dict_string_opaque_t *dict, const char *key); Check whether a key exists in the dictionary. Returns RCE_OK when key exists, RCE_CLIENT_NOTFOUND otherwise. Arguments: dict -- Dictionary key -- Key value rc_err_t compliance_mgr__rad_dict_string_opaque_remove(compliance_mgr__rad_dict_string_opaque_t *dict, const char *key, rc_opaque_t **result); Remove key-value pair from the dictionary. Returns RCE_OK when key was sucessfully removed, RCE_CLIENT_NOTFOUND otherwise. Arguments: dict -- Dictionary key -- Key value result -- Original value for the key rc_err_t compliance_mgr__rad_dict_string_opaque_keys(compliance_mgr__rad_dict_string_opaque_t *dict, char ***result, int *count); Get list of keys from the dictionary. Memory associated with the result array should be freed by the user. Arguments: dict -- Dictionary result -- Array of dictionary keys count -- Number of items in result array rc_err_t compliance_mgr__rad_dict_string_opaque_values(compliance_mgr__rad_dict_string_opaque_t *dict, rc_opaque_t ***result, int *count); Get list of values from the dictionary. Memory associated with the result array should be freed by the user. Arguments: dict -- Dictionary result -- Array of dictionary values count -- Number of items in result array unsigned int compliance_mgr__rad_dict_string_opaque_size(compliance_mgr__rad_dict_string_opaque_t *dict); Get number of key-value pairs in the dictionary. Arguments: dict -- Dictionary compliance_mgr__rad_dict_string_opaque_t * compliance_mgr__rad_dict_string_opaque_create(const rc_instance_t *inst); Create a new, empty dictionary. Returns a pointer to the dictionary, or NULL on error. Arguments: inst -- RAD instance void compliance_mgr__rad_dict_string_opaque_free(compliance_mgr__rad_dict_string_opaque_t *dict); Destroy the dictionary and release the allocated memory. Arguments: dict -- Dictionary rc_err_t compliance_mgr__rad_dict_string_opaque_map(compliance_mgr__rad_dict_string_opaque_t *dict, rc_err_t(*func)(const char *, const rc_opaque_t *, void *), void *arg); Invoke a function with each key-value pair in the dictionary. Arguments: dict -- Dictionary func -- Function to invoke The arguments are: key, value, user-data. arg -- User data: custom parameter to invoke the function with Dictionary { string : string } Dictionary with a key type of string and a value type of string. typedef struct base_rad_dict compliance_mgr__rad_dict_string_string_t; rc_err_t compliance_mgr__rad_dict_string_string_get(compliance_mgr__rad_dict_string_string_t *dict, const char *key, char **result); Get the value for given key. Arguments: dict -- Dictionary key -- Key value result -- Value returned rc_err_t compliance_mgr__rad_dict_string_string_put(compliance_mgr__rad_dict_string_string_t *dict, const char *key, const char *value, char **result); Put a key-value pair into the dictionary. Returns a previous value stored with the same key if one exists. Arguments: dict -- Dictionary key -- Key value value -- Value written result -- Original value for the key rc_err_t compliance_mgr__rad_dict_string_string_contains(compliance_mgr__rad_dict_string_string_t *dict, const char *key); Check whether a key exists in the dictionary. Returns RCE_OK when key exists, RCE_CLIENT_NOTFOUND otherwise. Arguments: dict -- Dictionary key -- Key value rc_err_t compliance_mgr__rad_dict_string_string_remove(compliance_mgr__rad_dict_string_string_t *dict, const char *key, char **result); Remove key-value pair from the dictionary. Returns RCE_OK when key was sucessfully removed, RCE_CLIENT_NOTFOUND otherwise. Arguments: dict -- Dictionary key -- Key value result -- Original value for the key rc_err_t compliance_mgr__rad_dict_string_string_keys(compliance_mgr__rad_dict_string_string_t *dict, char ***result, int *count); Get list of keys from the dictionary. Memory associated with the result array should be freed by the user. Arguments: dict -- Dictionary result -- Array of dictionary keys count -- Number of items in result array rc_err_t compliance_mgr__rad_dict_string_string_values(compliance_mgr__rad_dict_string_string_t *dict, char ***result, int *count); Get list of values from the dictionary. Memory associated with the result array should be freed by the user. Arguments: dict -- Dictionary result -- Array of dictionary values count -- Number of items in result array unsigned int compliance_mgr__rad_dict_string_string_size(compliance_mgr__rad_dict_string_string_t *dict); Get number of key-value pairs in the dictionary. Arguments: dict -- Dictionary compliance_mgr__rad_dict_string_string_t * compliance_mgr__rad_dict_string_string_create(const rc_instance_t *inst); Create a new, empty dictionary. Returns a pointer to the dictionary, or NULL on error. Arguments: inst -- RAD instance void compliance_mgr__rad_dict_string_string_free(compliance_mgr__rad_dict_string_string_t *dict); Destroy the dictionary and release the allocated memory. Arguments: dict -- Dictionary rc_err_t compliance_mgr__rad_dict_string_string_map(compliance_mgr__rad_dict_string_string_t *dict, rc_err_t(*func)(const char *, const char *, void *), void *arg); Invoke a function with each key-value pair in the dictionary. Arguments: dict -- Dictionary func -- Function to invoke The arguments are: key, value, user-data. arg -- User data: custom parameter to invoke the function with VERSION 1.0 ATTRIBUTES See attributes(7) for descriptions of the following attributes: +--------------------+---------------------------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +--------------------+---------------------------------------------+ |Availability | system/management/rad/module/rad-compliance | +--------------------+---------------------------------------------+ |Interface Stability | Private | +--------------------+---------------------------------------------+ SEE ALSO rad(8) NOTES 1. Accessing Python documentation for this module: $ pydoc rad.bindings.com.oracle.solaris.rad.compliance_mgr_1 Solaris 11.4 2018-03-21 COMPLIANCE_MGR-1(3rad)