## Actions Actions — Models what a caller is attempting to do. |

## Synopsis

                        PolKitAction;
    PolKitAction *      polkit_action_new                   (void);
    PolKitAction *      polkit_action_ref                   (PolKitAction *action);
    void                polkit_action_unref                 (PolKitAction *action);
    polkit_bool_t       polkit_action_set_action_id         (PolKitAction *action,
                                                             const char *action_id);
    polkit_bool_t       polkit_action_get_action_id         (PolKitAction *action,
                                                             char **out_action_id);
    void                polkit_action_debug                 (PolKitAction *action);
    polkit_bool_t       polkit_action_validate              (PolKitAction *action);
    polkit_bool_t       polkit_action_validate_id           (const char *action_id);
    polkit_bool_t       polkit_action_equal                 (PolKitAction *a,
                                                             PolKitAction *b);
    const char *        polkit_action_to_string_representation
                                                            (PolKitAction *action);
    PolKitAction *      polkit_action_new_from_string_representation
                                                            (const char *str);

## Description

This class is used to represent a PolicyKit action.

## Details

### PolKitAction

    typedef struct _PolKitAction PolKitAction;

Objects of this class are used to record information about an action.

### polkit_action_new ()

    PolKitAction *      polkit_action_new                   (void);

Create a new PolKitAction object.

Returns : | the new object

### polkit_action_ref ()

    PolKitAction *      polkit_action_ref                   (PolKitAction *action);

Increase reference count.

`action` : | the action object
Returns : | the object

### polkit_action_unref ()

    void                polkit_action_unref                 (PolKitAction *action);

Decreases the reference count of the object. If it becomes zero, the object is freed. Before freeing, reference counts on embedded objects are decresed by one.

`action` : | the action object

### polkit_action_set_action_id ()

    polkit_bool_t       polkit_action_set_action_id         (PolKitAction *action,
                                                             const char *action_id);

Set the action identifier

`action` : | the action object
`action_id` : | action identifier
Returns : | TRUE only if the value validated and was set

### polkit_action_get_action_id ()

    polkit_bool_t       polkit_action_get_action_id         (PolKitAction *action,
                                                             char **out_action_id);

Get the action identifier.

`action` : | the action object
`out_action_id` : | Returns the action identifier. The caller shall not free this string.
Returns : | TRUE iff the value was returned.

### polkit_action_debug ()

    void                polkit_action_debug                 (PolKitAction *action);

Print debug details

`action` : | the object

### polkit_action_validate ()

    polkit_bool_t       polkit_action_validate              (PolKitAction *action);

Validate the object

`action` : | the object
Returns : | TRUE iff the object is valid.

### polkit_action_validate_id ()

    polkit_bool_t       polkit_action_validate_id           (const char *action_id);

Validate whether an action identifier is well formed. To be well formed, an action identifier needs to start with a lower case ASCII character and can only contain the characters "[a-z][0-9].-". It must be less than or equal 256 bytes in length including the terminating NUL character.

`action_id` : | the action identifier to validate
Returns : | TRUE iff the action identifier is well formed

### polkit_action_equal ()

    polkit_bool_t       polkit_action_equal                 (PolKitAction *a,
                                                             PolKitAction *b);

Test if `a` and `b` refer to the same action.

`a` : | first action
`b` : | second action
Returns : | TRUE iff `a` and `b` refer to the same action.

Since 0.8

### polkit_action_to_string_representation ()

    const char *        polkit_action_to_string_representation
                                                            (PolKitAction *action);

Serializes `action` into a textual form that can be transferred from process to process or saved on disk. Use `polkit_action_new_from_string_representation()` to deserialize it.

`action` : | the action object
Returns : | A string representation of `action` or NULL if the action is not valid. String is valid until `action` is freed.

Since 0.8

### polkit_action_new_from_string_representation ()

    PolKitAction *      polkit_action_new_from_string_representation
                                                            (const char *str);

Creates a new PolKitAction object from a textual representation.

`str` : | textual representation of an action; typically obtained from `polkit_action_to_string_representation()`
Returns : | A new PolKitAction object or NULL if OOM or if the representation isn't valid. Caller must free this object with `polkit_action_unref()`.

Since 0.8