# Module cloudi_core_i_configuration

- Description
- Data Types
- Function Index
- Function Details

### CloudI Configuration

.

Copyright © 2009-2021 Michael Truog

Version: 2.0.3 Dec 3 2021 17:15:33 ------------------------------------------------------------------------

Authors: Michael Truog (`mjtruog at protonmail dot com`).

## Description

### CloudI Configuration

## Data Types

### api_timeout_milliseconds()

`api_timeout_milliseconds() = 1..4294967195 | infinity`

### error_reason_acl_add()

`error_reason_acl_add() = error_reason_acl_add_configuration()`

### error_reason_acl_add_configuration()

`error_reason_acl_add_configuration() = {acl_invalid | acl_cyclic | acl_not_found, any()}`

### error_reason_acl_remove()

`error_reason_acl_remove() = error_reason_acl_remove_configuration()`

### error_reason_acl_remove_configuration()

`error_reason_acl_remove_configuration() = {acl_invalid, any()}`

### error_reason_code_configuration()

`error_reason_code_configuration() = {code_invalid | code_paths_invalid | code_modules_invalid | code_applications_invalid | code_releases_invalid, any()}`

### error_reason_code_path_add()

`error_reason_code_path_add() = error_reason_code_path_add_configuration()`

### error_reason_code_path_add_configuration()

`error_reason_code_path_add_configuration() = already_exists | bad_directory`

### error_reason_code_path_remove()

`error_reason_code_path_remove() = error_reason_code_path_remove_configuration()`

### error_reason_code_path_remove_configuration()

`error_reason_code_path_remove_configuration() = does_not_exist | bad_name`

### error_reason_code_status()

`error_reason_code_status() = cloudi_core_i_configurator:error_reason_code_status()`

### error_reason_logging_formatters_set()

`error_reason_logging_formatters_set() = error_reason_logging_formatters_set_configuration()`

### error_reason_logging_formatters_set_configuration()

`error_reason_logging_formatters_set_configuration() = {logging_formatters_invalid | logging_formatter_modules_invalid | logging_formatter_level_invalid | logging_formatter_output_invalid | logging_formatter_output_args_invalid | logging_formatter_output_max_r_invalid | logging_formatter_output_max_t_invalid | logging_formatter_formatter_invalid | logging_formatter_formatter_config_invalid, any()}`

### error_reason_logging_set()

`error_reason_logging_set() = error_reason_logging_set_configuration()`

### error_reason_logging_set_configuration()

`error_reason_logging_set_configuration() = {node_invalid | logging_invalid | logging_redirect_invalid | logging_file_invalid | logging_stdout_invalid | logging_level_invalid | logging_queue_mode_async_invalid | logging_queue_mode_async_value | logging_queue_mode_sync_invalid | logging_queue_mode_sync_value | logging_queue_mode_overload_invalid | logging_log_time_offset_invalid, any()} | error_reason_logging_syslog_set_configuration() | error_reason_logging_formatters_set_configuration()`

### error_reason_logging_syslog_set()

`error_reason_logging_syslog_set() = error_reason_logging_syslog_set_configuration()`

### error_reason_logging_syslog_set_configuration()

`error_reason_logging_syslog_set_configuration() = {logging_syslog_invalid | logging_syslog_identity_invalid | logging_syslog_facility_invalid | logging_syslog_level_invalid | logging_syslog_transport_invalid | logging_syslog_transport_options_invalid | logging_syslog_protocol_invalid | logging_syslog_path_invalid | logging_syslog_host_invalid | logging_syslog_port_invalid, any()}`

### error_reason_new()

`error_reason_new() = error_reason_acl_add_configuration() | error_reason_services_add_configuration() | error_reason_nodes_set_configuration() | error_reason_logging_set_configuration() | error_reason_code_configuration() | {invalid, any()}`

### error_reason_nodes_add()

`error_reason_nodes_add() = error_reason_nodes_add_configuration()`

### error_reason_nodes_add_configuration()

`error_reason_nodes_add_configuration() = {node_invalid, any()}`

### error_reason_nodes_remove()

`error_reason_nodes_remove() = error_reason_nodes_remove_configuration()`

### error_reason_nodes_remove_configuration()

`error_reason_nodes_remove_configuration() = {node_invalid | node_not_found, any()}`

### error_reason_nodes_set()

`error_reason_nodes_set() = error_reason_nodes_set_configuration() | cloudi_core_i_configurator:error_reason_nodes_set()`

### error_reason_nodes_set_configuration()

`error_reason_nodes_set_configuration() = {node_invalid | node_reconnect_start_invalid | node_reconnect_start_min | node_reconnect_delay_invalid | node_reconnect_delay_min | node_listen_invalid | node_connect_invalid | node_timestamp_type_invalid | node_discovery_invalid | node_discovery_ambiguous | node_discovery_multicast_invalid | node_discovery_multicast_interface_invalid | node_discovery_multicast_address_invalid | node_discovery_multicast_port_invalid | node_discovery_multicast_ttl_invalid | node_discovery_ec2_invalid | node_discovery_ec2_access_key_id_invalid | node_discovery_ec2_secret_access_key_invalid | node_discovery_ec2_host_invalid | node_discovery_ec2_tags_selection_null | node_discovery_ec2_groups_invalid | node_discovery_ec2_tags_invalid | node_cost_invalid | node_cost_value | node_cost_precision_invalid | node_log_reconnect_invalid, any()}`

### error_reason_services_add()

`error_reason_services_add() = error_reason_services_add_configuration() | cloudi_core_i_configurator:error_reason_service_start()`

### error_reason_services_add_configuration()

`error_reason_services_add_configuration() = {acl_invalid | acl_not_found | service_invalid | service_internal_invalid | service_internal_prefix_invalid | service_internal_module_invalid | service_internal_args_invalid | service_internal_dest_refresh_invalid | service_internal_timeout_init_invalid | service_internal_timeout_async_invalid | service_internal_timeout_sync_invalid | service_internal_dest_list_deny_invalid | service_internal_dest_list_allow_invalid | service_internal_count_process_invalid | service_internal_max_r_invalid | service_internal_max_t_invalid | service_internal_max_t_increase | service_internal_options_invalid | service_external_invalid | service_external_prefix_invalid | service_external_file_path_invalid | service_external_args_invalid | service_external_env_invalid | service_external_dest_refresh_invalid | service_external_protocol_invalid | service_external_buffer_size_invalid | service_external_timeout_init_invalid | service_external_timeout_async_invalid | service_external_timeout_sync_invalid | service_external_dest_list_deny_invalid | service_external_dest_list_allow_invalid | service_external_count_process_invalid | service_external_count_thread_invalid | service_external_max_r_invalid | service_external_max_t_invalid | service_external_max_t_increase | service_external_options_invalid | service_options_priority_default_invalid | service_options_queue_limit_invalid | service_options_queue_size_invalid | service_options_rate_request_max_invalid | service_options_dest_refresh_start_invalid | service_options_dest_refresh_delay_invalid | service_options_request_name_lookup_invalid | service_options_request_timeout_adjustment_invalid | service_options_request_timeout_immediate_max_invalid | service_options_response_timeout_adjustment_invalid | service_options_response_timeout_immediate_max_invalid | service_options_count_process_dynamic_invalid | service_options_timeout_terminate_invalid | service_options_timeout_terminate_decrease | service_options_restart_all_invalid | service_options_restart_delay_invalid | service_options_scope_invalid | service_options_monkey_latency_invalid | service_options_monkey_chaos_invalid | service_options_automatic_loading_invalid | service_options_dispatcher_pid_options_invalid | service_options_aspects_init_invalid | service_options_aspects_request_invalid | service_options_aspects_info_invalid | service_options_aspects_terminate_invalid | service_options_aspects_suspend_invalid | service_options_aspects_resume_invalid | service_options_limit_invalid | service_options_owner_invalid | service_options_nice_invalid | service_options_cgroup_invalid | service_options_chroot_invalid | service_options_syscall_lock_invalid | service_options_directory_invalid | service_options_application_name_invalid | service_options_init_pid_options_invalid | service_options_request_pid_uses_invalid | service_options_request_pid_options_invalid | service_options_info_pid_uses_invalid | service_options_info_pid_options_invalid | service_options_pid_invalid | service_options_duo_mode_invalid | service_options_hibernate_invalid | service_options_reload_invalid | service_options_invalid, any()}`

### error_reason_services_remove()

`error_reason_services_remove() = error_reason_services_remove_configuration() | cloudi_core_i_configurator:error_reason_service_stop()`

### error_reason_services_remove_configuration()

`error_reason_services_remove_configuration() = {service_invalid | service_not_found, any()}`

### error_reason_services_restart()

`error_reason_services_restart() = error_reason_services_restart_configuration() | cloudi_core_i_configurator:error_reason_service_restart()`

### error_reason_services_restart_configuration()

`error_reason_services_restart_configuration() = {service_invalid | service_not_found, any()}`

### error_reason_services_resume()

`error_reason_services_resume() = error_reason_services_resume_configuration() | cloudi_core_i_configurator:error_reason_service_resume()`

### error_reason_services_resume_configuration()

`error_reason_services_resume_configuration() = {service_invalid | service_not_found, any()}`

### error_reason_services_search()

`error_reason_services_search() = cloudi_core_i_configurator:error_reason_services_search()`

### error_reason_services_suspend()

`error_reason_services_suspend() = error_reason_services_suspend_configuration() | cloudi_core_i_configurator:error_reason_service_suspend()`

### error_reason_services_suspend_configuration()

`error_reason_services_suspend_configuration() = {service_invalid | service_not_found, any()}`

### error_reason_services_update()

`error_reason_services_update() = error_reason_services_update_configuration()`

### error_reason_services_update_configuration()

`error_reason_services_update_configuration() = {update_invalid | service_update_invalid | service_update_type_invalid | service_update_module_invalid | service_update_module_state_invalid | service_update_file_path_invalid | service_update_args_invalid | service_update_env_invalid | service_update_sync_invalid | service_update_modules_load_invalid | service_update_modules_unload_invalid | service_update_code_paths_add_invalid | service_update_code_paths_remove_invalid | service_update_dest_refresh_invalid | service_update_timeout_init_invalid | service_update_timeout_async_invalid | service_update_timeout_sync_invalid | service_update_dest_list_deny_invalid | service_update_dest_list_allow_invalid | service_options_priority_default_invalid | service_options_queue_limit_invalid | service_options_queue_size_invalid | service_options_rate_request_max_invalid | service_options_dest_refresh_start_invalid | service_options_dest_refresh_delay_invalid | service_options_request_name_lookup_invalid | service_options_request_timeout_adjustment_invalid | service_options_request_timeout_immediate_max_invalid | service_options_response_timeout_adjustment_invalid | service_options_response_timeout_immediate_max_invalid | service_options_monkey_latency_invalid | service_options_monkey_chaos_invalid | service_options_dispatcher_pid_options_invalid | service_options_aspects_init_invalid | service_options_aspects_request_invalid | service_options_aspects_info_invalid | service_options_aspects_terminate_invalid | service_options_aspects_suspend_invalid | service_options_aspects_resume_invalid | service_options_init_pid_options_invalid | service_options_request_pid_uses_invalid | service_options_request_pid_options_invalid | service_options_info_pid_uses_invalid | service_options_info_pid_options_invalid | service_options_pid_invalid | service_options_hibernate_invalid | service_options_reload_invalid | service_options_limit_invalid | service_update_options_invalid, any()}`

## Function Index

acl/1 | #### List all ACL entries. .
acl_add/2 | #### Add Access Control List (ACL) aliases (atom -> service name prefixes). .
acl_remove/2 | #### Remove Access Control List (ACL) aliases. .
code_path/1 |
code_path_add/2 |
code_path_remove/2 |
load/1 | #### Process the CloudI configuration data. .
logging/1 | #### Provide the current logging configuration. .
logging_formatters_set/2 | #### Set the CloudI log formatters. .
logging_level_highest/1 | #### Determine the highest logging level in the list. .
logging_set/2 | #### Set CloudI logging configuration. .
logging_syslog_set/2 | #### Set CloudI syslog configuration. .
nodes_add/2 | #### Add CloudI nodes. .
nodes_get/1 | #### Get CloudI nodes configuration. .
nodes_remove/2 | #### Remove CloudI nodes. .
nodes_set/2 | #### Set CloudI nodes configuration. .
service_format/1 | #### Provide the configuration format, as it was provided. Using the tuple format.
service_ids/1 | #### Return a list of all the configured service UUIDs. .
service_options_copy/3 | #### Copy specific fields from validated service configuration options. .
services/1 | #### Display the currently running services (including their UUID). .
services_add/3 | #### Add services based on the configuration format. .
services_format_options_external/1 | #### Provide the external service configuration options in the configuration format with defaults ignored. .
services_format_options_internal/1 | #### Provide the internal service configuration options in the configuration format with defaults ignored. .
services_remove/3 | #### Remove services based on their UUID. .
services_restart/3 | #### Restart services based on their UUID. .
services_resume/3 | #### Resume services based on their UUID. .
services_search/2 | #### Search services based on their UUID. .
services_suspend/3 | #### Suspend services based on their UUID. .
services_update/3 | #### Update services after checking their UUID. .

## Function Details

### acl/1

`acl(Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> [{atom(), [cloudi_service:service_name_pattern()]}]`

#### List all ACL entries.

### acl_add/2

`acl_add(Value::[{atom(), cloudi_service_api:acl()}], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_acl_add_configuration()}`

#### Add Access Control List (ACL) aliases (atom -> service name prefixes).

### acl_remove/2

`acl_remove(Value::[atom()], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_acl_remove_configuration()}`

#### Remove Access Control List (ACL) aliases.

### code_path/1

`code_path(Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> [string()]`

### code_path_add/2

`code_path_add(Path::string(), Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_code_path_add_configuration()}`

### code_path_remove/2

`code_path_remove(Path::string(), Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_code_path_remove_configuration()}`

### load/1

`load(Path::string() | [tuple()]) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, file:posix() | badarg | system_limit | terminated | {configuration_invalid | parse_error, any()} | error_reason_new()}`

#### Process the CloudI configuration data.

### logging/1

`logging(Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> cloudi_service_api:logging_proplist()`

#### Provide the current logging configuration.

### logging_formatters_set/2

`logging_formatters_set(Value::cloudi_service_api:logging_formatters_set_proplist() | undefined, Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_logging_formatters_set_configuration()}`

#### Set the CloudI log formatters.

### logging_level_highest/1

`logging_level_highest(Levels::[cloudi_service_api:loglevel() | undefined]) -> cloudi_service_api:loglevel() | undefined`

#### Determine the highest logging level in the list.

### logging_set/2

`logging_set(Value::cloudi_service_api:logging_proplist(), Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_logging_set_configuration()}`

#### Set CloudI logging configuration.

### logging_syslog_set/2

`logging_syslog_set(Value::cloudi_service_api:logging_syslog_set_proplist() | undefined, Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_logging_syslog_set_configuration()}`

#### Set CloudI syslog configuration.

### nodes_add/2

`nodes_add(Value::[node()], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_nodes_add_configuration()}`

#### Add CloudI nodes.

### nodes_get/1

`nodes_get(Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> cloudi_service_api:nodes_proplist()`

#### Get CloudI nodes configuration.

### nodes_remove/2

`nodes_remove(Value::[node()], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_nodes_remove_configuration()}`

#### Remove CloudI nodes.

### nodes_set/2

`nodes_set(Value::cloudi_service_api:nodes_proplist(), Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_nodes_set_configuration()}`

#### Set CloudI nodes configuration.

### service_format/1

`service_format(Config_service_internal::#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}) -> {cloudi_service_api:service_id(), #internal{}} | {cloudi_service_api:service_id(), #external{}}`

#### Provide the configuration format, as it was provided.

Using the tuple format. If necessary, the proplist format could be added based on a separate function option parameter.

### service_ids/1

`service_ids(Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> [cloudi_service_api:service_id()]`

#### Return a list of all the configured service UUIDs.

### service_options_copy/3

`service_options_copy(OptionsKeys::[atom()], OptionsOld0::#config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, OptionsNew::#config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}) -> #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}`

#### Copy specific fields from validated service configuration options.

### services/1

`services(Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> [{cloudi_service_api:service_id(), #internal{}} | {cloudi_service_api:service_id(), #external{}}]`

#### Display the currently running services (including their UUID).

### services_add/3

`services_add(Value::[#internal{} | #external{} | cloudi_service_api:service_proplist(), ...], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}, Timeout::api_timeout_milliseconds()) -> {ok, [cloudi_service_api:service_id(), ...], #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_services_add(), #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}}`

#### Add services based on the configuration format.

### services_format_options_external/1

`services_format_options_external(Options::#config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}) -> cloudi_service_api:service_options_external()`

#### Provide the external service configuration options in the configuration format with defaults ignored.

### services_format_options_internal/1

`services_format_options_internal(Options::#config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}) -> cloudi_service_api:service_options_internal()`

#### Provide the internal service configuration options in the configuration format with defaults ignored.

### services_remove/3

`services_remove(Value::[cloudi_service_api:service_id(), ...], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}, Timeout::api_timeout_milliseconds()) -> {ok, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_services_remove()}`

#### Remove services based on their UUID.

### services_restart/3

`services_restart(Value::[cloudi_service_api:service_id(), ...], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}, Timeout::api_timeout_milliseconds()) -> ok | {error, error_reason_services_restart()}`

#### Restart services based on their UUID.

### services_resume/3

`services_resume(Value::[cloudi_service_api:service_id(), ...], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}, Timeout::api_timeout_milliseconds()) -> ok | {error, error_reason_services_resume()}`

#### Resume services based on their UUID.

### services_search/2

`services_search(Value::[cloudi_service_api:service_id()], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}) -> [{cloudi_service_api:service_id(), #internal{}} | {cloudi_service_api:service_id(), #external{}}]`

#### Search services based on their UUID.

### services_suspend/3

`services_suspend(Value::[cloudi_service_api:service_id(), ...], Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}, Timeout::api_timeout_milliseconds()) -> ok | {error, error_reason_services_suspend()}`

#### Suspend services based on their UUID.

### services_update/3

`services_update(Plan::list(), Config::#config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}, Timeout::api_timeout_milliseconds()) -> {ok, {ok, [[cloudi_service_api:service_id(), ...], ...]} | {error, {[cloudi_service_api:service_id(), ...], cloudi_core_i_configurator:error_reason_service_update()}, [[cloudi_service_api:service_id(), ...], ...]}, #config{uuid_generator = uuid:state(), code = #config_code{paths = [string()], modules = [module()], applications = [atom()], releases = [string()]}, logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), queue_mode_async = pos_integer(), queue_mode_sync = pos_integer(), queue_mode_overload = pos_integer(), redirect = undefined | node(), syslog = undefined | #config_logging_syslog{identity = cloudi_service_api:logging_syslog_identity(), facility = cloudi_service_api:logging_syslog_facility(), level = cloudi_service_api:loglevel(), transport = cloudi_service_api:logging_syslog_transport(), transport_options = cloudi_service_api:logging_syslog_transport_options(), protocol = cloudi_service_api:logging_syslog_protocol(), path = cloudi_service_api:logging_syslog_path(), host = cloudi_service_api:logging_syslog_host(), port = cloudi_service_api:logging_syslog_port()}, formatters = undefined | #config_logging_formatters{default = undefined | #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}, lookup = keys1value:keys1value(module(), #config_logging_formatter{level = cloudi_service_api:loglevel(), output = undefined | module(), output_name = atom(), output_args = list(), output_max_r = non_neg_integer(), output_max_t = cloudi_service_api:seconds(), formatter = undefined | module(), formatter_config = list()}), level = undefined | cloudi_service_api:loglevel()}, log_time_offset = cloudi_service_api:loglevel(), aspects_log_before = [cloudi_service_api:aspect_log_before()], aspects_log_after = [cloudi_service_api:aspect_log_after()]}, acl = #{atom() := [cloudi:service_name_pattern(), ...]}, services = [#config_service_internal{prefix = string(), module = atom() | cloudi_service_api:file_path(), file_path = undefined | cloudi_service_api:file_path(), args = list(), dest_refresh = cloudi_service_api:dest_refresh(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()} | #config_service_external{prefix = string(), file_path = cloudi_service_api:file_path(), args = string(), env = [{string(), string()}], dest_refresh = cloudi_service_api:dest_refresh(), protocol = local | tcp | udp, buffer_size = pos_integer(), timeout_init = cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = cloudi_service_api:timeout_send_sync_value_milliseconds(), timeout_term = cloudi_service_api:timeout_terminate_value_milliseconds(), dest_list_deny = cloudi_service_api:dest_list(), dest_list_allow = cloudi_service_api:dest_list(), count_process = pos_integer(), count_thread = pos_integer(), max_r = non_neg_integer(), max_t = cloudi_service_api:seconds(), options = #config_service_options{priority_default = cloudi_service:priority(), queue_limit = undefined | non_neg_integer(), queue_size = undefined | pos_integer(), rate_request_max = undefined | number() | [{period, cloudi_service_api:period_seconds()} | {value, number()}] | tuple(), dest_refresh_start = cloudi_service_api:dest_refresh_delay_milliseconds(), dest_refresh_delay = cloudi_service_api:dest_refresh_delay_milliseconds(), request_name_lookup = sync | async, request_timeout_adjustment = boolean(), request_timeout_immediate_max = cloudi_service_api:request_timeout_immediate_max_milliseconds(), response_timeout_adjustment = boolean(), response_timeout_immediate_max = cloudi_service_api:response_timeout_immediate_max_milliseconds(), count_process_dynamic = false | [{period, cloudi_service_api:period_seconds()} | {rate_request_max, number()} | {rate_request_min, number()} | {count_max, number()} | {count_min, number()}] | tuple(), timeout_terminate = undefined | cloudi_service_api:timeout_terminate_milliseconds(), restart_all = boolean(), restart_delay = [{time_exponential_min, cloudi_service_api:restart_delay_milliseconds()} | {time_exponential_max, cloudi_service_api:restart_delay_milliseconds()} | {time_absolute, cloudi_service_api:restart_delay_milliseconds()}] | false | tuple(), scope = atom(), monkey_latency = [{time_uniform_min, cloudi_service_api:latency_min_time_milliseconds()} | {time_uniform_max, cloudi_service_api:latency_max_time_milliseconds()} | {time_gaussian_mean, cloudi_service_api:latency_mean_time_milliseconds()} | {time_gaussian_stddev, float() | pos_integer()} | {time_absolute, cloudi_service_api:latency_time_milliseconds()}] | system | false | tuple(), monkey_chaos = [{probability_request, float()} | {probability_day, float()}] | system | false | tuple(), automatic_loading = boolean(), dispatcher_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], aspects_init_after = [cloudi_service_api:aspect_init_after_internal() | cloudi_service_api:aspect_init_after_external()], aspects_request_before = [cloudi_service_api:aspect_request_before_internal() | cloudi_service_api:aspect_request_before_external()], aspects_request_after = [cloudi_service_api:aspect_request_after_internal() | cloudi_service_api:aspect_request_after_external()], aspects_info_before = [cloudi_service_api:aspect_info_before_internal()], aspects_info_after = [cloudi_service_api:aspect_info_after_internal()], aspects_terminate_before = [cloudi_service_api:aspect_terminate_before_internal() | cloudi_service_api:aspect_terminate_before_external()], aspects_suspend = [cloudi_service_api:aspect_suspend()], aspects_resume = [cloudi_service_api:aspect_resume()], limit = cloudi_service_api:limit_external(), owner = cloudi_service_api:owner_external(), nice = cloudi_service_api:nice_external(), cgroup = cloudi_service_api:cgroup_external(), chroot = cloudi_service_api:chroot_external(), syscall_lock = cloudi_service_api:syscall_lock_external(), directory = cloudi_service_api:directory_external(), application_name = atom(), init_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], request_pid_uses = infinity | pos_integer(), request_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], info_pid_uses = infinity | pos_integer(), info_pid_options = [link | {priority, low | normal | high} | {fullsweep_after, non_neg_integer()} | {min_heap_size, non_neg_integer()} | {min_bin_vheap_size, non_neg_integer()} | {max_heap_size, cloudi_service_api:max_heap_size_options()} | {sensitive, boolean()} | {message_queue_data, off_heap | on_heap}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuid = cloudi_service_api:service_id()}], nodes = #config_nodes{nodes = [node()], reconnect_start = cloudi_service_api:node_reconnect_delay_seconds(), reconnect_delay = cloudi_service_api:node_reconnect_delay_seconds(), listen = visible | all, connect = visible | hidden, timestamp_type = erlang | os | warp, discovery = #config_nodes_discovery{mode = multicast | ec2, module = module(), start_f = atom(), start_a = list(), discover_f = atom(), discover_a = list(), stop_f = atom(), stop_a = list()} | undefined, cost = [{node() | default, float()}], cost_precision = 0..253, log_reconnect = cloudi_service_api:loglevel()}}} | {error, error_reason_services_update_configuration()}`

#### Update services after checking their UUID.

Generated by EDoc