Development Guides Home >> Guide to Standardized Hooks >> Hookable Events
The Whostmgr category's events occur during WHM functions.
These hooks affect account creation, deletion, shell access and more:
This event triggers whenever a hosting plan (package) or an account's use of it changes.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the change.post— Hook actions code runs after the change.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
cur_pkg | string | The hosting plan's (package's) current name. | A valid hosting plan name. | oldpackagename |
new_pkg | string | The new hosting plan's (package's) name. | A valid hosting plan name. | newpackagename |
user | string | The user for whom the package will change. | A valid username on the server. | username |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
cur_pkg | string | The hosting plan's (package's) current name. | A valid hosting plan name. | oldpackagename |
new_pkg | string | The new hosting plan's (package's) name. | A valid hosting plan name. | newpackagename |
user | string | The user for whom the package changed. | A valid username on the server. | username |
This event triggers whenever the system creates an account.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system creates the account.post— Hook actions code runs after the system creates the account.
This event returns the WHM API 1 createacct function's returns.
This event triggers whenever the system modifies an account.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the change.post— Hook actions code runs after the change.
This event returns the WHM API 1 modifyacct function's returns.
This event triggers whenever the system performs an account rearrangement, whether through a transfer or the WHM interface.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the change.post— Hook actions code runs after the change.
The pre and post stages do not produce output.
This event triggers whenever the system deletes an account.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system deletes the account.post— Hook actions code runs after the system deletes the account.
This event returns the WHM API 1 removeacct function's returns.
This event triggers whenever the system assigns a cPanel account's Account Enhancements.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system assigns the Account Enhancements.post— Hook actions code runs after the system assigns the Account Enhancements.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
id | string | The Account Enhancement's human-readable ID. | An Account Enhancement ID. | my-enhancement-example |
name | string | The Account Enhancement's name. | A valid string. | My Enhancement Example |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
id | string | The Account Enhancement's human-readable ID. | An Account Enhancement ID. | my-enhancement-example |
name | string | The Account Enhancement's name. | A valid string. | My Enhancement Example |
This event triggers whenever the system unassigns a cPanel account's Account Enhancements.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system unassigns the Account Enhancements.post— Hook actions code runs after the system unassigns the Account Enhancements.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
id | string | The Account Enhancement's human-readable ID. | An Account Enhancement ID. | my-enhancement-example |
name | string | The Account Enhancement's name. | A valid string. | My Enhancement Example |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
id | string | The Account Enhancement's human-readable ID. | The Account Enhancement's human-readable ID. | my-enhancement-example |
name | string | The Account Enhancement's name. | A valid string. | My Enhancement Example |
This event triggers whenever the system modifies an account's shell.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system modifies the shell.post— Hook actions code runs after the system modifies the shell.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
new_shell | string | The new shell setting. |
| noshell |
current_shell | string | The current shell setting. |
| nologin |
user | string | The account for which shell settings will change. | A valid username on the server. | username |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
new_shell | string | The new shell setting. |
| noshell |
current_shell | string | The previous shell setting. |
| nologin |
user | string | The account for which shell settings changed. | A valid username on the server. | username |
rawout | string | Additonal raw output from the event. | A string value. | raw output |
This event triggers whenever the system changes a user's IP address.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system changes the IP address.post— Hook actions code runs after the system changes the IP address.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The account's username. | A valid username that exists on the system. | example |
oldip | string | The old IP address. | A valid IP address on the system. | 192.0.2.0 |
newip | string | The new IP address. | A valid IP address on the system. | 192.0.2.1 |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The account's username. | A valid username that exists on the system. | example |
oldip | string | The old IP address. | A valid IP address on the system. | 192.0.2.0 |
newip | string | The new IP address. | A valid IP address on the system. | 192.0.2.1 |
This event triggers whenever the system suspends an account.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system suspends the account.post— Hook actions code runs after the system suspends the account.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The account to suspend. | A valid username on the server. | username |
reason | string | The reason for suspension, if one exists. | A string value. | Nonpayment |
disallowun | Boolean | Whether resellers can unsuspend the account. |
| 1 |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The suspended account. | A valid username on the server. | username |
reason | string | The reason for suspension, if one exists. | A string value. | Nonpayment |
disallowun | Boolean | Whether resellers can unsuspend the account. |
| 1 |
rawout | string | The event's raw output. | A string value. | raw output |
This event triggers whenever the system unsuspends an account.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system unsuspends the account.post— Hook actions code runs after the system unsuspends the account.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The account to unsuspend. | A valid username on the server. | username |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The unsuspended account. | A valid username on the server. | username |
rawout | string | The event's raw output. | A string value. | raw output |
This hook affects the AutoSSL service:
This event triggers when the AutoSSL service installs or changes an SSL certificate. This hook does not listen for uninstallation events.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action allows for pre-installation validation and actions.post— Hook action allows for post-installation validation and actions.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
domain_set_name | string | Required The domain name. | A valid domain name. | example.com |
username | string | Required The user who owns the given domain_set_name. | A valid string. | example |
certificate_pem | string | Required The certificate in PEM format. | A valid SSL certificate in PEM format. | -----BEGIN CERTIFICATE-----\r\n MIIEEzCCAvugAwIBAgIJALF/jFpw6p1bMA0GCSqG... -----END CERTIFICATE----- |
key_pem | string | Required The certificate's key in PEM format. | A valid private key in PEM format. | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA4AVM6J4Qg3DIFWr/eJ5GRm... -----END RSA PRIVATE KEY----- |
cab_pem | string | The certificate's CA bundle in PEM format. If you do not use this parameter, the system will automatically determine the appropriate CA bundle file to use. | A valid CA bundle in PEM format. | -----BEGIN CERTIFICATE-----\r\n MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEB... -----END CERTIFICATE----- |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
rawout | string | The function's raw output. | A valid string in HTML format. | The Certificate for the domain example.com was installed on the IP 192.168.0.20. |
status | Boolean | Whether the function was successful. |
| 1 |
These hooks affect a user's domains:
This event triggers whenever a user creates a subdomain.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the change.post— Hook actions code runs after the change.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The user who creates the subdomain. | A valid username. | username |
subdomain | string | The subdomain the user creates. | A valid subdomain name. | subdomain.example.com |
rootdomain | string | The root domain of the new subdomain. | A valid domain name. | example.com |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The user who creates the subdomain. | A valid username. | username |
subdomain | string | The subdomain the user creates. | A valid subdomain name. | subdomain.example.com |
rootdomain | string | The root domain of the new subdomain. | A valid domain name. | example.com |
This event triggers whenever a user deletes a subdomain.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the change.post— Hook actions code runs after the change.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The user who is deleting the subdomain. | A valid username. | username |
subdomain | string | The subdomain the user is deleting. | A valid subdomain name. | subdomain.example.com |
rootdomain | string | The root domain of the subdomain to be deleted. | A valid domain name. | example.com |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The user who is deleting the subdomain. | A valid username. | username |
subdomain | string | The subdomain the user is deleting. | A valid subdomain name. | subdomain.example.com |
rootdomain | string | The root domain of the subdomain to be deleted. | A valid domain name. | example.com |
This event triggers whenever a user creates a domain alias (parks a domain).
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the change.post— Hook actions code runs after the change.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
target_domain | string | The domain name for which to create an alias. | A valid domain name. | example.com |
new_domain | string | The domain name to which the alias will point. | A valid domain name. | park.example.com |
user | string | The user who will create the alias. | A valid username on the server. | username |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
target_domain | string | The domain name for which you created an alias. | A valid domain name. | example.com |
new_domain | string | The domain name to which the alias points. | A valid domain name. | park.example.com |
user | string | The user who created the alias. | A valid username on the server. | username |
These hooks affect the php.ini file:
This event triggers when an administrator uploads a new complete php.ini file. When you hook this event, you must also hook UAPI's LangPHP::php_ini_set_user_content function to ensure consistent behavior.
- Action code runs as:
root - Blocking attribute: Unavailable.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the change.post— Hook actions code runs after the change.
This event returns the WHM API 1 php_ini_set_content function's returns.
This event triggers when an administrator changes the directives in the php.ini file. When you hook this event, you must also hook UAPI's LangPHP::php_ini_set_user_basic_directives function to ensure consistent behavior.
- Action code runs as:
root - Blocking attribute: Unavailable.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system changes the directives.post— Hook actions code runs after the system changes the directives.
This event returns the WHM API 1 php_ini_set_directives function's returns.
This event triggers when an administrator changes the handler that serves the PHP files for any version of PHP.
- Action code runs as:
root - Blocking attribute: Unavailable.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system changes the handler.post— Hook actions code runs after the system changes the handler.
This event returns the WHM API 1 php_set_handler function's returns.
This event triggers when an administrator changes the system default PHP version.
- Action code runs as:
root - Blocking attribute: Unavailable.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system changes the default PHP version.post— Hook actions code runs after the system changes the default PHP version.
This event returns the WHM API 1 php_set_system_default_version function's returns.
This event triggers when an administrator changes the PHP version for a specific virtual host. When you hook this event, you must also hook UAPI's LangPHP::php_set_vhost_versions function to ensure consistent behavior.
- Action code runs as:
root - Blocking attribute: Unavailable.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system changes the virtual host's PHP version.post— Hook actions code runs after the system changes the virtual host's PHP version.
This event returns the WHM API 1 php_set_vhost_versions function's returns.
This hook affects Remote MySQL® profiles:
This event triggers whenever the system activates a Remote MySQL® profile.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system activates the remote profile.post— Hook actions code runs after the system activates the remote profile.
| Parameter | Type | Description | Possible values | Example |
|---|---|---|---|---|
profile_name | string | The Remote MySQL profile's name. | A valid profile name on the server. | notlocalhost |
| Parameter | Type | Description | Possible values | Example |
|---|---|---|---|---|
profile_name | string | The Remote MySQL profile's name. | A valid profile name on the server. | notlocalhost |
The pre stage does not return output.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
result | Boolean | Whether the function succeeded. |
| 1 |
These hooks affect domains handled by ParkAdmin:
This event triggers whenever the system parks a domain.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system parks the domain.post— Hook actions code runs after the system parks the domain.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The cPanel account that owns the domains. | A valid username on the server. | username |
target_domain | string | The domain on which to park the new_domain domain. | A valid domain. | example.com |
new_domain | string | The domain to park on the target_domain domain. | A valid domain. | parkeddomain.com |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The cPanel account that owns the domains. | A valid username on the server. | username |
target_domain | string | The domain on which the system parked the new_domain domain. | A valid domain. | example.com |
new_domain | string | The domain that the system parked on the target_domain domain. | A valid domain. | parkeddomain.com |
This event triggers whenever the system unparks a domain.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action code runs before the system unparks the domain.post— Hook actions code runs after the system unparks the domain.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The cPanel account that owns the domains. | A valid username on the server. | username |
parent_domain | string | The domain on which the domain is parked. | A valid domain. | example.com |
domain | string | The domain to unpark. | A valid domain. | parkeddomain.com |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
user | string | The cPanel account that owns the domains. | A valid username on the server. | username |
parent_domain | string | The domain on which the domain was parked. | A valid domain. | example.com |
domain | string | The unparked domain. | A valid domain. | parkeddomain.com |
This hook affects account package access verification:
This event triggers when an account package is added or modified.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action allows for package field input checks and rejects the creation or modification of the package if values do not match desired criteria.post— N/A
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
bwlimit | string | The hosting plan's maximum bandwidth use. This parameter defaults to unlimited. |
| unlimited |
cgi | Boolean | Whether CGI access is enabled for the account. When a server profile disables the Web Server role, this parameter defaults to 0. On these servers, you cannot enable CGI access. This parameter defaults to 1. |
| 1 |
ip | string | Whether the account has a dedicated IP address. This parameter defaults to n. |
| n |
maxsub | string | The hosting plan's maximum number of subdomains. |
| unlimited |
maxpop | string | The hosting plan's maximum number of email accounts. This parameter defaults to unlimited. |
| unlimited |
maxlst | string | The hosting plan's maximum number of mailing lists. |
| unlimited |
cpmod | string | The hosting plan's cPanel theme. This parameter defaults to the server's default cPanel theme. |
| jupiter |
language | string | The hosting plan's default locale. This value defaults to the server's default locale. | A two-letter ISO-3166 code. | en |
featurelist | string | The hosting plan's feature list. If you do not use this parameter, the function assigns the default feature list to the hosting plan's accounts. | A valid feature list name on the server. | default |
maxftp | string | The hosting plan's maximum number of FTP accounts. This parameter defaults to unlimited. |
| unlimited |
max_emails_per_hour | string | The maximum number of emails that the account can send in one hour. This parameter defaults to unlimited. |
| unlimited |
maxaddon | string | The hosting plan's maximum number of addon domains. This parameter defaults to unlimited. |
| 0 |
maxsql | string | The hosting plan's maximum number of each available type of SQL database. For example, if you set this value to 5 and the system administrator allows MySQL® and PostgreSQL® databases, users can create up to five MySQL databases and up to five PostgreSQL databases. This parameter defaults to unlimited. |
| unlimited |
hasshell | Boolean | Whether the account has shell access. This parameter defaults to 0. |
| 0 |
edit | string | Whether the user wishes to modify or add an existing package extension. This parameter is part of the API call and not included in the package. The system displays yes when a user modifies an existing package extension and no when they wish to add one. |
| yes |
max_defer_fail_percentages | integer | The percentage of failed or deferred email messages that the account can send per hour before outgoing mail is rate-limited. |
| unlimited |
quota | integer | The hosting plan's disk space quota. This parameter defaults to 0 (unlimited). |
| unlimited |
maxpark | string | The hosting plan's maximum number of parked domains (aliases). This parameter defaults to unlimited. |
| 0 |
name | string | The hosting plan name. | An existing hosting plan name on the server. | exampleplan |
_package_extensions | string | The hosting plan's package extensions. If you do not provide a value, the hosting plan will not include package extensions. | A space-delimited list of one or more package extensions on the server. Extension names and variables are case-sensitive. You can also include the extension's variables in your function call, in key=value format. Consult the extension's documentation for a list of possible variables. | extension1 extension2 extension3 |
digestauth | string | Whether to enable Digest Authentication for the account. |
| n |
The post stage does not return output.
This hook affects manually changing a server type.
This event triggers when a system administrator manually changes the server type and disables services or roles.
When changing the server type, you may receive both Server::Type::Change::disable and Server::Type::Change::enable events, depending on how the change affects the server.
- Action code runs as:
root - Blocking attribute: Unavailable.
- Escalate privileges attribute: N/A
pre— N/Apost— Hook action occurs after the server type changes.
The pre stage does not return output.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
services | string | Array of services disabled by the server type change. | The short name of a systemd service. | httpd |
changed_roles | string | Array of server roles disabled by the server type change. | A list of disabled Cpanel::Server::Type::*::Change roles. | Cpanel::Server::Type::Role::FTP::Change |
This event triggers when a system administrator manually changes the server type and enables services or roles.
When changing the server type, you may receive both Server::Type::Change::disable and Server::Type::Change::enable events, depending on how the change affects the server.
- Action code runs as:
root - Blocking attribute: Unavailable.
- Escalate privileges attribute: N/A
pre— N/Apost— Hook action occurs after the server type changes.
The pre stage does not return output.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
services | string | Array of services disabled by the server type change. | The short name of a systemd service. | cpdavd |
changed_roles | string | Array of server roles enabled by the server type change. | A list of enabled Cpanel::Server::Type::*::Change roles. | Cpanel::Server::Type::Role::WebDisk::Change |
This hook affects manual SSL modification:
This event triggers when a system administrator manually installs or changes an SSL certificate via WHM interfaces or WHM API 1 functions.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action allows for pre-installation validation and actions.post— Hook action allows for post-installation validation and actions.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
domain | string | Required The domain's name. | A valid domain name. | example.com |
crt | string | Required The certificate's text. | A valid SSL certificate. | -----BEGIN CERTIFICATE-----\r\n MIIEEzCCAvugAwIBAgIJALF/jFpw... -----END CERTIFICATE-----%0 |
key | string | Required The certificate's key. | A valid private key. | -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA4AVM6J4Qg3DI... -----END RSA PRIVATE KEY----- |
cab | string | The certificate's CA bundle. If you do not use this parameter, the system will automatically determine the appropriate CA bundle file to use. | A valid CA bundle. | -----BEGIN CERTIFICATE-----\r\n MIIB+jCCAWMCAgGjMA0GCSqGSIb3... -----END CERTIFICATE----- |
ip | string | The IP address of the certificate's domain. This parameter defaults to the local IP address for the domain. | A valid IP address. | 192.168.0.20 |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
rawout | string | The function's raw output. | A valid string in HTML format. | The Certificate for the domain example.com was installed on the IP 192.168.0.20. |
status | Boolean | Whether the function was successful. |
| 1 |
This hook tracks transfer sessions:
This event triggers when the system begins or finishes a transfer session.
- Action code runs as:
root - Blocking attribute: Available.
- Escalate privileges attribute: N/A
pre— Hook action occurs before the transfer session begins.post— Hook action occurs after transfer finishes.
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
creator | string | The user under which the server created the transfer session. | A valid string. | root |
pid | integer | The transfer session's process ID. |
| 0 |
version | string | The transfer system's version. | A valid string. | 2.3 |
sessionid | string | The transfer session's ID. | A valid string. | sourceexampcopya20190429175239zSOL |
starttime | string | The transfer session's start time. | A date and time in YYYY-MM-DD HH:MM:SS format. | 2019-04-29 17:52:39 |
state | integer | The current state of the transfer session. | 0 — The session has not started yet. | 0 |
targethost | string | The target system's hostname. | A valid hostname. | target.example.com |
initiator | string | The service that initiated the transfer session. | A valid service name. | copyacct |
endtime | string | When the transfer session ended. | undef — The session has not started yet. | undef |
starttime_unix | integer | When the transfer session started. | A positive integer that represents a time, in Unix time. | 1556560359 |
source_host | string | The source system's hostname. | A valid hostname. | source.example.com |
endtime_unix | integer | When the transfer session ended. | undef — The session has not started yet. | undef |
| Return | Type | Description | Possible values | Example |
|---|---|---|---|---|
creator | string | The user under which the server created the transfer session. | A valid string. | root |
pid | integer | The transfer session's process ID. | A valid integer. | 13401 |
version | string | The transfer system's version. | A valid string. | 2.3 |
sessionid | string | The transfer session's ID. | A valid string. | sourceexampcopya20190429175239zSOL |
starttime | string | The transfer session's start time. | A date and time in YYYY-MM-DD HH:MM:SS format. | 2019-04-29 17:52:39 |
state | integer | The current state of the transfer session. | 100 — The session has ended. | 100 |
targethost | string | The target system's hostname. | A valid hostname. | target.example.com |
initiator | string | The service that initiated the transfer session. | A valid service name. | copyacct |
endtime | string | When the transfer session ended. | A date and time in YYYY-MM-DD HH:MM:SS format. | 2019-04-29 17:53:5 |
starttime_unix | integer | When the transfer session started. | A positive integer that represents a time, in Unix time. | 1556560359 |
source_host | string | The source system's hostname. | A valid hostname. | source.example.com |
endtime_unix | integer | When the transfer session ended. | A positive integer that represents a time, in Unix time. | 1556560432 |
This hook tracks user modifications of TweakSettings:
This event triggers before or after a user modifies a Tweak Setting value.
- Action code runs as:
root - Blocking attribute: Unavailable.
- Escalate privileges attribute: N/A
pre— Hook action occurs before updating the Tweak Setting value.post— Hook action occurs after updating the Tweak Setting value.
The pre and post stages do not return output.