From 69ebf12fc47a7ce3cb7b6eed7d4f2cb48538a492 Mon Sep 17 00:00:00 2001 From: Michael Truog Date: Sun, 16 Sep 2018 14:56:05 -0700 Subject: [PATCH] release version 1.7.4 --- README.markdown | 2 +- doc/README.markdown | 46 +-- doc/html/api.html | 264 ++++++++++--- .../cloudi_core_i_configuration.html | 348 ----------------- .../cloudi_core_i_logger_sup.html | 52 --- .../cloudi_core-1.7.3/cloudi_core_i_sup.html | 49 --- .../cloudi.html | 4 +- .../cloudi_args_type.html | 8 +- .../cloudi_concurrency.html | 4 +- .../cloudi_core_i_app.html | 4 +- .../cloudi_core_i_configuration.html | 365 ++++++++++++++++++ .../cloudi_core_i_configurator.html | 38 +- .../cloudi_core_i_logger.html | 36 +- .../cloudi_core_i_logger_interface.html | 4 +- .../cloudi_core_i_logger_output.html | 6 +- .../cloudi_core_i_logger_output_sup.html | 4 +- .../cloudi_core_i_logger_sup.html | 52 +++ .../cloudi_core_i_nodes.html | 6 +- .../cloudi_core_i_os_process.html | 8 +- .../cloudi_core_i_os_spawn.html | 6 +- ...loudi_core_i_rate_based_configuration.html | 4 +- .../cloudi_core_i_runtime_testing.html | 4 +- .../cloudi_core_i_services_external.html | 16 +- .../cloudi_core_i_services_external_sup.html | 18 +- .../cloudi_core_i_services_internal.html | 10 +- .../cloudi_core_i_services_internal_init.html | 6 +- ...loudi_core_i_services_internal_reload.html | 6 +- .../cloudi_core_i_services_internal_sup.html | 24 +- .../cloudi_core_i_services_monitor.html | 44 ++- .../cloudi_core_i_spawn.html | 16 +- .../cloudi_core-1.7.4/cloudi_core_i_sup.html | 49 +++ .../cloudi_crdt.html | 201 +++++++++- .../cloudi_environment.html | 15 +- .../cloudi_future.html | 4 +- .../cloudi_ip_address.html | 4 +- .../cloudi_key_value.html | 4 +- .../cloudi_lists.html | 4 +- .../cloudi_logger_hut.html | 4 +- .../cloudi_logger_lager.html | 4 +- .../cloudi_math.html | 4 +- .../cloudi_proplists.html | 4 +- .../cloudi_queue.html | 20 +- .../cloudi_request.html | 4 +- .../cloudi_request_info.html | 42 +- .../cloudi_response.html | 4 +- .../cloudi_response_info.html | 4 +- .../cloudi_service.html | 4 +- .../cloudi_service_api.html | 51 ++- .../cloudi_service_future.html | 4 +- .../cloudi_service_name.html | 4 +- .../cloudi_string.html | 23 +- .../cloudi_timestamp.html | 110 +++++- .../cloudi_trans_id.html | 4 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_json_rpc.html | 69 ---- .../cloudi_json_rpc.html | 161 ++++++++ .../cloudi_service_api_requests.html | 14 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_db_mysql.html | 6 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_db_pgsql.html | 6 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_filesystem.html | 0 .../cloudi_service_filesystem_parse.html | 0 .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 0 .../stylesheet.css | 0 .../cloudi_service_http_client.html | 0 .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 0 .../stylesheet.css | 0 .../cloudi_http_cowboy_handler.html | 0 .../cloudi_service_http_cowboy.html | 0 .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 0 .../stylesheet.css | 0 .../cloudi_http_elli_handler.html | 0 .../cloudi_service_http_elli.html | 0 .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 0 .../stylesheet.css | 0 .../cloudi_service_http_rest.html | 4 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_map_reduce.html | 8 +- .../cloudi_task_size.html | 6 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_monitoring.html | 0 .../cloudi_service_monitoring_cloudi.html | 0 .../cloudi_service_monitoring_erlang.html | 0 .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 0 .../stylesheet.css | 0 .../cloudi_service_null.html | 6 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_oauth1.html | 0 .../cloudi_service_oauth1_data.html | 0 .../cloudi_service_oauth1_db.html | 0 .../cloudi_service_oauth1_db_pgsql.html | 0 .../cloudi_service_oauth1_db_riak.html | 0 .../cloudi_service_oauth1_parse.html | 0 .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 0 .../stylesheet.css | 0 .../cloudi_write_ahead_logging.html | 117 ------ .../cloudi_service_queue.html | 28 +- .../cloudi_write_ahead_logging.html | 121 ++++++ .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_quorum.html | 6 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../api/cloudi_service_router-1.7.3/edoc-info | 3 - .../modules-frame.html | 12 - .../cloudi_service_router.html | 6 +- .../cloudi_service_router_client.html | 55 +++ .../cloudi_service_router_ssh_client.html | 98 +++++ .../cloudi_service_router_ssh_server.html | 110 ++++++ .../api/cloudi_service_router-1.7.4/edoc-info | 4 + .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 15 + .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_tcp.html | 6 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_udp.html | 6 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_validate.html | 6 +- .../edoc-info | 0 .../erlang.png | Bin .../index.html | 0 .../modules-frame.html | 0 .../overview-summary.html | 2 +- .../stylesheet.css | 0 .../cloudi_service_zeromq.html | 59 --- .../api/cloudi_service_zeromq-1.7.3/edoc-info | 3 - .../cloudi_service_zeromq-1.7.3/erlang.png | Bin 2109 -> 0 bytes .../cloudi_service_zeromq-1.7.3/index.html | 17 - .../modules-frame.html | 12 - .../overview-summary.html | 16 - .../stylesheet.css | 55 --- doc/html/faq.html | 253 ++++++------ doc/html/index.html | 48 +-- doc/html/support.html | 4 +- doc/html/tutorial_java.adoc | 30 +- doc/html/tutorial_java.html | 32 +- doc/html/tutorials.adoc | 4 +- doc/html/tutorials.html | 6 +- examples/Elixir.HelloWorld/Makefile | 2 +- examples/Elixir.HelloWorld/mix.exs | 2 +- .../src/hello_world_embedded.app.src | 2 +- .../rebar.config.local_install | 2 +- .../reltool.config.local_install | 2 +- examples/hello_world_erlang/Makefile | 2 +- .../ebin/hello_world_erlang.app | 2 +- examples/hello_world_reltool/Makefile | 2 +- .../ebin/hello_world_reltool.app | 2 +- examples/hello_world_reltool/reltool.config | 2 +- examples/hello_world_relx/Makefile | 2 +- .../ebin/hello_world_relx.app | 2 +- examples/hello_world_relx/relx.config | 2 +- src/ChangeLog | 4 + src/NEWS | 20 + src/api/haskell/cloudi.cabal.in | 2 +- src/api/perl/CloudI/API.pm | 2 +- src/api/perl/Erlang.pm | 2 +- src/configure.ac | 2 +- src/external/README.markdown | 4 +- .../cloudi_x_nodefinder/doc/nodefinder.html | 2 +- .../doc/nodefinder_app.html | 2 +- .../doc/nodefinder_ec2.html | 2 +- .../doc/nodefinder_ec2_api.html | 2 +- .../doc/nodefinder_ec2_api_aws.html | 2 +- .../doc/nodefinder_ec2_api_http.html | 2 +- .../doc/nodefinder_ec2_api_httpc.html | 2 +- .../doc/nodefinder_ec2_api_xml.html | 2 +- .../doc/nodefinder_multicast.html | 2 +- .../doc/nodefinder_string.html | 2 +- .../doc/nodefinder_sup.html | 2 +- .../doc/overview-summary.html | 2 +- src/external/cloudi_x_nodefinder/mix.exs | 18 +- src/external/cloudi_x_nodefinder/rebar.config | 1 + .../src/nodefinder.app.src | 2 +- src/lib/README.markdown | 52 +-- src/lib/cgroups/doc/cgroups.html | 4 +- src/lib/cgroups/doc/overview-summary.html | 2 +- src/lib/cgroups/src/cgroups.app.src | 2 +- src/lib/cloudi_core/doc/cloudi.html | 4 +- src/lib/cloudi_core/doc/cloudi_args_type.html | 8 +- .../cloudi_core/doc/cloudi_concurrency.html | 4 +- .../cloudi_core/doc/cloudi_core_i_app.html | 4 +- .../doc/cloudi_core_i_configuration.html | 59 ++- .../doc/cloudi_core_i_configurator.html | 38 +- .../cloudi_core/doc/cloudi_core_i_logger.html | 36 +- .../doc/cloudi_core_i_logger_interface.html | 4 +- .../doc/cloudi_core_i_logger_output.html | 6 +- .../doc/cloudi_core_i_logger_output_sup.html | 4 +- .../doc/cloudi_core_i_logger_sup.html | 6 +- .../cloudi_core/doc/cloudi_core_i_nodes.html | 6 +- .../doc/cloudi_core_i_os_process.html | 8 +- .../doc/cloudi_core_i_os_spawn.html | 6 +- ...loudi_core_i_rate_based_configuration.html | 4 +- .../doc/cloudi_core_i_runtime_testing.html | 4 +- .../doc/cloudi_core_i_services_external.html | 16 +- .../cloudi_core_i_services_external_sup.html | 18 +- .../doc/cloudi_core_i_services_internal.html | 10 +- .../cloudi_core_i_services_internal_init.html | 6 +- ...loudi_core_i_services_internal_reload.html | 6 +- .../cloudi_core_i_services_internal_sup.html | 24 +- .../doc/cloudi_core_i_services_monitor.html | 44 ++- .../cloudi_core/doc/cloudi_core_i_spawn.html | 16 +- .../cloudi_core/doc/cloudi_core_i_sup.html | 6 +- src/lib/cloudi_core/doc/cloudi_crdt.html | 201 +++++++++- .../cloudi_core/doc/cloudi_environment.html | 15 +- src/lib/cloudi_core/doc/cloudi_future.html | 4 +- .../cloudi_core/doc/cloudi_ip_address.html | 4 +- src/lib/cloudi_core/doc/cloudi_key_value.html | 4 +- src/lib/cloudi_core/doc/cloudi_lists.html | 4 +- .../cloudi_core/doc/cloudi_logger_hut.html | 4 +- .../cloudi_core/doc/cloudi_logger_lager.html | 4 +- src/lib/cloudi_core/doc/cloudi_math.html | 4 +- src/lib/cloudi_core/doc/cloudi_proplists.html | 4 +- src/lib/cloudi_core/doc/cloudi_queue.html | 20 +- src/lib/cloudi_core/doc/cloudi_request.html | 4 +- .../cloudi_core/doc/cloudi_request_info.html | 42 +- src/lib/cloudi_core/doc/cloudi_response.html | 4 +- .../cloudi_core/doc/cloudi_response_info.html | 4 +- src/lib/cloudi_core/doc/cloudi_service.html | 4 +- .../cloudi_core/doc/cloudi_service_api.html | 51 ++- .../doc/cloudi_service_future.html | 4 +- .../cloudi_core/doc/cloudi_service_name.html | 4 +- src/lib/cloudi_core/doc/cloudi_string.html | 23 +- src/lib/cloudi_core/doc/cloudi_timestamp.html | 110 +++++- src/lib/cloudi_core/doc/cloudi_trans_id.html | 4 +- src/lib/cloudi_core/doc/overview-summary.html | 2 +- .../cloudi_core/src/cloudi_core.app.src.in | 1 - .../doc/cloudi_json_rpc.html | 138 +++++-- .../doc/cloudi_service_api_requests.html | 14 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_db_mysql.html | 6 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_db_pgsql.html | 6 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_http_rest.html | 4 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_map_reduce.html | 8 +- .../doc/cloudi_task_size.html | 6 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_null.html | 6 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_queue.html | 28 +- .../doc/cloudi_write_ahead_logging.html | 36 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_quorum.html | 6 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_router.html | 6 +- .../doc/cloudi_service_router_client.html | 55 +++ .../doc/cloudi_service_router_ssh_client.html | 98 +++++ .../doc/cloudi_service_router_ssh_server.html | 110 ++++++ src/lib/cloudi_service_router/doc/edoc-info | 3 +- .../doc/modules-frame.html | 5 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_tcp.html | 6 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_udp.html | 6 +- .../doc/overview-summary.html | 2 +- .../doc/cloudi_service_validate.html | 6 +- .../doc/overview-summary.html | 2 +- src/lib/cpg/doc/cpg.html | 4 +- src/lib/cpg/doc/cpg_app.html | 4 +- src/lib/cpg/doc/cpg_callbacks.html | 6 +- src/lib/cpg/doc/cpg_data.html | 4 +- src/lib/cpg/doc/cpg_node_monitor.html | 6 +- src/lib/cpg/doc/cpg_sup.html | 4 +- src/lib/cpg/doc/overview-summary.html | 2 +- src/lib/cpg/doc/supervisor_cpg.html | 4 +- src/lib/cpg/doc/supervisor_cpg_spawn.html | 6 +- src/lib/cpg/doc/supervisor_cpg_sup.html | 4 +- src/lib/cpg/src/cpg.app.src | 2 +- src/lib/erlang_term/doc/erlang_term.html | 2 +- src/lib/erlang_term/src/erlang_term.app.src | 2 +- src/lib/key2value/doc/key2value.html | 2 +- src/lib/key2value/src/key2value.app.src | 2 +- src/lib/keys1value/doc/keys1value.html | 2 +- src/lib/keys1value/src/keys1value.app.src | 2 +- src/lib/pqueue/doc/pqueue.html | 2 +- src/lib/pqueue/doc/pqueue2.html | 2 +- src/lib/pqueue/doc/pqueue3.html | 2 +- src/lib/pqueue/doc/pqueue4.html | 2 +- src/lib/pqueue/src/pqueue.app.src | 2 +- src/lib/quickrand/doc/overview-summary.html | 2 +- src/lib/quickrand/doc/quickrand.html | 4 +- src/lib/quickrand/doc/quickrand_cache.html | 4 +- .../quickrand/doc/quickrand_cache_normal.html | 4 +- src/lib/quickrand/doc/quickrand_hash.html | 4 +- src/lib/quickrand/doc/quickrand_normal.html | 4 +- src/lib/quickrand/doc/random_wh06_int.html | 2 +- src/lib/quickrand/doc/random_wh82.html | 2 +- src/lib/quickrand/src/quickrand.app.src | 2 +- .../reltool_util/doc/overview-summary.html | 2 +- src/lib/reltool_util/doc/reltool_util.html | 4 +- src/lib/reltool_util/src/reltool_util.app.src | 2 +- src/lib/supool/doc/supool.html | 4 +- src/lib/supool/doc/supool_sup.html | 2 +- src/lib/supool/src/supool.app.src | 2 +- .../syslog_socket/doc/overview-summary.html | 2 +- src/lib/syslog_socket/doc/syslog_socket.html | 4 +- .../syslog_socket/src/syslog_socket.app.src | 2 +- src/lib/trie/doc/btrie.html | 4 +- src/lib/trie/doc/overview-summary.html | 2 +- src/lib/trie/doc/proper_srv.html | 2 +- src/lib/trie/doc/trie.html | 4 +- src/lib/trie/doc/trie_proper.html | 2 +- src/lib/trie/src/trie.app.src | 2 +- src/lib/uuid/doc/overview-summary.html | 2 +- src/lib/uuid/doc/uuid.html | 6 +- src/lib/uuid/src/uuid.app.src | 2 +- src/lib/varpool/doc/overview-summary.html | 2 +- src/lib/varpool/doc/varpool.html | 4 +- src/lib/varpool/doc/varpool_sup.html | 4 +- src/lib/varpool/src/varpool.app.src | 2 +- src/reltool.config.in | 9 +- 393 files changed, 3428 insertions(+), 1818 deletions(-) delete mode 100644 doc/html/api/cloudi_core-1.7.3/cloudi_core_i_configuration.html delete mode 100644 doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_sup.html delete mode 100644 doc/html/api/cloudi_core-1.7.3/cloudi_core_i_sup.html rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi.html (99%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_args_type.html (93%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_concurrency.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_app.html (96%) create mode 100644 doc/html/api/cloudi_core-1.7.4/cloudi_core_i_configuration.html rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_configurator.html (98%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_logger.html (52%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_logger_interface.html (98%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_logger_output.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_logger_output_sup.html (96%) create mode 100644 doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_sup.html rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_nodes.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_os_process.html (95%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_os_spawn.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_rate_based_configuration.html (99%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_runtime_testing.html (98%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_services_external.html (89%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_services_external_sup.html (77%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_services_internal.html (93%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_services_internal_init.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_services_internal_reload.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_services_internal_sup.html (72%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_services_monitor.html (82%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_core_i_spawn.html (80%) create mode 100644 doc/html/api/cloudi_core-1.7.4/cloudi_core_i_sup.html rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_crdt.html (59%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_environment.html (88%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_future.html (98%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_ip_address.html (97%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_key_value.html (98%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_lists.html (98%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_logger_hut.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_logger_lager.html (97%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_math.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_proplists.html (97%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_queue.html (91%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_request.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_request_info.html (76%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_response.html (96%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_response_info.html (97%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_service.html (99%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_service_api.html (91%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_service_future.html (98%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_service_name.html (98%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_string.html (95%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_timestamp.html (72%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/cloudi_trans_id.html (98%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/overview-summary.html (94%) rename doc/html/api/{cloudi_core-1.7.3 => cloudi_core-1.7.4}/stylesheet.css (100%) delete mode 100644 doc/html/api/cloudi_service_api_requests-1.7.3/cloudi_json_rpc.html create mode 100644 doc/html/api/cloudi_service_api_requests-1.7.4/cloudi_json_rpc.html rename doc/html/api/{cloudi_service_api_requests-1.7.3 => cloudi_service_api_requests-1.7.4}/cloudi_service_api_requests.html (84%) rename doc/html/api/{cloudi_service_api_requests-1.7.3 => cloudi_service_api_requests-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_api_requests-1.7.3 => cloudi_service_api_requests-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_api_requests-1.7.3 => cloudi_service_api_requests-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_api_requests-1.7.3 => cloudi_service_api_requests-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_api_requests-1.7.3 => cloudi_service_api_requests-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_api_requests-1.7.3 => cloudi_service_api_requests-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_db_mysql-1.7.3 => cloudi_service_db_mysql-1.7.4}/cloudi_service_db_mysql.html (98%) rename doc/html/api/{cloudi_service_db_mysql-1.7.3 => cloudi_service_db_mysql-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_db_mysql-1.7.3 => cloudi_service_db_mysql-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_db_mysql-1.7.3 => cloudi_service_db_mysql-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_db_mysql-1.7.3 => cloudi_service_db_mysql-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_db_mysql-1.7.3 => cloudi_service_db_mysql-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_db_mysql-1.7.3 => cloudi_service_db_mysql-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_db_pgsql-1.7.3 => cloudi_service_db_pgsql-1.7.4}/cloudi_service_db_pgsql.html (98%) rename doc/html/api/{cloudi_service_db_pgsql-1.7.3 => cloudi_service_db_pgsql-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_db_pgsql-1.7.3 => cloudi_service_db_pgsql-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_db_pgsql-1.7.3 => cloudi_service_db_pgsql-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_db_pgsql-1.7.3 => cloudi_service_db_pgsql-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_db_pgsql-1.7.3 => cloudi_service_db_pgsql-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_db_pgsql-1.7.3 => cloudi_service_db_pgsql-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_filesystem-1.7.3 => cloudi_service_filesystem-1.7.4}/cloudi_service_filesystem.html (100%) rename doc/html/api/{cloudi_service_filesystem-1.7.3 => cloudi_service_filesystem-1.7.4}/cloudi_service_filesystem_parse.html (100%) rename doc/html/api/{cloudi_service_filesystem-1.7.3 => cloudi_service_filesystem-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_filesystem-1.7.3 => cloudi_service_filesystem-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_filesystem-1.7.3 => cloudi_service_filesystem-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_filesystem-1.7.3 => cloudi_service_filesystem-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_filesystem-1.7.3 => cloudi_service_filesystem-1.7.4}/overview-summary.html (100%) rename doc/html/api/{cloudi_service_filesystem-1.7.3 => cloudi_service_filesystem-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_http_client-1.7.3 => cloudi_service_http_client-1.7.4}/cloudi_service_http_client.html (100%) rename doc/html/api/{cloudi_service_http_client-1.7.3 => cloudi_service_http_client-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_http_client-1.7.3 => cloudi_service_http_client-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_http_client-1.7.3 => cloudi_service_http_client-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_http_client-1.7.3 => cloudi_service_http_client-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_http_client-1.7.3 => cloudi_service_http_client-1.7.4}/overview-summary.html (100%) rename doc/html/api/{cloudi_service_http_client-1.7.3 => cloudi_service_http_client-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_http_cowboy-1.7.3 => cloudi_service_http_cowboy-1.7.4}/cloudi_http_cowboy_handler.html (100%) rename doc/html/api/{cloudi_service_http_cowboy-1.7.3 => cloudi_service_http_cowboy-1.7.4}/cloudi_service_http_cowboy.html (100%) rename doc/html/api/{cloudi_service_http_cowboy-1.7.3 => cloudi_service_http_cowboy-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_http_cowboy-1.7.3 => cloudi_service_http_cowboy-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_http_cowboy-1.7.3 => cloudi_service_http_cowboy-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_http_cowboy-1.7.3 => cloudi_service_http_cowboy-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_http_cowboy-1.7.3 => cloudi_service_http_cowboy-1.7.4}/overview-summary.html (100%) rename doc/html/api/{cloudi_service_http_cowboy-1.7.3 => cloudi_service_http_cowboy-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_http_elli-1.7.3 => cloudi_service_http_elli-1.7.4}/cloudi_http_elli_handler.html (100%) rename doc/html/api/{cloudi_service_http_elli-1.7.3 => cloudi_service_http_elli-1.7.4}/cloudi_service_http_elli.html (100%) rename doc/html/api/{cloudi_service_http_elli-1.7.3 => cloudi_service_http_elli-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_http_elli-1.7.3 => cloudi_service_http_elli-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_http_elli-1.7.3 => cloudi_service_http_elli-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_http_elli-1.7.3 => cloudi_service_http_elli-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_http_elli-1.7.3 => cloudi_service_http_elli-1.7.4}/overview-summary.html (100%) rename doc/html/api/{cloudi_service_http_elli-1.7.3 => cloudi_service_http_elli-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_http_rest-1.7.3 => cloudi_service_http_rest-1.7.4}/cloudi_service_http_rest.html (98%) rename doc/html/api/{cloudi_service_http_rest-1.7.3 => cloudi_service_http_rest-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_http_rest-1.7.3 => cloudi_service_http_rest-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_http_rest-1.7.3 => cloudi_service_http_rest-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_http_rest-1.7.3 => cloudi_service_http_rest-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_http_rest-1.7.3 => cloudi_service_http_rest-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_http_rest-1.7.3 => cloudi_service_http_rest-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_map_reduce-1.7.3 => cloudi_service_map_reduce-1.7.4}/cloudi_service_map_reduce.html (94%) rename doc/html/api/{cloudi_service_map_reduce-1.7.3 => cloudi_service_map_reduce-1.7.4}/cloudi_task_size.html (96%) rename doc/html/api/{cloudi_service_map_reduce-1.7.3 => cloudi_service_map_reduce-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_map_reduce-1.7.3 => cloudi_service_map_reduce-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_map_reduce-1.7.3 => cloudi_service_map_reduce-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_map_reduce-1.7.3 => cloudi_service_map_reduce-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_map_reduce-1.7.3 => cloudi_service_map_reduce-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_map_reduce-1.7.3 => cloudi_service_map_reduce-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_monitoring-1.7.3 => cloudi_service_monitoring-1.7.4}/cloudi_service_monitoring.html (100%) rename doc/html/api/{cloudi_service_monitoring-1.7.3 => cloudi_service_monitoring-1.7.4}/cloudi_service_monitoring_cloudi.html (100%) rename doc/html/api/{cloudi_service_monitoring-1.7.3 => cloudi_service_monitoring-1.7.4}/cloudi_service_monitoring_erlang.html (100%) rename doc/html/api/{cloudi_service_monitoring-1.7.3 => cloudi_service_monitoring-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_monitoring-1.7.3 => cloudi_service_monitoring-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_monitoring-1.7.3 => cloudi_service_monitoring-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_monitoring-1.7.3 => cloudi_service_monitoring-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_monitoring-1.7.3 => cloudi_service_monitoring-1.7.4}/overview-summary.html (100%) rename doc/html/api/{cloudi_service_monitoring-1.7.3 => cloudi_service_monitoring-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_null-1.7.3 => cloudi_service_null-1.7.4}/cloudi_service_null.html (95%) rename doc/html/api/{cloudi_service_null-1.7.3 => cloudi_service_null-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_null-1.7.3 => cloudi_service_null-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_null-1.7.3 => cloudi_service_null-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_null-1.7.3 => cloudi_service_null-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_null-1.7.3 => cloudi_service_null-1.7.4}/overview-summary.html (94%) rename doc/html/api/{cloudi_service_null-1.7.3 => cloudi_service_null-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/cloudi_service_oauth1.html (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/cloudi_service_oauth1_data.html (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/cloudi_service_oauth1_db.html (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/cloudi_service_oauth1_db_pgsql.html (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/cloudi_service_oauth1_db_riak.html (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/cloudi_service_oauth1_parse.html (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/overview-summary.html (100%) rename doc/html/api/{cloudi_service_oauth1-1.7.3 => cloudi_service_oauth1-1.7.4}/stylesheet.css (100%) delete mode 100644 doc/html/api/cloudi_service_queue-1.7.3/cloudi_write_ahead_logging.html rename doc/html/api/{cloudi_service_queue-1.7.3 => cloudi_service_queue-1.7.4}/cloudi_service_queue.html (91%) create mode 100644 doc/html/api/cloudi_service_queue-1.7.4/cloudi_write_ahead_logging.html rename doc/html/api/{cloudi_service_queue-1.7.3 => cloudi_service_queue-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_queue-1.7.3 => cloudi_service_queue-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_queue-1.7.3 => cloudi_service_queue-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_queue-1.7.3 => cloudi_service_queue-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_queue-1.7.3 => cloudi_service_queue-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_queue-1.7.3 => cloudi_service_queue-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_quorum-1.7.3 => cloudi_service_quorum-1.7.4}/cloudi_service_quorum.html (96%) rename doc/html/api/{cloudi_service_quorum-1.7.3 => cloudi_service_quorum-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_quorum-1.7.3 => cloudi_service_quorum-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_quorum-1.7.3 => cloudi_service_quorum-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_quorum-1.7.3 => cloudi_service_quorum-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_quorum-1.7.3 => cloudi_service_quorum-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_quorum-1.7.3 => cloudi_service_quorum-1.7.4}/stylesheet.css (100%) delete mode 100644 doc/html/api/cloudi_service_router-1.7.3/edoc-info delete mode 100644 doc/html/api/cloudi_service_router-1.7.3/modules-frame.html rename doc/html/api/{cloudi_service_router-1.7.3 => cloudi_service_router-1.7.4}/cloudi_service_router.html (95%) create mode 100644 doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_client.html create mode 100644 doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_ssh_client.html create mode 100644 doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_ssh_server.html create mode 100644 doc/html/api/cloudi_service_router-1.7.4/edoc-info rename doc/html/api/{cloudi_service_router-1.7.3 => cloudi_service_router-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_router-1.7.3 => cloudi_service_router-1.7.4}/index.html (100%) create mode 100644 doc/html/api/cloudi_service_router-1.7.4/modules-frame.html rename doc/html/api/{cloudi_service_router-1.7.3 => cloudi_service_router-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_router-1.7.3 => cloudi_service_router-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_tcp-1.7.3 => cloudi_service_tcp-1.7.4}/cloudi_service_tcp.html (95%) rename doc/html/api/{cloudi_service_tcp-1.7.3 => cloudi_service_tcp-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_tcp-1.7.3 => cloudi_service_tcp-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_tcp-1.7.3 => cloudi_service_tcp-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_tcp-1.7.3 => cloudi_service_tcp-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_tcp-1.7.3 => cloudi_service_tcp-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_tcp-1.7.3 => cloudi_service_tcp-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_udp-1.7.3 => cloudi_service_udp-1.7.4}/cloudi_service_udp.html (95%) rename doc/html/api/{cloudi_service_udp-1.7.3 => cloudi_service_udp-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_udp-1.7.3 => cloudi_service_udp-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_udp-1.7.3 => cloudi_service_udp-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_udp-1.7.3 => cloudi_service_udp-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_udp-1.7.3 => cloudi_service_udp-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_udp-1.7.3 => cloudi_service_udp-1.7.4}/stylesheet.css (100%) rename doc/html/api/{cloudi_service_validate-1.7.3 => cloudi_service_validate-1.7.4}/cloudi_service_validate.html (95%) rename doc/html/api/{cloudi_service_validate-1.7.3 => cloudi_service_validate-1.7.4}/edoc-info (100%) rename doc/html/api/{cloudi_service_validate-1.7.3 => cloudi_service_validate-1.7.4}/erlang.png (100%) rename doc/html/api/{cloudi_service_validate-1.7.3 => cloudi_service_validate-1.7.4}/index.html (100%) rename doc/html/api/{cloudi_service_validate-1.7.3 => cloudi_service_validate-1.7.4}/modules-frame.html (100%) rename doc/html/api/{cloudi_service_validate-1.7.3 => cloudi_service_validate-1.7.4}/overview-summary.html (95%) rename doc/html/api/{cloudi_service_validate-1.7.3 => cloudi_service_validate-1.7.4}/stylesheet.css (100%) delete mode 100644 doc/html/api/cloudi_service_zeromq-1.7.3/cloudi_service_zeromq.html delete mode 100644 doc/html/api/cloudi_service_zeromq-1.7.3/edoc-info delete mode 100644 doc/html/api/cloudi_service_zeromq-1.7.3/erlang.png delete mode 100644 doc/html/api/cloudi_service_zeromq-1.7.3/index.html delete mode 100644 doc/html/api/cloudi_service_zeromq-1.7.3/modules-frame.html delete mode 100644 doc/html/api/cloudi_service_zeromq-1.7.3/overview-summary.html delete mode 100644 doc/html/api/cloudi_service_zeromq-1.7.3/stylesheet.css create mode 100644 src/lib/cloudi_service_router/doc/cloudi_service_router_client.html create mode 100644 src/lib/cloudi_service_router/doc/cloudi_service_router_ssh_client.html create mode 100644 src/lib/cloudi_service_router/doc/cloudi_service_router_ssh_server.html diff --git a/README.markdown b/README.markdown index 516e41a18..1d29a888f 100644 --- a/README.markdown +++ b/README.markdown @@ -1,4 +1,4 @@ -# [CloudI 1.7.3](https://cloudi.org) +# [CloudI 1.7.4](https://cloudi.org) [![Build Status](https://secure.travis-ci.org/CloudI/CloudI.png?branch=develop)](http://travis-ci.org/CloudI/CloudI) [![CloudI IRC](https://img.shields.io/badge/irc-%23cloudi-orange.svg)](https://webchat.freenode.net?randomnick=1&channels=cloudi) [![Project Stats](https://www.openhub.net/p/CloudI/widgets/project_thin_badge.gif)](https://www.openhub.net/p/CloudI) diff --git a/doc/README.markdown b/doc/README.markdown index 2de352620..ebd2f324b 100644 --- a/doc/README.markdown +++ b/doc/README.markdown @@ -22,9 +22,9 @@ 1. Get CloudI running (need [./configure help?](https://cloudi.org/faq.html#3_Options)): - wget https://osdn.net/dl/cloudi/cloudi-1.7.3.tar.gz - tar zxvf cloudi-1.7.3.tar.gz - cd cloudi-1.7.3/src + wget https://osdn.net/dl/cloudi/cloudi-1.7.4.tar.gz + tar zxvf cloudi-1.7.4.tar.gz + cd cloudi-1.7.4/src ./configure make sudo make install @@ -88,8 +88,8 @@ 1. Compile the CloudI service executable: - gcc -I/usr/local/lib/cloudi-1.7.3/api/c \ - -L/usr/local/lib/cloudi-1.7.3/api/c \ + gcc -I/usr/local/lib/cloudi-1.7.4/api/c \ + -L/usr/local/lib/cloudi-1.7.4/api/c \ -g -O0 -fexceptions hello_world.c -o hello_world_c -lcloudi 1. Now it is necessary to create the CloudI service configuration that @@ -102,9 +102,9 @@ [[{prefix, "/quickstart/c/"}, {file_path, "$PWD/hello_world_c"}, {env, [{"LD_LIBRARY_PATH", - "/usr/local/lib/cloudi-1.7.3/api/c/"}, + "/usr/local/lib/cloudi-1.7.4/api/c/"}, {"DYLD_LIBRARY_PATH", - "/usr/local/lib/cloudi-1.7.3/api/c/"}]}]] + "/usr/local/lib/cloudi-1.7.4/api/c/"}]}]] EOF 1. To dynamically add the CloudI service configuration that @@ -188,8 +188,8 @@ 1. Compile the CloudI service executable: - g++ -I/usr/local/lib/cloudi-1.7.3/api/c \ - -L/usr/local/lib/cloudi-1.7.3/api/c \ + g++ -I/usr/local/lib/cloudi-1.7.4/api/c \ + -L/usr/local/lib/cloudi-1.7.4/api/c \ -g -O0 hello_world.cpp -o hello_world_cxx -lcloudi 1. Now it is necessary to create the CloudI service configuration that @@ -202,9 +202,9 @@ [[{prefix, "/quickstart/cxx/"}, {file_path, "$PWD/hello_world_cxx"}, {env, [{"LD_LIBRARY_PATH", - "/usr/local/lib/cloudi-1.7.3/api/c/"}, + "/usr/local/lib/cloudi-1.7.4/api/c/"}, {"DYLD_LIBRARY_PATH", - "/usr/local/lib/cloudi-1.7.3/api/c/"}]}]] + "/usr/local/lib/cloudi-1.7.4/api/c/"}]}]] EOF 1. To dynamically add the CloudI service configuration that @@ -271,7 +271,7 @@ def project do [app: :Elixir.HelloWorld, - version: "1.7.3", + version: "1.7.4", elixirc_paths: ["lib/"], deps: []] end @@ -384,7 +384,7 @@ file would be added with the same filename (see the examples [for more details](https://github.com/CloudI/CloudI/tree/develop/examples/hello_world1#readme)). - erlc -pz /usr/local/lib/cloudi-1.7.3/lib/cloudi_core-1.7.3/ebin \ + erlc -pz /usr/local/lib/cloudi-1.7.4/lib/cloudi_core-1.7.4/ebin \ hello_world.erl 1. You now have a CloudI service contained within a single Erlang module @@ -444,8 +444,8 @@ created by executing the following inside your shell: mkdir -p src/hello_world_go/vendor/ - cp -rf /usr/local/lib/cloudi-1.7.3/api/go/cloudi src/hello_world_go/vendor/ - cp -rf /usr/local/lib/cloudi-1.7.3/api/go/erlang src/hello_world_go/vendor/ + cp -rf /usr/local/lib/cloudi-1.7.4/api/go/cloudi src/hello_world_go/vendor/ + cp -rf /usr/local/lib/cloudi-1.7.4/api/go/erlang src/hello_world_go/vendor/ cat << EOF > src/hello_world_go/main.go package main @@ -622,14 +622,14 @@ EOF cat << EOF > manifest.txt Main-Class: org.cloudi.tests.hello_world.Main - Class-Path: /usr/local/lib/cloudi-1.7.3/api/java/cloudi.jar + Class-Path: /usr/local/lib/cloudi-1.7.4/api/java/cloudi.jar EOF 1. Compile the CloudI service jar: cd org/cloudi/tests/hello_world/ - CLASSPATH=/usr/local/lib/cloudi-1.7.3\ + CLASSPATH=/usr/local/lib/cloudi-1.7.4\ /api/java/cloudi.jar:${CLASSPATH} javac Task.java Main.java cd ../../../../ jar cvfm hello_world.jar manifest.txt org @@ -644,7 +644,7 @@ cat << EOF > hello_world.conf [[{prefix, "/quickstart/java/"}, {file_path, "$JAVA"}, - {args, "-cp /usr/local/lib/cloudi-1.7.3/api/java/ " + {args, "-cp /usr/local/lib/cloudi-1.7.4/api/java/ " "-ea:org.cloudi... -jar $PWD/hello_world.jar"}]] EOF @@ -679,7 +679,7 @@ created by executing the following inside your shell: cat << EOF > hello_world.js - var CloudI = require('/usr/local/lib/cloudi-1.7.3/' + + var CloudI = require('/usr/local/lib/cloudi-1.7.4/' + 'api/javascript/CloudI.js').CloudI; var assert = require('assert'); @@ -815,7 +815,7 @@ [[{prefix, "/quickstart/perl/"}, {file_path, "$PERL"}, {args, "$PWD/hello_world.pl"}, - {env, [{"PERL5LIB", "/usr/local/lib/cloudi-1.7.3/api/perl"}]}]] + {env, [{"PERL5LIB", "/usr/local/lib/cloudi-1.7.4/api/perl"}]}]] EOF 1. To dynamically add the CloudI service configuration that @@ -851,7 +851,7 @@ cat << EOF > hello_world.php hello_world.py import sys - sys.path.append('/usr/local/lib/cloudi-1.7.3/api/python/') + sys.path.append('/usr/local/lib/cloudi-1.7.4/api/python/') import traceback from cloudi import API, terminate_exception @@ -1015,7 +1015,7 @@ created by executing the following inside your shell: cat << EOF > hello_world.rb - \$:.unshift '/usr/local/lib/cloudi-1.7.3/api/ruby' + \$:.unshift '/usr/local/lib/cloudi-1.7.4/api/ruby' \$DEBUG = false diff --git a/doc/html/api.html b/doc/html/api.html index b7bcceee8..c638c382f 100644 --- a/doc/html/api.html +++ b/doc/html/api.html @@ -24,7 +24,7 @@
  • FAQ
  • Tutorials (Java)
  • -
  • Download
  • +
  • Download
  • Source
  • Support
  • @@ -32,8 +32,8 @@

    CloudI API Documentation

    -

    version 1.7.3
    - last updated on March 29th 2018

    +

    version 1.7.4
    + last updated on September 16th 2018

    CloudI API - Making a Service

    @@ -75,26 +75,28 @@

    CloudI Service API - Controlling CloudI

  • 2.6 - services_remove
  • 2.7 - services_restart
  • 2.8 - services_search
  • -
  • 2.9 - services_update
  • -
  • 2.10 - services
  • -
  • 2.11 - nodes_set
  • -
  • 2.12 - nodes_get
  • -
  • 2.13 - nodes_add
  • -
  • 2.14 - nodes_remove
  • -
  • 2.15 - nodes_alive
  • -
  • 2.16 - nodes_dead
  • -
  • 2.17 - nodes
  • -
  • 2.18 - logging_set
  • -
  • 2.19 - logging_file_set
  • -
  • 2.20 - logging_level_set
  • -
  • 2.21 - logging_stdout_set
  • -
  • 2.22 - logging_syslog_set
  • -
  • 2.23 - logging_formatters_set
  • -
  • 2.24 - logging_redirect_set
  • -
  • 2.25 - logging
  • -
  • 2.26 - code_path_add
  • -
  • 2.27 - code_path_remove
  • -
  • 2.28 - code_path
  • +
  • 2.9 - services_status (new in 1.7.4)
  • +
  • 2.10 - services_update
  • +
  • 2.11 - services
  • +
  • 2.12 - nodes_set
  • +
  • 2.13 - nodes_get
  • +
  • 2.14 - nodes_add
  • +
  • 2.15 - nodes_remove
  • +
  • 2.16 - nodes_alive
  • +
  • 2.17 - nodes_dead
  • +
  • 2.18 - nodes
  • +
  • 2.19 - logging_set
  • +
  • 2.20 - logging_file_set
  • +
  • 2.21 - logging_level_set
  • +
  • 2.22 - logging_stdout_set
  • +
  • 2.23 - logging_syslog_set
  • +
  • 2.24 - logging_formatters_set
  • +
  • 2.25 - logging_redirect_set
  • +
  • 2.26 - logging
  • +
  • 2.27 - code_path_add
  • +
  • 2.28 - code_path_remove
  • +
  • 2.29 - code_path
  • +
  • 2.30 - code_status (new in 1.7.4)

  • @@ -420,13 +422,13 @@

    1.1 - (initialization)

    priority. Both the Timeout parameter and the Priority parameter accept the 'undefined' atom to assign the default configured value. Please see the - cloudi_service module + cloudi_service module to see all the available functions and the behavior interface functions that are implemented within an Erlang service. The cloudi_service module is used within CloudI services, however, it is also possible to use CloudI services from external Erlang processes with a subset of the CloudI API functions in the - cloudi module. + cloudi module.

    Both the C and the C++ CloudI API rely on the same underlying code, with @@ -1691,7 +1693,7 @@

    1.10 - send_async_active (internal services only)

    The send_async_active message is sent to the Erlang process as an Erlang message, so it arrives in the cloudi_service_handle_info function of the Erlang service module (i.e., the module that implements the - cloudi_service behavior). + cloudi_service behavior). The message formats are also provided as records that are accessible with:

    @@ -2073,7 +2075,7 @@ 

    1.12 - mcast_async_active (internal services only)

    The mcast_async_active message is sent to the Erlang process as an Erlang message, so it arrives in the cloudi_service_handle_info function of the Erlang service module (i.e., the module that implements the - cloudi_service behavior). + cloudi_service behavior). The message formats are also provided as records that are accessible with:

    @@ -2551,7 +2553,7 @@ 

    1.15 - return

    after returning the service request response. The simplest and preferred way to return a response within an Erlang service is to utilize the cloudi_service_handle_request functon return values used by the - cloudi_service behavior. You can also + cloudi_service behavior. You can also utilize the request handler return value for the response in the programming languages Java, Python, and Ruby. However, within the external services it is more explicit (i.e., easier to understand the @@ -2720,7 +2722,7 @@

    1.16 - forward

    execution is aborted after forwarding the service request. The simplest and preferred way to forward a request within an Erlang service is to utilize the cloudi_service_handle_request functon return values used by the - cloudi_service behavior. + cloudi_service behavior. All external services must use a forward function when forwarding a request.

    @@ -2852,7 +2854,7 @@

    2.0 - Introduction

    cloudi_service_api_requests and cloudi_service_http_cowboy). The CloudI Service API can also be accessed directly within the Erlang VM by using the - cloudi_service_api module. + cloudi_service_api module.

    + + + - + @@ -47,17 +47,17 @@

    Function Details

    'CONNECT'/3

    -

    CONNECT(EventType, Accept, State) -> any()

    +

    'CONNECT'(EventType, Accept, State) -> any()

    'HANDLE'/3

    -

    HANDLE(EventType, Request, State) -> any()

    +

    'HANDLE'(EventType, Request, State) -> any()

    'INIT_WAIT'/3

    -

    INIT_WAIT(EventType, EventContent, State) -> any()

    +

    'INIT_WAIT'(EventType, EventContent, State) -> any()

    callback_mode/0

    @@ -100,9 +100,9 @@

    port/2

    port(Dispatcher, Timeout) -> any()

    -

    start_link/17

    +

    start_link/20

    -

    start_link(Protocol, SocketPath, ThreadIndex, ProcessIndex, ProcessCount, CommandLine, BufferSize, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, Config_service_options, ID) -> any()

    +

    start_link(Protocol, SocketPath, ThreadIndex, ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, CommandLine, BufferSize, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, Config_service_options, ID) -> any()

    stderr/2

    @@ -122,6 +122,6 @@

    terminate/3


    Protocol @@ -3304,7 +3306,10 @@

    2.5 - services_add

    (internal services only) Use two Erlang processes instead of one Erlang process, so that more incoming service throughput can be handled with - low latency. + low latency. If duo_mode is true, cloudi_service_handle_info/3 + should contain no cloudi_service:send_sync or cloudi_service:recv_async + function calls (cloudi_service:send_async_active or a separate Erlang + process can be used instead).
    hibernate @@ -4014,8 +4019,8 @@

    2.7 - services_restart

    curl -X POST -d '["6a675470-7a1f-11e2-d40e-a5dd00000058"]' http://localhost:6464/cloudi/api/rpc/services_restart.erl

    - Provide the Service UUIDs for the services that should be restarted. - The Service UUID is shown in the output of + Restart the services with the UUIDs provided. + The service UUID is shown in the output of services. When the service is restarted, the old instance is stopped and a new instance is started. During the restart delay, it is possible to lose queued service requests and @@ -4031,7 +4036,7 @@

    2.8 - services_search

    curl -X POST -d '"/tests/http/text/post"' http://localhost:6464/cloudi/api/rpc/services_search.erl

    -curl -X POST -d '{cloudi_service_msg_size, "/tests/msg_size/erlang"}' http://localhost:6464/cloudi/api/rpc/services_search.erl +curl -X POST -d '{cloudi_service_test_msg_size, "/tests/msg_size/erlang"}' http://localhost:6464/cloudi/api/rpc/services_search.erl

    List the service configuration parameters with each service's UUID that @@ -4040,15 +4045,101 @@

    2.8 - services_search

    + +

    2.9 - services_status (new in 1.7.4)

    +

    +curl -X POST -d '[]' http://localhost:6464/cloudi/api/rpc/services_status.erl +

    +

    +curl -X POST -d '["65762d3262a511e882359563d34a433e"]' http://localhost:6464/cloudi/api/rpc/services_status.erl +

    +

    + For each service UUID, provide the current uptime, downtime, interrupt and + availability estimates at a single point in time. + Each service has a {UUID, Status} pair with the Status described below: +

    +
    +[{count_process, pos_integer()},                 % count_process_dynamic may vary
    + {count_thread, pos_integer()},                  % external service threads
    + {uptime_total, nonempty_string()},
    + {uptime_running, nonempty_string()},
    + {uptime_restarts, nonempty_string()},
    + {downtime_day_restarting, nonempty_string()},
    + {downtime_week_restarting, nonempty_string()},
    + {downtime_month_restarting, nonempty_string()},
    + {downtime_year_restarting, nonempty_string()},
    + {interrupt_day_updating, nonempty_string()},
    + {interrupt_week_updating, nonempty_string()},
    + {interrupt_month_updating, nonempty_string()},
    + {interrupt_year_updating, nonempty_string()},
    + {availability_day_total, nonempty_string()},
    + {availability_day_running, nonempty_string()},
    + {availability_day_updated, nonempty_string()},
    + {availability_week_total, nonempty_string()},
    + {availability_week_running, nonempty_string()},
    + {availability_week_updated, nonempty_string()},
    + {availability_month_total, nonempty_string()},
    + {availability_month_running, nonempty_string()},
    + {availability_month_updated, nonempty_string()},
    + {availability_year_total, nonempty_string()},
    + {availability_year_running, nonempty_string()},
    + {availability_year_updated, nonempty_string()}]
    +
    +

    + The amount of time elapsed is provided in the string format + "0 days 0 hours 0 seconds 0 nanoseconds" + (with the largest 0 durations omitted and a singular unit if 1) + for the uptime, downtime and interrupt values in the status. + The total time shows how long the + service has been running, including all restarts (in uptime_total). + The running time shows how long the last restart + of the service has been running (in uptime_running). The total + number of restarts during the lifetime of the service is provided in + uptime_restarts. +

    +

    + The service downtime spent restarting service processes is provided + for the past day, week, month and year. The downtime elapsed due to + restarting is measured as the time period from immediately before + termination starts until the end of the initialization within the + new service instance. The downtime values are used to determine the + total availability values (e.g., availability_day_total, + availability_week_total, availability_month_total and + availability_year_total). +

    +

    + The service interrupt spent updating service processes is provided + for the past day, week, month and year. The interrupt elapsed will + always overestimate the amount of time spent updating, by including + extra coordination delay and should be considered the total time + spent updating all service processes. Only the time spent updating + the most recent service processes gets tracked as the interrupt + (i.e., a fraction of the running time period which + is after any restarts occurred). The interrupt values are used to + determine the updated availability values + (e.g., availability_day_updated, availability_week_updated, + availability_month_updated and availability_year_updated). +

    +

    + The amount of time the service has been running since any restarts + occurred is used to determine the running availability values + (e.g., availability_day_running, availability_week_running, + availability_month_running and availability_year_running). + All the availability values are percentages to describe the fraction of estimated uptime during each time period. + All status data is determined using the same point in time, so the values + may be compared among separate services. +

    + + -

    2.9 - services_update

    +

    2.10 - services_update

    curl -X POST -d '[{"", [{module, cloudi_service_messaging_sequence1}, {modules_load, [cloudi_service_messaging_sequence1]}, {sync, false}]}]' http://localhost:6464/cloudi/api/rpc/services_update.erl

    Update services while they are running without any interruption in their operation. Each update that should occur is specified as a - {UUID, Options} pair with the Options described below: + {UUID, Options} pair with the Options described below:

     % internal service update options
    @@ -4134,6 +4225,16 @@ 

    2.9 - services_update

    service requests to itself, the update can timeout when sync is set to true but can succeed with sync set to false.

    +

    + Do not set the sync field to false unless the service update requires it + (due to the service having a cyclic dependency on itself, + as described above). If an internal service update has the sync field + set to false and the service's module is present in the modules_load + list, the service's request process may use the new module prematurely + if the request process is spawned slower than the module load + (or if it calls any exported functions within the module) and + that would occur before the module_state function gets called. +

    A subset of the service configuration options can be updated: @@ -4270,7 +4371,7 @@

    2.9 - services_update

    -

    2.10 - services

    +

    2.11 - services

    curl http://localhost:6464/cloudi/api/rpc/services.erl

    @@ -4281,7 +4382,7 @@

    2.10 - services

    -

    2.11 - nodes_set

    +

    2.12 - nodes_set

    curl -X POST -d "[{reconnect_delay, 300}]" http://localhost:6464/cloudi/api/rpc/nodes_set.erl

    @@ -4428,13 +4529,13 @@

    ec2:

    undefined - AWS Access Key ID as a string (e.g. "ACCESS_KEY_ID"). + AWS Access Key ID as a string (e.g. "${AWS_ACCESS_KEY_ID}").
    secret_access_key undefined - AWS Secret Access Key as a string (e.g. "SECRET_ACCESS_KEY"). + AWS Secret Access Key as a string (e.g. "${AWS_SECRET_ACCESS_KEY}").
    host @@ -4506,7 +4607,7 @@

    ec2:

    -

    2.12 - nodes_get

    +

    2.13 - nodes_get

    curl http://localhost:6464/cloudi/api/rpc/nodes_get.erl

    @@ -4518,7 +4619,7 @@

    2.12 - nodes_get

    -

    2.13 - nodes_add

    +

    2.14 - nodes_add

    curl -X POST -d "['cloud001@cluster1']" http://localhost:6464/cloudi/api/rpc/nodes_add.erl

    @@ -4529,7 +4630,7 @@

    2.13 - nodes_add

    -

    2.14 - nodes_remove

    +

    2.15 - nodes_remove

    curl -X POST -d "['cloud001@cluster1']" http://localhost:6464/cloudi/api/rpc/nodes_remove.erl

    @@ -4541,7 +4642,7 @@

    2.14 - nodes_remove

    -

    2.15 - nodes_alive

    +

    2.16 - nodes_alive

    curl http://localhost:6464/cloudi/api/rpc/nodes_alive.erl

    @@ -4551,7 +4652,7 @@

    2.15 - nodes_alive

    -

    2.16 - nodes_dead

    +

    2.17 - nodes_dead

    curl http://localhost:6464/cloudi/api/rpc/nodes_dead.erl

    @@ -4562,7 +4663,7 @@

    2.16 - nodes_dead

    -

    2.17 - nodes

    +

    2.18 - nodes

    curl http://localhost:6464/cloudi/api/rpc/nodes.erl

    @@ -4572,7 +4673,7 @@

    2.17 - nodes

    -

    2.18 - logging_set

    +

    2.19 - logging_set

    curl -X POST -d '[{file, undefined}, {syslog, []}]' http://localhost:6464/cloudi/api/rpc/logging_set.erl

    @@ -4654,7 +4755,7 @@

    aspects_log_after:

    -

    2.19 - logging_file_set

    +

    2.20 - logging_file_set

    curl -X POST -d '"different_filename.log"' http://localhost:6464/cloudi/api/rpc/logging_file_set.erl

    @@ -4665,7 +4766,7 @@

    2.19 - logging_file_set

    -

    2.20 - logging_level_set

    +

    2.21 - logging_level_set

    curl -X POST -d 'warn' http://localhost:6464/cloudi/api/rpc/logging_level_set.erl

    @@ -4680,7 +4781,7 @@

    2.20 - logging_level_set

    -

    2.21 - logging_stdout_set

    +

    2.22 - logging_stdout_set

    curl -X POST -d 'true' http://localhost:6464/cloudi/api/rpc/logging_stdout_set.erl

    @@ -4690,7 +4791,7 @@

    2.21 - logging_stdout_set

    -

    2.22 - logging_syslog_set

    +

    2.23 - logging_syslog_set

    curl -X POST -d '[{identity, "CloudI"}, {facility, local0}, {level, trace}]' http://localhost:6464/cloudi/api/rpc/logging_syslog_set.erl

    @@ -4782,7 +4883,7 @@

    2.22 - logging_syslog_set

    -

    2.23 - logging_formatters_set

    +

    2.24 - logging_formatters_set

    curl -X POST -d '[{any, [{output, lager_file_backend}, {output_args, [{file, "lager.log"}]}, {formatter, lager_default_formatter}, {level, trace}]}]' http://localhost:6464/cloudi/api/rpc/logging_formatters_set.erl

    @@ -4882,7 +4983,7 @@

    2.23 - logging_formatters_set

    -

    2.24 - logging_redirect_set

    +

    2.25 - logging_redirect_set

    curl -X POST -d 'cloudi@host' http://localhost:6464/cloudi/api/rpc/logging_redirect_set.erl

    @@ -4893,7 +4994,7 @@

    2.24 - logging_redirect_set

    -

    2.25 - logging

    +

    2.26 - logging

    curl http://localhost:6464/cloudi/api/rpc/logging.erl

    @@ -4905,7 +5006,7 @@

    2.25 - logging

    -

    2.26 - code_path_add

    +

    2.27 - code_path_add

    curl -X POST -d '"/home/user/code/services"' http://localhost:6464/cloudi/api/rpc/code_path_add.erl

    @@ -4917,7 +5018,7 @@

    2.26 - code_path_add

    -

    2.27 - code_path_remove

    +

    2.28 - code_path_remove

    curl -X POST -d '"/home/user/code/services"' http://localhost:6464/cloudi/api/rpc/code_path_remove.erl

    @@ -4929,7 +5030,7 @@

    2.27 - code_path_remove

    -

    2.28 - code_path

    +

    2.29 - code_path

    curl http://localhost:6464/cloudi/api/rpc/code_path.erl

    @@ -4939,6 +5040,55 @@

    2.28 - code_path

    + +

    2.30 - code_status (new in 1.7.4)

    +

    +curl http://localhost:6464/cloudi/api/rpc/code_status.erl +

    +

    + Provide information about the execution environment: +

    +
    +[{build_machine, nonempty_string()},
    + {build_kernel_version, nonempty_string()},
    + {build_operating_system, nonempty_string()},
    + {build_erlang_otp_release, nonempty_string()},
    + {build_cloudi_time, nonempty_string()},
    + {build_cloudi_cxx_compiler_version, nonempty_string()},
    + {build_cloudi_cxx_dependencies_versions, nonempty_string()},
    + {build_erlang_erts_c_compiler_version, nonempty_string()},
    + {install_erlang_erts_time, nonempty_string()},        % ISO8601 timestamp
    + {install_erlang_kernel_time, nonempty_string()},      % ISO8601 timestamp
    + {install_erlang_stdlib_time, nonempty_string()},      % ISO8601 timestamp
    + {install_erlang_sasl_time, nonempty_string()},        % ISO8601 timestamp
    + {install_erlang_compiler_time, nonempty_string()},    % ISO8601 timestamp
    + {install_cloudi_time, nonempty_string()},             % ISO8601 timestamp
    + {runtime_erlang_erts_version, nonempty_string()},
    + {runtime_erlang_kernel_version, nonempty_string()},
    + {runtime_erlang_stdlib_version, nonempty_string()},
    + {runtime_erlang_sasl_version, nonempty_string()},
    + {runtime_erlang_compiler_version, nonempty_string()},
    + {runtime_cloudi_version, nonempty_string()},
    + {runtime_machine_processors, pos_integer()},          % logical processors
    + {runtime_start, nonempty_string()},                   % ISO8601 timestamp
    + {runtime_clock, nonempty_string()},                   % ISO8601 timestamp
    + {runtime_clock_offset, nonempty_string()},            % offset to HW clock
    + {runtime_total, nonempty_string()},
    + {runtime_cloudi_start, nonempty_string()},            % ISO8601 timestamp
    + {runtime_cloudi_total, nonempty_string()},
    + {runtime_cloudi_changes,                              % service file changes
    +  list([{type, internal | external},
    +        {file_age, nonempty_string()},
    +        {file_path, nonempty_string()},
    +        {service_ids, nonempty_list(service_id())}])}]
    +
    +

    + The runtime_cloudi_changes list shows CloudI service files that have changed + on the filesystem after CloudI started. The files may have changed due to + services_update use. +

    + + diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_configuration.html b/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_configuration.html deleted file mode 100644 index e6b9fedc7..000000000 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_configuration.html +++ /dev/null @@ -1,348 +0,0 @@ - - - - -Module cloudi_core_i_configuration - - - - -
    - -

    Module cloudi_core_i_configuration

    - -

    CloudI Configuration

    . -

    Copyright © 2009-2017 Michael Truog

    - -

    Version: 1.7.3 Feb 26 2018 17:29:21 - ------------------------------------------------------------------------

    -

    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_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_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() | {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()

    - - -

    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, 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_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_limit_invalid | service_options_owner_invalid | service_options_nice_invalid | service_options_cgroup_invalid | service_options_chroot_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_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_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.

    .
    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_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_search/2 -

    Search 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_acl_add()}

    -

    -

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

    -

    - -

    acl_remove/2

    -
    -

    acl_remove(Value::[atom()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_acl_remove()}

    -

    -

    Remove Access Control List (ACL) aliases.

    -

    - -

    load/1

    -
    -

    load(Path::string() | [tuple()]) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> 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(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_formatters_set()}

    -

    -

    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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_set()}

    -

    -

    Set CloudI logging configuration.

    -

    - -

    logging_syslog_set/2

    -
    -

    logging_syslog_set(Value::cloudi_service_api:logging_syslog_set_proplist(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_syslog_set()}

    -

    -

    Set CloudI syslog configuration.

    -

    - -

    nodes_add/2

    -
    -

    nodes_add(Value::[node()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_add()}

    -

    -

    Add CloudI nodes.

    -

    - -

    nodes_get/1

    -
    -

    nodes_get(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> cloudi_service_api:nodes_proplist()

    -

    -

    Get CloudI nodes configuration.

    -

    - -

    nodes_remove/2

    -
    -

    nodes_remove(Value::[node()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_remove()}

    -

    -

    Remove CloudI nodes.

    -

    - -

    nodes_set/2

    -
    -

    nodes_set(Value::cloudi_service_api:nodes_proplist(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_set()}

    -

    -

    Set CloudI nodes configuration.

    -

    - -

    service_format/1

    -
    -

    service_format(Config_service_internal::#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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_options_copy/3

    -
    -

    service_options_copy(OptionsKeys::[atom()], OldOptions0::#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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, NewOptions::#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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, [cloudi_service_api:service_id()], #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_add()}

    -

    -

    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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_restart()}

    -

    -

    Restart services based on their UUID.

    -

    - -

    services_search/2

    -
    -

    services_search(Value::[cloudi_service_api:service_id()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{cloudi_service_api:service_id(), #internal{}} | {cloudi_service_api:service_id(), #external{}}]

    -

    -

    Search services based on their UUID.

    -

    - -

    services_update/3

    -
    -

    services_update(Plan::list(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_update()}

    -

    -

    Update services after checking their UUID.

    -

    -
    - - -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    - - diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_sup.html b/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_sup.html deleted file mode 100644 index 0fec7b77f..000000000 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_sup.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - -Module cloudi_core_i_logger_sup - - - - -
    - -

    Module cloudi_core_i_logger_sup

    - -

    CloudI Logger Supervisor of Formatters

    . -

    Copyright © 2014-2017 Michael Truog

    - -

    Version: 1.7.1 Feb 26 2018 17:29:19 - ------------------------------------------------------------------------

    -

    Behaviours: supervisor.

    -

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

    - -

    Description

    -

    CloudI Logger Supervisor of Formatters

    - -

    Function Index

    - - - -
    init/1
    reconfigure/1
    start_link/1
    - -

    Function Details

    - -

    init/1

    -
    -

    init(X1) -> any()

    -
    - -

    reconfigure/1

    -
    -

    reconfigure(FormattersConfig::#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()} | undefined) -> ok

    -
    - -

    start_link/1

    -
    -

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    -
    -
    - - -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    - - diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_sup.html b/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_sup.html deleted file mode 100644 index 3569b262b..000000000 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_sup.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - -Module cloudi_core_i_sup - - - - -
    - -

    Module cloudi_core_i_sup

    - -

    CloudI Application Supervisor

    . -

    Copyright © 2009-2017 Michael Truog

    - -

    Version: 1.7.1 Feb 26 2018 17:29:20 - ------------------------------------------------------------------------

    -

    Behaviours: supervisor.

    -

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

    - -

    Description

    -

    CloudI Application Supervisor

    - -

    Function Index

    - - -
    init/1
    start_link/1 -

    Start the CloudI application supervisor.

    .
    - -

    Function Details

    - -

    init/1

    -
    -

    init(X1) -> any()

    -
    - -

    start_link/1

    -
    -

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    -

    -

    Start the CloudI application supervisor.

    -

    -
    - - -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    - - diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi.html b/doc/html/api/cloudi_core-1.7.4/cloudi.html similarity index 99% rename from doc/html/api/cloudi_core-1.7.3/cloudi.html rename to doc/html/api/cloudi_core-1.7.4/cloudi.html index dcd52abc1..e56986280 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi.html @@ -14,7 +14,7 @@

    Module cloudi

    CloudI Erlang Interface

    .

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:50 ------------------------------------------------------------------------

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

    @@ -538,6 +538,6 @@

    Return the age of the transa
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_args_type.html b/doc/html/api/cloudi_core-1.7.4/cloudi_args_type.html similarity index 93% rename from doc/html/api/cloudi_core-1.7.3/cloudi_args_type.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_args_type.html index d310f6ba3..bebb82e8a 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_args_type.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_args_type.html @@ -13,9 +13,9 @@

    Module cloudi_args_type

    CloudI Service Configuration Arguments Type Checking

    Functions to simplify validation done during service initialization. -

    Copyright © 2015-2017 Michael Truog

    +

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:08:11 ------------------------------------------------------------------------

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

    @@ -39,7 +39,7 @@

    function_optional/2

    function_required/2

    -

    function_required(Function::{{module(), arity()}} | {module(), atom()} | function(), Arity::non_neg_integer()) -> function()

    +

    function_required(Function::{{module(), atom()}} | {module(), atom()} | function(), Arity::non_neg_integer()) -> function()

    function_required_pick/2

    @@ -59,6 +59,6 @@

    service_name_suffix/2 -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_concurrency.html b/doc/html/api/cloudi_core-1.7.4/cloudi_concurrency.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_concurrency.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_concurrency.html index ea0affbf4..f83085bc7 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_concurrency.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_concurrency.html @@ -14,7 +14,7 @@

    Module cloudi_concurrency

    CloudI Concurrency

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:41 ------------------------------------------------------------------------

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

    @@ -42,6 +42,6 @@

    A cou
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_app.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_app.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_app.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_app.html index 06cb6b226..536cef8a1 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_app.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_app.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_app

    CloudI Application

    .

    Copyright © 2009-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:41 ------------------------------------------------------------------------

    Behaviours: application.

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

    @@ -56,6 +56,6 @@

    Is cloudi
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_configuration.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_configuration.html new file mode 100644 index 000000000..245dacf5a --- /dev/null +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_configuration.html @@ -0,0 +1,365 @@ + + + + +Module cloudi_core_i_configuration + + + + +
    + +

    Module cloudi_core_i_configuration

    + +

    CloudI Configuration

    . +

    Copyright © 2009-2018 Michael Truog

    + +

    Version: 1.7.4 Sep 15 2018 18:08:59 + ------------------------------------------------------------------------

    +

    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_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_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() | {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()

    + + +

    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, 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_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_limit_invalid | service_options_owner_invalid | service_options_nice_invalid | service_options_cgroup_invalid | service_options_chroot_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_search()

    +

    error_reason_services_search() = cloudi_core_i_configurator:error_reason_services_search()

    + + +

    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_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.

    .
    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_search/2 +

    Search 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_acl_add()}

    +

    +

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

    +

    + +

    acl_remove/2

    +
    +

    acl_remove(Value::[atom()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_acl_remove()}

    +

    +

    Remove Access Control List (ACL) aliases.

    +

    + +

    load/1

    +
    +

    load(Path::string() | [tuple()]) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_formatters_set()}

    +

    +

    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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_set()}

    +

    +

    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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_syslog_set()}

    +

    +

    Set CloudI syslog configuration.

    +

    + +

    nodes_add/2

    +
    +

    nodes_add(Value::[node()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_add()}

    +

    +

    Add CloudI nodes.

    +

    + +

    nodes_get/1

    +
    +

    nodes_get(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> cloudi_service_api:nodes_proplist()

    +

    +

    Get CloudI nodes configuration.

    +

    + +

    nodes_remove/2

    +
    +

    nodes_remove(Value::[node()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_remove()}

    +

    +

    Remove CloudI nodes.

    +

    + +

    nodes_set/2

    +
    +

    nodes_set(Value::cloudi_service_api:nodes_proplist(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_set()}

    +

    +

    Set CloudI nodes configuration.

    +

    + +

    service_format/1

    +
    +

    service_format(Config_service_internal::#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [cloudi_service_api:service_id()]

    +

    +

    Return a list of all the configured service UUIDs.

    +

    + +

    service_options_copy/3

    +
    +

    service_options_copy(OptionsKeys::[atom()], OldOptions0::#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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, NewOptions::#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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, [cloudi_service_api:service_id()], #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_add()}

    +

    +

    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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_restart()}

    +

    +

    Restart services based on their UUID.

    +

    + +

    services_search/2

    +
    +

    services_search(Value::[cloudi_service_api:service_id()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{cloudi_service_api:service_id(), #internal{}} | {cloudi_service_api:service_id(), #external{}}]

    +

    +

    Search services based on their UUID.

    +

    + +

    services_update/3

    +
    +

    services_update(Plan::list(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_update()}

    +

    +

    Update services after checking their UUID.

    +

    +
    + + +

    Generated by EDoc

    + + diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_configurator.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_configurator.html similarity index 98% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_configurator.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_configurator.html index a94a1661b..e0bac1e1a 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_configurator.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_configurator.html @@ -13,9 +13,9 @@

    Module cloudi_core_i_configurator

    CloudI Configurator

    Use the configuration information to start CloudI processes. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:26 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -25,6 +25,10 @@

    CloudI Configurator

    Use the configuration information to start CloudI processes.

    Data Types

    +

    error_reason_code_status()

    +

    error_reason_code_status() = {file, {file:filename(), file:posix() | badarg}}

    + +

    error_reason_service_restart()

    error_reason_service_restart() = {service_internal_restart_failed | service_external_restart_failed, any()}

    @@ -41,11 +45,16 @@

    error_reason_ser

    error_reason_service_update() = {service_internal_update_failed | service_external_update_failed, any()}

    +

    error_reason_services_search()

    +

    error_reason_services_search() = service_scope_invalid

    + +

    Function Index

    + @@ -63,12 +72,13 @@

    Function Index

    - - + + + @@ -103,6 +113,11 @@

    code_change/3

    code_change(X1, State, X3) -> any()

    +

    code_status/3

    +
    +

    code_status(TimeNative, TimeOffset, Timeout) -> any()

    +
    +

    configure/0

    configure() -> any()

    @@ -188,14 +203,14 @@

    nodes_set/2

    nodes_set(L, Timeout) -> any()

    -

    service_dead/1

    +

    service_ids/1

    -

    service_dead(ID) -> any()

    +

    service_ids(Timeout) -> any()

    -

    service_initialized_process/1

    +

    service_process_init_end/1

    -

    service_initialized_process(Pid) -> any()

    +

    service_process_init_end(Pid) -> any()

    service_restart/2

    @@ -218,6 +233,11 @@

    service_subscriptions/2service_subscriptions(ServiceId, Timeout) -> any()

    +

    service_terminated/1

    +
    +

    service_terminated(ID::binary()) -> ok

    +
    +

    service_update/2

    service_update(Config_service_update::#config_service_update{type = undefined | internal | external, module = atom(), module_state = undefined | fun((OldModuleVerson::cloudi_service_api:module_version(), NewModuleVerson::cloudi_service_api:module_version(), OldState::any()) -> {ok, NewState::any()} | {error, Reason::any()} | any()), file_path = undefined | file:filename(), args = undefined | string(), env = undefined | [{string(), string()}], sync = boolean(), modules_load = [atom()], modules_unload = [atom()], code_paths_add = [string()], code_paths_remove = [string()], dest_refresh = undefined | cloudi_service_api:dest_refresh(), timeout_init = undefined | cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = undefined | cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = undefined | cloudi_service_api:timeout_send_sync_value_milliseconds(), dest_list_deny = invalid | cloudi_service_api:dest_list(), dest_list_allow = invalid | cloudi_service_api:dest_list(), options_keys = [atom()], 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuids = [cloudi_service_api:service_id()], module_version_old = undefined | cloudi_service_api:module_version(), reload_stop = boolean(), spawn_os_process = boolean(), update_pending = undefined | pid(), update_now = undefined | pid(), update_start = boolean(), queue_requests = undefined | boolean()}, Timeout::pos_integer() | infinity) -> {ok, [cloudi_service_api:service_id(), ...]} | {error, [cloudi_service_api:service_id(), ...], error_reason_service_update()}

    @@ -270,6 +290,6 @@

    terminate/2


    acl/1
    acl_add/2
    acl_remove/2
    code_change/3
    code_status/3
    configure/0
    handle_call/3
    handle_cast/2
    nodes_get/1
    nodes_remove/2
    nodes_set/2
    service_dead/1
    service_initialized_process/1
    service_ids/1
    service_process_init_end/1
    service_restart/2
    service_start/2
    service_stop/3
    service_subscriptions/2
    service_terminated/1
    service_update/2
    service_update_external/5
    services/1
    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger.html similarity index 52% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger.html index dc94561b7..38d3539b2 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_logger

    CloudI Logger

    .

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:19 +

    Version: 1.7.4 Sep 15 2018 18:07:02 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -56,10 +56,19 @@

    Change the file output log level

    Get lager-compatible metadata.

    .

    metadata_set/1

    Set lager-compatible metadata.

    .
    microseconds_to_string/1 +

    Create an ISO8601 timestamp from microseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    milliseconds_to_string/1 +

    Create an ISO8601 timestamp from milliseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    redirect_set/1

    Redirect this node's logging to a different node.

    .
    redirect_update/1

    Update the destination of logging output.

    .
    seconds_to_string/1 +

    Create an ISO8601 timestamp from seconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    set/1

    Change the logging configuration.

    .
    start_link/1 @@ -186,6 +195,20 @@

    metadata_set/1

    Set lager-compatible metadata.

    +

    microseconds_to_string/1

    +
    +

    microseconds_to_string(TotalMicroSeconds::non_neg_integer()) -> string()

    +

    +

    Create an ISO8601 timestamp from microseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    milliseconds_to_string/1

    +
    +

    milliseconds_to_string(TotalMilliSeconds::non_neg_integer()) -> string()

    +

    +

    Create an ISO8601 timestamp from milliseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    +

    redirect_set/1

    redirect_set(Node::atom()) -> ok

    @@ -200,6 +223,13 @@

    redirect_update/1

    Update the destination of logging output.

    +

    seconds_to_string/1

    +
    +

    seconds_to_string(TotalSeconds::non_neg_integer()) -> string()

    +

    +

    Create an ISO8601 timestamp from seconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    +

    set/1

    set(LoggingConfig::#config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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()]}) -> ok | {error, file:posix() | badarg | system_limit}

    @@ -209,7 +239,7 @@

    Change the logging configuration

    start_link/1

    -

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    +

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    Start the logging server with the supplied configuration.

    @@ -251,6 +281,6 @@

    Warning log message.


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_interface.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_interface.html similarity index 98% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_interface.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_interface.html index 26a696069..ea737e241 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_interface.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_interface.html @@ -15,7 +15,7 @@

    Fake CloudI Logger Interface

    These functions get replaced dynamically.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:17 ------------------------------------------------------------------------

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

    @@ -174,6 +174,6 @@

    warn_sync/6


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_output.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_output.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_output.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_output.html index e6ed614d2..1386e4151 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_output.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_output.html @@ -12,9 +12,9 @@

    Module cloudi_core_i_logger_output

    CloudI Logger Formatter Output Initialization

    . -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:46 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -71,6 +71,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_output_sup.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_output_sup.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_output_sup.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_output_sup.html index c067d51cb..b24c7dc8b 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_logger_output_sup.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_output_sup.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_logger_output_sup

    CloudI Logger Formatter Output Supervisor

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:56 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -41,6 +41,6 @@

    start_link/1


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_sup.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_sup.html new file mode 100644 index 000000000..39176b4f9 --- /dev/null +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_logger_sup.html @@ -0,0 +1,52 @@ + + + + +Module cloudi_core_i_logger_sup + + + + +
    + +

    Module cloudi_core_i_logger_sup

    + +

    CloudI Logger Supervisor of Formatters

    . +

    Copyright © 2014-2017 Michael Truog

    + +

    Version: 1.7.1 Sep 15 2018 18:07:05 + ------------------------------------------------------------------------

    +

    Behaviours: supervisor.

    +

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

    + +

    Description

    +

    CloudI Logger Supervisor of Formatters

    + +

    Function Index

    + + + +
    init/1
    reconfigure/1
    start_link/1
    + +

    Function Details

    + +

    init/1

    +
    +

    init(X1) -> any()

    +
    + +

    reconfigure/1

    +
    +

    reconfigure(FormattersConfig::#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()} | undefined) -> ok

    +
    + +

    start_link/1

    +
    +

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    +
    +
    + + +

    Generated by EDoc

    + + diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_nodes.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_nodes.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_nodes.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_nodes.html index 5fbc4e15e..aed9fc0a1 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_nodes.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_nodes.html @@ -13,9 +13,9 @@

    Module cloudi_core_i_nodes

    CloudI Nodes

    Manage node connections to provide reliability after network interruptions. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:08:09 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -102,6 +102,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_os_process.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_os_process.html similarity index 95% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_os_process.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_os_process.html index e372905ef..55da069ef 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_os_process.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_os_process.html @@ -14,9 +14,9 @@

    Module cloudi_core_i_os_process

    CloudI OS Process Configuration

    Maximum resource limits can be set after "setcap 'CAP_SYS_RESOURCE=+ep' executable" (on Linux). -

    Copyright © 2015-2017 Michael Truog

    +

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:42 ------------------------------------------------------------------------

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

    @@ -51,7 +51,7 @@

    cgroup_set/2

    cgroup_unset/2

    -

    cgroup_unset(OSPid::pos_integer() | undefined, Values::cloudi_service_api:cgroup_external()) -> ok | {error, any()}

    +

    cgroup_unset(OSPid::pos_integer(), Values::cloudi_service_api:cgroup_external()) -> ok | {error, any()}

    cgroup_validate/1

    @@ -91,6 +91,6 @@

    owner_validate/1


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_os_spawn.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_os_spawn.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_os_spawn.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_os_spawn.html index b5cf57211..06e7cd90c 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_os_spawn.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_os_spawn.html @@ -13,9 +13,9 @@

    Module cloudi_core_i_os_spawn

    OS Process Spawn

    Used interaction with the os_spawn process. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:45 ------------------------------------------------------------------------

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

    @@ -77,6 +77,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_rate_based_configuration.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_rate_based_configuration.html similarity index 99% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_rate_based_configuration.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_rate_based_configuration.html index f4f899bbc..d2dc5eecd 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_rate_based_configuration.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_rate_based_configuration.html @@ -16,7 +16,7 @@

    CloudI Rate-Based ConfigurationCopyright © 2013-2017 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.3 Sep 15 2018 18:07:17 ------------------------------------------------------------------------

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

    @@ -169,6 +169,6 @@

    restart_delay_value/3 -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_runtime_testing.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_runtime_testing.html similarity index 98% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_runtime_testing.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_runtime_testing.html index 6c96d0700..8d4577dec 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_runtime_testing.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_runtime_testing.html @@ -15,7 +15,7 @@

    CloudI Runtime Testing

    Routines for live-service testing during development.

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:53 ------------------------------------------------------------------------

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

    @@ -83,6 +83,6 @@

    monkey_latency_validate
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_external.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_external.html similarity index 89% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_external.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_external.html index 250c5147c..2b9bd5583 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_external.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_external.html @@ -16,7 +16,7 @@

    CloudI External Service

    external service.

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:19 +

    Version: 1.7.4 Sep 15 2018 18:06:54 ------------------------------------------------------------------------

    Behaviours: gen_statem.

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

    @@ -37,7 +37,7 @@

    Function Index

    handle_event/4
    init/1
    port/2
    start_link/17
    start_link/20
    stderr/2
    stdout/2
    terminate/3
    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_external_sup.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_external_sup.html similarity index 77% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_external_sup.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_external_sup.html index 985ab97eb..11f3dc1ae 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_external_sup.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_external_sup.html @@ -12,9 +12,9 @@

    Module cloudi_core_i_services_external_sup

    CloudI External Service Supervisor

    . -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:08:10 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -23,21 +23,21 @@

    Description

    CloudI External Service Supervisor

    Function Index

    - - +
    create_external/17
    init/1
    +
    init/1
    process_start/20
    start_link/0

    Function Details

    -

    create_external/17

    +

    init/1

    -

    create_external(Protocol, SocketPath, ThreadIndex, ProcessIndex, ProcessCount, CommandLine, BufferSize, Timeout, Prefix, TimeoutSync, TimeoutAsync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, ConfigOptions, ID) -> any()

    +

    init(X1) -> any()

    -

    init/1

    +

    process_start/20

    -

    init(X1) -> any()

    +

    process_start(Protocol, SocketPath, ThreadIndex, ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, CommandLine, BufferSize, Timeout, Prefix, TimeoutSync, TimeoutAsync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, ConfigOptions, ID) -> any()

    start_link/0

    @@ -47,6 +47,6 @@

    start_link/0


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal.html similarity index 93% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal.html index c18c68a13..e0c460b36 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal.html @@ -16,7 +16,7 @@

    CloudI Internal Service

    for modules that implement the cloudi_service behavior.

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:32 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -38,7 +38,7 @@

    Function Index

    handle_module_info_loop_hibernate/2 handle_module_request_loop_hibernate/2 init/1 -start_link/16 +start_link/19 system_code_change/4 system_continue/3 system_terminate/4 @@ -107,9 +107,9 @@

    init/1

    init(X1) -> any()

    -

    start_link/16

    +

    start_link/19

    -

    start_link(ProcessIndex, ProcessCount, GroupLeader, Module, Args, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, Config_service_options, ID, Parent) -> any()

    +

    start_link(ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, GroupLeader, Module, Args, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, Config_service_options, ID, Parent) -> any()

    system_code_change/4

    @@ -134,6 +134,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal_init.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal_init.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal_init.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal_init.html index 85312a7a3..beefd9949 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal_init.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal_init.html @@ -13,9 +13,9 @@

    Module cloudi_core_i_services_internal_init

    CloudI Internal Service Init Process

    A separate Erlang process that exists as a Dispatcher proxy. -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.4 Sep 15 2018 18:06:56 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -93,6 +93,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal_reload.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal_reload.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal_reload.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal_reload.html index cc4801e21..b4a42a7a7 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal_reload.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal_reload.html @@ -14,9 +14,9 @@

    Module cloudi_core_i_services_internal_reload

    CloudI Internal Service Reload

    Perform module reloading for internal services, during service development. -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:18 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -86,6 +86,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal_sup.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal_sup.html similarity index 72% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal_sup.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal_sup.html index 269c0863d..11e4e1909 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_internal_sup.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_internal_sup.html @@ -12,9 +12,9 @@

    Module cloudi_core_i_services_internal_sup

    CloudI Internal Service Supervisor

    . -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:41 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -23,27 +23,27 @@

    Description

    CloudI Internal Service Supervisor

    Function Index

    - - - +
    create_internal/15
    create_internal_done/3
    init/1
    + +
    init/1
    process_start/18
    process_started/3
    start_link/0

    Function Details

    -

    create_internal/15

    +

    init/1

    -

    create_internal(ProcessIndex, ProcessCount, GroupLeader, Module, Args, Timeout, Prefix, TimeoutSync, TimeoutAsync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, ConfigOptions, ID) -> any()

    +

    init(X1) -> any()

    -

    create_internal_done/3

    +

    process_start/18

    -

    create_internal_done(Parent, Dispatcher, ReceiverPid) -> any()

    +

    process_start(ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, GroupLeader, Module, Args, Timeout, Prefix, TimeoutSync, TimeoutAsync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, ConfigOptions, ID) -> any()

    -

    init/1

    +

    process_started/3

    -

    init(X1) -> any()

    +

    process_started(Parent, Dispatcher, ReceiverPid) -> any()

    start_link/0

    @@ -53,6 +53,6 @@

    start_link/0


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_monitor.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_monitor.html similarity index 82% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_monitor.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_monitor.html index 3429e90f6..1014a1aca 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_services_monitor.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_services_monitor.html @@ -14,9 +14,9 @@

    Module cloudi_core_i_services_monitor

    CloudI Services

    Manage all cloudi_core_i_spawn processes with monitors and their configuration. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:40 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -34,15 +34,17 @@

    Function Index

    handle_info/2 increase/5 init/1 -initialize/1 monitor/13 pids/2 +process_init_begin/1 +process_init_end/1 +process_terminate_begin/2 restart/2 search/2 shutdown/2 start_link/0 +status/2 terminate/2 -terminate_kill/2 update/2 @@ -65,12 +67,12 @@

    handle_call/3

    handle_cast/2

    -

    handle_cast(Request, State) -> any()

    +

    handle_cast(Cloudi_service_terminate_begin, State) -> any()

    handle_info/2

    -

    handle_info(Request, State) -> any()

    +

    handle_info(Restart_stage2, State) -> any()

    increase/5

    @@ -83,11 +85,6 @@

    init/1

    init(X1) -> any()

    -

    initialize/1

    -
    -

    initialize(Pids::[pid()]) -> ok

    -
    -

    monitor/13

    monitor(M::cloudi_core_i_spawn, F::start_internal | start_external, A::list(), ProcessIndex::non_neg_integer(), CountProcess::pos_integer(), CountThread::pos_integer(), Scope::atom(), TimeoutTerm::cloudi_service_api:timeout_terminate_value_milliseconds(), RestartDelay::tuple() | false, MaxR::non_neg_integer(), MaxT::non_neg_integer(), ServiceId::uuid:uuid(), Timeout::infinity | pos_integer()) -> {ok, [pid()]} | {error, any()}

    @@ -98,6 +95,21 @@

    pids/2

    pids(ServiceId, Timeout) -> any()

    +

    process_init_begin/1

    +
    +

    process_init_begin(Pids::[pid() | [pid(), ...]]) -> ok

    +
    + +

    process_init_end/1

    +
    +

    process_init_end(Pid::pid()) -> ok

    +
    + +

    process_terminate_begin/2

    +
    +

    process_terminate_begin(Pid::pid(), Reason::any()) -> ok | {error, any()}

    +
    +

    restart/2

    restart(ServiceId, Timeout) -> any()

    @@ -118,14 +130,14 @@

    start_link/0

    start_link() -> any()

    -

    terminate/2

    +

    status/2

    -

    terminate(X1, X2) -> any()

    +

    status(ServiceIdList, Timeout) -> any()

    -

    terminate_kill/2

    +

    terminate/2

    -

    terminate_kill(Pid, Reason) -> any()

    +

    terminate(X1, X2) -> any()

    update/2

    @@ -135,6 +147,6 @@

    update/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_spawn.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_spawn.html similarity index 80% rename from doc/html/api/cloudi_core-1.7.3/cloudi_core_i_spawn.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_core_i_spawn.html index 0eaeca92a..d5cfb3d37 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_core_i_spawn.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_spawn.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_spawn

    CloudI Spawn

    .

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:56 ------------------------------------------------------------------------

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

    @@ -25,8 +25,8 @@

    Function Index

    - - + + @@ -49,14 +49,14 @@

    environment_transform/2environment_transform(String, EnvironmentLookup) -> any()

    -

    start_external/18

    +

    start_external/21

    -

    start_external(ProcessIndex, ProcessCount, ThreadsPerProcess, Filename, Arguments, Environment, Protocol, BufferSize, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestListDeny, DestListAllow, ConfigOptions, ID) -> any()

    +

    start_external(ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, ThreadsPerProcess, Filename, Arguments, Environment, Protocol, BufferSize, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestListDeny, DestListAllow, ConfigOptions, ID) -> any()

    -

    start_internal/15

    +

    start_internal/18

    -

    start_internal(ProcessIndex, ProcessCount, GroupLeader, Module, Args, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestListDeny, DestListAllow, ConfigOptions, ID) -> any()

    +

    start_internal(ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, GroupLeader, Module, Args, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestListDeny, DestListAllow, ConfigOptions, ID) -> any()

    update_external/3

    @@ -76,6 +76,6 @@

    update_internal_f/9


    environment_lookup/0
    environment_transform/1
    environment_transform/2
    start_external/18
    start_internal/15
    start_external/21
    start_internal/18
    update_external/3
    update_external_f/12
    update_internal_f/9
    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_sup.html b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_sup.html new file mode 100644 index 000000000..5cf0a49f3 --- /dev/null +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_core_i_sup.html @@ -0,0 +1,49 @@ + + + + +Module cloudi_core_i_sup + + + + +
    + +

    Module cloudi_core_i_sup

    + +

    CloudI Application Supervisor

    . +

    Copyright © 2009-2017 Michael Truog

    + +

    Version: 1.7.1 Sep 15 2018 18:07:20 + ------------------------------------------------------------------------

    +

    Behaviours: supervisor.

    +

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

    + +

    Description

    +

    CloudI Application Supervisor

    + +

    Function Index

    + + +
    init/1
    start_link/1 +

    Start the CloudI application supervisor.

    .
    + +

    Function Details

    + +

    init/1

    +
    +

    init(X1) -> any()

    +
    + +

    start_link/1

    +
    +

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    +

    +

    Start the CloudI application supervisor.

    +

    +
    + + +

    Generated by EDoc

    + + diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_crdt.html b/doc/html/api/cloudi_core-1.7.4/cloudi_crdt.html similarity index 59% rename from doc/html/api/cloudi_core-1.7.3/cloudi_crdt.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_crdt.html index d79d382f1..49c020fa0 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_crdt.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_crdt.html @@ -19,7 +19,7 @@

    CloudI CRDT (Conf processes.

    .

    Copyright © 2017-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:08:03 ------------------------------------------------------------------------

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

    @@ -72,10 +72,18 @@

    CloudI CRDT (Conf http://research.microsoft.com/en-us/um/people/lamport/pubs/time-clocks.pdf

    Data Types

    +

    bootstrap_state()

    +

    bootstrap_state() = {VClockAvg::float(), NodeId::node_id(), VClock::vclock(), VClocks::vclocks(), POLogMode::polog_mode(), POLog::polog(), Data::data()}

    + +

    data()

    data() = #{key() := value()}

    +

    event_id()

    +

    event_id() = cloudi_service:trans_id() | any()

    + +

    event_type()

    event_type() = assign | clear | decr | incr | put | update

    @@ -93,11 +101,11 @@

    node_id()

    operation_write()

    -

    operation_write() = {assign, Key::key(), Value::value()} | {incr, Key::key(), Value::value()} | {decr, Key::key(), Value::value()} | {update, Key::key(), ModuleVersion::list(), Module::module(), Function::atom()} | {update, Key::key(), ModuleVersion::list(), Module::module(), Function::atom(), Argument1::any()} | {put, Key::key(), Value::value()} | {clear, Key::key()} | clear_all

    +

    operation_write() = {assign, Id::event_id(), Key::key(), Value::value()} | {incr, Id::event_id(), Key::key(), Value::value()} | {decr, Id::event_id(), Key::key(), Value::value()} | {update, Id::event_id(), Key::key(), ModuleVersion::list(), Module::module(), Function::atom()} | {update, Id::event_id(), Key::key(), ModuleVersion::list(), Module::module(), Function::atom(), Argument1::any()} | {update_assign, Id::event_id(), Key::key(), Value::value(), ModuleVersion::list(), Module::module(), Function::atom()} | {update_assign, Id::event_id(), Key::key(), Value::value(), ModuleVersion::list(), Module::module(), Function::atom(), Argument1::any()} | {put, Id::event_id(), Key::key(), Value::value()} | {clear, Id::event_id(), Key::key()} | {clear_all, Id::event_id()}

    options()

    -

    options() = [{service_name, string()} | {clean_vclocks, seconds()} | {clean_vclocks_failure, float() | 1..100} | {retry, non_neg_integer()} | {retry_delay, non_neg_integer()}]

    +

    options() = [{service_name, string()} | {clean_vclocks, seconds()} | {clean_vclocks_failure, float() | 1..100} | {retry, non_neg_integer()} | {retry_delay, non_neg_integer()} | {timeout_default, cloudi_service:timeout_milliseconds()} | {priority_default, cloudi_service:priority()} | {priority_default_offset, -255..255 | undefined}]

    polog()

    @@ -113,7 +121,7 @@

    seconds()

    state()

    -

    state() = #cloudi_crdt{service_name_full = cloudi_service:service_name(), clean_vclocks_interval = seconds(), clean_vclocks_failure = number(), queue = cloudi_queue:state(), word_size = pos_integer(), node_id = node_id(), node_ids = [node_id()], vclock = vclock(), vclocks = vclocks(), polog_mode = polog_mode(), polog = polog(), data = data(), events = events()}

    +

    state() = #cloudi_crdt{service_name_full = cloudi_service:service_name(), clean_vclocks_interval = seconds(), clean_vclocks_failure = number(), queue = cloudi_queue:state(), word_size = pos_integer(), node_id = node_id(), node_ids = [node_id()], vclock = vclock(), vclocks = vclocks(), polog_mode = polog_mode(), bootstrap_node_id = undefined | node_id(), bootstrap_states = [bootstrap_state()], bootstrap_requests = non_neg_integer(), polog = polog(), data = data(), events = events()}

    value()

    @@ -131,16 +139,26 @@

    vclocks()

    Function Index

    + + + + + + +

    Create a CloudI CRDT.

    . + + + + + + + +
    assign/4

    Assign a value iff none exists in the CloudI CRDT.

    .
    assign_id/5 +

    Assign a value iff none exists in the CloudI CRDT with an event_id.

    .
    byte_size/2

    Return the size of the CloudI CRDT in bytes.

    .
    clear/2

    Clear the CloudI CRDT.

    .
    clear/3

    Clear a key in the CloudI CRDT.

    .
    clear_id/3 +

    Clear the CloudI CRDT with an event_id.

    .
    clear_id/4 +

    Clear a key in the CloudI CRDT with an event_id.

    .
    decr/3

    Decrement a numerical value by 1 in the CloudI CRDT.

    .
    decr/4

    Decrement a numerical value in the CloudI CRDT.

    .
    decr_id/4 +

    Decrement a numerical value by 1 in the CloudI CRDT with an event_id.

    .
    decr_id/5 +

    Decrement a numerical value in the CloudI CRDT with an event_id.

    .
    events_clear/3

    Clear a subscription to events from the CloudI CRDT.

    .
    events_subscribe/3 @@ -163,6 +181,10 @@

    Handle a CRDT service request.<

    Increment a numerical value by 1 in the CloudI CRDT.

    .
    incr/4

    Increment a numerical value in the CloudI CRDT.

    .
    incr_id/4 +

    Increment a numerical value by 1 in the CloudI CRDT with an event_id.

    .
    incr_id/5 +

    Increment a numerical value in the CloudI CRDT with an event_id.

    .
    is_key/3

    Check if a key is in the CloudI CRDT.

    .
    keys/2 @@ -173,6 +195,8 @@

    Create a CloudI CRDT.

    .
    put/4

    Put a value into the CloudI CRDT.

    .
    put_id/5 +

    Put a value into the CloudI CRDT with an event_id.

    .
    size/2

    Get the size of the CloudI CRDT.

    .
    update/5 @@ -183,10 +207,36 @@

    Update a value if

    Update a value iff it exists in the CloudI CRDT.

    Function Module:Function/2 must exist with the same version for every CloudI service process that shares this CloudI CRDT.

    update_assign/6 +

    Update a value or assign a value in the CloudI CRDT.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_assign/7 +

    Update a value or assign a value in the CloudI CRDT.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_assign_id/7 +

    Update a value or assign a value in the CloudI CRDT with an event_id.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_assign_id/8 +

    Update a value or assign a value in the CloudI CRDT with an event_id.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_id/6 +

    Update a value iff it exists in the CloudI CRDT with an event_id.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_id/7 +

    Update a value iff it exists in the CloudI CRDT with an event_id.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    values/2

    Get all values in the CloudI CRDT.

    .
    zero/3

    Put a zero value in the CloudI CRDT.

    .
    zero_id/4 +

    Put a zero value in the CloudI CRDT with an event_id.

    .

    Function Details

    @@ -198,6 +248,13 @@

    assign/4

    Assign a value iff none exists in the CloudI CRDT.

    +

    assign_id/5

    +
    +

    assign_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Id::event_id(), State::state()) -> state()

    +

    +

    Assign a value iff none exists in the CloudI CRDT with an event_id.

    +

    +

    byte_size/2

    byte_size(Dispatcher::cloudi_service:dispatcher(), State::state()) -> non_neg_integer()

    @@ -219,6 +276,20 @@

    clear/3

    Clear a key in the CloudI CRDT.

    +

    clear_id/3

    +
    +

    clear_id(Dispatcher::cloudi_service:dispatcher(), Id::event_id(), State::state()) -> state()

    +

    +

    Clear the CloudI CRDT with an event_id.

    +

    + +

    clear_id/4

    +
    +

    clear_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Id::event_id(), State::state()) -> state()

    +

    +

    Clear a key in the CloudI CRDT with an event_id.

    +

    +

    decr/3

    decr(Dispatcher::cloudi_service:dispatcher(), Key::key(), State::state()) -> state()

    @@ -233,6 +304,20 @@

    decr/4

    Decrement a numerical value in the CloudI CRDT.

    +

    decr_id/4

    +
    +

    decr_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Id::event_id(), State::state()) -> state()

    +

    +

    Decrement a numerical value by 1 in the CloudI CRDT with an event_id.

    +

    + +

    decr_id/5

    +
    +

    decr_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::number(), Id::event_id(), State::state()) -> state()

    +

    +

    Decrement a numerical value in the CloudI CRDT with an event_id.

    +

    +

    events_clear/3

    events_clear(Dispatcher::cloudi_service:dispatcher(), Key::key(), State::state()) -> state()

    @@ -303,6 +388,20 @@

    incr/4

    Increment a numerical value in the CloudI CRDT.

    +

    incr_id/4

    +
    +

    incr_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Id::event_id(), State::state()) -> state()

    +

    +

    Increment a numerical value by 1 in the CloudI CRDT with an event_id.

    +

    + +

    incr_id/5

    +
    +

    incr_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::number(), Id::event_id(), State::state()) -> state()

    +

    +

    Increment a numerical value in the CloudI CRDT with an event_id.

    +

    +

    is_key/3

    is_key(Dispatcher::cloudi_service:dispatcher(), Key::key(), State::state()) -> boolean()

    @@ -338,6 +437,13 @@

    put/4

    Put a value into the CloudI CRDT.

    +

    put_id/5

    +
    +

    put_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Id::event_id(), State::state()) -> state()

    +

    +

    Put a value into the CloudI CRDT with an event_id.

    +

    +

    size/2

    size(Dispatcher::cloudi_service:dispatcher(), State::state()) -> non_neg_integer()

    @@ -371,6 +477,84 @@

    Update a value if all read operations (inconsistencies which would only be resolvable manually).

    +

    update_assign/6

    +
    +

    update_assign(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Module::module(), Function::atom(), State::state()) -> state()

    +

    +

    Update a value or assign a value in the CloudI CRDT.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_assign/7

    +
    +

    update_assign(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Module::module(), Function::atom(), Argument1::any(), State::state()) -> state()

    +

    +

    Update a value or assign a value in the CloudI CRDT.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_assign_id/7

    +
    +

    update_assign_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Module::module(), Function::atom(), Id::event_id(), State::state()) -> state()

    +

    +

    Update a value or assign a value in the CloudI CRDT with an event_id.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_assign_id/8

    +
    +

    update_assign_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Module::module(), Function::atom(), Argument1::any(), Id::event_id(), State::state()) -> state()

    +

    +

    Update a value or assign a value in the CloudI CRDT with an event_id.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_id/6

    +
    +

    update_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Module::module(), Function::atom(), Id::event_id(), State::state()) -> state()

    +

    +

    Update a value iff it exists in the CloudI CRDT with an event_id.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_id/7

    +
    +

    update_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Module::module(), Function::atom(), Argument1::any(), Id::event_id(), State::state()) -> state()

    +

    +

    Update a value iff it exists in the CloudI CRDT with an event_id.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    +

    values/2

    values(Dispatcher::cloudi_service:dispatcher(), State::state()) -> [value()]

    @@ -384,9 +568,16 @@

    zero/3

    Put a zero value in the CloudI CRDT.

    + +

    zero_id/4

    +
    +

    zero_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Id::event_id(), State::state()) -> state()

    +

    +

    Put a zero value in the CloudI CRDT with an event_id.

    +


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_environment.html b/doc/html/api/cloudi_core-1.7.4/cloudi_environment.html similarity index 88% rename from doc/html/api/cloudi_core-1.7.3/cloudi_environment.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_environment.html index fa38828cc..d25f34709 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_environment.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_environment.html @@ -12,9 +12,9 @@

    Module cloudi_environment

    CloudI Runtime Environment

    . -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:30 ------------------------------------------------------------------------

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

    @@ -30,6 +30,8 @@

    lookup()

    Function Index

    + - + + + + -
    lookup/0

    Get an environment variable lookup.

    .
    status/0 +

    Get execution environment status.

    .
    transform/1

    Transform a string, substituting environment variable values from the lookup.

    Use ${VARIABLE} or $VARIABLE syntax, where VARIABLE is a name with @@ -49,6 +51,13 @@

    lookup/0

    Get an environment variable lookup.

    +

    status/0

    +
    +

    status() -> [{atom(), string()}, ...]

    +

    +

    Get execution environment status.

    +

    +

    transform/1

    transform(String::string()) -> string()

    @@ -67,6 +76,6 @@

    Overviewerlang logo

    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_future.html b/doc/html/api/cloudi_core-1.7.4/cloudi_future.html similarity index 98% rename from doc/html/api/cloudi_core-1.7.3/cloudi_future.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_future.html index 7c38a3ec5..9b740ee2d 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_future.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_future.html @@ -14,7 +14,7 @@

    Module cloudi_future

    CloudI Futures

    .

    Copyright © 2015-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:08:06 ------------------------------------------------------------------------

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

    @@ -79,6 +79,6 @@

    Create a future.


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_ip_address.html b/doc/html/api/cloudi_core-1.7.4/cloudi_ip_address.html similarity index 97% rename from doc/html/api/cloudi_core-1.7.3/cloudi_ip_address.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_ip_address.html index 8f2bc0925..7513a21ab 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_ip_address.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_ip_address.html @@ -16,7 +16,7 @@

    CloudI IP Address Parsing

    better pattern matching within service names.

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:58 ------------------------------------------------------------------------

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

    @@ -77,6 +77,6 @@

    Create a list string represen
    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_key_value.html b/doc/html/api/cloudi_core-1.7.4/cloudi_key_value.html similarity index 98% rename from doc/html/api/cloudi_core-1.7.3/cloudi_key_value.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_key_value.html index fb6a7d723..7a215deb9 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_key_value.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_key_value.html @@ -15,7 +15,7 @@

    CloudI Key/Value Data Keys are unique in any of the underlying representations.

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:38 ------------------------------------------------------------------------

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

    @@ -102,6 +102,6 @@

    Generic key/value to_map.


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_lists.html b/doc/html/api/cloudi_core-1.7.4/cloudi_lists.html similarity index 98% rename from doc/html/api/cloudi_core-1.7.3/cloudi_lists.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_lists.html index 95f8acda9..33f9fbd7e 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_lists.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_lists.html @@ -14,7 +14,7 @@

    Module cloudi_lists

    List operations

    .

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.3 Sep 15 2018 18:07:39 ------------------------------------------------------------------------

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

    @@ -120,6 +120,6 @@

    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_logger_hut.html b/doc/html/api/cloudi_core-1.7.4/cloudi_logger_hut.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_logger_hut.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_logger_hut.html index b4dcd556e..7e4541c85 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_logger_hut.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_logger_hut.html @@ -14,7 +14,7 @@

    Module cloudi_logger_hut

    CloudI Logger Hut Integration

    .

    Copyright © 2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.1 Sep 15 2018 18:08:33 ------------------------------------------------------------------------

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

    @@ -37,6 +37,6 @@

    Hut callback for CloudI logging.<
    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_logger_lager.html b/doc/html/api/cloudi_core-1.7.4/cloudi_logger_lager.html similarity index 97% rename from doc/html/api/cloudi_core-1.7.3/cloudi_logger_lager.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_logger_lager.html index 0ee2a4ee9..6a9c053fd 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_logger_lager.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_logger_lager.html @@ -14,7 +14,7 @@

    Module cloudi_logger_lager

    CloudI Logger Lager Integration

    .

    Copyright © 2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:45 ------------------------------------------------------------------------

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

    @@ -78,6 +78,6 @@

    Lager
    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_math.html b/doc/html/api/cloudi_core-1.7.4/cloudi_math.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_math.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_math.html index 12ce276cd..4738e36ab 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_math.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_math.html @@ -14,7 +14,7 @@

    Module cloudi_math

    Math operations

    .

    Copyright © 2009-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:45 ------------------------------------------------------------------------

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

    @@ -46,6 +46,6 @@

    Provide a floor function.


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_proplists.html b/doc/html/api/cloudi_core-1.7.4/cloudi_proplists.html similarity index 97% rename from doc/html/api/cloudi_core-1.7.3/cloudi_proplists.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_proplists.html index 6be6b4cd8..83eb3d0af 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_proplists.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_proplists.html @@ -14,7 +14,7 @@

    Module cloudi_proplists

    Proplists Extensions Module

    .

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.3 Sep 15 2018 18:07:19 ------------------------------------------------------------------------

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

    @@ -71,6 +71,6 @@

    Remove many keys from the prop
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_queue.html b/doc/html/api/cloudi_core-1.7.4/cloudi_queue.html similarity index 91% rename from doc/html/api/cloudi_core-1.7.3/cloudi_queue.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_queue.html index 54a2728de..6f4ee1771 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_queue.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_queue.html @@ -18,7 +18,7 @@

    CloudI Send Queue

    with in-memory data.

    .

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:36 ------------------------------------------------------------------------

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

    @@ -40,12 +40,20 @@

    CloudI Send Queue

    be sent concurrently and every request must receive a response (receiving a response is the only proof the transaction was successful).

    - Only one instance of cloudi_queue is necessary within a service's state - due to the transaction id being globally unique. +

    Only one instance of cloudi_queue is necessary within a service's state +due to the transaction id being globally unique.

    + + If retries are enabled (by default, no retries are attempted), it is + possible that a service request will be delivered more than once + (e.g., if the service request is processed but the response is not + sent before a timeout occurs). Each retry sends a service request + with the same transaction id, so it may be used to detect a duplicate + receive (or a separate unique id could be used from within the + RequestInfo or Request data) by checking and modifying service state.

    Data Types

    options()

    -

    options() = [{retry, non_neg_integer()} | {retry_delay, non_neg_integer()} | {ordered, boolean()} | {validate_request_info, fun((RequestInfo::cloudi_service:request_info()) -> boolean()) | {Module1::module(), Function1::atom()}} | {validate_request, fun((RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request()) -> boolean()) | {Module2::module(), Function2::atom()}} | {validate_response_info, fun((ResponseInfo::cloudi_service:response_info()) -> boolean()) | {Module3::module(), Function3::atom()}} | {validate_response, fun((ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()) -> boolean()) | {Module4::module(), Function4::atom()}} | {failures_source_die, boolean()} | {failures_source_max_count, pos_integer()} | {failures_source_max_period, infinity | pos_integer()}]

    +

    options() = [{retry, non_neg_integer()} | {retry_delay, non_neg_integer()} | {ordered, boolean()} | {timeout_default, cloudi_service:timeout_milliseconds()} | {priority_default, cloudi_service:priority()} | {validate_request_info, fun((RequestInfo::cloudi_service:request_info()) -> boolean()) | {Module1::module(), Function1::atom()}} | {validate_request, fun((RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request()) -> boolean()) | {Module2::module(), Function2::atom()}} | {validate_response_info, fun((ResponseInfo::cloudi_service:response_info()) -> boolean()) | {Module3::module(), Function3::atom()}} | {validate_response, fun((ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()) -> boolean()) | {Module4::module(), Function4::atom()}} | {failures_source_die, boolean()} | {failures_source_max_count, pos_integer()} | {failures_source_max_period, infinity | pos_integer()}]

    ordered_requests()

    @@ -57,7 +65,7 @@

    requests()

    state()

    -

    state() = #cloudi_queue{retry = non_neg_integer(), retry_delay = non_neg_integer(), ordered = boolean(), word_size = pos_integer(), service = undefined | pid(), validate_request_info = undefined | fun((any()) -> boolean()), validate_request = undefined | fun((any(), any()) -> boolean()), validate_response_info = undefined | fun((any()) -> boolean()), validate_response = undefined | fun((any(), any()) -> boolean()), failures_source_die = boolean(), failures_source_max_count = pos_integer(), failures_source_max_period = infinity | pos_integer(), failures_source = [cloudi_timestamp:seconds_monotonic()], ordered_requests = ordered_requests(), ordered_pending = non_neg_integer(), requests = requests()}

    +

    state() = #cloudi_queue{retry = non_neg_integer(), retry_delay = non_neg_integer(), ordered = boolean(), timeout_default = cloudi_service:timeout_milliseconds(), priority_default = cloudi_service:priority(), word_size = pos_integer(), service = undefined | pid(), validate_request_info = undefined | fun((any()) -> boolean()), validate_request = undefined | fun((any(), any()) -> boolean()), validate_response_info = undefined | fun((any()) -> boolean()), validate_response = undefined | fun((any(), any()) -> boolean()), failures_source_die = boolean(), failures_source_max_count = pos_integer(), failures_source_max_period = infinity | pos_integer(), failures_source = [cloudi_timestamp:seconds_monotonic()], ordered_requests = ordered_requests(), ordered_pending = non_neg_integer(), requests = requests()}

    Function Index

    @@ -315,6 +323,6 @@

    A service request timeout.


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_request.html b/doc/html/api/cloudi_core-1.7.4/cloudi_request.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_request.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_request.html index eda330ca4..8acde4b10 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_request.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_request.html @@ -15,7 +15,7 @@

    CloudI Request

    Request format transform.

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:14 ------------------------------------------------------------------------

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

    @@ -44,6 +44,6 @@

    Decode incoming external re
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_request_info.html b/doc/html/api/cloudi_core-1.7.4/cloudi_request_info.html similarity index 76% rename from doc/html/api/cloudi_core-1.7.3/cloudi_request_info.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_request_info.html index 6c5de9ac4..06557d96d 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_request_info.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_request_info.html @@ -10,20 +10,20 @@

    Module cloudi_request_info

    - +

    CloudI RequestInfo Creation and Parsing

    RequestInfo is used for request meta-data which is normally key/value pairs that describe the context of the service request - (e.g., HTTP header names and values for a HTTP request). The encoding - provided below is a basic format for textual key/value data + (e.g., HTTP header names and values for a HTTP request). The default + encoding provided below is a basic format for textual key/value data (i.e., neither the key or value should contain a null character, '\0') which is easily parsed in any programming language and is referred to as the 'text_pairs' format. It is valid to have multiple entries for the same key within the RequestInfo data. A key must be of size 1 or greater (<<>> will never exist as a key in text_pairs data).

    . -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:22 ------------------------------------------------------------------------

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

    @@ -31,20 +31,31 @@

    Description

    CloudI RequestInfo Creation and Parsing

    RequestInfo is used for request meta-data which is normally key/value pairs that describe the context of the service request - (e.g., HTTP header names and values for a HTTP request). The encoding - provided below is a basic format for textual key/value data + (e.g., HTTP header names and values for a HTTP request). The default + encoding provided below is a basic format for textual key/value data (i.e., neither the key or value should contain a null character, '\0') which is easily parsed in any programming language and is referred to as the 'text_pairs' format. It is valid to have multiple entries for the same key within the RequestInfo data. A key must be of size 1 or greater (<<>> will never exist as a key in text_pairs data).

    +

    Use the 'binary_pairs' format if any of the key/value data is binary +data (i.e., if any of the key or value data contains +null characters, '\0').

    +

    The ResponseInfo data is normally service request response meta-data (providing the response equivalent of RequestInfo for a request) and can utilize the same functions below.

    These module functions provide Erlang serialization of the 'text_pairs' - format for use with the cloudi_key_value module. + format and the 'binary_pairs' format for use with the + cloudi_key_value module. +

    Data Types

    + +

    format()

    +

    format() = text_pairs | binary_pairs

    + +

    Function Index

    + + + + + - + @@ -107,9 +107,9 @@

    init/1

    init(X1) -> any()

    -

    start_link/16

    +

    start_link/19

    -

    start_link(ProcessIndex, ProcessCount, GroupLeader, Module, Args, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, Config_service_options, ID, Parent) -> any()

    +

    start_link(ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, GroupLeader, Module, Args, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, Config_service_options, ID, Parent) -> any()

    system_code_change/4

    @@ -134,6 +134,6 @@

    terminate/2


    key_value_append/2

    Append RequestInfo key/value data.

    @@ -53,6 +64,10 @@

    Append RequestInfo key/value da

    New RequestInfo key/value data.

    RequestInfo is meant to contain key/value pairs that is request meta-data.

    key_value_new/2 +

    New RequestInfo key/value data.

    + RequestInfo is meant to contain key/value pairs that is request + meta-data.
    key_value_parse/1

    Parse RequestInfo key/value data.

    RequestInfo is meant to contain key/value pairs that is request @@ -77,6 +92,15 @@

    New RequestInfo key/value data. +

    key_value_new/2

    +
    +

    key_value_new(RequestInfo::cloudi_key_value:key_values(), Format::format()) -> Result::binary()

    +

    +

    New RequestInfo key/value data.

    + RequestInfo is meant to contain key/value pairs that is request + meta-data. Create the binary RequestInfo data with any supported + data structure.

    +

    key_value_parse/1

    key_value_parse(RequestInfo::binary() | cloudi_key_value:key_values()) -> Result::#{cloudi_key_value:key() := cloudi_key_value:value()}

    @@ -87,6 +111,6 @@

    Parse RequestInfo key/value data
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_response.html b/doc/html/api/cloudi_core-1.7.4/cloudi_response.html similarity index 96% rename from doc/html/api/cloudi_core-1.7.3/cloudi_response.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_response.html index bb0912bbc..4a6802784 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_response.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_response.html @@ -15,7 +15,7 @@

    CloudI Response

    Response format transform.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:57 ------------------------------------------------------------------------

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

    @@ -38,6 +38,6 @@

    Encode outgoing external r
    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_response_info.html b/doc/html/api/cloudi_core-1.7.4/cloudi_response_info.html similarity index 97% rename from doc/html/api/cloudi_core-1.7.3/cloudi_response_info.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_response_info.html index 981d02d0a..b840dd0ca 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_response_info.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_response_info.html @@ -14,7 +14,7 @@

    Module cloudi_response_info

    CloudI ResponseInfo Creation

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:45 ------------------------------------------------------------------------

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

    @@ -55,6 +55,6 @@

    Overviewerlang logo

    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_service.html b/doc/html/api/cloudi_core-1.7.4/cloudi_service.html similarity index 99% rename from doc/html/api/cloudi_core-1.7.3/cloudi_service.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_service.html index bca27c93d..6e7f719ca 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_service.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_service.html @@ -15,7 +15,7 @@

    CloudI Internal Service Behavior< The interface which all internal services must implement.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:21 +

    Version: 1.7.3 Sep 15 2018 18:08:18 ------------------------------------------------------------------------

    This module defines the cloudi_service behaviour.
    Required callback functions: cloudi_service_init/4, cloudi_service_terminate/3.
    Optional callback functions: cloudi_service_handle_request/11, cloudi_service_handle_info/3.

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

    @@ -986,6 +986,6 @@

    Unsubscribe from a servic
    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_service_api.html b/doc/html/api/cloudi_core-1.7.4/cloudi_service_api.html similarity index 91% rename from doc/html/api/cloudi_core-1.7.3/cloudi_service_api.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_service_api.html index 23112577d..d9c7f6186 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_service_api.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_service_api.html @@ -13,9 +13,9 @@

    Module cloudi_service_api

    CloudI Service API Module

    A module that exposes dynamic configuration of CloudI. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.2 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:12 ------------------------------------------------------------------------

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

    @@ -144,6 +144,10 @@

    chroot_external()

    chroot_external() = file:filename() | undefined

    +

    code_status()

    +

    code_status() = [{build_machine, nonempty_string()} | {build_kernel_version, nonempty_string()} | {build_operating_system, nonempty_string()} | {build_erlang_otp_release, nonempty_string()} | {build_cloudi_time, nonempty_string()} | {build_cloudi_cxx_compiler_version, nonempty_string()} | {build_cloudi_cxx_dependencies_versions, nonempty_string()} | {build_erts_c_compiler_version, nonempty_string()} | {install_erlang_erts_time, nonempty_string()} | {install_erlang_kernel_time, nonempty_string()} | {install_erlang_stdlib_time, nonempty_string()} | {install_erlang_sasl_time, nonempty_string()} | {install_erlang_compiler_time, nonempty_string()} | {install_cloudi_time, nonempty_string()} | {runtime_erlang_erts_version, nonempty_string()} | {runtime_erlang_kernel_version, nonempty_string()} | {runtime_erlang_stdlib_version, nonempty_string()} | {runtime_erlang_sasl_version, nonempty_string()} | {runtime_erlang_compiler_version, nonempty_string()} | {runtime_cloudi_version, nonempty_string()} | {runtime_machine_processors, pos_integer()} | {runtime_start, nonempty_string()} | {runtime_clock, nonempty_string()} | {runtime_clock_offset, nonempty_string()} | {runtime_total, nonempty_string()} | {runtime_cloudi_start, nonempty_string()} | {runtime_cloudi_total, nonempty_string()} | {runtime_cloudi_changes, [[{type, internal | external} | {file_age, nonempty_string()} | {file_path, nonempty_string()} | {service_ids, [service_id(), ...]}, ...]]}, ...]

    + +

    dest_list()

    dest_list() = acl() | undefined

    @@ -352,6 +356,18 @@

    service_proplist()

    service_proplist() = [{type, internal | external} | {prefix, cloudi:service_name_pattern()} | {module, atom() | file:filename()} | {file_path, file:filename()} | {args, list()} | {env, [{string(), string()}]} | {dest_refresh, dest_refresh()} | {protocol, default | local | tcp | udp} | {buffer_size, default | pos_integer()} | {timeout_init, timeout_initialize_value_milliseconds()} | {timeout_async, timeout_send_async_value_milliseconds()} | {timeout_sync, timeout_send_sync_value_milliseconds()} | {dest_list_deny, dest_list()} | {dest_list_allow, dest_list()} | {count_process, pos_integer() | float()} | {count_thread, pos_integer() | float()} | {max_r, non_neg_integer()} | {max_t, seconds()} | {options, service_options_internal() | service_options_external()}, ...]

    +

    service_status()

    +

    service_status() = service_status_internal() | service_status_external()

    + + +

    service_status_external()

    +

    service_status_external() = [{count_process, pos_integer()} | {count_thread, pos_integer()} | {uptime_total, nonempty_string()} | {uptime_running, nonempty_string()} | {uptime_restarts, nonempty_string()} | {downtime_day_restarting, nonempty_string()} | {downtime_week_restarting, nonempty_string()} | {downtime_month_restarting, nonempty_string()} | {downtime_year_restarting, nonempty_string()} | {interrupt_day_updating, nonempty_string()} | {interrupt_week_updating, nonempty_string()} | {interrupt_month_updating, nonempty_string()} | {interrupt_year_updating, nonempty_string()} | {availability_day_total, nonempty_string()} | {availability_day_running, nonempty_string()} | {availability_day_updated, nonempty_string()} | {availability_week_total, nonempty_string()} | {availability_week_running, nonempty_string()} | {availability_week_updated, nonempty_string()} | {availability_month_total, nonempty_string()} | {availability_month_running, nonempty_string()} | {availability_month_updated, nonempty_string()} | {availability_year_total, nonempty_string()} | {availability_year_running, nonempty_string()} | {availability_year_updated, nonempty_string()}, ...]

    + + +

    service_status_internal()

    +

    service_status_internal() = [{count_process, pos_integer()} | {uptime_total, nonempty_string()} | {uptime_running, nonempty_string()} | {uptime_restarts, nonempty_string()} | {downtime_day_restarting, nonempty_string()} | {downtime_week_restarting, nonempty_string()} | {downtime_month_restarting, nonempty_string()} | {downtime_year_restarting, nonempty_string()} | {interrupt_day_updating, nonempty_string()} | {interrupt_week_updating, nonempty_string()} | {interrupt_month_updating, nonempty_string()} | {interrupt_year_updating, nonempty_string()} | {availability_day_total, nonempty_string()} | {availability_day_running, nonempty_string()} | {availability_day_updated, nonempty_string()} | {availability_week_total, nonempty_string()} | {availability_week_running, nonempty_string()} | {availability_week_updated, nonempty_string()} | {availability_month_total, nonempty_string()} | {availability_month_running, nonempty_string()} | {availability_month_updated, nonempty_string()} | {availability_year_total, nonempty_string()} | {availability_year_running, nonempty_string()} | {availability_year_updated, nonempty_string()}, ...]

    + +

    service_update_plan()

    service_update_plan() = service_update_plan_internal() | service_update_plan_external()

    @@ -424,6 +440,11 @@

    Remove a directory from the CloudI Erlang VM code server's search paths.

    This doesn't impact any running services, only services that will be started in the future.
    code_status/1 +

    Provide the current CloudI Erlang VM code status.

    + Both build and runtime information is provided with the + service files changed after CloudI was started + (probably due to service updates).
    logging/1

    Provide the current logging configuration.

    .
    logging_file_set/2 @@ -482,6 +503,8 @@

    Restart service instances.

    services_search/2

    Search service instances for matches on the provided service name.

    Multiple services may be returned for a single service name.
    services_status/2 +

    List the current status of specific services.

    .
    services_update/2

    Update service instances.

    Update service instances without losing service requests and other @@ -541,6 +564,15 @@

    code_status/1

    +
    +

    code_status(Timeout::api_timeout_milliseconds()) -> {ok, code_status()} | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_code_status()}

    +

    +

    Provide the current CloudI Erlang VM code status.

    + Both build and runtime information is provided with the + service files changed after CloudI was started + (probably due to service updates).

    +

    logging/1

    logging(Timeout::api_timeout_milliseconds()) -> {ok, logging_proplist()} | {error, timeout | noproc}

    @@ -557,7 +589,7 @@

    Modify the current log file path

    logging_formatters_set/2

    -

    logging_formatters_set(L::logging_formatters_set_proplist(), Timeout::api_timeout_milliseconds()) -> ok | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_logging_formatters_set()}

    +

    logging_formatters_set(L::logging_formatters_set_proplist() | undefined, Timeout::api_timeout_milliseconds()) -> ok | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_logging_formatters_set()}

    Set the CloudI log formatters.

    lager backend (gen_event) modules are supported as 'output' modules and @@ -596,7 +628,7 @@

    Modify the current log stdout

    logging_syslog_set/2

    -

    logging_syslog_set(L::logging_syslog_set_proplist(), Timeout::api_timeout_milliseconds()) -> ok | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_logging_syslog_set()}

    +

    logging_syslog_set(L::logging_syslog_set_proplist() | undefined, Timeout::api_timeout_milliseconds()) -> ok | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_logging_syslog_set()}

    Set the CloudI syslog configuration.

    @@ -703,7 +735,7 @@

    Restart service instances.

    services_search/2

    -

    services_search(Name::{atom(), cloudi:service_name()} | cloudi:service_name(), Timeout::api_timeout_milliseconds()) -> {ok, [{service_id(), service_internal()} | {service_id(), service_external()}]} | {error, timeout | noproc | service_name_invalid}

    +

    services_search(Name::{atom(), cloudi:service_name()} | cloudi:service_name(), Timeout::api_timeout_milliseconds()) -> {ok, [{service_id(), service_internal()} | {service_id(), service_external()}]} | {error, timeout | noproc | service_name_invalid | cloudi_core_i_configuration:error_reason_services_search()}

    Search service instances for matches on the provided service name.

    Multiple services may be returned for a single service name. Only service @@ -713,6 +745,13 @@

    +

    services_status/2

    +
    +

    services_status(L::[binary() | string()], Timeout::api_timeout_milliseconds()) -> {ok, [{service_id(), service_status()}, ...]} | {error, timeout | noproc | {service_id_invalid, any()} | {service_not_found, any()}}

    +

    +

    List the current status of specific services.

    +

    +

    services_update/2

    services_update(L::[{string() | binary(), service_update_plan()}, ...], Timeout::api_timeout_milliseconds()) -> {ok, ServiceIdsSetsSuccess::[[service_id(), ...], ...]} | {error, {ServiceIdsSetError::[service_id(), ...], Reason::{service_internal_update_failed | service_external_update_failed, any()}}, ServiceIdsSetsSuccess::[[service_id(), ...], ...]} | {error, timeout | noproc | {service_id_invalid, any()} | cloudi_core_i_configuration:error_reason_services_update()}

    @@ -723,6 +762,6 @@

    Update service instances.


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_service_future.html b/doc/html/api/cloudi_core-1.7.4/cloudi_service_future.html similarity index 98% rename from doc/html/api/cloudi_core-1.7.3/cloudi_service_future.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_service_future.html index 5fedebce6..02a3dff71 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_service_future.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_service_future.html @@ -14,7 +14,7 @@

    Module cloudi_service_future

    CloudI Service Futures

    .

    Copyright © 2015-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:57 ------------------------------------------------------------------------

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

    @@ -79,6 +79,6 @@

    Create a future.


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_service_name.html b/doc/html/api/cloudi_core-1.7.4/cloudi_service_name.html similarity index 98% rename from doc/html/api/cloudi_core-1.7.3/cloudi_service_name.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_service_name.html index f572f7d28..6fe7cb220 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_service_name.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_service_name.html @@ -14,7 +14,7 @@

    Module cloudi_service_name

    CloudI Service Name Creation and Parsing

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.1 Sep 15 2018 18:08:43 ------------------------------------------------------------------------

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

    @@ -79,6 +79,6 @@

    Overviewerlang logo

    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_string.html b/doc/html/api/cloudi_core-1.7.4/cloudi_string.html similarity index 95% rename from doc/html/api/cloudi_core-1.7.3/cloudi_string.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_string.html index 70346f2f1..3e5b78b19 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_string.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_string.html @@ -14,7 +14,7 @@

    Module cloudi_string

    String manipulation functions

    .

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:19 +

    Version: 1.7.4 Sep 15 2018 18:06:47 ------------------------------------------------------------------------

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

    @@ -82,8 +82,13 @@

    term_to_binary/1

    Convert an Erlang term to a binary string.

    Output is a utf8 encoded binary.
    term_to_binary_compact/1 +

    Convert an Erlang term to a compact binary string.

    + Output is a utf8 encoded binary.
    term_to_list/1

    Convert an Erlang term to a string.

    .
    term_to_list_compact/1 +

    Convert an Erlang term to a compact string.

    .
    titlecase/1

    Return the string in titlecase.

    .
    trim/1 @@ -291,6 +296,13 @@

    term_to_binary/1

    Convert an Erlang term to a binary string.

    Output is a utf8 encoded binary.

    +

    term_to_binary_compact/1

    +
    +

    term_to_binary_compact(T::any()) -> binary()

    +

    +

    Convert an Erlang term to a compact binary string.

    + Output is a utf8 encoded binary.

    +

    term_to_list/1

    term_to_list(T::any()) -> string()

    @@ -298,6 +310,13 @@

    term_to_list/1

    Convert an Erlang term to a string.

    +

    term_to_list_compact/1

    +
    +

    term_to_list_compact(T::any()) -> string()

    +

    +

    Convert an Erlang term to a compact string.

    +

    +

    titlecase/1

    titlecase(String::string() | binary()) -> string() | binary()

    @@ -356,6 +375,6 @@

    Return the string in uppercase. -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_timestamp.html b/doc/html/api/cloudi_core-1.7.4/cloudi_timestamp.html similarity index 72% rename from doc/html/api/cloudi_core-1.7.3/cloudi_timestamp.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_timestamp.html index 77b5ada62..1fc2e0741 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_timestamp.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_timestamp.html @@ -12,9 +12,9 @@

    Module cloudi_timestamp

    Timestamp operations

    . -

    Copyright © 2015-2017 Michael Truog

    +

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:32 ------------------------------------------------------------------------

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

    @@ -47,6 +47,10 @@

    nanoseconds_monotonic(

    nanoseconds_monotonic() = integer()

    +

    native_monotonic()

    +

    native_monotonic() = integer()

    + +

    seconds_epoch()

    seconds_epoch() = non_neg_integer()

    @@ -57,14 +61,17 @@

    seconds_monotonic()time_unit()

    time_unit() = second | millisecond | microsecond | nanosecond | native | perf_counter | pos_integer()

    -

    UNIX epoch (1970-01-01T00:00:00) offsets (POSIX time)

    +

    UNIX epoch (1970-01-01T00:00:00Z) offsets (POSIX time)

    Function Index

    + (The UNIX epoch is 1970-01-01T00:00:00Z). + + (The UNIX epoch is 1970-01-01T00:00:00Z). + + (The UNIX epoch is 1970-01-01T00:00:00Z). + + + (The UNIX epoch is 1970-01-01T00:00:00Z). + (The UNIX epoch is 1970-01-01T00:00:00Z). + @@ -108,6 +125,10 @@

    Seco

    + + + + + + - + @@ -47,17 +47,17 @@

    Function Details

    'CONNECT'/3

    -

    CONNECT(EventType, Accept, State) -> any()

    +

    'CONNECT'(EventType, Accept, State) -> any()

    'HANDLE'/3

    -

    HANDLE(EventType, Request, State) -> any()

    +

    'HANDLE'(EventType, Request, State) -> any()

    'INIT_WAIT'/3

    -

    INIT_WAIT(EventType, EventContent, State) -> any()

    +

    'INIT_WAIT'(EventType, EventContent, State) -> any()

    callback_mode/0

    @@ -100,9 +100,9 @@

    port/2

    port(Dispatcher, Timeout) -> any()

    -

    start_link/17

    +

    start_link/20

    -

    start_link(Protocol, SocketPath, ThreadIndex, ProcessIndex, ProcessCount, CommandLine, BufferSize, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, Config_service_options, ID) -> any()

    +

    start_link(Protocol, SocketPath, ThreadIndex, ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, CommandLine, BufferSize, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, Config_service_options, ID) -> any()

    stderr/2

    @@ -122,6 +122,6 @@

    terminate/3


    convert/3

    Convert between time units.

    .
    microseconds/0

    Microseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    microseconds_epoch_to_string/1 +

    Create an ISO8601 timestamp from microseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    microseconds_monotonic/0

    Microseconds since an undefined point in time, from the Erlang VM.

    .
    microseconds_os/0 @@ -72,7 +79,10 @@

    Microseconds Always prefer the microseconds function instead of this function.

    milliseconds/0

    Milliseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    milliseconds_epoch_to_string/1 +

    Create an ISO8601 timestamp from milliseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    milliseconds_monotonic/0

    Milliseconds since an undefined point in time, from the Erlang VM.

    .
    milliseconds_os/0 @@ -80,15 +90,19 @@

    Milliseconds Always prefer the milliseconds function instead of this function.

    nanoseconds/0

    Nanoseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    nanoseconds_monotonic/0

    Nanoseconds since an undefined point in time, from the Erlang VM.

    .
    nanoseconds_os/0

    Nanoseconds since the UNIX epoch, from the hardware.

    Always prefer the nanoseconds function instead of this function.
    nanoseconds_to_string/1 +

    Format a nanoseconds duration as a minimal string with lower-precision integers.

    .
    nanoseconds_to_string/2 +

    Format a nanoseconds duration with options as a minimal string with lower-precision integers.

    .
    native/0

    Native time units since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    native_monotonic/0

    Native time units since an undefined point in time, from the Erlang VM.

    .
    native_os/0 @@ -96,7 +110,10 @@

    Native Always prefer the mative function instead of this function.

    seconds/0

    Seconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    seconds_epoch_to_string/1 +

    Create an ISO8601 timestamp from seconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    seconds_filter/3

    Filter a list of seconds since the UNIX epoch.

    The list is not ordered.
    seconds_os/0

    Seconds since the UNIX epoch, from the hardware.

    Always prefer the seconds function instead of this function.
    seconds_to_string/1 +

    Format a seconds duration as a minimal string with lower-precision integers.

    .
    seconds_to_string/2 +

    Format a seconds duration with options as a minimal string with lower-precision integers.

    .
    timestamp/0

    Return an Erlang VM timestamp.

    Not guaranteed to be strictly monotonically increasing @@ -138,7 +159,14 @@

    microseconds/0

    microseconds() -> microseconds_epoch()

    Microseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    microseconds_epoch_to_string/1

    +
    +

    microseconds_epoch_to_string(MicroSeconds::microseconds_epoch()) -> string()

    +

    +

    Create an ISO8601 timestamp from microseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    microseconds_monotonic/0

    @@ -153,14 +181,21 @@

    microseconds_os/0

    Microseconds since the UNIX epoch, from the hardware.

    Always prefer the microseconds function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    milliseconds/0

    milliseconds() -> milliseconds_epoch()

    Milliseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    milliseconds_epoch_to_string/1

    +
    +

    milliseconds_epoch_to_string(MilliSeconds::milliseconds_epoch()) -> string()

    +

    +

    Create an ISO8601 timestamp from milliseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    milliseconds_monotonic/0

    @@ -175,14 +210,14 @@

    milliseconds_os/0

    Milliseconds since the UNIX epoch, from the hardware.

    Always prefer the milliseconds function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    nanoseconds/0

    nanoseconds() -> nanoseconds_epoch()

    Nanoseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    nanoseconds_monotonic/0

    @@ -197,18 +232,32 @@

    nanoseconds_os/0

    Nanoseconds since the UNIX epoch, from the hardware.

    Always prefer the nanoseconds function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    nanoseconds_to_string/1

    +
    +

    nanoseconds_to_string(TotalNanoSeconds::non_neg_integer()) -> nonempty_string()

    +

    +

    Format a nanoseconds duration as a minimal string with lower-precision integers.

    +

    + +

    nanoseconds_to_string/2

    +
    +

    nanoseconds_to_string(TotalNanoSeconds::integer(), Options::signed) -> nonempty_string()

    +

    +

    Format a nanoseconds duration with options as a minimal string with lower-precision integers.

    +

    native/0

    native() -> integer()

    Native time units since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    native_monotonic/0

    -

    native_monotonic() -> integer()

    +

    native_monotonic() -> native_monotonic()

    Native time units since an undefined point in time, from the Erlang VM.

    @@ -219,14 +268,21 @@

    native_os/0

    Native time units since the UNIX epoch, from the hardware.

    Always prefer the mative function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    seconds/0

    seconds() -> seconds_epoch()

    Seconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    seconds_epoch_to_string/1

    +
    +

    seconds_epoch_to_string(Seconds::seconds_epoch()) -> string()

    +

    +

    Create an ISO8601 timestamp from seconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    seconds_filter/3

    @@ -255,7 +311,21 @@

    seconds_os/0

    Seconds since the UNIX epoch, from the hardware.

    Always prefer the seconds function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    seconds_to_string/1

    +
    +

    seconds_to_string(TotalSeconds::non_neg_integer()) -> nonempty_string()

    +

    +

    Format a seconds duration as a minimal string with lower-precision integers.

    +

    + +

    seconds_to_string/2

    +
    +

    seconds_to_string(TotalSeconds::integer(), Options::signed) -> nonempty_string()

    +

    +

    Format a seconds duration with options as a minimal string with lower-precision integers.

    +

    timestamp/0

    @@ -302,6 +372,6 @@

    The uptime of the Erlang n
    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/cloudi_trans_id.html b/doc/html/api/cloudi_core-1.7.4/cloudi_trans_id.html similarity index 98% rename from doc/html/api/cloudi_core-1.7.3/cloudi_trans_id.html rename to doc/html/api/cloudi_core-1.7.4/cloudi_trans_id.html index 318d6bbb6..804265924 100644 --- a/doc/html/api/cloudi_core-1.7.3/cloudi_trans_id.html +++ b/doc/html/api/cloudi_core-1.7.4/cloudi_trans_id.html @@ -18,7 +18,7 @@

    CloudI Transaction ID Usage

    of the request and its response result.

    Copyright © 2015-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:08:07 ------------------------------------------------------------------------

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

    @@ -126,6 +126,6 @@

    Return the transacti
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/edoc-info b/doc/html/api/cloudi_core-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_core-1.7.3/edoc-info rename to doc/html/api/cloudi_core-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_core-1.7.3/erlang.png b/doc/html/api/cloudi_core-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_core-1.7.3/erlang.png rename to doc/html/api/cloudi_core-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_core-1.7.3/index.html b/doc/html/api/cloudi_core-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_core-1.7.3/index.html rename to doc/html/api/cloudi_core-1.7.4/index.html diff --git a/doc/html/api/cloudi_core-1.7.3/modules-frame.html b/doc/html/api/cloudi_core-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_core-1.7.3/modules-frame.html rename to doc/html/api/cloudi_core-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_core-1.7.3/overview-summary.html b/doc/html/api/cloudi_core-1.7.4/overview-summary.html similarity index 94% rename from doc/html/api/cloudi_core-1.7.3/overview-summary.html rename to doc/html/api/cloudi_core-1.7.4/overview-summary.html index d1e92c47d..2ecc51aa3 100644 --- a/doc/html/api/cloudi_core-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_core-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_core application


    -

    Generated by EDoc, Feb 26 2018, 17:29:22.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_core-1.7.3/stylesheet.css b/doc/html/api/cloudi_core-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_core-1.7.3/stylesheet.css rename to doc/html/api/cloudi_core-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_api_requests-1.7.3/cloudi_json_rpc.html b/doc/html/api/cloudi_service_api_requests-1.7.3/cloudi_json_rpc.html deleted file mode 100644 index 3ca046cb7..000000000 --- a/doc/html/api/cloudi_service_api_requests-1.7.3/cloudi_json_rpc.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - -Module cloudi_json_rpc - - - - -
    - -

    Module cloudi_json_rpc

    - -

    CloudI JSON RPC

    . -

    Copyright © 2011-2017 Michael Truog

    - -

    Version: 1.7.1 Jun 7 2017 10:36:25 - ------------------------------------------------------------------------

    -

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

    - -

    Description

    -

    CloudI JSON RPC

    - -

    Function Index

    - - - - - - -
    request_to_json/2
    request_to_json/3
    request_to_term/1
    response_to_json/2
    response_to_json/4
    response_to_term/1
    - -

    Function Details

    - -

    request_to_json/2

    -
    -

    request_to_json(Method::atom() | string() | binary(), Id::integer()) -> binary()

    -
    - -

    request_to_json/3

    -
    -

    request_to_json(Method::atom() | string() | binary(), Params::list(), Id::integer()) -> binary()

    -
    - -

    request_to_term/1

    -
    -

    request_to_term(Data::binary() | string()) -> {binary(), [binary()], integer()}

    -
    - -

    response_to_json/2

    -
    -

    response_to_json(Result::binary(), Id::integer()) -> binary()

    -
    - -

    response_to_json/4

    -
    -

    response_to_json(Result::binary() | null, ErrorCode::integer() | null, ErrorMessage::binary() | null, Id::binary() | integer()) -> binary()

    -
    - -

    response_to_term/1

    -
    -

    response_to_term(Data::binary() | string()) -> {binary(), integer() | null, binary() | null, binary() | integer()}

    -
    -
    - - -

    Generated by EDoc, Jun 7 2017, 10:36:25.

    - - diff --git a/doc/html/api/cloudi_service_api_requests-1.7.4/cloudi_json_rpc.html b/doc/html/api/cloudi_service_api_requests-1.7.4/cloudi_json_rpc.html new file mode 100644 index 000000000..e09c4011d --- /dev/null +++ b/doc/html/api/cloudi_service_api_requests-1.7.4/cloudi_json_rpc.html @@ -0,0 +1,161 @@ + + + + +Module cloudi_json_rpc + + + + +
    + +

    Module cloudi_json_rpc

    + +

    CloudI JSON RPC

    + Implementation based on the version 2.0 of the JSON-RPC specification. +

    Copyright © 2011-2018 Michael Truog

    + +

    Version: 1.7.4 Sep 15 2018 20:18:49 + ------------------------------------------------------------------------

    +

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

    + +

    Description

    +

    CloudI JSON RPC

    + Implementation based on the version 2.0 of the JSON-RPC specification. + Named parameters are not supported to ensure parameters always have + an implicit order. Batch requests are not supported. +

    Data Types

    + +

    error_code()

    +

    error_code() = integer()

    + + +

    error_message()

    +

    error_message() = binary()

    + + +

    id()

    +

    id() = binary() | integer() | null

    + + +

    method()

    +

    method() = binary()

    + + +

    params()

    +

    params() = list()

    + + +

    result()

    +

    result() = any()

    + + +

    Function Index

    + + + + + + + + + + + +
    error_internal_error/1 +

    Internal JSON-RPC error.

    .
    error_invalid_params/1 +

    Invalid method parameter(s).

    .
    error_invalid_request/0 +

    The JSON sent is not a valid Request object.

    .
    error_method_not_found/1 +

    The method does not exist / is not available.

    .
    error_parsing/0 +

    Invalid JSON was received by the server.

    .
    request_to_json/2 +

    Create a JSON-RPC request in a JSON binary.

    .
    request_to_json/3 +

    Create a JSON-RPC request with parameters in a JSON binary.

    .
    request_to_term/1 +

    Parse a JSON-RPC request to create Erlang terms.

    .
    response_to_json/2 +

    Create a JSON-RPC response in a JSON binary.

    .
    response_to_json/4 +

    Create a JSON-RPC error response in a JSON binary.

    .
    response_to_term/1 +

    Parse a JSON-RPC response to create Erlang terms.

    .
    + +

    Function Details

    + +

    error_internal_error/1

    +
    +

    error_internal_error(Id::id()) -> binary()

    +

    +

    Internal JSON-RPC error.

    +

    + +

    error_invalid_params/1

    +
    +

    error_invalid_params(Id::id()) -> binary()

    +

    +

    Invalid method parameter(s).

    +

    + +

    error_invalid_request/0

    +
    +

    error_invalid_request() -> binary()

    +

    +

    The JSON sent is not a valid Request object.

    +

    + +

    error_method_not_found/1

    +
    +

    error_method_not_found(Id::id()) -> binary()

    +

    +

    The method does not exist / is not available.

    +

    + +

    error_parsing/0

    +
    +

    error_parsing() -> binary()

    +

    +

    Invalid JSON was received by the server.

    +

    + +

    request_to_json/2

    +
    +

    request_to_json(Method::atom() | string() | binary(), Id::id()) -> binary()

    +

    +

    Create a JSON-RPC request in a JSON binary.

    +

    + +

    request_to_json/3

    +
    +

    request_to_json(Method::atom() | string() | binary(), Params::params(), Id::id()) -> binary()

    +

    +

    Create a JSON-RPC request with parameters in a JSON binary.

    +

    + +

    request_to_term/1

    +
    +

    request_to_term(Data::binary() | string()) -> {method(), params(), id()}

    +

    +

    Parse a JSON-RPC request to create Erlang terms.

    +

    + +

    response_to_json/2

    +
    +

    response_to_json(Result::result(), Id::id()) -> binary()

    +

    +

    Create a JSON-RPC response in a JSON binary.

    +

    + +

    response_to_json/4

    +
    +

    response_to_json(Result::result() | null, ErrorCode::error_code() | null, ErrorMessage::error_message() | null, Id::id()) -> binary()

    +

    +

    Create a JSON-RPC error response in a JSON binary.

    +

    + +

    response_to_term/1

    +
    +

    response_to_term(Data::binary() | string()) -> {result(), error_code() | null, error_message() | null, id()}

    +

    +

    Parse a JSON-RPC response to create Erlang terms.

    +

    +
    + + +

    Generated by EDoc

    + + diff --git a/doc/html/api/cloudi_service_api_requests-1.7.3/cloudi_service_api_requests.html b/doc/html/api/cloudi_service_api_requests-1.7.4/cloudi_service_api_requests.html similarity index 84% rename from doc/html/api/cloudi_service_api_requests-1.7.3/cloudi_service_api_requests.html rename to doc/html/api/cloudi_service_api_requests-1.7.4/cloudi_service_api_requests.html index ec60d3222..3b58c0b6c 100644 --- a/doc/html/api/cloudi_service_api_requests-1.7.3/cloudi_service_api_requests.html +++ b/doc/html/api/cloudi_service_api_requests-1.7.4/cloudi_service_api_requests.html @@ -13,9 +13,9 @@

    Module cloudi_service_api_requests

    CloudI Service API Requests

    A service that exposes dynamic configuration of CloudI. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 10:36:25 +

    Version: 1.7.4 Sep 15 2018 20:18:49 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -24,19 +24,13 @@

    Description

    CloudI Service API Requests

    A service that exposes dynamic configuration of CloudI.

    Function Index

    - - +
    cloudi_service_handle_info/3
    cloudi_service_handle_request/11
    cloudi_service_handle_request/11
    cloudi_service_init/4
    cloudi_service_terminate/3

    Function Details

    -

    cloudi_service_handle_info/3

    -
    -

    cloudi_service_handle_info(Request, State, X3) -> any()

    -
    -

    cloudi_service_handle_request/11

    cloudi_service_handle_request(Type, Name, Pattern, RequestInfo, Request, Timeout, Priority, TransId, Pid, State, Dispatcher) -> any()

    @@ -54,6 +48,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Jun 7 2017, 10:36:25.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_api_requests-1.7.3/edoc-info b/doc/html/api/cloudi_service_api_requests-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_api_requests-1.7.3/edoc-info rename to doc/html/api/cloudi_service_api_requests-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_api_requests-1.7.3/erlang.png b/doc/html/api/cloudi_service_api_requests-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_api_requests-1.7.3/erlang.png rename to doc/html/api/cloudi_service_api_requests-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_api_requests-1.7.3/index.html b/doc/html/api/cloudi_service_api_requests-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_api_requests-1.7.3/index.html rename to doc/html/api/cloudi_service_api_requests-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_api_requests-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_api_requests-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_api_requests-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_api_requests-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_api_requests-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_api_requests-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_api_requests-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_api_requests-1.7.4/overview-summary.html index 4954982c5..fac7fce54 100644 --- a/doc/html/api/cloudi_service_api_requests-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_api_requests-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_api_requests application


    -

    Generated by EDoc, Jun 7 2017, 10:36:25.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_api_requests-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_api_requests-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_api_requests-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_api_requests-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_db_mysql-1.7.3/cloudi_service_db_mysql.html b/doc/html/api/cloudi_service_db_mysql-1.7.4/cloudi_service_db_mysql.html similarity index 98% rename from doc/html/api/cloudi_service_db_mysql-1.7.3/cloudi_service_db_mysql.html rename to doc/html/api/cloudi_service_db_mysql-1.7.4/cloudi_service_db_mysql.html index 78cf6b9ce..7bc48f1cf 100644 --- a/doc/html/api/cloudi_service_db_mysql-1.7.3/cloudi_service_db_mysql.html +++ b/doc/html/api/cloudi_service_db_mysql-1.7.4/cloudi_service_db_mysql.html @@ -12,9 +12,9 @@

    Module cloudi_service_db_mysql

    CloudI MySQL Data Module

    . -

    Copyright © 2009-2017 Michael Truog

    +

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 10:41:18 +

    Version: 1.7.4 Sep 15 2018 20:25:00 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -175,6 +175,6 @@

    A lis
    -

    Generated by EDoc, Jun 7 2017, 10:41:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_db_mysql-1.7.3/edoc-info b/doc/html/api/cloudi_service_db_mysql-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_db_mysql-1.7.3/edoc-info rename to doc/html/api/cloudi_service_db_mysql-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_db_mysql-1.7.3/erlang.png b/doc/html/api/cloudi_service_db_mysql-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_db_mysql-1.7.3/erlang.png rename to doc/html/api/cloudi_service_db_mysql-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_db_mysql-1.7.3/index.html b/doc/html/api/cloudi_service_db_mysql-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_db_mysql-1.7.3/index.html rename to doc/html/api/cloudi_service_db_mysql-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_db_mysql-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_db_mysql-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_db_mysql-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_db_mysql-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_db_mysql-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_db_mysql-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_db_mysql-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_db_mysql-1.7.4/overview-summary.html index cf09311cd..fe2429eb3 100644 --- a/doc/html/api/cloudi_service_db_mysql-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_db_mysql-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_db_mysql application


    -

    Generated by EDoc, Jun 7 2017, 10:41:19.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_db_mysql-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_db_mysql-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_db_mysql-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_db_mysql-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_db_pgsql-1.7.3/cloudi_service_db_pgsql.html b/doc/html/api/cloudi_service_db_pgsql-1.7.4/cloudi_service_db_pgsql.html similarity index 98% rename from doc/html/api/cloudi_service_db_pgsql-1.7.3/cloudi_service_db_pgsql.html rename to doc/html/api/cloudi_service_db_pgsql-1.7.4/cloudi_service_db_pgsql.html index 4f0c6996e..900ad2fd8 100644 --- a/doc/html/api/cloudi_service_db_pgsql-1.7.3/cloudi_service_db_pgsql.html +++ b/doc/html/api/cloudi_service_db_pgsql-1.7.4/cloudi_service_db_pgsql.html @@ -12,9 +12,9 @@

    Module cloudi_service_db_pgsql

    CloudI PostgreSQL Data Module

    . -

    Copyright © 2009-2017 Michael Truog

    +

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 10:46:40 +

    Version: 1.7.4 Sep 15 2018 20:38:07 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -147,6 +147,6 @@

    A lis
    -

    Generated by EDoc, Jun 7 2017, 10:46:40.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_db_pgsql-1.7.3/edoc-info b/doc/html/api/cloudi_service_db_pgsql-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_db_pgsql-1.7.3/edoc-info rename to doc/html/api/cloudi_service_db_pgsql-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_db_pgsql-1.7.3/erlang.png b/doc/html/api/cloudi_service_db_pgsql-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_db_pgsql-1.7.3/erlang.png rename to doc/html/api/cloudi_service_db_pgsql-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_db_pgsql-1.7.3/index.html b/doc/html/api/cloudi_service_db_pgsql-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_db_pgsql-1.7.3/index.html rename to doc/html/api/cloudi_service_db_pgsql-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_db_pgsql-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_db_pgsql-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_db_pgsql-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_db_pgsql-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_db_pgsql-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_db_pgsql-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_db_pgsql-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_db_pgsql-1.7.4/overview-summary.html index e95a465e9..f25d10960 100644 --- a/doc/html/api/cloudi_service_db_pgsql-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_db_pgsql-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_db_pgsql application


    -

    Generated by EDoc, Jun 7 2017, 10:46:40.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_db_pgsql-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_db_pgsql-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_db_pgsql-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_db_pgsql-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_filesystem-1.7.3/cloudi_service_filesystem.html b/doc/html/api/cloudi_service_filesystem-1.7.4/cloudi_service_filesystem.html similarity index 100% rename from doc/html/api/cloudi_service_filesystem-1.7.3/cloudi_service_filesystem.html rename to doc/html/api/cloudi_service_filesystem-1.7.4/cloudi_service_filesystem.html diff --git a/doc/html/api/cloudi_service_filesystem-1.7.3/cloudi_service_filesystem_parse.html b/doc/html/api/cloudi_service_filesystem-1.7.4/cloudi_service_filesystem_parse.html similarity index 100% rename from doc/html/api/cloudi_service_filesystem-1.7.3/cloudi_service_filesystem_parse.html rename to doc/html/api/cloudi_service_filesystem-1.7.4/cloudi_service_filesystem_parse.html diff --git a/doc/html/api/cloudi_service_filesystem-1.7.3/edoc-info b/doc/html/api/cloudi_service_filesystem-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_filesystem-1.7.3/edoc-info rename to doc/html/api/cloudi_service_filesystem-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_filesystem-1.7.3/erlang.png b/doc/html/api/cloudi_service_filesystem-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_filesystem-1.7.3/erlang.png rename to doc/html/api/cloudi_service_filesystem-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_filesystem-1.7.3/index.html b/doc/html/api/cloudi_service_filesystem-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_filesystem-1.7.3/index.html rename to doc/html/api/cloudi_service_filesystem-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_filesystem-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_filesystem-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_filesystem-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_filesystem-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_filesystem-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_filesystem-1.7.4/overview-summary.html similarity index 100% rename from doc/html/api/cloudi_service_filesystem-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_filesystem-1.7.4/overview-summary.html diff --git a/doc/html/api/cloudi_service_filesystem-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_filesystem-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_filesystem-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_filesystem-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_http_client-1.7.3/cloudi_service_http_client.html b/doc/html/api/cloudi_service_http_client-1.7.4/cloudi_service_http_client.html similarity index 100% rename from doc/html/api/cloudi_service_http_client-1.7.3/cloudi_service_http_client.html rename to doc/html/api/cloudi_service_http_client-1.7.4/cloudi_service_http_client.html diff --git a/doc/html/api/cloudi_service_http_client-1.7.3/edoc-info b/doc/html/api/cloudi_service_http_client-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_http_client-1.7.3/edoc-info rename to doc/html/api/cloudi_service_http_client-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_http_client-1.7.3/erlang.png b/doc/html/api/cloudi_service_http_client-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_http_client-1.7.3/erlang.png rename to doc/html/api/cloudi_service_http_client-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_http_client-1.7.3/index.html b/doc/html/api/cloudi_service_http_client-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_http_client-1.7.3/index.html rename to doc/html/api/cloudi_service_http_client-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_http_client-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_http_client-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_http_client-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_http_client-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_http_client-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_http_client-1.7.4/overview-summary.html similarity index 100% rename from doc/html/api/cloudi_service_http_client-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_http_client-1.7.4/overview-summary.html diff --git a/doc/html/api/cloudi_service_http_client-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_http_client-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_http_client-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_http_client-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_http_cowboy-1.7.3/cloudi_http_cowboy_handler.html b/doc/html/api/cloudi_service_http_cowboy-1.7.4/cloudi_http_cowboy_handler.html similarity index 100% rename from doc/html/api/cloudi_service_http_cowboy-1.7.3/cloudi_http_cowboy_handler.html rename to doc/html/api/cloudi_service_http_cowboy-1.7.4/cloudi_http_cowboy_handler.html diff --git a/doc/html/api/cloudi_service_http_cowboy-1.7.3/cloudi_service_http_cowboy.html b/doc/html/api/cloudi_service_http_cowboy-1.7.4/cloudi_service_http_cowboy.html similarity index 100% rename from doc/html/api/cloudi_service_http_cowboy-1.7.3/cloudi_service_http_cowboy.html rename to doc/html/api/cloudi_service_http_cowboy-1.7.4/cloudi_service_http_cowboy.html diff --git a/doc/html/api/cloudi_service_http_cowboy-1.7.3/edoc-info b/doc/html/api/cloudi_service_http_cowboy-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_http_cowboy-1.7.3/edoc-info rename to doc/html/api/cloudi_service_http_cowboy-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_http_cowboy-1.7.3/erlang.png b/doc/html/api/cloudi_service_http_cowboy-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_http_cowboy-1.7.3/erlang.png rename to doc/html/api/cloudi_service_http_cowboy-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_http_cowboy-1.7.3/index.html b/doc/html/api/cloudi_service_http_cowboy-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_http_cowboy-1.7.3/index.html rename to doc/html/api/cloudi_service_http_cowboy-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_http_cowboy-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_http_cowboy-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_http_cowboy-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_http_cowboy-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_http_cowboy-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_http_cowboy-1.7.4/overview-summary.html similarity index 100% rename from doc/html/api/cloudi_service_http_cowboy-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_http_cowboy-1.7.4/overview-summary.html diff --git a/doc/html/api/cloudi_service_http_cowboy-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_http_cowboy-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_http_cowboy-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_http_cowboy-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_http_elli-1.7.3/cloudi_http_elli_handler.html b/doc/html/api/cloudi_service_http_elli-1.7.4/cloudi_http_elli_handler.html similarity index 100% rename from doc/html/api/cloudi_service_http_elli-1.7.3/cloudi_http_elli_handler.html rename to doc/html/api/cloudi_service_http_elli-1.7.4/cloudi_http_elli_handler.html diff --git a/doc/html/api/cloudi_service_http_elli-1.7.3/cloudi_service_http_elli.html b/doc/html/api/cloudi_service_http_elli-1.7.4/cloudi_service_http_elli.html similarity index 100% rename from doc/html/api/cloudi_service_http_elli-1.7.3/cloudi_service_http_elli.html rename to doc/html/api/cloudi_service_http_elli-1.7.4/cloudi_service_http_elli.html diff --git a/doc/html/api/cloudi_service_http_elli-1.7.3/edoc-info b/doc/html/api/cloudi_service_http_elli-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_http_elli-1.7.3/edoc-info rename to doc/html/api/cloudi_service_http_elli-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_http_elli-1.7.3/erlang.png b/doc/html/api/cloudi_service_http_elli-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_http_elli-1.7.3/erlang.png rename to doc/html/api/cloudi_service_http_elli-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_http_elli-1.7.3/index.html b/doc/html/api/cloudi_service_http_elli-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_http_elli-1.7.3/index.html rename to doc/html/api/cloudi_service_http_elli-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_http_elli-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_http_elli-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_http_elli-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_http_elli-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_http_elli-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_http_elli-1.7.4/overview-summary.html similarity index 100% rename from doc/html/api/cloudi_service_http_elli-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_http_elli-1.7.4/overview-summary.html diff --git a/doc/html/api/cloudi_service_http_elli-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_http_elli-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_http_elli-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_http_elli-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_http_rest-1.7.3/cloudi_service_http_rest.html b/doc/html/api/cloudi_service_http_rest-1.7.4/cloudi_service_http_rest.html similarity index 98% rename from doc/html/api/cloudi_service_http_rest-1.7.3/cloudi_service_http_rest.html rename to doc/html/api/cloudi_service_http_rest-1.7.4/cloudi_service_http_rest.html index f69ab8cb7..03269d02f 100644 --- a/doc/html/api/cloudi_service_http_rest-1.7.3/cloudi_service_http_rest.html +++ b/doc/html/api/cloudi_service_http_rest-1.7.4/cloudi_service_http_rest.html @@ -17,7 +17,7 @@

    CloudI HTTP REST Integration

    arguments.

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 18:33:30 +

    Version: 1.7.4 Sep 15 2018 21:02:13 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -80,6 +80,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 18:33:30.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_http_rest-1.7.3/edoc-info b/doc/html/api/cloudi_service_http_rest-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_http_rest-1.7.3/edoc-info rename to doc/html/api/cloudi_service_http_rest-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_http_rest-1.7.3/erlang.png b/doc/html/api/cloudi_service_http_rest-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_http_rest-1.7.3/erlang.png rename to doc/html/api/cloudi_service_http_rest-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_http_rest-1.7.3/index.html b/doc/html/api/cloudi_service_http_rest-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_http_rest-1.7.3/index.html rename to doc/html/api/cloudi_service_http_rest-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_http_rest-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_http_rest-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_http_rest-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_http_rest-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_http_rest-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_http_rest-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_http_rest-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_http_rest-1.7.4/overview-summary.html index e2f2620bd..e36c83542 100644 --- a/doc/html/api/cloudi_service_http_rest-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_http_rest-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_http_rest application


    -

    Generated by EDoc, Feb 26 2018, 18:33:30.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_http_rest-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_http_rest-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_http_rest-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_http_rest-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_map_reduce-1.7.3/cloudi_service_map_reduce.html b/doc/html/api/cloudi_service_map_reduce-1.7.4/cloudi_service_map_reduce.html similarity index 94% rename from doc/html/api/cloudi_service_map_reduce-1.7.3/cloudi_service_map_reduce.html rename to doc/html/api/cloudi_service_map_reduce-1.7.4/cloudi_service_map_reduce.html index 7779c0ca0..656edd3fa 100644 --- a/doc/html/api/cloudi_service_map_reduce-1.7.3/cloudi_service_map_reduce.html +++ b/doc/html/api/cloudi_service_map_reduce-1.7.4/cloudi_service_map_reduce.html @@ -14,9 +14,9 @@

    Module cloudi_service_map_reduce

    CloudI (Abstract) Map-Reduce Service

    This module provides an Erlang behaviour for fault-tolerant, database agnostic map-reduce. -

    Copyright © 2012-2017 Michael Truog

    +

    Copyright © 2012-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 18:47:42 +

    Version: 1.7.4 Sep 15 2018 21:12:10 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

    This module defines the cloudi_service_map_reduce behaviour.
    Required callback functions: cloudi_service_map_reduce_new/5, cloudi_service_map_reduce_send/2, cloudi_service_map_reduce_resend/2, cloudi_service_map_reduce_recv/7, cloudi_service_map_reduce_info/3.

    @@ -43,7 +43,7 @@

    Function Details

    cloudi_service_handle_info/3

    -

    cloudi_service_handle_info(Init, State, Dispatcher) -> any()

    +

    cloudi_service_handle_info(Init_begin, State, Dispatcher) -> any()

    cloudi_service_handle_request/11

    @@ -63,6 +63,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 18:47:42.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_map_reduce-1.7.3/cloudi_task_size.html b/doc/html/api/cloudi_service_map_reduce-1.7.4/cloudi_task_size.html similarity index 96% rename from doc/html/api/cloudi_service_map_reduce-1.7.3/cloudi_task_size.html rename to doc/html/api/cloudi_service_map_reduce-1.7.4/cloudi_task_size.html index c0051c245..73600b803 100644 --- a/doc/html/api/cloudi_service_map_reduce-1.7.3/cloudi_task_size.html +++ b/doc/html/api/cloudi_service_map_reduce-1.7.4/cloudi_task_size.html @@ -14,7 +14,7 @@

    Module cloudi_task_size

    CloudI Task Size Calculation

    .

    Copyright © 2009-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 18:47:41 +

    Version: 1.7.1 Sep 15 2018 21:12:10 ------------------------------------------------------------------------

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

    @@ -24,7 +24,7 @@

    CloudI Task Size Calculation

    Data Types

    state()

    -

    state() = #cloudi_task_size{task_count = pos_integer(), task_size_initial = integer(), task_size_min = integer(), task_size_max = integer(), target_time = float(), target_time_min = float(), target_time_max = float(), target_time_incr = integer(), target_time_decr = integer(), lookup = #{}}

    +

    state() = #cloudi_task_size{task_count = pos_integer(), task_size_initial = integer(), task_size_min = integer(), task_size_max = integer(), target_time = float(), target_time_min = float(), target_time_max = float(), target_time_incr = integer(), target_time_decr = integer(), lookup = #{node() := #node{task_size = number()}}}

    Function Index

    @@ -71,6 +71,6 @@

    Reduce the task size after a
    -

    Generated by EDoc, Feb 26 2018, 18:47:42.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_map_reduce-1.7.3/edoc-info b/doc/html/api/cloudi_service_map_reduce-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_map_reduce-1.7.3/edoc-info rename to doc/html/api/cloudi_service_map_reduce-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_map_reduce-1.7.3/erlang.png b/doc/html/api/cloudi_service_map_reduce-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_map_reduce-1.7.3/erlang.png rename to doc/html/api/cloudi_service_map_reduce-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_map_reduce-1.7.3/index.html b/doc/html/api/cloudi_service_map_reduce-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_map_reduce-1.7.3/index.html rename to doc/html/api/cloudi_service_map_reduce-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_map_reduce-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_map_reduce-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_map_reduce-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_map_reduce-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_map_reduce-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_map_reduce-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_map_reduce-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_map_reduce-1.7.4/overview-summary.html index 42eeb5196..730df12e5 100644 --- a/doc/html/api/cloudi_service_map_reduce-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_map_reduce-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_map_reduce application


    -

    Generated by EDoc, Feb 26 2018, 18:47:42.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_map_reduce-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_map_reduce-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_map_reduce-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_map_reduce-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_monitoring-1.7.3/cloudi_service_monitoring.html b/doc/html/api/cloudi_service_monitoring-1.7.4/cloudi_service_monitoring.html similarity index 100% rename from doc/html/api/cloudi_service_monitoring-1.7.3/cloudi_service_monitoring.html rename to doc/html/api/cloudi_service_monitoring-1.7.4/cloudi_service_monitoring.html diff --git a/doc/html/api/cloudi_service_monitoring-1.7.3/cloudi_service_monitoring_cloudi.html b/doc/html/api/cloudi_service_monitoring-1.7.4/cloudi_service_monitoring_cloudi.html similarity index 100% rename from doc/html/api/cloudi_service_monitoring-1.7.3/cloudi_service_monitoring_cloudi.html rename to doc/html/api/cloudi_service_monitoring-1.7.4/cloudi_service_monitoring_cloudi.html diff --git a/doc/html/api/cloudi_service_monitoring-1.7.3/cloudi_service_monitoring_erlang.html b/doc/html/api/cloudi_service_monitoring-1.7.4/cloudi_service_monitoring_erlang.html similarity index 100% rename from doc/html/api/cloudi_service_monitoring-1.7.3/cloudi_service_monitoring_erlang.html rename to doc/html/api/cloudi_service_monitoring-1.7.4/cloudi_service_monitoring_erlang.html diff --git a/doc/html/api/cloudi_service_monitoring-1.7.3/edoc-info b/doc/html/api/cloudi_service_monitoring-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_monitoring-1.7.3/edoc-info rename to doc/html/api/cloudi_service_monitoring-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_monitoring-1.7.3/erlang.png b/doc/html/api/cloudi_service_monitoring-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_monitoring-1.7.3/erlang.png rename to doc/html/api/cloudi_service_monitoring-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_monitoring-1.7.3/index.html b/doc/html/api/cloudi_service_monitoring-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_monitoring-1.7.3/index.html rename to doc/html/api/cloudi_service_monitoring-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_monitoring-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_monitoring-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_monitoring-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_monitoring-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_monitoring-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_monitoring-1.7.4/overview-summary.html similarity index 100% rename from doc/html/api/cloudi_service_monitoring-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_monitoring-1.7.4/overview-summary.html diff --git a/doc/html/api/cloudi_service_monitoring-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_monitoring-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_monitoring-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_monitoring-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_null-1.7.3/cloudi_service_null.html b/doc/html/api/cloudi_service_null-1.7.4/cloudi_service_null.html similarity index 95% rename from doc/html/api/cloudi_service_null-1.7.3/cloudi_service_null.html rename to doc/html/api/cloudi_service_null-1.7.4/cloudi_service_null.html index 9a85f40c8..3c4828ef2 100644 --- a/doc/html/api/cloudi_service_null-1.7.3/cloudi_service_null.html +++ b/doc/html/api/cloudi_service_null-1.7.4/cloudi_service_null.html @@ -13,9 +13,9 @@

    Module cloudi_service_null

    Null Response CloudI Service

    Simple /dev/null equivalent as a CloudI service. -

    Copyright © 2017 Michael Truog

    +

    Copyright © 2017-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 18:58:46 +

    Version: 1.7.4 Sep 15 2018 21:22:33 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -48,6 +48,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 18:58:46.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_null-1.7.3/edoc-info b/doc/html/api/cloudi_service_null-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_null-1.7.3/edoc-info rename to doc/html/api/cloudi_service_null-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_null-1.7.3/erlang.png b/doc/html/api/cloudi_service_null-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_null-1.7.3/erlang.png rename to doc/html/api/cloudi_service_null-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_null-1.7.3/index.html b/doc/html/api/cloudi_service_null-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_null-1.7.3/index.html rename to doc/html/api/cloudi_service_null-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_null-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_null-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_null-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_null-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_null-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_null-1.7.4/overview-summary.html similarity index 94% rename from doc/html/api/cloudi_service_null-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_null-1.7.4/overview-summary.html index 982cd0100..e8ff54a50 100644 --- a/doc/html/api/cloudi_service_null-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_null-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_null application


    -

    Generated by EDoc, Feb 26 2018, 18:58:46.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_null-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_null-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_null-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_null-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1.html b/doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1.html similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1.html rename to doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1.html diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_data.html b/doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_data.html similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_data.html rename to doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_data.html diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_db.html b/doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_db.html similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_db.html rename to doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_db.html diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_db_pgsql.html b/doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_db_pgsql.html similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_db_pgsql.html rename to doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_db_pgsql.html diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_db_riak.html b/doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_db_riak.html similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_db_riak.html rename to doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_db_riak.html diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_parse.html b/doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_parse.html similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/cloudi_service_oauth1_parse.html rename to doc/html/api/cloudi_service_oauth1-1.7.4/cloudi_service_oauth1_parse.html diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/edoc-info b/doc/html/api/cloudi_service_oauth1-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/edoc-info rename to doc/html/api/cloudi_service_oauth1-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/erlang.png b/doc/html/api/cloudi_service_oauth1-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/erlang.png rename to doc/html/api/cloudi_service_oauth1-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/index.html b/doc/html/api/cloudi_service_oauth1-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/index.html rename to doc/html/api/cloudi_service_oauth1-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_oauth1-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_oauth1-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_oauth1-1.7.4/overview-summary.html similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_oauth1-1.7.4/overview-summary.html diff --git a/doc/html/api/cloudi_service_oauth1-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_oauth1-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_oauth1-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_oauth1-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_queue-1.7.3/cloudi_write_ahead_logging.html b/doc/html/api/cloudi_service_queue-1.7.3/cloudi_write_ahead_logging.html deleted file mode 100644 index ae6b350e9..000000000 --- a/doc/html/api/cloudi_service_queue-1.7.3/cloudi_write_ahead_logging.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - -Module cloudi_write_ahead_logging - - - - -
    - -

    Module cloudi_write_ahead_logging

    - -

    CloudI Write Ahead Logging (WAL)

    - File storage for transaction logging done by cloudi_service_queue. -

    Copyright © 2014-2017 Michael Truog

    - -

    Version: 1.7.3 Feb 26 2018 19:09:17 - ------------------------------------------------------------------------

    -

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

    - -

    Description

    -

    CloudI Write Ahead Logging (WAL)

    - File storage for transaction logging done by cloudi_service_queue. - No disk index is maintained, but an in-memory index is kept. -

    Data Types

    - -

    non_neg_integer_64bit()

    -

    non_neg_integer_64bit() = 0..18446744073709551615

    - - -

    pos_integer_64bit()

    -

    pos_integer_64bit() = 1..18446744073709551615

    - - -

    retry_function()

    -

    retry_function() = fun((Chunk::cloudi_service_queue:request(), Retry::boolean()) -> {ok, cloudi_service:trans_id()} | {error, timeout})

    - - -

    state()

    -

    state() = #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    - - -

    update_function()

    -

    update_function() = fun((cloudi_service_queue:request()) -> {cloudi_service:trans_id(), cloudi_service_queue:request()} | undefined)

    - - -

    Function Index

    - - - - - - - - - - -
    erase/2
    erase_retry/4
    fetch_keys/1
    new/4
    size/1
    size_free/1
    store_end/3
    store_fail/2
    store_start/2
    update/3
    - -

    Function Details

    - -

    erase/2

    -
    -

    erase(ChunkId::cloudi_service:trans_id(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request(), #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}

    -
    - -

    erase_retry/4

    -
    -

    erase_retry(ChunkId::cloudi_service:trans_id(), RetryMax::non_neg_integer(), RetryF::retry_function(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    -
    - -

    fetch_keys/1

    -
    -

    fetch_keys(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> [cloudi_service:trans_id()]

    -
    - -

    new/4

    -
    -

    new(FilePath::string(), FileSizeLimit::1024..18446744073709551615, Compression::0..9, RetryF::retry_function()) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    -
    - -

    size/1

    -
    -

    size(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

    -
    - -

    size_free/1

    -
    -

    size_free(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

    -
    - -

    store_end/3

    -
    -

    store_end(ChunkId::cloudi_service:trans_id(), Chunk::#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    -
    - -

    store_fail/2

    -
    -

    store_fail(Chunk::#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    -
    - -

    store_start/2

    -
    -

    store_start(ChunkRequest::cloudi_service_queue:request(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}} | full

    -
    - -

    update/3

    -
    -

    update(ChunkId::cloudi_service:trans_id(), UpdateF::update_function(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request() | undefined, #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}

    -
    -
    - - -

    Generated by EDoc, Feb 26 2018, 19:09:17.

    - - diff --git a/doc/html/api/cloudi_service_queue-1.7.3/cloudi_service_queue.html b/doc/html/api/cloudi_service_queue-1.7.4/cloudi_service_queue.html similarity index 91% rename from doc/html/api/cloudi_service_queue-1.7.3/cloudi_service_queue.html rename to doc/html/api/cloudi_service_queue-1.7.4/cloudi_service_queue.html index 4b196c380..363e9c880 100644 --- a/doc/html/api/cloudi_service_queue-1.7.3/cloudi_service_queue.html +++ b/doc/html/api/cloudi_service_queue-1.7.4/cloudi_service_queue.html @@ -20,9 +20,9 @@

    CloudI Persistent Queue Service. -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 19:09:17 +

    Version: 1.7.4 Sep 15 2018 21:35:54 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -67,11 +67,14 @@

    CloudI Persistent Queue ServiceThe amount of time the service request is persisted is always limited by the timeout of the service request. Tracking the time taken by a service request depends on the Erlang VM time-keeping being dependable -which depends on the OS time-keeping not varying wildly -(otherwise service requests may timeout quicker due to the system time -moving into the future). If the fault_isolation service argument is -set to 'both', the original service request timeout value will be used -for the service request send to the destination and the service request +which depends on the OS time-keeping not varying wildly, if +fault_isolation is set to 'both' and an Erlang VM restart causes an old +queue file to be used (the new Erlang VM OS process will use the +new OS time to determine if service requests in the old queue file have +timed-out based on each service request timeout value). +If the fault_isolation service argument is set to 'both', +the original service request timeout value will be used for the +service request send to the destination and the service request send containing the response.

    If the retry service argument is set higher than 0, any retry attempts @@ -85,10 +88,11 @@

    CloudI Persistent Queue ServiceData Types

    request()

    @@ -134,6 +138,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 19:09:17.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_queue-1.7.4/cloudi_write_ahead_logging.html b/doc/html/api/cloudi_service_queue-1.7.4/cloudi_write_ahead_logging.html new file mode 100644 index 000000000..ac37b77f2 --- /dev/null +++ b/doc/html/api/cloudi_service_queue-1.7.4/cloudi_write_ahead_logging.html @@ -0,0 +1,121 @@ + + + + +Module cloudi_write_ahead_logging + + + + +
    + +

    Module cloudi_write_ahead_logging

    + +

    CloudI Write Ahead Logging (WAL)

    + File storage for transaction logging done by cloudi_service_queue. +

    Copyright © 2014-2018 Michael Truog

    + +

    Version: 1.7.4 Sep 15 2018 21:35:54 + ------------------------------------------------------------------------

    +

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

    + +

    Description

    +

    CloudI Write Ahead Logging (WAL)

    + File storage for transaction logging done by cloudi_service_queue. + No disk index is maintained, but an in-memory index is kept. +

    Data Types

    + +

    checksum_algorithms()

    +

    checksum_algorithms() = crc32 | md5 | ripemd160 | sha | sha224 | sha256 | sha384 | sha512

    + + +

    non_neg_integer_64bit()

    +

    non_neg_integer_64bit() = 0..18446744073709551615

    + + +

    pos_integer_64bit()

    +

    pos_integer_64bit() = 1..18446744073709551615

    + + +

    retry_function()

    +

    retry_function() = fun((Chunk::cloudi_service_queue:request(), Retry::boolean()) -> {ok, cloudi_service:trans_id()} | {error, timeout})

    + + +

    state()

    +

    state() = #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    + + +

    update_function()

    +

    update_function() = fun((cloudi_service_queue:request()) -> {cloudi_service:trans_id(), cloudi_service_queue:request()} | undefined)

    + + +

    Function Index

    + + + + + + + + + + +
    erase/2
    erase_retry/4
    fetch_keys/1
    new/5
    size/1
    size_free/1
    store_end/3
    store_fail/2
    store_start/2
    update/3
    + +

    Function Details

    + +

    erase/2

    +
    +

    erase(ChunkId::cloudi_service:trans_id(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request(), #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}

    +
    + +

    erase_retry/4

    +
    +

    erase_retry(ChunkId::cloudi_service:trans_id(), RetryMax::non_neg_integer(), RetryF::retry_function(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    +
    + +

    fetch_keys/1

    +
    +

    fetch_keys(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> [cloudi_service:trans_id()]

    +
    + +

    new/5

    +
    +

    new(FilePath::string(), FileSizeLimit::1024..18446744073709551615, Compression::0..9, Checksum::undefined | checksum_algorithms(), RetryF::retry_function()) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    +
    + +

    size/1

    +
    +

    size(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

    +
    + +

    size_free/1

    +
    +

    size_free(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

    +
    + +

    store_end/3

    +
    +

    store_end(ChunkId::cloudi_service:trans_id(), Chunk::#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    +
    + +

    store_fail/2

    +
    +

    store_fail(Chunk::#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    +
    + +

    store_start/2

    +
    +

    store_start(ChunkRequest::cloudi_service_queue:request(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}} | full

    +
    + +

    update/3

    +
    +

    update(ChunkId::cloudi_service:trans_id(), UpdateF::update_function(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request() | undefined, #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}

    +
    +
    + + +

    Generated by EDoc

    + + diff --git a/doc/html/api/cloudi_service_queue-1.7.3/edoc-info b/doc/html/api/cloudi_service_queue-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_queue-1.7.3/edoc-info rename to doc/html/api/cloudi_service_queue-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_queue-1.7.3/erlang.png b/doc/html/api/cloudi_service_queue-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_queue-1.7.3/erlang.png rename to doc/html/api/cloudi_service_queue-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_queue-1.7.3/index.html b/doc/html/api/cloudi_service_queue-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_queue-1.7.3/index.html rename to doc/html/api/cloudi_service_queue-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_queue-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_queue-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_queue-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_queue-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_queue-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_queue-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_queue-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_queue-1.7.4/overview-summary.html index d314da5e1..2b3b1c63e 100644 --- a/doc/html/api/cloudi_service_queue-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_queue-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_queue application


    -

    Generated by EDoc, Feb 26 2018, 19:09:17.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_queue-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_queue-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_queue-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_queue-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_quorum-1.7.3/cloudi_service_quorum.html b/doc/html/api/cloudi_service_quorum-1.7.4/cloudi_service_quorum.html similarity index 96% rename from doc/html/api/cloudi_service_quorum-1.7.3/cloudi_service_quorum.html rename to doc/html/api/cloudi_service_quorum-1.7.4/cloudi_service_quorum.html index ab6a1fa74..e43ba78f5 100644 --- a/doc/html/api/cloudi_service_quorum-1.7.3/cloudi_service_quorum.html +++ b/doc/html/api/cloudi_service_quorum-1.7.4/cloudi_service_quorum.html @@ -14,9 +14,9 @@

    Module cloudi_service_quorum

    CloudI Quorum Service

    Using this service can provide Byzantine fault tolerance for any other services. -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 19:24:46 +

    Version: 1.7.4 Sep 15 2018 21:42:06 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -62,6 +62,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 19:24:46.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_quorum-1.7.3/edoc-info b/doc/html/api/cloudi_service_quorum-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_quorum-1.7.3/edoc-info rename to doc/html/api/cloudi_service_quorum-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_quorum-1.7.3/erlang.png b/doc/html/api/cloudi_service_quorum-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_quorum-1.7.3/erlang.png rename to doc/html/api/cloudi_service_quorum-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_quorum-1.7.3/index.html b/doc/html/api/cloudi_service_quorum-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_quorum-1.7.3/index.html rename to doc/html/api/cloudi_service_quorum-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_quorum-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_quorum-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_quorum-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_quorum-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_quorum-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_quorum-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_quorum-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_quorum-1.7.4/overview-summary.html index 212a00939..4c26f6ede 100644 --- a/doc/html/api/cloudi_service_quorum-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_quorum-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_quorum application


    -

    Generated by EDoc, Feb 26 2018, 19:24:46.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_quorum-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_quorum-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_quorum-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_quorum-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_router-1.7.3/edoc-info b/doc/html/api/cloudi_service_router-1.7.3/edoc-info deleted file mode 100644 index f74616a3e..000000000 --- a/doc/html/api/cloudi_service_router-1.7.3/edoc-info +++ /dev/null @@ -1,3 +0,0 @@ -%% encoding: UTF-8 -{application,cloudi_service_router}. -{modules,[cloudi_service_router]}. diff --git a/doc/html/api/cloudi_service_router-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_router-1.7.3/modules-frame.html deleted file mode 100644 index f188ccdac..000000000 --- a/doc/html/api/cloudi_service_router-1.7.3/modules-frame.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -The cloudi_service_router application - - - -

    Modules

    - -
    cloudi_service_router
    - - \ No newline at end of file diff --git a/doc/html/api/cloudi_service_router-1.7.3/cloudi_service_router.html b/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router.html similarity index 95% rename from doc/html/api/cloudi_service_router-1.7.3/cloudi_service_router.html rename to doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router.html index 4eb01b218..a0dbd09f5 100644 --- a/doc/html/api/cloudi_service_router-1.7.3/cloudi_service_router.html +++ b/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router.html @@ -12,9 +12,9 @@

    Module cloudi_service_router

    CloudI Router Service

    . -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 19:36:57 +

    Version: 1.7.4 Sep 15 2018 21:55:26 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -53,6 +53,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 19:36:57.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_client.html b/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_client.html new file mode 100644 index 000000000..3e2706c07 --- /dev/null +++ b/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_client.html @@ -0,0 +1,55 @@ + + + + +Module cloudi_service_router_client + + + + +
    + +

    Module cloudi_service_router_client

    + +

    CloudI Router Service Client

    . +

    Copyright © 2018 Michael Truog

    + +

    Version: 1.7.4 Sep 15 2018 21:55:26 + ------------------------------------------------------------------------

    +

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

    + +

    Description

    +

    CloudI Router Service Client

    + +

    Data Types

    + +

    options()

    +

    options() = [{type, ssh}] | cloudi_service_router_ssh_client:options()

    + + +

    state()

    +

    state() = cloudi_service_router_ssh_client:state()

    + + +

    Function Index

    + + +
    forward/11
    new/3
    + +

    Function Details

    + +

    forward/11

    + + +

    new/3

    +
    +

    new(Options::options() | undefined, Environment::cloudi_environment:lookup(), SSH::cloudi_service_router_ssh_server:state() | undefined) -> state() | undefined

    +
    +
    + + +

    Generated by EDoc

    + + diff --git a/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_ssh_client.html b/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_ssh_client.html new file mode 100644 index 000000000..b0a29b26d --- /dev/null +++ b/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_ssh_client.html @@ -0,0 +1,98 @@ + + + + +Module cloudi_service_router_ssh_client + + + + +
    + +

    Module cloudi_service_router_ssh_client

    + +

    CloudI Router Service SSH Client

    . +

    Copyright © 2018 Michael Truog

    + +

    Version: 1.7.4 Sep 15 2018 21:55:26 + ------------------------------------------------------------------------

    +

    Behaviours: gen_server.

    +

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

    + +

    Description

    +

    CloudI Router Service SSH Client

    + +

    Data Types

    + +

    options()

    +

    options() = [{host_name, string()} | {port, pos_integer()} | {inet, inet | inet6 | undefined} | {user_dir, string()} | {system_dir, string()}]

    + + +

    state()

    +

    state() = #ssh_client{process = pid()}

    + + +

    Function Index

    + + + + + + + + + +
    code_change/3
    forward/11
    handle_call/3
    handle_cast/2
    handle_info/2
    init/1
    new/3
    silently_accept_hosts/3
    terminate/2
    + +

    Function Details

    + +

    code_change/3

    +
    +

    code_change(X1, State, X3) -> any()

    +
    + +

    forward/11

    + + +

    handle_call/3

    +
    +

    handle_call(Request, X2, State) -> any()

    +
    + +

    handle_cast/2

    +
    +

    handle_cast(Request, State) -> any()

    +
    + +

    handle_info/2

    +
    +

    handle_info(Request, Ssh_client_connection) -> any()

    +
    + +

    init/1

    +
    +

    init(X1) -> any()

    +
    + +

    new/3

    +
    +

    new(Options::options(), Environment::cloudi_environment:lookup(), SSH::cloudi_service_router_ssh_server:state() | undefined) -> state() | undefined

    +
    + +

    silently_accept_hosts/3

    +
    +

    silently_accept_hosts(PeerName::string(), FingerPrint::string(), SystemDir::string()) -> boolean()

    +
    + +

    terminate/2

    +
    +

    terminate(X1, Ssh_client_connection) -> any()

    +
    +
    + + +

    Generated by EDoc

    + + diff --git a/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_ssh_server.html b/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_ssh_server.html new file mode 100644 index 000000000..02a75bd18 --- /dev/null +++ b/doc/html/api/cloudi_service_router-1.7.4/cloudi_service_router_ssh_server.html @@ -0,0 +1,110 @@ + + + + +Module cloudi_service_router_ssh_server + + + + +
    + +

    Module cloudi_service_router_ssh_server

    + +

    CloudI Router Service SSH Server

    . +

    Copyright © 2018 Michael Truog

    + +

    Version: 1.7.4 Sep 15 2018 21:55:26 + ------------------------------------------------------------------------

    +

    Behaviours: ssh_daemon_channel.

    +

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

    + +

    Description

    +

    CloudI Router Service SSH Server

    + +

    Data Types

    + +

    options()

    +

    options() = [{ip, inet:ip_address() | any | loopback} | {port, pos_integer()} | {inet, inet | inet6 | undefined} | {user_dir, string()} | {system_dir, string()}]

    + + +

    state()

    +

    state() = #ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()}

    + + +

    Function Index

    + + + + + + + + + + + +
    config_compression/1
    config_inet/1
    config_port/1
    config_system_dir/1
    config_user_dir/1
    destroy/1
    handle_msg/2
    handle_ssh_msg/2
    init/1
    new/3
    terminate/2
    + +

    Function Details

    + +

    config_compression/1

    +
    +

    config_compression(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> 0..9

    +
    + +

    config_inet/1

    +
    +

    config_inet(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> inet | inet6 | undefined

    +
    + +

    config_port/1

    +
    +

    config_port(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> pos_integer()

    +
    + +

    config_system_dir/1

    +
    +

    config_system_dir(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> string() | undefined

    +
    + +

    config_user_dir/1

    +
    +

    config_user_dir(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> string() | undefined

    +
    + +

    destroy/1

    +
    +

    destroy(Ssh_server::state() | undefined) -> ok

    +
    + +

    handle_msg/2

    +
    +

    handle_msg(X1, State) -> any()

    +
    + +

    handle_ssh_msg/2

    +
    +

    handle_ssh_msg(X1, Ssh_server_connection) -> any()

    +
    + +

    init/1

    +
    +

    init(X1) -> any()

    +
    + +

    new/3

    +
    +

    new(Options::options() | undefined, Environment::cloudi_environment:lookup(), Dispatcher::cloudi_service:dispatcher()) -> state() | undefined

    +
    + +

    terminate/2

    +
    +

    terminate(Reason, State) -> any()

    +
    +
    + + +

    Generated by EDoc

    + + diff --git a/doc/html/api/cloudi_service_router-1.7.4/edoc-info b/doc/html/api/cloudi_service_router-1.7.4/edoc-info new file mode 100644 index 000000000..22ab6d65d --- /dev/null +++ b/doc/html/api/cloudi_service_router-1.7.4/edoc-info @@ -0,0 +1,4 @@ +%% encoding: UTF-8 +{application,cloudi_service_router}. +{modules,[cloudi_service_router,cloudi_service_router_client, + cloudi_service_router_ssh_client,cloudi_service_router_ssh_server]}. diff --git a/doc/html/api/cloudi_service_router-1.7.3/erlang.png b/doc/html/api/cloudi_service_router-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_router-1.7.3/erlang.png rename to doc/html/api/cloudi_service_router-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_router-1.7.3/index.html b/doc/html/api/cloudi_service_router-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_router-1.7.3/index.html rename to doc/html/api/cloudi_service_router-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_router-1.7.4/modules-frame.html b/doc/html/api/cloudi_service_router-1.7.4/modules-frame.html new file mode 100644 index 000000000..2c0211b87 --- /dev/null +++ b/doc/html/api/cloudi_service_router-1.7.4/modules-frame.html @@ -0,0 +1,15 @@ + + + +The cloudi_service_router application + + + +

    Modules

    + + + + +
    cloudi_service_router
    cloudi_service_router_client
    cloudi_service_router_ssh_client
    cloudi_service_router_ssh_server
    + + \ No newline at end of file diff --git a/doc/html/api/cloudi_service_router-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_router-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_router-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_router-1.7.4/overview-summary.html index dc1b4a942..18015c0b7 100644 --- a/doc/html/api/cloudi_service_router-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_router-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_router application


    -

    Generated by EDoc, Feb 26 2018, 19:36:57.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_router-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_router-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_router-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_router-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_tcp-1.7.3/cloudi_service_tcp.html b/doc/html/api/cloudi_service_tcp-1.7.4/cloudi_service_tcp.html similarity index 95% rename from doc/html/api/cloudi_service_tcp-1.7.3/cloudi_service_tcp.html rename to doc/html/api/cloudi_service_tcp-1.7.4/cloudi_service_tcp.html index 60577a41c..96ca984f8 100644 --- a/doc/html/api/cloudi_service_tcp-1.7.3/cloudi_service_tcp.html +++ b/doc/html/api/cloudi_service_tcp-1.7.4/cloudi_service_tcp.html @@ -12,9 +12,9 @@

    Module cloudi_service_tcp

    Basic CloudI TCP Integration

    . -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 13:20:47 +

    Version: 1.7.4 Sep 15 2018 22:01:25 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -53,6 +53,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Jun 7 2017, 13:20:48.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_tcp-1.7.3/edoc-info b/doc/html/api/cloudi_service_tcp-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_tcp-1.7.3/edoc-info rename to doc/html/api/cloudi_service_tcp-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_tcp-1.7.3/erlang.png b/doc/html/api/cloudi_service_tcp-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_tcp-1.7.3/erlang.png rename to doc/html/api/cloudi_service_tcp-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_tcp-1.7.3/index.html b/doc/html/api/cloudi_service_tcp-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_tcp-1.7.3/index.html rename to doc/html/api/cloudi_service_tcp-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_tcp-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_tcp-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_tcp-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_tcp-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_tcp-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_tcp-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_tcp-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_tcp-1.7.4/overview-summary.html index 316d80e14..712e5d9b3 100644 --- a/doc/html/api/cloudi_service_tcp-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_tcp-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_tcp application


    -

    Generated by EDoc, Jun 7 2017, 13:20:48.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_tcp-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_tcp-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_tcp-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_tcp-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_udp-1.7.3/cloudi_service_udp.html b/doc/html/api/cloudi_service_udp-1.7.4/cloudi_service_udp.html similarity index 95% rename from doc/html/api/cloudi_service_udp-1.7.3/cloudi_service_udp.html rename to doc/html/api/cloudi_service_udp-1.7.4/cloudi_service_udp.html index a7349b845..8d45bdf1c 100644 --- a/doc/html/api/cloudi_service_udp-1.7.3/cloudi_service_udp.html +++ b/doc/html/api/cloudi_service_udp-1.7.4/cloudi_service_udp.html @@ -12,9 +12,9 @@

    Module cloudi_service_udp

    Basic CloudI UDP Integration

    . -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 13:24:45 +

    Version: 1.7.4 Sep 15 2018 22:07:56 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -53,6 +53,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Jun 7 2017, 13:24:46.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_udp-1.7.3/edoc-info b/doc/html/api/cloudi_service_udp-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_udp-1.7.3/edoc-info rename to doc/html/api/cloudi_service_udp-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_udp-1.7.3/erlang.png b/doc/html/api/cloudi_service_udp-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_udp-1.7.3/erlang.png rename to doc/html/api/cloudi_service_udp-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_udp-1.7.3/index.html b/doc/html/api/cloudi_service_udp-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_udp-1.7.3/index.html rename to doc/html/api/cloudi_service_udp-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_udp-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_udp-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_udp-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_udp-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_udp-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_udp-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_udp-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_udp-1.7.4/overview-summary.html index 8d6b326fb..938b310bf 100644 --- a/doc/html/api/cloudi_service_udp-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_udp-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_udp application


    -

    Generated by EDoc, Jun 7 2017, 13:24:46.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_udp-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_udp-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_udp-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_udp-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_validate-1.7.3/cloudi_service_validate.html b/doc/html/api/cloudi_service_validate-1.7.4/cloudi_service_validate.html similarity index 95% rename from doc/html/api/cloudi_service_validate-1.7.3/cloudi_service_validate.html rename to doc/html/api/cloudi_service_validate-1.7.4/cloudi_service_validate.html index 4fcb42e1f..83a17614c 100644 --- a/doc/html/api/cloudi_service_validate-1.7.3/cloudi_service_validate.html +++ b/doc/html/api/cloudi_service_validate-1.7.4/cloudi_service_validate.html @@ -12,9 +12,9 @@

    Module cloudi_service_validate

    CloudI Validate Service

    . -

    Copyright © 2015-2017 Michael Truog

    +

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 19:54:41 +

    Version: 1.7.4 Sep 15 2018 22:12:38 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -53,6 +53,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 19:54:41.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_validate-1.7.3/edoc-info b/doc/html/api/cloudi_service_validate-1.7.4/edoc-info similarity index 100% rename from doc/html/api/cloudi_service_validate-1.7.3/edoc-info rename to doc/html/api/cloudi_service_validate-1.7.4/edoc-info diff --git a/doc/html/api/cloudi_service_validate-1.7.3/erlang.png b/doc/html/api/cloudi_service_validate-1.7.4/erlang.png similarity index 100% rename from doc/html/api/cloudi_service_validate-1.7.3/erlang.png rename to doc/html/api/cloudi_service_validate-1.7.4/erlang.png diff --git a/doc/html/api/cloudi_service_validate-1.7.3/index.html b/doc/html/api/cloudi_service_validate-1.7.4/index.html similarity index 100% rename from doc/html/api/cloudi_service_validate-1.7.3/index.html rename to doc/html/api/cloudi_service_validate-1.7.4/index.html diff --git a/doc/html/api/cloudi_service_validate-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_validate-1.7.4/modules-frame.html similarity index 100% rename from doc/html/api/cloudi_service_validate-1.7.3/modules-frame.html rename to doc/html/api/cloudi_service_validate-1.7.4/modules-frame.html diff --git a/doc/html/api/cloudi_service_validate-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_validate-1.7.4/overview-summary.html similarity index 95% rename from doc/html/api/cloudi_service_validate-1.7.3/overview-summary.html rename to doc/html/api/cloudi_service_validate-1.7.4/overview-summary.html index ba3d43463..2a0f0c8ea 100644 --- a/doc/html/api/cloudi_service_validate-1.7.3/overview-summary.html +++ b/doc/html/api/cloudi_service_validate-1.7.4/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_validate application


    -

    Generated by EDoc, Feb 26 2018, 19:54:41.

    +

    Generated by EDoc

    diff --git a/doc/html/api/cloudi_service_validate-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_validate-1.7.4/stylesheet.css similarity index 100% rename from doc/html/api/cloudi_service_validate-1.7.3/stylesheet.css rename to doc/html/api/cloudi_service_validate-1.7.4/stylesheet.css diff --git a/doc/html/api/cloudi_service_zeromq-1.7.3/cloudi_service_zeromq.html b/doc/html/api/cloudi_service_zeromq-1.7.3/cloudi_service_zeromq.html deleted file mode 100644 index d2b9c314e..000000000 --- a/doc/html/api/cloudi_service_zeromq-1.7.3/cloudi_service_zeromq.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - -Module cloudi_service_zeromq - - - - -
    - -

    Module cloudi_service_zeromq

    - -

    CloudI ZeroMQ Integration

    - Provide a way of sending/receiving through ZeroMQ. -

    Copyright © 2011-2017 Michael Truog

    - -

    Version: 1.7.1 Jun 7 2017 13:35:54 - ------------------------------------------------------------------------

    -

    Behaviours: cloudi_service.

    -

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

    - -

    Description

    -

    CloudI ZeroMQ Integration

    - Provide a way of sending/receiving through ZeroMQ. -

    Function Index

    - - - - -
    cloudi_service_handle_info/3
    cloudi_service_handle_request/11
    cloudi_service_init/4
    cloudi_service_terminate/3
    - -

    Function Details

    - -

    cloudi_service_handle_info/3

    -
    -

    cloudi_service_handle_info(Request, State, Dispatcher) -> any()

    -
    - -

    cloudi_service_handle_request/11

    -
    -

    cloudi_service_handle_request(Type, Name, Pattern, RequestInfo, Request, Timeout, Priority, TransId, Pid, State, Dispatcher) -> any()

    -
    - -

    cloudi_service_init/4

    -
    -

    cloudi_service_init(Args, Prefix, Timeout, Dispatcher) -> any()

    -
    - -

    cloudi_service_terminate/3

    -
    -

    cloudi_service_terminate(Reason, Timeout, State) -> any()

    -
    -
    - - -

    Generated by EDoc, Jun 7 2017, 13:35:54.

    - - diff --git a/doc/html/api/cloudi_service_zeromq-1.7.3/edoc-info b/doc/html/api/cloudi_service_zeromq-1.7.3/edoc-info deleted file mode 100644 index 7c234e1d5..000000000 --- a/doc/html/api/cloudi_service_zeromq-1.7.3/edoc-info +++ /dev/null @@ -1,3 +0,0 @@ -%% encoding: UTF-8 -{application,cloudi_service_zeromq}. -{modules,[cloudi_service_zeromq]}. diff --git a/doc/html/api/cloudi_service_zeromq-1.7.3/erlang.png b/doc/html/api/cloudi_service_zeromq-1.7.3/erlang.png deleted file mode 100644 index 987a618e2403af895bfaf8c2f929e3a4f3746659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2109 zcmV-D2*US?P)rez_nr%N ze)-p~%6|a|LA_bA=l=$|3jjqS$tjbGG?@TN0w$Azq7Z{YeQxKcpLO55vno1^u23DP&V=i9-KAAsU*ECy^#OtaDC!lVSo!+|-%T+LhTHP^Oqwx8m)b4r3V28JmV&6M#iG)&0;P`j>XGfomEIEK6wPkhI{{K?3#uAGq$!`N_F)TNX zAvuspF?^;c9h%CPWyTDc_03%r4N8+Yzzo_VSfa!zo_7F6D?<+-+KkHwXiWQR=Mr(9|K@{{xEjfDvAbS9uNCP&{)NNCoC?XA$aRe>R8-> z5N<#S_)$d|EYpJfPC?{`$Y~f4yjH&dxHXIGG8wiaLBD6usC87cg+dd&3WLJd4_TcmEeAOz8R>ikgW(9821 z{34Se09Y?KoG<_Y;DDSoyTk>fUN0YO5)3^Za{&s1JbidC9}56{px+f|K_0;YuL5h} z_9J3y%7ucwM)E4K#=Cn7tCjjRkKjnQuiFcM6{17Jt#5F}7z8~RYqW24xV?kAU6xQN zh+h4|SmO1;TdsVOaOeD*kKf}6I7=6ZNig_rtqV?Ov1HrU(P%Hi#6npSe>%qGaNK1w zW$v+r`r0>#p~AN^8b)#7Yesu(ys(>3SCYb4sF9%A9=kMHrLmzk}E&WPG~Jx z9!r{qo5M184t;<7I`t1AsNjv912EeKkHKtOSl%wbcjFh7L6|G?Q+{?radOvuEW$>1 zoc+c&F+u$^0f}1_2dN&lS#I#p3e&+|YGHlMzRC)%&8TnGt+p*;Oz z`0=D=n|qcN+f@07;QjB@ktLhZ`+qz;(xYDli^Pex&&wwU2V4N-a3b@veqHg2cvCRb zoi=ZerLk!4t5!s3?|ARuWx_4-VCgl|TY2qa@$Dr~5QdiT8?$oPpZhaF5UOZ&x=+I9 zt((`6wBPM((BS{;2lmSB;o%z{>=mg*1k2oLjI=+zcf5$4BIZmkOrjrE z*VY(<@FO?zBVDc+Q~Lh;LnlYodZ$J3tmWJBN4j~wVOWelzexhft2nY6A3PZAcm!q} z931CL#1Ki6;HM{agTbKF>3(R-yuF1&Apn3Nh@PGvv)K$mkVqu*^z@vaFgQ3kFfg!s z^=f26@{Ny=_w@7x1qHF$bEk5X$)wR}0s{l>V!TCGM=R5Ei1Ll8u7Z*N0G1CPgB zyLPP|0H{-FRUDJv`Ea=9fX zC63D4+FBlumz$eAJv~j5q*|@^_xC?_>XiL0K@bH61$;i=&CLx(QGb8`8#iu{BnjJW zHUvSgUcK7T&~W(h;koN8t5vB~Ha0dgnane1&RA#87dVcaOpEMM)6>)E&YiPZEXBpe zlarHk89g;+G#U#E3hL_W002xT6UTApOeR%UR_5g7q^73!_4PG2Hi|@|ii(Pfi3vIY z0ES^?Mx1IOizO0?e0_a!9483k`PtCk-rm~Unwpw=?b@~O?(WdgP^bMMAYlLg{dIM9 zOy}OcxVTs%k(@q#n$PF+`TXkYYA%;cr_*5ofWcr$PEL-Ai772Db)3`L*|~G)&eqn} zq@*OrbXim`UAiO`3XdK=%H#1=D%HHV>FMbqAtCAM=@!e}C6Cc))ai5zg~H3rYjkup zD=RBMKR+`wv!kN}1^{3fR#a3}RaLcP#}20|H!^bT)~%G3lp{xu!0_{Wr2hW?>({UQ z`T1F`)|D$)*3{IP&1UDKhLn_)sMYHH{QRkzV=$M?#W2idGFh!wf*`b7ZGC-xVPT=c zV1Vs&!otFoN~M>VQ$G_G6}5No-m0pqwzjr;?W@INu~;m#k*%qz(P%VUt#;3zJ^lUt zU0q%G?%kVzvF7cqQmLw|tA~e&XIqun*x2Ug=9-!s48ty7ycil9Di(|7aybkD7#y?%lgQ z9`Ewy%eDpgxlvJ3Cr+GTFc>(F+cg;(8TPc>y?b|jeEgLwR}LLIBoqp1+1c4_HrvO? z$J5g@G&D3gIC$2ITrQ7`iwh4AfA;K|OePZu1oriTVVG1Zl}e@S)~)mK@UU1cI-Ty| z!Gj8gg2UmUD2ibif*{e+(R4bU#bU|j@{Joe^7(uSf+8X!q*7@_M1;L=AqbM3oXp{H nT3T9A6wS=c+_!HZolgHhw9g$%O4Wbp00000NkvXXu0mjf3HKBY diff --git a/doc/html/api/cloudi_service_zeromq-1.7.3/index.html b/doc/html/api/cloudi_service_zeromq-1.7.3/index.html deleted file mode 100644 index ed341382e..000000000 --- a/doc/html/api/cloudi_service_zeromq-1.7.3/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - -The cloudi_service_zeromq application - - - - - - -<h2>This page uses frames</h2> -<p>Your browser does not accept frames. -<br>You should go to the <a href="overview-summary.html">non-frame version</a> instead. -</p> - - - \ No newline at end of file diff --git a/doc/html/api/cloudi_service_zeromq-1.7.3/modules-frame.html b/doc/html/api/cloudi_service_zeromq-1.7.3/modules-frame.html deleted file mode 100644 index 4bf104c21..000000000 --- a/doc/html/api/cloudi_service_zeromq-1.7.3/modules-frame.html +++ /dev/null @@ -1,12 +0,0 @@ - - - -The cloudi_service_zeromq application - - - -

    Modules

    - -
    cloudi_service_zeromq
    - - \ No newline at end of file diff --git a/doc/html/api/cloudi_service_zeromq-1.7.3/overview-summary.html b/doc/html/api/cloudi_service_zeromq-1.7.3/overview-summary.html deleted file mode 100644 index b53740886..000000000 --- a/doc/html/api/cloudi_service_zeromq-1.7.3/overview-summary.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - -The cloudi_service_zeromq application - - - - -

    The cloudi_service_zeromq application

    - -
    - -

    Generated by EDoc, Jun 7 2017, 13:35:54.

    - - diff --git a/doc/html/api/cloudi_service_zeromq-1.7.3/stylesheet.css b/doc/html/api/cloudi_service_zeromq-1.7.3/stylesheet.css deleted file mode 100644 index ab170c091..000000000 --- a/doc/html/api/cloudi_service_zeromq-1.7.3/stylesheet.css +++ /dev/null @@ -1,55 +0,0 @@ -/* standard EDoc style sheet */ -body { - font-family: Verdana, Arial, Helvetica, sans-serif; - margin-left: .25in; - margin-right: .2in; - margin-top: 0.2in; - margin-bottom: 0.2in; - color: #000000; - background-color: #ffffff; -} -h1,h2 { - margin-left: -0.2in; -} -div.navbar { - background-color: #add8e6; - padding: 0.2em; -} -h2.indextitle { - padding: 0.4em; - background-color: #add8e6; -} -h3.function,h3.typedecl { - background-color: #add8e6; - padding-left: 1em; -} -div.spec { - margin-left: 2em; - background-color: #eeeeee; -} -a.module { - text-decoration:none -} -a.module:hover { - background-color: #eeeeee; -} -ul.definitions { - list-style-type: none; -} -ul.index { - list-style-type: none; - background-color: #eeeeee; -} - -/* - * Minor style tweaks - */ -ul { - list-style-type: square; -} -table { - border-collapse: collapse; -} -td { - padding: 3 -} diff --git a/doc/html/faq.html b/doc/html/faq.html index 6329165d7..b909a96c7 100644 --- a/doc/html/faq.html +++ b/doc/html/faq.html @@ -24,7 +24,7 @@
  • FAQ
  • Tutorials (Java)
  • -
  • Download
  • +
  • Download
  • Source
  • Support
  • @@ -32,8 +32,8 @@

    Frequently Asked Questions

    -

    version 1.7.3
    - last updated on March 29th 2018

    +

    version 1.7.4
    + last updated on September 16th 2018

    1 - Introduction to CloudI

    @@ -55,7 +55,8 @@

    1 - Introduction to CloudI

  • 1.15 - Does CloudI provide a Service-Oriented Architecture (SOA)
  • 1.16 - Does CloudI provide a Microservice Architecture?
  • 1.17 - Is CloudI Reactive?
  • -
  • 1.18 - Why doesn't CloudI integrate with ProductX?
  • +
  • 1.18 - Does CloudI support Sagas?
  • +
  • 1.19 - Why doesn't CloudI integrate with ProductX?
  • 2 - Learning about CloudI

    @@ -121,14 +122,14 @@

    6 - Services

  • 6.10 - Python Service Implementation
  • 6.11 - Ruby Service Implementation
  • 6.12 - HTTP Integration
  • -
  • 6.13 - ZeroMQ Integration
  • -
  • 6.14 - Service Fault Tolerance
  • -
  • 6.15 - Service Monitoring
  • +
  • 6.13 - Service Fault Tolerance
  • +
  • 6.14 - Service Monitoring
  • 7 - Troubleshooting


    @@ -505,10 +506,6 @@

    1.8 - Is CloudI really free?

    commercial-friendly license (MIT, Apache). - Some conditional external source code dependencies - (not included by default) are under other licenses - (ZeroMQ - is under the LGPL license). Some dependencies used for building and testing use the GPL license (autoconf/automake/libtool, autoconf macros, and PropEr). @@ -554,7 +551,7 @@

    1.12 - What CAP theorem guarantees does CloudI provide?

    service requests are transactional and a service request response may be used to confirm any state change. To understand consistency, as it relates to CloudI service - fault tolerance, please refer to "6.14 - Service Fault Tolerance". + fault tolerance, please refer to "6.13 - Service Fault Tolerance".

    @@ -571,7 +568,7 @@

    1.13 - Does CloudI provide an implementation of the Actor Model?

    despite the authors of Erlang being unaware of the Actor Model while implementing Erlang (e.g., the paper by Rajesh K. Karmani, Gul Agha, "Actors"). However, the Erlang VM does not provide the Actor Model when working with the original definition of the Actor Model as it was - provided in Carl Hewitt, Peter Bishop and Richard Steiger. "A Universal Modular Actor Formalism for Artificial Intelligence" (PDF), IJCAI'73. + provided in Carl Hewitt, Peter Bishop and Richard Steiger. "A Universal Modular Actor Formalism for Artificial Intelligence". IJCAI'73. Instead, the Erlang VM provides processes which are most similar to "Fog Cutter Actors", based on the paper by Carl Hewitt, "Actor Model of Computation: Scalable Robust Information Systems". Unfortunately, no better term currently exists to refer to the design of @@ -636,7 +633,7 @@

    1.15 - Does CloudI provide a Service Oriented Architecture (SOA)?

    (RPC), Publish/Subscribe and Pipeline messaging (i.e., Flow-Based Programming (FBP)). - CloudI supports both broker and broker-less + CloudI supports both broker and broker-less service requests with a distributed fault-tolerant service directory (using "service names" and "service patterns") that can be locally cached (when using a "lazy" destination refresh method, @@ -747,8 +744,68 @@

    1.17 - Is CloudI Reactive?

    + +

    1.18 - Does CloudI support Sagas?

    +

    + Yes! Sagas are easy to develop using CloudI. Sagas were first + described in the paper Hector Garcia-Molina and Kenneth Salem. "Sagas". SIGMOD'87. + Sagas have become a more prominent concept as microservice development + has become more popular due to the need to manage the complexity of + long-lived microservice transactions. +

    +

    + Typically, two approaches to Sagas is described: +

      +
    • Events/Choreography
    • +
    • Command/Orchestration
    • +
    + Either approach is possible in a CloudI service, though Sagas development + prefers the Command/Orchestration approach to avoid abstract complexity + that leads to implementation and maintenance difficulties that are + common with the Events/Choreography approach. +

    +

    + An Events/Choreography CloudI service implementation would rely on + subscribe use in each service, + for each event that needs to be received + (it would be best with a unique event for each receive to track + the transaction logic and decouple the receive from the concurrency of + each service). + The service would use forward + to transfer the control of a transaction to a different service and + any additional transactions may be sent using + send_async + or send_sync + until the final transaction in the Saga + returns a response. +

    +

    + A Command/Orchestration CloudI service implementation would centralize + the core Saga logic in a single CloudI service that uses + send_async + or send_sync + to use any services necessary with separate transactions in the Saga. + Transactions in these other services could be joined together + by using forward + to transfer control of the transaction to the next service. + The core Saga logic would be based on the responses to the separate + transactions and would end the Saga by + returning a response. +

    +

    + With CloudI services providing transactions as a core feature + while managing the fault-tolerance and scalability of each + service independently, the resulting CloudI service business logic + is kept simple and easy to maintain. CloudI services are able to + avoid "boilerplate" source code that is required without CloudI + when handling timeouts and the propagation of timeout failures, + service failures or exceptions, service concurrency and other + common development concerns. +

    + + -

    1.18 - Why doesn't CloudI integrate with ProductX?

    +

    1.19 - Why doesn't CloudI integrate with ProductX?

    There are many possibilities for CloudI integration. If you know of a public product that you think should be integrated or if you need @@ -799,7 +856,7 @@

    2.3 - Internet Relay Chat (IRC)

    IRC Server: - irc.freenode.net + chat.freenode.net
    Chat Room: @@ -1088,22 +1145,13 @@

    3.2 - Installation Options

    --with-python-version=[2|3] - Specify the version of python to use
    (default="2") + Specify the version of python to use
    (default="3")
    --with-python-debug Use the debug python executable instead of the normal python executable
    (default="no")
    - --with-zeromq - - Include ZeroMQ - support
    (default="no") -
    - --with-zeromq-version=[2|3] - - ZeroMQ major version
    (default="3") -
    --without-integration-tests Do not build and install the integration tests or utilize the @@ -1944,8 +1992,9 @@

    5.2 - Scalability Considerations

    based on the nodes configuration.

    - HTTPS can also be used to bridge CloudI clusters - (i.e., with the CloudI service cloudi_service_http_cowboy). + SSH or HTTPS may be used to bridge CloudI clusters + (i.e., with the CloudI service cloudi_service_router or + cloudi_service_http_cowboy). Scaling for capacity planning should often require increasing the database node count more than the CloudI node count, but that depends on the CloudI services and their incoming data rate. @@ -2193,7 +2242,7 @@

    6.2 - Erlang Service Implementation

    Many examples of Erlang CloudI services exist within the CloudI source code because the Erlang CloudI services provide integration with external systems like the supported databases (PostgreSQL, MySQL, etc.), - the supported messaging (HTTP, ZeroMQ, etc.), and the CloudI Service API + the supported messaging (HTTP, SSH, etc.), and the CloudI Service API functionality. Some of the integration tests and services that provide example usage of the Erlang CloudI API are: @@ -2437,9 +2486,6 @@

    6.10 - Python Service Implementation

    Basic Message Size (Forwarding) Test
  • src/tests/messaging Basic Messaging Test
  • -
  • src/tests/zeromq - ZeroMQ Test (with - cloudi_service_zeromq configuration)
  • An example configuration (from the integration tests CloudI configuration) is provided below: @@ -2593,93 +2639,8 @@

    6.12 - HTTP Integration

    - -

    6.13 - ZeroMQ Integration

    -

    - ZeroMQ - integration is provided by the cloudi_service_zeromq Erlang CloudI service. - The CloudI configuration uses the cloudi_service_zeromq service to create - service names that represent ZeroMQ messaging endpoints. There are three - ZeroMQ configuration examples in the integration tests CloudI configuration (commented within the file) - which are (partially) shown below: -

    -% Zig-Zag test
    -{internal,
    -    "/tests/zeromq/",
    -    % inbound/outbound message paths much be acyclic
    -    % (if they are not, you will receive a erlzmq EFSM error
    -    %  because the ZeroMQ REQ has received 2 zmq_send calls)
    -    cloudi_service_zeromq,
    -    % outbound ZeroMQ requests connect a CloudI name to a ZeroMQ endpoint
    -    [{outbound, {"zigzag_start", ["ipc:///tmp/cloudizigzagstart"]}},
    -    % inbound ZeroMQ replies connect a ZeroMQ endpoint to a CloudI name
    -     {inbound, {"zigzag_step1", ["ipc:///tmp/cloudizigzagstart"]}},
    -     {outbound, {"zigzag_step1", ["inproc://zigzagstep1"]}},
    -     {inbound, {"zigzag_step2", ["inproc://zigzagstep1"]}},
    -    % ZeroMQ publish connects a CloudI name to a ZeroMQ (subscribe) name
    -    % as {CloudI name (suffix), ZeroMQ name for message prefix}
    -    % for any number of endpoints
    -     {publish, {[{"zigzag_step2", "/zeromq/step2"}],
    -                ["inproc://zigzagstep2a",
    -                 "ipc:///tmp/cloudizigzagstep2b",
    -                 "inproc://zigzagstep2c",
    -                 "ipc:///tmp/cloudizigzagstep2d"]}},
    -    % ZeroMQ subscribe connects a CloudI name to a ZeroMQ (subscribe) name
    -    % as {CloudI name (suffix), ZeroMQ name for subscribe setsocketopt}
    -    % for any number of endpoints
    -     {subscribe, {[{"zigzag_step3a", "/zeromq/step2"},
    -                   {"zigzag_step3b", "/zeromq/step2"}],
    -                  ["inproc://zigzagstep2a",
    -                   "ipc:///tmp/cloudizigzagstep2b",
    -                   "inproc://zigzagstep2c",
    -                   "ipc:///tmp/cloudizigzagstep2d"]}},
    -     {outbound, {"zigzag_step3a", ["inproc://zigzagstep3"]}},
    -     {inbound, {"zigzag_finish", ["inproc://zigzagstep3"]}}],
    -    immediate_closest,
    -    5000, 5000, 5000, [api], undefined, 2, 5, 300, []},
    -% Chain inproc test (50 endpoints in a sequential call path)
    -{internal,
    -    "/tests/zeromq/",
    -    cloudi_service_zeromq,
    -    [{outbound, {"chain_inproc_start", ["inproc://chainstep1"]}},
    -     {inbound, {"chain_inproc_step1", ["inproc://chainstep1"]}},
    -     {outbound, {"chain_inproc_step1", ["inproc://chainstep2"]}},
    -     {inbound, {"chain_inproc_step2", ["inproc://chainstep2"]}},
    -...
    -     {outbound, {"chain_inproc_step48", ["inproc://chainstep49"]}},
    -     {inbound, {"chain_inproc_step49", ["inproc://chainstep49"]}},
    -     {outbound, {"chain_inproc_step49", ["inproc://chainstep50"]}},
    -     {inbound, {"chain_inproc_finish", ["inproc://chainstep50"]}}],
    -    immediate_closest,
    -    5000, 5000, 5000, [api], undefined, 2, 5, 300, []},
    -% Chain ipc test (25 endpoints in a sequential call path)
    -{internal,
    -    "/tests/zeromq/",
    -    cloudi_service_zeromq,
    -    [{outbound, {"chain_ipc_start", ["ipc:///tmp/cloudichainstep1"]}},
    -     {inbound, {"chain_ipc_step1", ["ipc:///tmp/cloudichainstep1"]}},
    -     {outbound, {"chain_ipc_step1", ["ipc:///tmp/cloudichainstep2"]}},
    -     {inbound, {"chain_ipc_step2", ["ipc:///tmp/cloudichainstep2"]}},
    -...
    -     {outbound, {"chain_ipc_step23", ["ipc:///tmp/cloudichainstep24"]}},
    -     {inbound, {"chain_ipc_step24", ["ipc:///tmp/cloudichainstep24"]}},
    -     {outbound, {"chain_ipc_step24", ["ipc:///tmp/cloudichainstep25"]}},
    -     {inbound, {"chain_ipc_finish", ["ipc:///tmp/cloudichainstep25"]}}],
    -    immediate_closest,
    -    5000, 5000, 5000, [api], undefined, 2, 5, 300, []}
    -    
    -

    -

    - The three cloudi_service_zeromq Erlang CloudI services are used by the - ZeroMQ integration test - to test the ZeroMQ messaging when the integration test service starts. - ZeroMQ configuration within CloudI is dynamic through usage of the Service - API. For more information, please refer to "4.1 - How do I integrate external software with CloudI?". -

    - - -

    6.14 - Service Fault Tolerance

    +

    6.13 - Service Fault Tolerance

    General fault tolerance considerations within the CloudI framework are described in "5.3 - Stability and Fault Tolerance Considerations". @@ -2743,7 +2704,7 @@

    6.14 - Service Fault Tolerance

    -

    6.15 - Service Monitoring

    +

    6.14 - Service Monitoring

    The cloudi_service_monitoring provides the ability to monitor the internals of any CloudI service @@ -2799,26 +2760,50 @@

    7 - Troubleshooting

    7.1 - Why does CloudI stop shortly after being started?

    - If any services listed in the CloudI configuration file fail to initialize - CloudI will shutdown. This behavior is required to ensure CloudI services - are able to fail-fast when services are unable to initialize. If this has - happened while running the integration tests, please submit - the problem (with the /usr/local/var/log/cloudi/cloudi.log file and the - build's config.log file) as a bug. + If any services listed in the CloudI configuration file fail to initialize + CloudI will shutdown. This behavior is required to ensure CloudI services + are able to fail-fast when services are unable to initialize. If this has + happened while running the integration tests, please submit + the problem (with the /usr/local/var/log/cloudi/cloudi.log file and the + build's config.log file) as a bug.

    - The best place to have validation in a service is during service - initialization - so the service's starting state is confirmed to be correct. - Performing verification during service initialization is important due to - the lifetime of a service's execution being typically undefined. - Critical CloudI services should have their configuration in the CloudI - configuration file (instead of using the CloudI Service API to dynamically - start the services with services_add) - to take advantage of fail-fast service initialization. + The best place to have validation in a service is during service + initialization + so the service's starting state is confirmed to be correct. + Performing verification during service initialization is important due to + the lifetime of a service's execution being typically undefined. + Critical CloudI services should have their configuration in the CloudI + configuration file (instead of using the CloudI Service API to dynamically + start the services with services_add) + to take advantage of fail-fast service initialization.

    + +

    7.2 - Why is CloudI making my Linux machine slow?

    +

    + The machine is likely overloaded by the number of services and their + configured concurrency. However, the Linux scheduler that is selected + may make the overloaded machine slower by focusing on CPU intensive + execution. If you are concerned about CloudI services overloading + the machine, it is best to select the + Completely Fair Queuing (CFQ) + scheduler if it has not already been selected + (it is a common default for Linux distributions). To select CFQ, + add elevator=cfq to the Linux kernel parameters. +

    +

    + Having CloudI services overload a machine is uncommon when the + service configuration is created based on the available resources. + The CloudI integration tests do a variety of different processing + that has often caused CloudI to overload small machines + (see services_add + for service configuration details or + "5.1 - Performance Considerations" + for general information about scheduler limitations). +

    + diff --git a/doc/html/index.html b/doc/html/index.html index b564b3430..81449ab4a 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -24,7 +24,7 @@
  • FAQ
  • Tutorials (Java)
  • -
  • Download
  • +
  • Download
  • Source
  • Support
  • @@ -122,8 +122,8 @@

    Quick Start

  • Compile the CloudI service executable:
    -gcc -I/usr/local/lib/cloudi-1.7.3/api/c \
    -    -L/usr/local/lib/cloudi-1.7.3/api/c \
    +gcc -I/usr/local/lib/cloudi-1.7.4/api/c \
    +    -L/usr/local/lib/cloudi-1.7.4/api/c \
         -g -O0 -fexceptions hello_world.c -o hello_world_c -lcloudi
     
  • @@ -138,9 +138,9 @@

    Quick Start

    [[{prefix, "/quickstart/c/"}, {file_path, "$PWD/hello_world_c"}, {env, [{"LD_LIBRARY_PATH", - "/usr/local/lib/cloudi-1.7.3/api/c/"}, + "/usr/local/lib/cloudi-1.7.4/api/c/"}, {"DYLD_LIBRARY_PATH", - "/usr/local/lib/cloudi-1.7.3/api/c/"}]}]] + "/usr/local/lib/cloudi-1.7.4/api/c/"}]}]] EOF @@ -243,8 +243,8 @@

    Quick Start

  • Compile the CloudI service executable:
    -g++ -I/usr/local/lib/cloudi-1.7.3/api/c \
    -    -L/usr/local/lib/cloudi-1.7.3/api/c \
    +g++ -I/usr/local/lib/cloudi-1.7.4/api/c \
    +    -L/usr/local/lib/cloudi-1.7.4/api/c \
         -g -O0 hello_world.cpp -o hello_world_cxx -lcloudi
     
  • @@ -259,9 +259,9 @@

    Quick Start

    [[{prefix, "/quickstart/cxx/"}, {file_path, "$PWD/hello_world_cxx"}, {env, [{"LD_LIBRARY_PATH", - "/usr/local/lib/cloudi-1.7.3/api/c/"}, + "/usr/local/lib/cloudi-1.7.4/api/c/"}, {"DYLD_LIBRARY_PATH", - "/usr/local/lib/cloudi-1.7.3/api/c/"}]}]] + "/usr/local/lib/cloudi-1.7.4/api/c/"}]}]] EOF @@ -345,7 +345,7 @@

    Quick Start

    def project do [app: :'Elixir.HelloWorld', - version: "1.7.3", + version: "1.7.4", elixirc_paths: ["lib/"], deps: []] end @@ -483,7 +483,7 @@

    Quick Start

    file would be added with the same filename (see the examples for more details).
    -erlc -pz /usr/local/lib/cloudi-1.7.3/lib/cloudi_core-1.7.3/ebin \
    +erlc -pz /usr/local/lib/cloudi-1.7.4/lib/cloudi_core-1.7.4/ebin \
         hello_world.erl
     
    @@ -563,8 +563,8 @@

    Quick Start

    created by executing the following inside your shell:
     mkdir -p src/hello_world_go/vendor/
    -cp -rf /usr/local/lib/cloudi-1.7.3/api/go/cloudi src/hello_world_go/vendor/
    -cp -rf /usr/local/lib/cloudi-1.7.3/api/go/erlang src/hello_world_go/vendor/
    +cp -rf /usr/local/lib/cloudi-1.7.4/api/go/cloudi src/hello_world_go/vendor/
    +cp -rf /usr/local/lib/cloudi-1.7.4/api/go/erlang src/hello_world_go/vendor/
     cat << EOF > src/hello_world_go/main.go
     package main
     
    @@ -762,7 +762,7 @@ 

    Quick Start

    EOF cat << EOF > manifest.txt Main-Class: org.cloudi.tests.hello_world.Main -Class-Path: /usr/local/lib/cloudi-1.7.3/api/java/cloudi.jar +Class-Path: /usr/local/lib/cloudi-1.7.4/api/java/cloudi.jar EOF
    @@ -771,7 +771,7 @@

    Quick Start

    Compile the CloudI service jar:
     cd org/cloudi/tests/hello_world/
    -CLASSPATH=/usr/local/lib/cloudi-1.7.3\
    +CLASSPATH=/usr/local/lib/cloudi-1.7.4\
     /api/java/cloudi.jar:${CLASSPATH} javac Task.java Main.java
     cd ../../../../
     jar cvfm hello_world.jar manifest.txt org
    @@ -788,7 +788,7 @@ 

    Quick Start

    cat << EOF > hello_world.conf [[{prefix, "/quickstart/java/"}, {file_path, "$JAVA"}, - {args, "-cp /usr/local/lib/cloudi-1.7.3/api/java/ " + {args, "-cp /usr/local/lib/cloudi-1.7.4/api/java/ " "-ea:org.cloudi... -jar $PWD/hello_world.jar"}]] EOF
    @@ -838,7 +838,7 @@

    Quick Start

    created by executing the following inside your shell:
     cat << EOF > hello_world.js
    -var CloudI = require('/usr/local/lib/cloudi-1.7.3/' +
    +var CloudI = require('/usr/local/lib/cloudi-1.7.4/' +
                          'api/javascript/CloudI.js').CloudI;
     var assert = require('assert');
     
    @@ -993,7 +993,7 @@ 

    Quick Start

    [[{prefix, "/quickstart/perl/"}, {file_path, "$PERL"}, {args, "$PWD/hello_world.pl"}, - {env, [{"PERL5LIB", "/usr/local/lib/cloudi-1.7.3/api/perl"}]}]] + {env, [{"PERL5LIB", "/usr/local/lib/cloudi-1.7.4/api/perl"}]}]] EOF
    @@ -1044,7 +1044,7 @@

    Quick Start

    cat << EOF > hello_world.php <?php -require '/usr/local/lib/cloudi-1.7.3/api/php/CloudI.php'; +require '/usr/local/lib/cloudi-1.7.4/api/php/CloudI.php'; class Task { @@ -1151,7 +1151,7 @@

    Quick Start

     cat << EOF > hello_world.py
     import sys
    -sys.path.append('/usr/local/lib/cloudi-1.7.3/api/python/')
    +sys.path.append('/usr/local/lib/cloudi-1.7.4/api/python/')
     import traceback
     from cloudi import API, terminate_exception
     
    @@ -1242,7 +1242,7 @@ 

    Quick Start

    created by executing the following inside your shell:
     cat << EOF > hello_world.rb
    -\$:.unshift '/usr/local/lib/cloudi-1.7.3/api/ruby'
    +\$:.unshift '/usr/local/lib/cloudi-1.7.4/api/ruby'
     
     \$DEBUG = false
     
    @@ -1359,13 +1359,13 @@ 

    Quick Start

    Get CloudI running (need ./configure help?):
    -wget https://osdn.net/dl/cloudi/cloudi-1.7.3.tar.gz
    +wget https://osdn.net/dl/cloudi/cloudi-1.7.4.tar.gz
     
    -tar zxvf cloudi-1.7.3.tar.gz
    +tar zxvf cloudi-1.7.4.tar.gz
     
    -cd cloudi-1.7.3/src
    +cd cloudi-1.7.4/src
     
     ./configure
    diff --git a/doc/html/support.html b/doc/html/support.html
    index 1728a7056..fe8b5a23b 100644
    --- a/doc/html/support.html
    +++ b/doc/html/support.html
    @@ -24,7 +24,7 @@
         
  • FAQ
  • Tutorials (Java)
  • -
  • Download
  • +
  • Download
  • Source
  • Support
  • @@ -35,7 +35,7 @@

    Open Source Community

    Questions, Concerns, Comments, Ideas, and Suggestions can use:

    Development activity can be monitored here:

    diff --git a/doc/html/tutorial_java.adoc b/doc/html/tutorial_java.adoc index 49126d3a6..5abb9321c 100644 --- a/doc/html/tutorial_java.adoc +++ b/doc/html/tutorial_java.adoc @@ -8,8 +8,8 @@ :disable-javascript: :idprefix: :linkattrs: -:revnumber: 1.7.3 -:revdate: 2018-02-27 +:revnumber: 1.7.4 +:revdate: 2018-09-16 :lang: en :encoding: UTF-8 :toc: @@ -82,7 +82,7 @@ To send a service request to all destinations that match a service name requires All services are structured for a 3 part sequence: initialization, handling-requests, and termination. During CloudI service initialization, data structures are initialized to confirm that the service is ready for a runtime that may last indefinitely (making the initialization stage the most critical stage for a service's reliability). Inside the service initialization the `subscribe` CloudI API function is typically called so that incoming service requests are handled after initialization is done. -The book recommendation service initialization is shown below (from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.3/src/main/java/org/cloudi/examples/tutorial/Service.java#L90-L140[Service.java:90-140^]): +The book recommendation service initialization is shown below (from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.4/src/main/java/org/cloudi/examples/tutorial/Service.java#L90-L140[Service.java:90-140^]): [source,java] ---- @@ -163,7 +163,7 @@ All CloudI service requests are able to receive a response. The CloudI service that handles the request can make the request asynchronous by providing a "null response" (a response that has the response data and response_info data set to a binary of size 0) due to the control of the service request passing to the receiver when the service request is handled. That means that the `send_async` CloudI API function call is an asynchronous send due to not waiting for a response to occur, though a response may be sent in the future if the receiving service decides to send a response. -An example of a service request handling function is below (using the "itemRefresh" function from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.3/src/main/java/org/cloudi/examples/tutorial/Service.java#L163-L209[Service.java:163-209^]): +An example of a service request handling function is below (using the "itemRefresh" function from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.4/src/main/java/org/cloudi/examples/tutorial/Service.java#L163-L209[Service.java:163-209^]): [source,java] ---- @@ -245,9 +245,9 @@ Make sure CloudI is installed and running, using the installation and start sequ [source,shell] ---- -wget https://downloads.sourceforge.net/project/cloudi/1.7.3/cloudi-1.7.3.tar.gz -tar zxvf cloudi-1.7.3.tar.gz -cd cloudi-1.7.3/src +wget https://osdn.net/dl/cloudi/cloudi-1.7.4.tar.gz +tar zxvf cloudi-1.7.4.tar.gz +cd cloudi-1.7.4/src ./configure make sudo make install @@ -293,7 +293,7 @@ cat << EOF > tutorial.conf "-server " "-ea:org.cloudi... " "-Xms3g -Xmx3g " - "-jar $PWD/target/cloudi_tutorial_java-1.7.3-jar-with-dependencies.jar " + "-jar $PWD/target/cloudi_tutorial_java-1.7.4-jar-with-dependencies.jar " "-pgsql_hostname localhost " "-pgsql_port 5432 " "-pgsql_database cloudi_tutorial_java " @@ -390,13 +390,13 @@ To understand how book recommendations are occurring in the interface, lets star | client/get | client | | thread > 0 |=== -The table above shows the service subscriptions that occur during service initialization (in link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.3/src/main/java/org/cloudi/examples/tutorial/Service.java#L90-L140[Service.java:90-140^]). +The table above shows the service subscriptions that occur during service initialization (in link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.4/src/main/java/org/cloudi/examples/tutorial/Service.java#L90-L140[Service.java:90-140^]). The service configuration used for running `Service.java` was stored in the `tutorial.conf` file and it specified a total of 4 threads with `count_thread` being set to `4`. The service configuration did not provide a `count_process` setting so the number of OS processes defaulted to `1` (the thread count is applied to each OS process separately, i.e., `count_process` == `2` would have 2 OS processes, each with `4` threads). The service configuration always specifies a service name pattern prefix and that was set to "/tutorial/java/service/" in the `tutorial.conf` file. When a HTTP request (on port 8080) is made to the REST API through cloudi_service_http_cowboy, a CloudI service request is sent based on the HTTP request URL path using the default timeout that was configured for cloudi_service_http_cowboy service requests (10 minutes). -The Javascript interface relies on a WebSocket connection for any usage of the REST API as shown below (link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.3/html/tutorial/java/index.html#L542-L550[index.html:542-550^]): +The Javascript interface relies on a WebSocket connection for any usage of the REST API as shown below (link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.4/html/tutorial/java/index.html#L542-L550[index.html:542-550^]): [source,javascript] ---- @@ -424,7 +424,7 @@ curl -X POST -d '{"message_name": "item_list", "user_id": 1, "language": "en", " A WebSocket request is sent as a CloudI service request that is randomly load-balanced among the 3 threads that have subscribed with the function named "client" (in `Service.java` the subscription occurred when `thread_index` > 0 with 4 threads so 3 threads handle the "client" function). If `Service.java` had `count_process` set to `2` in its service configuration, the service request would instead be randomly load-balanced among 6 total threads with each group of 3 in a separate OS process. -The service request handler function "client" is shown below (from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.3/src/main/java/org/cloudi/examples/tutorial/Service.java#L429-L552[Service.java:429-552^]): +The service request handler function "client" is shown below (from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.4/src/main/java/org/cloudi/examples/tutorial/Service.java#L429-L552[Service.java:429-552^]): [source,java] ---- @@ -581,7 +581,7 @@ The refresh of the items takes a few minutes when getting all the current data f However, after the thread is done refreshing the items, the interface would want to know that new items may exist, so it can request a new list of items (similar to how a new list of recommendations is requested by the interface after a notification). To utilize the result of the "itemRefresh" function processing thread requires that the `poll` CloudI API function is interrupted to call a function that is not a service request handler (to allow usage of the `mcast_async` CloudI API function for sending a notification to all connected WebSockets, similar to what occurs with a successful "recommendation_refresh" `message_name` in the "client" function). -For scheduling an interrupt of the `poll` function the timeout parameter is used as shown below (from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.3/src/main/java/org/cloudi/examples/tutorial/Service.java#L141-L146[Service.java:141-146^]): +For scheduling an interrupt of the `poll` function the timeout parameter is used as shown below (from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.4/src/main/java/org/cloudi/examples/tutorial/Service.java#L141-L146[Service.java:141-146^]): [source,java] ---- @@ -593,7 +593,7 @@ For scheduling an interrupt of the `poll` function the timeout parameter is used } ---- -Each interrupt of the `poll` function allows execution to check if it can run a chunk of function objects in the `ServiceIdle` class as shown below (from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.3/src/main/java/org/cloudi/examples/tutorial/ServiceIdle.java#L9-L73[ServiceIdle.java:9-73^]): +Each interrupt of the `poll` function allows execution to check if it can run a chunk of function objects in the `ServiceIdle` class as shown below (from link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.4/src/main/java/org/cloudi/examples/tutorial/ServiceIdle.java#L9-L73[ServiceIdle.java:9-73^]): [source,java] ---- @@ -664,7 +664,7 @@ public class ServiceIdle } ---- -The result of the "itemRefresh" function processing thread is stored in the `ServiceIdle` class instance within the `GutenbergRefresh` class which handles the item refresh process (link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.3/src/main/java/org/cloudi/examples/tutorial/GutenbergRefresh.java#L99-L102[GutenbergRefresh.java:99-102^]): +The result of the "itemRefresh" function processing thread is stored in the `ServiceIdle` class instance within the `GutenbergRefresh` class which handles the item refresh process (link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.4/src/main/java/org/cloudi/examples/tutorial/GutenbergRefresh.java#L99-L102[GutenbergRefresh.java:99-102^]): [source,java] ---- @@ -674,7 +674,7 @@ The result of the "itemRefresh" function processing thread is stored in the `Ser this.idle.execute(GutenbergRefreshDone.failure(error)); ---- -After the `poll` function is interrupted and the `ServiceIdle` class has function objects to call, the `GutenbergRefreshDone` function object is executed to send the "itemRefresh" result notification to all connected WebSockets (link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.3/src/main/java/org/cloudi/examples/tutorial/GutenbergRefreshDone.java#L31-L51[GutenbergRefreshDone.java:31-51^]): +After the `poll` function is interrupted and the `ServiceIdle` class has function objects to call, the `GutenbergRefreshDone` function object is executed to send the "itemRefresh" result notification to all connected WebSockets (link:https://github.com/CloudI/cloudi_tutorial_java/blob/v1.7.4/src/main/java/org/cloudi/examples/tutorial/GutenbergRefreshDone.java#L31-L51[GutenbergRefreshDone.java:31-51^]): [source,java] ---- diff --git a/doc/html/tutorial_java.html b/doc/html/tutorial_java.html index ce686bfbb..2cb452629 100644 --- a/doc/html/tutorial_java.html +++ b/doc/html/tutorial_java.html @@ -24,7 +24,7 @@
  • FAQ
  • Tutorials (Java)
  • -
  • Download
  • +
  • Download
  • Source
  • Support
  • @@ -32,8 +32,8 @@

    CloudI Java Tutorial

    -version 1.7.3, -2018-03-29 +version 1.7.4, +2018-09-16
    @@ -176,7 +176,7 @@

    What Is The St

    All services are structured for a 3 part sequence: initialization, handling-requests, and termination. During CloudI service initialization, data structures are initialized to confirm that the service is ready for a runtime that may last indefinitely (making the initialization stage the most critical stage for a service’s reliability). Inside the service initialization the subscribe CloudI API function is typically called so that incoming service requests are handled after initialization is done. -The book recommendation service initialization is shown below (from Service.java:90-140):

    +The book recommendation service initialization is shown below (from Service.java:90-140):

    @@ -264,7 +264,7 @@

    Handling Requests

    That means that the send_async CloudI API function call is an asynchronous send due to not waiting for a response to occur, though a response may be sent in the future if the receiving service decides to send a response.

    -

    An example of a service request handling function is below (using the "itemRefresh" function from Service.java:163-209):

    +

    An example of a service request handling function is below (using the "itemRefresh" function from Service.java:163-209):

    @@ -353,9 +353,9 @@

    Creating Book Recommendations

    -
    wget https://osdn.net/dl/cloudi/cloudi-1.7.3.tar.gz
    -tar zxvf cloudi-1.7.3.tar.gz
    -cd cloudi-1.7.3/src
    +
    wget https://osdn.net/dl/cloudi/cloudi-1.7.4.tar.gz
    +tar zxvf cloudi-1.7.4.tar.gz
    +cd cloudi-1.7.4/src
     ./configure
     make
     sudo make install
    @@ -403,7 +403,7 @@ 

    Creating Book Recommendations

    "-server " "-ea:org.cloudi... " "-Xms3g -Xmx3g " - "-jar $PWD/target/cloudi_tutorial_java-1.7.3-jar-with-dependencies.jar " + "-jar $PWD/target/cloudi_tutorial_java-1.7.4-jar-with-dependencies.jar " "-pgsql_hostname localhost " "-pgsql_port 5432 " "-pgsql_database cloudi_tutorial_java " @@ -572,14 +572,14 @@

    How Is The Book Recommend

    -

    The table above shows the service subscriptions that occur during service initialization (in Service.java:90-140). +

    The table above shows the service subscriptions that occur during service initialization (in Service.java:90-140). The service configuration used for running Service.java was stored in the tutorial.conf file and it specified a total of 4 threads with count_thread being set to 4. The service configuration did not provide a count_process setting so the number of OS processes defaulted to 1 (the thread count is applied to each OS process separately, i.e., count_process == 2 would have 2 OS processes, each with 4 threads). The service configuration always specifies a service name pattern prefix and that was set to "/tutorial/java/service/" in the tutorial.conf file.

    When a HTTP request (on port 8080) is made to the REST API through cloudi_service_http_cowboy, a CloudI service request is sent based on the HTTP request URL path using the default timeout that was configured for cloudi_service_http_cowboy service requests (10 minutes). -The Javascript interface relies on a WebSocket connection for any usage of the REST API as shown below (index.html:542-550):

    +The Javascript interface relies on a WebSocket connection for any usage of the REST API as shown below (index.html:542-550):

    @@ -609,7 +609,7 @@
    Book Recommendation WebSocket Re

    A WebSocket request is sent as a CloudI service request that is randomly load-balanced among the 3 threads that have subscribed with the function named "client" (in Service.java the subscription occurred when thread_index > 0 with 4 threads so 3 threads handle the "client" function). If Service.java had count_process set to 2 in its service configuration, the service request would instead be randomly load-balanced among 6 total threads with each group of 3 in a separate OS process. -The service request handler function "client" is shown below (from Service.java:429-552):

    +The service request handler function "client" is shown below (from Service.java:429-552):

    @@ -774,7 +774,7 @@
    Book Recommendation WebSock

    To utilize the result of the "itemRefresh" function processing thread requires that the poll CloudI API function is interrupted to call a function that is not a service request handler (to allow usage of the mcast_async CloudI API function for sending a notification to all connected WebSockets, similar to what occurs with a successful "recommendation_refresh" message_name in the "client" function). -For scheduling an interrupt of the poll function the timeout parameter is used as shown below (from Service.java:141-146):

    +For scheduling an interrupt of the poll function the timeout parameter is used as shown below (from Service.java:141-146):

    @@ -787,7 +787,7 @@
    Book Recommendation WebSock
    -

    Each interrupt of the poll function allows execution to check if it can run a chunk of function objects in the ServiceIdle class as shown below (from ServiceIdle.java:9-73):

    +

    Each interrupt of the poll function allows execution to check if it can run a chunk of function objects in the ServiceIdle class as shown below (from ServiceIdle.java:9-73):

    @@ -859,7 +859,7 @@
    Book Recommendation WebSock
    -

    The result of the "itemRefresh" function processing thread is stored in the ServiceIdle class instance within the GutenbergRefresh class which handles the item refresh process (GutenbergRefresh.java:99-102):

    +

    The result of the "itemRefresh" function processing thread is stored in the ServiceIdle class instance within the GutenbergRefresh class which handles the item refresh process (GutenbergRefresh.java:99-102):

    @@ -870,7 +870,7 @@
    Book Recommendation WebSock
    -

    After the poll function is interrupted and the ServiceIdle class has function objects to call, the GutenbergRefreshDone function object is executed to send the "itemRefresh" result notification to all connected WebSockets (GutenbergRefreshDone.java:31-51):

    +

    After the poll function is interrupted and the ServiceIdle class has function objects to call, the GutenbergRefreshDone function object is executed to send the "itemRefresh" result notification to all connected WebSockets (GutenbergRefreshDone.java:31-51):

    diff --git a/doc/html/tutorials.adoc b/doc/html/tutorials.adoc index 1555c7d33..c8d2e2af4 100644 --- a/doc/html/tutorials.adoc +++ b/doc/html/tutorials.adoc @@ -8,8 +8,8 @@ :disable-javascript: :idprefix: :linkattrs: -:revnumber: 1.7.3 -:revdate: 2018-02-27 +:revnumber: 1.7.4 +:revdate: 2018-09-16 :lang: en :encoding: UTF-8 :toc: diff --git a/doc/html/tutorials.html b/doc/html/tutorials.html index 92ce483fd..2260d5a18 100644 --- a/doc/html/tutorials.html +++ b/doc/html/tutorials.html @@ -24,7 +24,7 @@
  • FAQ
  • Tutorials (Java)
  • -
  • Download
  • +
  • Download
  • Source
  • Support
  • @@ -32,8 +32,8 @@

    CloudI User Tutorials

    -version 1.7.3, -2018-03-29 +version 1.7.4, +2018-09-16
    diff --git a/examples/Elixir.HelloWorld/Makefile b/examples/Elixir.HelloWorld/Makefile index 40730f005..95eeb3350 100644 --- a/examples/Elixir.HelloWorld/Makefile +++ b/examples/Elixir.HelloWorld/Makefile @@ -3,7 +3,7 @@ .PHONY : all clean release -CLOUDI_VERSION=1.7.3 +CLOUDI_VERSION=1.7.4 CLOUDI_PATH=/usr/local/lib/cloudi-$(CLOUDI_VERSION)/lib/cloudi_core-$(CLOUDI_VERSION) all: lib/HelloWorld.ex diff --git a/examples/Elixir.HelloWorld/mix.exs b/examples/Elixir.HelloWorld/mix.exs index f26b9ca13..d9f249bde 100644 --- a/examples/Elixir.HelloWorld/mix.exs +++ b/examples/Elixir.HelloWorld/mix.exs @@ -6,7 +6,7 @@ defmodule HelloWorld.Mixfile do def project do [app: :'Elixir.HelloWorld', - version: "1.7.3", + version: "1.7.4", elixirc_paths: ["lib/"], deps: deps()] end diff --git a/examples/hello_world_embedded/apps/hello_world_embedded/src/hello_world_embedded.app.src b/examples/hello_world_embedded/apps/hello_world_embedded/src/hello_world_embedded.app.src index 7f8baddaf..6459c20b3 100644 --- a/examples/hello_world_embedded/apps/hello_world_embedded/src/hello_world_embedded.app.src +++ b/examples/hello_world_embedded/apps/hello_world_embedded/src/hello_world_embedded.app.src @@ -3,7 +3,7 @@ {application, hello_world_embedded, [{description, "Hello World Embedded Example Application"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [hello_world_embedded, hello_world_embedded_app, diff --git a/examples/hello_world_embedded/rebar.config.local_install b/examples/hello_world_embedded/rebar.config.local_install index 9b5aa27b5..ca1f767e6 100644 --- a/examples/hello_world_embedded/rebar.config.local_install +++ b/examples/hello_world_embedded/rebar.config.local_install @@ -2,6 +2,6 @@ % ex: set ft=erlang fenc=utf-8 sts=4 ts=4 sw=4 et nomod: {lib_dirs, - ["/usr/local/lib/cloudi-1.7.3/lib"]}. + ["/usr/local/lib/cloudi-1.7.4/lib"]}. {sub_dirs, ["apps/hello_world_embedded"]}. diff --git a/examples/hello_world_embedded/reltool.config.local_install b/examples/hello_world_embedded/reltool.config.local_install index eb37063d1..55a90437e 100644 --- a/examples/hello_world_embedded/reltool.config.local_install +++ b/examples/hello_world_embedded/reltool.config.local_install @@ -5,7 +5,7 @@ [ {lib_dirs, [ - "/usr/local/lib/cloudi-1.7.3/lib" + "/usr/local/lib/cloudi-1.7.4/lib" ]}, {rel, "cloudi_hello_world_embedded", "1", [ diff --git a/examples/hello_world_erlang/Makefile b/examples/hello_world_erlang/Makefile index 462d414e6..5248b6ac9 100644 --- a/examples/hello_world_erlang/Makefile +++ b/examples/hello_world_erlang/Makefile @@ -3,7 +3,7 @@ .PHONY : all clean release -CLOUDI_VERSION=1.7.3 +CLOUDI_VERSION=1.7.4 CLOUDI_PATH=/usr/local/lib/cloudi-$(CLOUDI_VERSION)/lib/cloudi_core-$(CLOUDI_VERSION) all: src/hello_world_erlang.erl diff --git a/examples/hello_world_erlang/ebin/hello_world_erlang.app b/examples/hello_world_erlang/ebin/hello_world_erlang.app index f5283b6d9..b23f707c0 100644 --- a/examples/hello_world_erlang/ebin/hello_world_erlang.app +++ b/examples/hello_world_erlang/ebin/hello_world_erlang.app @@ -3,7 +3,7 @@ {application, hello_world_erlang, [{description, "Hello World Erlang Example Application"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [ hello_world_erlang]}, {registered, []}, diff --git a/examples/hello_world_reltool/Makefile b/examples/hello_world_reltool/Makefile index c4cbc432c..6feffec0f 100644 --- a/examples/hello_world_reltool/Makefile +++ b/examples/hello_world_reltool/Makefile @@ -3,7 +3,7 @@ .PHONY : all clean release -CLOUDI_VERSION=1.7.3 +CLOUDI_VERSION=1.7.4 CLOUDI_PATH=/usr/local/lib/cloudi-$(CLOUDI_VERSION)/lib/cloudi_core-$(CLOUDI_VERSION) all: src/hello_world_reltool.erl diff --git a/examples/hello_world_reltool/ebin/hello_world_reltool.app b/examples/hello_world_reltool/ebin/hello_world_reltool.app index c57923925..fb3a763e0 100644 --- a/examples/hello_world_reltool/ebin/hello_world_reltool.app +++ b/examples/hello_world_reltool/ebin/hello_world_reltool.app @@ -3,7 +3,7 @@ {application, hello_world_reltool, [{description, "Hello World Reltool Example Application"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [ hello_world_reltool]}, {registered, []}, diff --git a/examples/hello_world_reltool/reltool.config b/examples/hello_world_reltool/reltool.config index b7728ba91..24ddb2348 100644 --- a/examples/hello_world_reltool/reltool.config +++ b/examples/hello_world_reltool/reltool.config @@ -5,7 +5,7 @@ [ {lib_dirs, [ - "/usr/local/lib/cloudi-1.7.3/lib" + "/usr/local/lib/cloudi-1.7.4/lib" ]}, {rel, "cloudi_hello_world_reltool", "1", [ diff --git a/examples/hello_world_relx/Makefile b/examples/hello_world_relx/Makefile index 1bcf9b744..fc0bc16d9 100644 --- a/examples/hello_world_relx/Makefile +++ b/examples/hello_world_relx/Makefile @@ -3,7 +3,7 @@ .PHONY : all clean release -CLOUDI_VERSION=1.7.3 +CLOUDI_VERSION=1.7.4 CLOUDI_PATH=/usr/local/lib/cloudi-$(CLOUDI_VERSION)/lib/cloudi_core-$(CLOUDI_VERSION) all: src/hello_world_relx.erl diff --git a/examples/hello_world_relx/ebin/hello_world_relx.app b/examples/hello_world_relx/ebin/hello_world_relx.app index 5def41f3a..f661b7350 100644 --- a/examples/hello_world_relx/ebin/hello_world_relx.app +++ b/examples/hello_world_relx/ebin/hello_world_relx.app @@ -3,7 +3,7 @@ {application, hello_world_relx, [{description, "Hello World Relx Example Application"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [ hello_world_relx]}, {registered, []}, diff --git a/examples/hello_world_relx/relx.config b/examples/hello_world_relx/relx.config index 6f6e16cc8..142ca26eb 100644 --- a/examples/hello_world_relx/relx.config +++ b/examples/hello_world_relx/relx.config @@ -3,7 +3,7 @@ {lib_dirs, [ - "/usr/local/lib/cloudi-1.7.3/lib" + "/usr/local/lib/cloudi-1.7.4/lib" ]}. {release, {cloudi, "1"}, [hello_world_relx, diff --git a/src/ChangeLog b/src/ChangeLog index 5909cb9d6..b30005730 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,6 +1,10 @@ # -*- coding: utf-8; tab-width: 4; -*- # ex: set fenc=utf-8 sts=4 ts=4 et nomod: +2018-09-16 Michael Truog + + * CloudI version 1.7.4 released + 2018-09-15 Michael Truog * Add cloudi_core Erlang application compiler dependency diff --git a/src/NEWS b/src/NEWS index e8473eb27..1517dc9f2 100644 --- a/src/NEWS +++ b/src/NEWS @@ -1,5 +1,25 @@ ------------------------------------------------------------------------ +September 16, 2018 + Version 1.7.4 released. + * Added CloudI Service API services_status function to provide + current uptime and availability information for any CloudI service + (using Erlang monotonic time) + * Added CloudI Service API code_status function to provide + information about the installation and any runtime changes of + the CloudI service files on the filesystem + * ZeroMQ support was removed and SSH connectivity was added to + cloudi_service_router as a better alternative + * cloudi_crdt had small additions and an important bugfix + * Added JSON support to cloudi_service_api_requests + * Fixed Javascript CloudI API service termination (no delay now) + * Added support in Python, Python/C and Java CloudI APIs for + non-member (static) functions (passed to the subscribe function) + * Erlang/OTP 21.x compatibility + * Haskell CloudI API dependencies were updated + * Bugs were fixed and other improvements were added + (see the ChangeLog for more detail) + February 27, 2018 Version 1.7.3 released. * cloudi_crdt was added to provide an easy way to have replicated diff --git a/src/api/haskell/cloudi.cabal.in b/src/api/haskell/cloudi.cabal.in index 5d4aa6fa3..52f468a9a 100644 --- a/src/api/haskell/cloudi.cabal.in +++ b/src/api/haskell/cloudi.cabal.in @@ -23,7 +23,7 @@ library , Foreign.Erlang.Reference , Foreign.Erlang.Function other-modules: Foreign.CloudI.Instance - ghc-options: -Wall -funbox-strict-fields -threaded + ghc-options: -Wall -funbox-strict-fields build-depends: base >= 4.8.2.0 , binary >= 0.8.4.0 , bytestring >= 0.10.4 diff --git a/src/api/perl/CloudI/API.pm b/src/api/perl/CloudI/API.pm index b3d03a159..e4a20c576 100644 --- a/src/api/perl/CloudI/API.pm +++ b/src/api/perl/CloudI/API.pm @@ -29,7 +29,7 @@ use strict; use warnings; use 5.010; -$CloudI::API::VERSION = '1.73'; +$CloudI::API::VERSION = '1.74'; use POSIX qw(getenv); use IO::Handle; diff --git a/src/api/perl/Erlang.pm b/src/api/perl/Erlang.pm index db43a6c69..2fd34b7d3 100644 --- a/src/api/perl/Erlang.pm +++ b/src/api/perl/Erlang.pm @@ -30,7 +30,7 @@ use strict; use warnings; use 5.010; -$Erlang::VERSION = '1.73'; +$Erlang::VERSION = '1.74'; require Compress::Zlib; # bigint/bignum caused slowness without enough features to be useful diff --git a/src/configure.ac b/src/configure.ac index d1f38a7f1..72bc21916 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -1,7 +1,7 @@ #-*-Mode:autoconf;coding:utf-8;tab-width:4;c-basic-offset:4;indent-tabs-mode:()-*- # ex: set ft=config fenc=utf-8 sts=4 ts=4 sw=4 et nomod: -AC_INIT([CloudI], [1.7.3], [mjtruog at protonmail dot com], +AC_INIT([CloudI], [1.7.4], [mjtruog at protonmail dot com], [cloudi], [https://cloudi.org/]) AC_SUBST(CLOUDI_CORE_RELEASE_VERSION, [1]) diff --git a/src/external/README.markdown b/src/external/README.markdown index 02adc9b47..a8aaa7d41 100644 --- a/src/external/README.markdown +++ b/src/external/README.markdown @@ -204,8 +204,8 @@ Erlang `nodefinder` `Strategies for automatic node discovery in Erlang` - `https://github.com/okeuday/nodefinder` -- `commit 0c0027dd89ac7cfd94271e72ecc75cb92fad06f2` -- `Sun Apr 8 13:39:08 PDT 2018` +- `commit 0e07c074f18678852e152aba169be2254e18e4c9 (v1.7.4)` +- `Sun Sep 16 01:34:47 PDT 2018` - `MIT` Erlang `parse_trans` diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder.html b/src/external/cloudi_x_nodefinder/doc/nodefinder.html index f8d357c5b..94cf3c3e3 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder.html @@ -68,6 +68,6 @@

    timeout_min/0


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_app.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_app.html index 9965be009..22532af7f 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_app.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_app.html @@ -46,6 +46,6 @@

    Stop the nodefinder application.<
    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2.html index 677c58acb..e0defcdbb 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2.html @@ -108,6 +108,6 @@

    validate_tags/1


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api.html index 4e94f8e5e..47ef4480b 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api.html @@ -32,6 +32,6 @@

    new/3


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_aws.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_aws.html index e778ee4a9..241136f96 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_aws.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_aws.html @@ -32,6 +32,6 @@

    param_list/2


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_http.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_http.html index 2ff8caba3..751afbd0d 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_http.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_http.html @@ -38,6 +38,6 @@

    value_to_string/1


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_httpc.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_httpc.html index 14315cc66..b4adc9e1d 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_httpc.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_httpc.html @@ -41,6 +41,6 @@

    request/6


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_xml.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_xml.html index 2b57e6685..10ee813d9 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_xml.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_ec2_api_xml.html @@ -80,6 +80,6 @@

    get_time/2


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_multicast.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_multicast.html index 70f753fc6..66a701cdd 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_multicast.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_multicast.html @@ -72,6 +72,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_string.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_string.html index 7f12ed653..3ffd3a5aa 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_string.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_string.html @@ -56,6 +56,6 @@

    uppercase/1


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/nodefinder_sup.html b/src/external/cloudi_x_nodefinder/doc/nodefinder_sup.html index 7b0e7e8d9..cfd5a4bba 100644 --- a/src/external/cloudi_x_nodefinder/doc/nodefinder_sup.html +++ b/src/external/cloudi_x_nodefinder/doc/nodefinder_sup.html @@ -45,6 +45,6 @@

    stop_child/1


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/doc/overview-summary.html b/src/external/cloudi_x_nodefinder/doc/overview-summary.html index 4f309333b..933aba103 100644 --- a/src/external/cloudi_x_nodefinder/doc/overview-summary.html +++ b/src/external/cloudi_x_nodefinder/doc/overview-summary.html @@ -11,6 +11,6 @@

    The nodefinder application


    -

    Generated by EDoc, Feb 26 2018, 17:13:16.

    +

    Generated by EDoc

    diff --git a/src/external/cloudi_x_nodefinder/mix.exs b/src/external/cloudi_x_nodefinder/mix.exs index b89cbdb2f..fccac1df3 100644 --- a/src/external/cloudi_x_nodefinder/mix.exs +++ b/src/external/cloudi_x_nodefinder/mix.exs @@ -6,8 +6,24 @@ defmodule Nodefinder.Mixfile do def project do [app: :nodefinder, - version: "1.7.3", + version: "1.7.4", language: :erlang, + erlc_options: [ + {:d, :erlang.list_to_atom('ERLANG_OTP_VERSION_' ++ :erlang.system_info(:otp_release))}, + :debug_info, + :warnings_as_errors, + :strict_validation, + :warn_bif_clash, + :warn_deprecated_function, + :warn_export_all, + :warn_export_vars, + :warn_exported_vars, + :warn_obsolete_guard, + :warn_shadow_vars, + :warn_unused_import, + :warn_unused_function, + :warn_unused_record, + :warn_unused_vars], description: description(), package: package(), deps: deps()] diff --git a/src/external/cloudi_x_nodefinder/rebar.config b/src/external/cloudi_x_nodefinder/rebar.config index d9df00313..5d24e2e35 100644 --- a/src/external/cloudi_x_nodefinder/rebar.config +++ b/src/external/cloudi_x_nodefinder/rebar.config @@ -6,6 +6,7 @@ {platform_define, "^19\.", 'ERLANG_OTP_VERSION_19'}, {platform_define, "^20\.", 'ERLANG_OTP_VERSION_20'}, {platform_define, "^21\.", 'ERLANG_OTP_VERSION_21'}, + {platform_define, "^22\.", 'ERLANG_OTP_VERSION_22'}, strict_validation, warn_bif_clash, warn_deprecated_function, diff --git a/src/external/cloudi_x_nodefinder/src/nodefinder.app.src b/src/external/cloudi_x_nodefinder/src/nodefinder.app.src index e7cddebf9..f4284aa33 100644 --- a/src/external/cloudi_x_nodefinder/src/nodefinder.app.src +++ b/src/external/cloudi_x_nodefinder/src/nodefinder.app.src @@ -3,7 +3,7 @@ {application, nodefinder, [{description, "nodefinder Application"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [ nodefinder, nodefinder_app, diff --git a/src/lib/README.markdown b/src/lib/README.markdown index 926dcc365..90d57910b 100644 --- a/src/lib/README.markdown +++ b/src/lib/README.markdown @@ -10,8 +10,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang native cgroups interface` - `https://github.com/okeuday/cgroups` -- `commit d1b27460a3b2c5e48597ce017730f76a05f8eabc (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit 96c38d6a24959949f376db8d0245326615ac91ae (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `cpg` @@ -19,8 +19,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `CloudI Process Groups` - `https://github.com/okeuday/cpg` -- `commit 6e305e09dabe95a1c2b7caecaedb556143c5f7b9` -- `Fri Apr 20 15:35:04 PDT 2018` +- `commit 613eb6ac039ca36cd76842f667a90771b0e5c851 (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `erlang_term` @@ -28,8 +28,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang Term Info` - `https://github.com/okeuday/erlang_term` -- `commit 1e2990518d5e68ebbb11cfed7ea06cfa225e0eb5 (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit 2ac21cd82cf01bccf06af769ce869d9b29b770d7 (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `key2value` @@ -37,8 +37,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang 2-way map` - `https://github.com/okeuday/key2value` -- `commit 894f0fb9e6cdea4e930fce312cd380549c39b837 (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit 45a16333f4098b96c79744cd94f58451c7931b39 (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `keys1value` @@ -46,8 +46,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang set associative map for key lists` - `https://github.com/okeuday/keys1value` -- `commit efc0ca9b546137e7097c94b375764dcfdb0c3471 (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit 99fa4c29bb33be76f8e8fe5548fed2d785645bbc (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `pqueue` @@ -55,8 +55,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang Priority Queues` - `https://github.com/okeuday/pqueue` -- `commit a40f1147acecc8f68be7bead6ebee660e2321db6 (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit 7d09c7f4584ab9fecf6aec2f879103324448f56d (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `quickrand` @@ -64,8 +64,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Quick Erlang Random Number Generation` - `https://github.com/okeuday/quickrand` -- `commit 336c0d94a6a384f307183b3c14fc2112656dac37 (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit f6e5228fc1d0f7c679ce3dc5aeca63ec8335875a (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `reltool_util` @@ -73,8 +73,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang reltool utility functionality application` - `https://github.com/okeuday/reltool_util` -- `commit c86feb72f71fe0e73c98a3bf5b00160717e3f7b0 (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit 0482d596e00e9295763bce119faaa263d1b5fd49 (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `supool` @@ -82,8 +82,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang Process Pool as a Supervisor` - `https://github.com/okeuday/supool` -- `commit b6722c356a608498c038a2923a067641a65f17ba` -- `Sat Apr 7 17:03:52 PDT 2018` +- `commit 7b2e412d7398567ee4728fbe4a284df6a6452e59 (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `syslog_socket` @@ -91,8 +91,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang syslog Client Interface` - `https://github.com/okeuday/syslog_socket` -- `commit d61992341aa65ac8043f9604cf84ba5a9018a9ee (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit 0c282b6f6945bae237219520fa46a1d7a31f7ac6 (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `trie` @@ -100,8 +100,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang Trie Implementation` - `https://github.com/okeuday/trie` -- `commit 44d5cf82e6979ac512b72c08af333cd540cdc5ed (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit f6beab10d2cc8f28033a3b67528e46e89ecc05a1 (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `uuid` @@ -109,8 +109,8 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang Native UUID Generation` - `https://github.com/okeuday/uuid` -- `commit 27219e393d22b11f3e7ac3ebb1a1858e5bab7aef` -- `Thu May 10 23:52:44 PDT 2018` +- `commit e64cd99266b8beba7c30e78ee3ab3a061e99cdbf (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` `varpool` @@ -118,7 +118,7 @@ as external dependencies within CloudI (i.e., with a `cloudi_x_` prefix). `Erlang Process Pools as a Local Variable` - `https://github.com/okeuday/varpool` -- `commit eff01fcc44005781d190bd5be74992f0c02747af (v1.7.3)` -- `Tue Feb 27 10:22:17 PST 2018` +- `commit 22bfba6daeffaa8de0b1e393c389057986a90936 (v1.7.4)` +- `Sun Sep 16 12:55:52 PDT 2018` - `MIT` diff --git a/src/lib/cgroups/doc/cgroups.html b/src/lib/cgroups/doc/cgroups.html index 47442660f..ee2de337a 100644 --- a/src/lib/cgroups/doc/cgroups.html +++ b/src/lib/cgroups/doc/cgroups.html @@ -14,7 +14,7 @@

    Module cgroups

    cgroups Manipulation Functions

    .

    Copyright © 2016-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 16:29:10 +

    Version: 1.7.3 Sep 15 2018 16:30:43 ------------------------------------------------------------------------

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

    @@ -125,6 +125,6 @@

    Update or create a specific cg
    -

    Generated by EDoc, Feb 26 2018, 16:29:10.

    +

    Generated by EDoc

    diff --git a/src/lib/cgroups/doc/overview-summary.html b/src/lib/cgroups/doc/overview-summary.html index e87646a48..5c0f7755c 100644 --- a/src/lib/cgroups/doc/overview-summary.html +++ b/src/lib/cgroups/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cgroups application


    -

    Generated by EDoc, Feb 26 2018, 16:29:10.

    +

    Generated by EDoc

    diff --git a/src/lib/cgroups/src/cgroups.app.src b/src/lib/cgroups/src/cgroups.app.src index 7f385e141..0b7af13de 100644 --- a/src/lib/cgroups/src/cgroups.app.src +++ b/src/lib/cgroups/src/cgroups.app.src @@ -3,7 +3,7 @@ {application, cgroups, [{description, "Erlang native cgroups interface"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [cgroups]}, {registered, []}, {applications, [stdlib, kernel]}, diff --git a/src/lib/cloudi_core/doc/cloudi.html b/src/lib/cloudi_core/doc/cloudi.html index dcd52abc1..e56986280 100644 --- a/src/lib/cloudi_core/doc/cloudi.html +++ b/src/lib/cloudi_core/doc/cloudi.html @@ -14,7 +14,7 @@

    Module cloudi

    CloudI Erlang Interface

    .

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:50 ------------------------------------------------------------------------

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

    @@ -538,6 +538,6 @@

    Return the age of the transa
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_args_type.html b/src/lib/cloudi_core/doc/cloudi_args_type.html index d310f6ba3..bebb82e8a 100644 --- a/src/lib/cloudi_core/doc/cloudi_args_type.html +++ b/src/lib/cloudi_core/doc/cloudi_args_type.html @@ -13,9 +13,9 @@

    Module cloudi_args_type

    CloudI Service Configuration Arguments Type Checking

    Functions to simplify validation done during service initialization. -

    Copyright © 2015-2017 Michael Truog

    +

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:08:11 ------------------------------------------------------------------------

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

    @@ -39,7 +39,7 @@

    function_optional/2

    function_required/2

    -

    function_required(Function::{{module(), arity()}} | {module(), atom()} | function(), Arity::non_neg_integer()) -> function()

    +

    function_required(Function::{{module(), atom()}} | {module(), atom()} | function(), Arity::non_neg_integer()) -> function()

    function_required_pick/2

    @@ -59,6 +59,6 @@

    service_name_suffix/2 -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_concurrency.html b/src/lib/cloudi_core/doc/cloudi_concurrency.html index ea0affbf4..f83085bc7 100644 --- a/src/lib/cloudi_core/doc/cloudi_concurrency.html +++ b/src/lib/cloudi_core/doc/cloudi_concurrency.html @@ -14,7 +14,7 @@

    Module cloudi_concurrency

    CloudI Concurrency

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:41 ------------------------------------------------------------------------

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

    @@ -42,6 +42,6 @@

    A cou
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_app.html b/src/lib/cloudi_core/doc/cloudi_core_i_app.html index 06cb6b226..536cef8a1 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_app.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_app.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_app

    CloudI Application

    .

    Copyright © 2009-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:41 ------------------------------------------------------------------------

    Behaviours: application.

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

    @@ -56,6 +56,6 @@

    Is cloudi
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_configuration.html b/src/lib/cloudi_core/doc/cloudi_core_i_configuration.html index e6b9fedc7..245dacf5a 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_configuration.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_configuration.html @@ -12,9 +12,9 @@

    Module cloudi_core_i_configuration

    CloudI Configuration

    . -

    Copyright © 2009-2017 Michael Truog

    +

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:59 ------------------------------------------------------------------------

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

    @@ -43,6 +43,10 @@

    error_

    error_reason_acl_remove_configuration() = {acl_invalid, any()}

    +

    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()

    @@ -119,6 +123,10 @@

    error_reason_services_restart_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_update()

    error_reason_services_update() = error_reason_services_update_configuration()

    @@ -157,6 +165,8 @@

    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 @@ -181,42 +191,42 @@

    Function Details

    acl/1

    -

    acl(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{atom(), [cloudi_service:service_name_pattern()]}]

    +

    acl(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_acl_add()}

    +

    acl_add(Value::[{atom(), cloudi_service_api:acl()}], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_acl_add()}

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

    acl_remove/2

    -

    acl_remove(Value::[atom()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_acl_remove()}

    +

    acl_remove(Value::[atom()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_acl_remove()}

    Remove Access Control List (ACL) aliases.

    load/1

    -

    load(Path::string() | [tuple()]) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, file:posix() | badarg | system_limit | terminated | {configuration_invalid | parse_error, any()} | error_reason_new()}

    +

    load(Path::string() | [tuple()]) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> cloudi_service_api:logging_proplist()

    +

    logging(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> 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(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_formatters_set()}

    +

    logging_formatters_set(Value::cloudi_service_api:logging_formatters_set_proplist() | undefined, Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_formatters_set()}

    Set the CloudI log formatters.

    @@ -230,42 +240,42 @@

    Determine the hig

    logging_set/2

    -

    logging_set(Value::cloudi_service_api:logging_proplist(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_set()}

    +

    logging_set(Value::cloudi_service_api:logging_proplist(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_set()}

    Set CloudI logging configuration.

    logging_syslog_set/2

    -

    logging_syslog_set(Value::cloudi_service_api:logging_syslog_set_proplist(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_syslog_set()}

    +

    logging_syslog_set(Value::cloudi_service_api:logging_syslog_set_proplist() | undefined, Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_logging_syslog_set()}

    Set CloudI syslog configuration.

    nodes_add/2

    -

    nodes_add(Value::[node()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_add()}

    +

    nodes_add(Value::[node()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_add()}

    Add CloudI nodes.

    nodes_get/1

    -

    nodes_get(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> cloudi_service_api:nodes_proplist()

    +

    nodes_get(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> cloudi_service_api:nodes_proplist()

    Get CloudI nodes configuration.

    nodes_remove/2

    -

    nodes_remove(Value::[node()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_remove()}

    +

    nodes_remove(Value::[node()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_remove()}

    Remove CloudI nodes.

    nodes_set/2

    -

    nodes_set(Value::cloudi_service_api:nodes_proplist(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_set()}

    +

    nodes_set(Value::cloudi_service_api:nodes_proplist(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_nodes_set()}

    Set CloudI nodes configuration.

    @@ -278,6 +288,13 @@

    Provide the 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [cloudi_service_api:service_id()]

    +

    +

    Return a list of all the configured service UUIDs.

    +

    +

    service_options_copy/3

    service_options_copy(OptionsKeys::[atom()], OldOptions0::#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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, NewOptions::#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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}

    @@ -287,14 +304,14 @@

    services/1

    -

    services(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{cloudi_service_api:service_id(), #internal{}} | {cloudi_service_api:service_id(), #external{}}]

    +

    services(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, [cloudi_service_api:service_id()], #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_add()}

    +

    services_add(Value::[#internal{} | #external{} | cloudi_service_api:service_proplist(), ...], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, [cloudi_service_api:service_id()], #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_add()}

    Add services based on the configuration format.

    @@ -315,34 +332,34 @@

    services_remove/3

    -

    services_remove(Value::[cloudi_service_api:service_id(), ...], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_remove()}

    +

    services_remove(Value::[cloudi_service_api:service_id(), ...], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_restart()}

    +

    services_restart(Value::[cloudi_service_api:service_id(), ...], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, Timeout::api_timeout_milliseconds()) -> {ok, #config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_restart()}

    Restart services based on their UUID.

    services_search/2

    -

    services_search(Value::[cloudi_service_api:service_id()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{cloudi_service_api:service_id(), #internal{}} | {cloudi_service_api:service_id(), #external{}}]

    +

    services_search(Value::[cloudi_service_api:service_id()], Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> [{cloudi_service_api:service_id(), #internal{}} | {cloudi_service_api:service_id(), #external{}}]

    Search services based on their UUID.

    services_update/3

    -

    services_update(Plan::list(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_update()}

    +

    services_update(Plan::list(), Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}, 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(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}} | {error, error_reason_services_update()}

    Update services after checking their UUID.


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_configurator.html b/src/lib/cloudi_core/doc/cloudi_core_i_configurator.html index a94a1661b..e0bac1e1a 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_configurator.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_configurator.html @@ -13,9 +13,9 @@

    Module cloudi_core_i_configurator

    CloudI Configurator

    Use the configuration information to start CloudI processes. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:26 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -25,6 +25,10 @@

    CloudI Configurator

    Use the configuration information to start CloudI processes.

    Data Types

    +

    error_reason_code_status()

    +

    error_reason_code_status() = {file, {file:filename(), file:posix() | badarg}}

    + +

    error_reason_service_restart()

    error_reason_service_restart() = {service_internal_restart_failed | service_external_restart_failed, any()}

    @@ -41,11 +45,16 @@

    error_reason_ser

    error_reason_service_update() = {service_internal_update_failed | service_external_update_failed, any()}

    +

    error_reason_services_search()

    +

    error_reason_services_search() = service_scope_invalid

    + +

    Function Index

    + @@ -63,12 +72,13 @@

    Function Index

    - - + + + @@ -103,6 +113,11 @@

    code_change/3

    code_change(X1, State, X3) -> any()

    +

    code_status/3

    +
    +

    code_status(TimeNative, TimeOffset, Timeout) -> any()

    +
    +

    configure/0

    configure() -> any()

    @@ -188,14 +203,14 @@

    nodes_set/2

    nodes_set(L, Timeout) -> any()

    -

    service_dead/1

    +

    service_ids/1

    -

    service_dead(ID) -> any()

    +

    service_ids(Timeout) -> any()

    -

    service_initialized_process/1

    +

    service_process_init_end/1

    -

    service_initialized_process(Pid) -> any()

    +

    service_process_init_end(Pid) -> any()

    service_restart/2

    @@ -218,6 +233,11 @@

    service_subscriptions/2service_subscriptions(ServiceId, Timeout) -> any()

    +

    service_terminated/1

    +
    +

    service_terminated(ID::binary()) -> ok

    +
    +

    service_update/2

    service_update(Config_service_update::#config_service_update{type = undefined | internal | external, module = atom(), module_state = undefined | fun((OldModuleVerson::cloudi_service_api:module_version(), NewModuleVerson::cloudi_service_api:module_version(), OldState::any()) -> {ok, NewState::any()} | {error, Reason::any()} | any()), file_path = undefined | file:filename(), args = undefined | string(), env = undefined | [{string(), string()}], sync = boolean(), modules_load = [atom()], modules_unload = [atom()], code_paths_add = [string()], code_paths_remove = [string()], dest_refresh = undefined | cloudi_service_api:dest_refresh(), timeout_init = undefined | cloudi_service_api:timeout_initialize_value_milliseconds(), timeout_async = undefined | cloudi_service_api:timeout_send_async_value_milliseconds(), timeout_sync = undefined | cloudi_service_api:timeout_send_sync_value_milliseconds(), dest_list_deny = invalid | cloudi_service_api:dest_list(), dest_list_allow = invalid | cloudi_service_api:dest_list(), options_keys = [atom()], 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], duo_mode = boolean(), hibernate = boolean() | [{period, cloudi_service_api:period_seconds()} | {rate_request_min, number()}] | tuple(), reload = boolean()}, uuids = [cloudi_service_api:service_id()], module_version_old = undefined | cloudi_service_api:module_version(), reload_stop = boolean(), spawn_os_process = boolean(), update_pending = undefined | pid(), update_now = undefined | pid(), update_start = boolean(), queue_requests = undefined | boolean()}, Timeout::pos_integer() | infinity) -> {ok, [cloudi_service_api:service_id(), ...]} | {error, [cloudi_service_api:service_id(), ...], error_reason_service_update()}

    @@ -270,6 +290,6 @@

    terminate/2


    acl/1
    acl_add/2
    acl_remove/2
    code_change/3
    code_status/3
    configure/0
    handle_call/3
    handle_cast/2
    nodes_get/1
    nodes_remove/2
    nodes_set/2
    service_dead/1
    service_initialized_process/1
    service_ids/1
    service_process_init_end/1
    service_restart/2
    service_start/2
    service_stop/3
    service_subscriptions/2
    service_terminated/1
    service_update/2
    service_update_external/5
    services/1
    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_logger.html b/src/lib/cloudi_core/doc/cloudi_core_i_logger.html index dc94561b7..38d3539b2 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_logger.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_logger.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_logger

    CloudI Logger

    .

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:19 +

    Version: 1.7.4 Sep 15 2018 18:07:02 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -56,10 +56,19 @@

    Change the file output log level

    Get lager-compatible metadata.

    .

    metadata_set/1

    Set lager-compatible metadata.

    .
    microseconds_to_string/1 +

    Create an ISO8601 timestamp from microseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    milliseconds_to_string/1 +

    Create an ISO8601 timestamp from milliseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    redirect_set/1

    Redirect this node's logging to a different node.

    .
    redirect_update/1

    Update the destination of logging output.

    .
    seconds_to_string/1 +

    Create an ISO8601 timestamp from seconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    set/1

    Change the logging configuration.

    .
    start_link/1 @@ -186,6 +195,20 @@

    metadata_set/1

    Set lager-compatible metadata.

    +

    microseconds_to_string/1

    +
    +

    microseconds_to_string(TotalMicroSeconds::non_neg_integer()) -> string()

    +

    +

    Create an ISO8601 timestamp from microseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    milliseconds_to_string/1

    +
    +

    milliseconds_to_string(TotalMilliSeconds::non_neg_integer()) -> string()

    +

    +

    Create an ISO8601 timestamp from milliseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    +

    redirect_set/1

    redirect_set(Node::atom()) -> ok

    @@ -200,6 +223,13 @@

    redirect_update/1

    Update the destination of logging output.

    +

    seconds_to_string/1

    +
    +

    seconds_to_string(TotalSeconds::non_neg_integer()) -> string()

    +

    +

    Create an ISO8601 timestamp from seconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    +

    set/1

    set(LoggingConfig::#config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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()]}) -> ok | {error, file:posix() | badarg | system_limit}

    @@ -209,7 +239,7 @@

    Change the logging configuration

    start_link/1

    -

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    +

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    Start the logging server with the supplied configuration.

    @@ -251,6 +281,6 @@

    Warning log message.


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_logger_interface.html b/src/lib/cloudi_core/doc/cloudi_core_i_logger_interface.html index 26a696069..ea737e241 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_logger_interface.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_logger_interface.html @@ -15,7 +15,7 @@

    Fake CloudI Logger Interface

    These functions get replaced dynamically.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:17 ------------------------------------------------------------------------

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

    @@ -174,6 +174,6 @@

    warn_sync/6


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_logger_output.html b/src/lib/cloudi_core/doc/cloudi_core_i_logger_output.html index e6ed614d2..1386e4151 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_logger_output.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_logger_output.html @@ -12,9 +12,9 @@

    Module cloudi_core_i_logger_output

    CloudI Logger Formatter Output Initialization

    . -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:46 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -71,6 +71,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_logger_output_sup.html b/src/lib/cloudi_core/doc/cloudi_core_i_logger_output_sup.html index c067d51cb..b24c7dc8b 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_logger_output_sup.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_logger_output_sup.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_logger_output_sup

    CloudI Logger Formatter Output Supervisor

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:56 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -41,6 +41,6 @@

    start_link/1


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_logger_sup.html b/src/lib/cloudi_core/doc/cloudi_core_i_logger_sup.html index 0fec7b77f..39176b4f9 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_logger_sup.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_logger_sup.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_logger_sup

    CloudI Logger Supervisor of Formatters

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:07:05 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -42,11 +42,11 @@

    reconfigure/1

    start_link/1

    -

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    +

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_nodes.html b/src/lib/cloudi_core/doc/cloudi_core_i_nodes.html index 5fbc4e15e..aed9fc0a1 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_nodes.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_nodes.html @@ -13,9 +13,9 @@

    Module cloudi_core_i_nodes

    CloudI Nodes

    Manage node connections to provide reliability after network interruptions. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:08:09 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -102,6 +102,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_os_process.html b/src/lib/cloudi_core/doc/cloudi_core_i_os_process.html index e372905ef..55da069ef 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_os_process.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_os_process.html @@ -14,9 +14,9 @@

    Module cloudi_core_i_os_process

    CloudI OS Process Configuration

    Maximum resource limits can be set after "setcap 'CAP_SYS_RESOURCE=+ep' executable" (on Linux). -

    Copyright © 2015-2017 Michael Truog

    +

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:42 ------------------------------------------------------------------------

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

    @@ -51,7 +51,7 @@

    cgroup_set/2

    cgroup_unset/2

    -

    cgroup_unset(OSPid::pos_integer() | undefined, Values::cloudi_service_api:cgroup_external()) -> ok | {error, any()}

    +

    cgroup_unset(OSPid::pos_integer(), Values::cloudi_service_api:cgroup_external()) -> ok | {error, any()}

    cgroup_validate/1

    @@ -91,6 +91,6 @@

    owner_validate/1


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_os_spawn.html b/src/lib/cloudi_core/doc/cloudi_core_i_os_spawn.html index b5cf57211..06e7cd90c 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_os_spawn.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_os_spawn.html @@ -13,9 +13,9 @@

    Module cloudi_core_i_os_spawn

    OS Process Spawn

    Used interaction with the os_spawn process. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:45 ------------------------------------------------------------------------

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

    @@ -77,6 +77,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_rate_based_configuration.html b/src/lib/cloudi_core/doc/cloudi_core_i_rate_based_configuration.html index f4f899bbc..d2dc5eecd 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_rate_based_configuration.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_rate_based_configuration.html @@ -16,7 +16,7 @@

    CloudI Rate-Based ConfigurationCopyright © 2013-2017 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.3 Sep 15 2018 18:07:17 ------------------------------------------------------------------------

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

    @@ -169,6 +169,6 @@

    restart_delay_value/3 -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_runtime_testing.html b/src/lib/cloudi_core/doc/cloudi_core_i_runtime_testing.html index 6c96d0700..8d4577dec 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_runtime_testing.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_runtime_testing.html @@ -15,7 +15,7 @@

    CloudI Runtime Testing

    Routines for live-service testing during development.

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:53 ------------------------------------------------------------------------

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

    @@ -83,6 +83,6 @@

    monkey_latency_validate
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_services_external.html b/src/lib/cloudi_core/doc/cloudi_core_i_services_external.html index 250c5147c..2b9bd5583 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_services_external.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_services_external.html @@ -16,7 +16,7 @@

    CloudI External Service

    external service.

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:19 +

    Version: 1.7.4 Sep 15 2018 18:06:54 ------------------------------------------------------------------------

    Behaviours: gen_statem.

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

    @@ -37,7 +37,7 @@

    Function Index

    handle_event/4
    init/1
    port/2
    start_link/17
    start_link/20
    stderr/2
    stdout/2
    terminate/3
    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_services_external_sup.html b/src/lib/cloudi_core/doc/cloudi_core_i_services_external_sup.html index 985ab97eb..11f3dc1ae 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_services_external_sup.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_services_external_sup.html @@ -12,9 +12,9 @@

    Module cloudi_core_i_services_external_sup

    CloudI External Service Supervisor

    . -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:08:10 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -23,21 +23,21 @@

    Description

    CloudI External Service Supervisor

    Function Index

    - - +
    create_external/17
    init/1
    +
    init/1
    process_start/20
    start_link/0

    Function Details

    -

    create_external/17

    +

    init/1

    -

    create_external(Protocol, SocketPath, ThreadIndex, ProcessIndex, ProcessCount, CommandLine, BufferSize, Timeout, Prefix, TimeoutSync, TimeoutAsync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, ConfigOptions, ID) -> any()

    +

    init(X1) -> any()

    -

    init/1

    +

    process_start/20

    -

    init(X1) -> any()

    +

    process_start(Protocol, SocketPath, ThreadIndex, ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, CommandLine, BufferSize, Timeout, Prefix, TimeoutSync, TimeoutAsync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, ConfigOptions, ID) -> any()

    start_link/0

    @@ -47,6 +47,6 @@

    start_link/0


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_services_internal.html b/src/lib/cloudi_core/doc/cloudi_core_i_services_internal.html index c18c68a13..e0c460b36 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_services_internal.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_services_internal.html @@ -16,7 +16,7 @@

    CloudI Internal Service

    for modules that implement the cloudi_service behavior.

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:32 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -38,7 +38,7 @@

    Function Index

    handle_module_info_loop_hibernate/2
    handle_module_request_loop_hibernate/2
    init/1
    start_link/16
    start_link/19
    system_code_change/4
    system_continue/3
    system_terminate/4
    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_init.html b/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_init.html index 85312a7a3..beefd9949 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_init.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_init.html @@ -13,9 +13,9 @@

    Module cloudi_core_i_services_internal_init

    CloudI Internal Service Init Process

    A separate Erlang process that exists as a Dispatcher proxy. -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.4 Sep 15 2018 18:06:56 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -93,6 +93,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_reload.html b/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_reload.html index cc4801e21..b4a42a7a7 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_reload.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_reload.html @@ -14,9 +14,9 @@

    Module cloudi_core_i_services_internal_reload

    CloudI Internal Service Reload

    Perform module reloading for internal services, during service development. -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:18 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -86,6 +86,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_sup.html b/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_sup.html index 269c0863d..11e4e1909 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_sup.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_services_internal_sup.html @@ -12,9 +12,9 @@

    Module cloudi_core_i_services_internal_sup

    CloudI Internal Service Supervisor

    . -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:41 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -23,27 +23,27 @@

    Description

    CloudI Internal Service Supervisor

    Function Index

    - - - +
    create_internal/15
    create_internal_done/3
    init/1
    + +
    init/1
    process_start/18
    process_started/3
    start_link/0

    Function Details

    -

    create_internal/15

    +

    init/1

    -

    create_internal(ProcessIndex, ProcessCount, GroupLeader, Module, Args, Timeout, Prefix, TimeoutSync, TimeoutAsync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, ConfigOptions, ID) -> any()

    +

    init(X1) -> any()

    -

    create_internal_done/3

    +

    process_start/18

    -

    create_internal_done(Parent, Dispatcher, ReceiverPid) -> any()

    +

    process_start(ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, GroupLeader, Module, Args, Timeout, Prefix, TimeoutSync, TimeoutAsync, TimeoutTerm, DestRefresh, DestDeny, DestAllow, ConfigOptions, ID) -> any()

    -

    init/1

    +

    process_started/3

    -

    init(X1) -> any()

    +

    process_started(Parent, Dispatcher, ReceiverPid) -> any()

    start_link/0

    @@ -53,6 +53,6 @@

    start_link/0


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_services_monitor.html b/src/lib/cloudi_core/doc/cloudi_core_i_services_monitor.html index 3429e90f6..1014a1aca 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_services_monitor.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_services_monitor.html @@ -14,9 +14,9 @@

    Module cloudi_core_i_services_monitor

    CloudI Services

    Manage all cloudi_core_i_spawn processes with monitors and their configuration. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:40 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -34,15 +34,17 @@

    Function Index

    handle_info/2
    increase/5
    init/1
    initialize/1
    monitor/13
    pids/2
    process_init_begin/1
    process_init_end/1
    process_terminate_begin/2
    restart/2
    search/2
    shutdown/2
    start_link/0
    status/2
    terminate/2
    terminate_kill/2
    update/2
    @@ -65,12 +67,12 @@

    handle_call/3

    handle_cast/2

    -

    handle_cast(Request, State) -> any()

    +

    handle_cast(Cloudi_service_terminate_begin, State) -> any()

    handle_info/2

    -

    handle_info(Request, State) -> any()

    +

    handle_info(Restart_stage2, State) -> any()

    increase/5

    @@ -83,11 +85,6 @@

    init/1

    init(X1) -> any()

    -

    initialize/1

    -
    -

    initialize(Pids::[pid()]) -> ok

    -
    -

    monitor/13

    monitor(M::cloudi_core_i_spawn, F::start_internal | start_external, A::list(), ProcessIndex::non_neg_integer(), CountProcess::pos_integer(), CountThread::pos_integer(), Scope::atom(), TimeoutTerm::cloudi_service_api:timeout_terminate_value_milliseconds(), RestartDelay::tuple() | false, MaxR::non_neg_integer(), MaxT::non_neg_integer(), ServiceId::uuid:uuid(), Timeout::infinity | pos_integer()) -> {ok, [pid()]} | {error, any()}

    @@ -98,6 +95,21 @@

    pids/2

    pids(ServiceId, Timeout) -> any()

    +

    process_init_begin/1

    +
    +

    process_init_begin(Pids::[pid() | [pid(), ...]]) -> ok

    +
    + +

    process_init_end/1

    +
    +

    process_init_end(Pid::pid()) -> ok

    +
    + +

    process_terminate_begin/2

    +
    +

    process_terminate_begin(Pid::pid(), Reason::any()) -> ok | {error, any()}

    +
    +

    restart/2

    restart(ServiceId, Timeout) -> any()

    @@ -118,14 +130,14 @@

    start_link/0

    start_link() -> any()

    -

    terminate/2

    +

    status/2

    -

    terminate(X1, X2) -> any()

    +

    status(ServiceIdList, Timeout) -> any()

    -

    terminate_kill/2

    +

    terminate/2

    -

    terminate_kill(Pid, Reason) -> any()

    +

    terminate(X1, X2) -> any()

    update/2

    @@ -135,6 +147,6 @@

    update/2


    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_spawn.html b/src/lib/cloudi_core/doc/cloudi_core_i_spawn.html index 0eaeca92a..d5cfb3d37 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_spawn.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_spawn.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_spawn

    CloudI Spawn

    .

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:56 ------------------------------------------------------------------------

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

    @@ -25,8 +25,8 @@

    Function Index

    - - + + @@ -49,14 +49,14 @@

    environment_transform/2environment_transform(String, EnvironmentLookup) -> any()

    -

    start_external/18

    +

    start_external/21

    -

    start_external(ProcessIndex, ProcessCount, ThreadsPerProcess, Filename, Arguments, Environment, Protocol, BufferSize, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestListDeny, DestListAllow, ConfigOptions, ID) -> any()

    +

    start_external(ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, ThreadsPerProcess, Filename, Arguments, Environment, Protocol, BufferSize, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestListDeny, DestListAllow, ConfigOptions, ID) -> any()

    -

    start_internal/15

    +

    start_internal/18

    -

    start_internal(ProcessIndex, ProcessCount, GroupLeader, Module, Args, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestListDeny, DestListAllow, ConfigOptions, ID) -> any()

    +

    start_internal(ProcessIndex, ProcessCount, TimeStart, TimeRestart, Restarts, GroupLeader, Module, Args, Timeout, Prefix, TimeoutAsync, TimeoutSync, TimeoutTerm, DestRefresh, DestListDeny, DestListAllow, ConfigOptions, ID) -> any()

    update_external/3

    @@ -76,6 +76,6 @@

    update_internal_f/9


    environment_lookup/0
    environment_transform/1
    environment_transform/2
    start_external/18
    start_internal/15
    start_external/21
    start_internal/18
    update_external/3
    update_external_f/12
    update_internal_f/9
    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_core_i_sup.html b/src/lib/cloudi_core/doc/cloudi_core_i_sup.html index 3569b262b..5cf0a49f3 100644 --- a/src/lib/cloudi_core/doc/cloudi_core_i_sup.html +++ b/src/lib/cloudi_core/doc/cloudi_core_i_sup.html @@ -14,7 +14,7 @@

    Module cloudi_core_i_sup

    CloudI Application Supervisor

    .

    Copyright © 2009-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:20 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -37,13 +37,13 @@

    init/1

    start_link/1

    -

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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 = #{}, services = [#config_service_internal{prefix = string(), module = atom() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    +

    start_link(Config::#config{uuid_generator = uuid:state(), logging = #config_logging{file = undefined | string(), stdout = boolean(), level = undefined | cloudi_service_api:loglevel(), 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() | file:filename(), file_path = undefined | file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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 = file:filename(), 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_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 | mixed}], 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()], 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(), 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 | mixed}], 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 | mixed}], 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 | mixed}], 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}}) -> {ok, pid()} | {error, any()}

    Start the CloudI application supervisor.


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_crdt.html b/src/lib/cloudi_core/doc/cloudi_crdt.html index d79d382f1..49c020fa0 100644 --- a/src/lib/cloudi_core/doc/cloudi_crdt.html +++ b/src/lib/cloudi_core/doc/cloudi_crdt.html @@ -19,7 +19,7 @@

    CloudI CRDT (Conf processes.

    .

    Copyright © 2017-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:08:03 ------------------------------------------------------------------------

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

    @@ -72,10 +72,18 @@

    CloudI CRDT (Conf http://research.microsoft.com/en-us/um/people/lamport/pubs/time-clocks.pdf

    Data Types

    +

    bootstrap_state()

    +

    bootstrap_state() = {VClockAvg::float(), NodeId::node_id(), VClock::vclock(), VClocks::vclocks(), POLogMode::polog_mode(), POLog::polog(), Data::data()}

    + +

    data()

    data() = #{key() := value()}

    +

    event_id()

    +

    event_id() = cloudi_service:trans_id() | any()

    + +

    event_type()

    event_type() = assign | clear | decr | incr | put | update

    @@ -93,11 +101,11 @@

    node_id()

    operation_write()

    -

    operation_write() = {assign, Key::key(), Value::value()} | {incr, Key::key(), Value::value()} | {decr, Key::key(), Value::value()} | {update, Key::key(), ModuleVersion::list(), Module::module(), Function::atom()} | {update, Key::key(), ModuleVersion::list(), Module::module(), Function::atom(), Argument1::any()} | {put, Key::key(), Value::value()} | {clear, Key::key()} | clear_all

    +

    operation_write() = {assign, Id::event_id(), Key::key(), Value::value()} | {incr, Id::event_id(), Key::key(), Value::value()} | {decr, Id::event_id(), Key::key(), Value::value()} | {update, Id::event_id(), Key::key(), ModuleVersion::list(), Module::module(), Function::atom()} | {update, Id::event_id(), Key::key(), ModuleVersion::list(), Module::module(), Function::atom(), Argument1::any()} | {update_assign, Id::event_id(), Key::key(), Value::value(), ModuleVersion::list(), Module::module(), Function::atom()} | {update_assign, Id::event_id(), Key::key(), Value::value(), ModuleVersion::list(), Module::module(), Function::atom(), Argument1::any()} | {put, Id::event_id(), Key::key(), Value::value()} | {clear, Id::event_id(), Key::key()} | {clear_all, Id::event_id()}

    options()

    -

    options() = [{service_name, string()} | {clean_vclocks, seconds()} | {clean_vclocks_failure, float() | 1..100} | {retry, non_neg_integer()} | {retry_delay, non_neg_integer()}]

    +

    options() = [{service_name, string()} | {clean_vclocks, seconds()} | {clean_vclocks_failure, float() | 1..100} | {retry, non_neg_integer()} | {retry_delay, non_neg_integer()} | {timeout_default, cloudi_service:timeout_milliseconds()} | {priority_default, cloudi_service:priority()} | {priority_default_offset, -255..255 | undefined}]

    polog()

    @@ -113,7 +121,7 @@

    seconds()

    state()

    -

    state() = #cloudi_crdt{service_name_full = cloudi_service:service_name(), clean_vclocks_interval = seconds(), clean_vclocks_failure = number(), queue = cloudi_queue:state(), word_size = pos_integer(), node_id = node_id(), node_ids = [node_id()], vclock = vclock(), vclocks = vclocks(), polog_mode = polog_mode(), polog = polog(), data = data(), events = events()}

    +

    state() = #cloudi_crdt{service_name_full = cloudi_service:service_name(), clean_vclocks_interval = seconds(), clean_vclocks_failure = number(), queue = cloudi_queue:state(), word_size = pos_integer(), node_id = node_id(), node_ids = [node_id()], vclock = vclock(), vclocks = vclocks(), polog_mode = polog_mode(), bootstrap_node_id = undefined | node_id(), bootstrap_states = [bootstrap_state()], bootstrap_requests = non_neg_integer(), polog = polog(), data = data(), events = events()}

    value()

    @@ -131,16 +139,26 @@

    vclocks()

    Function Index

    + + + + + + +

    Create a CloudI CRDT.

    . + + + + + + + +
    assign/4

    Assign a value iff none exists in the CloudI CRDT.

    .
    assign_id/5 +

    Assign a value iff none exists in the CloudI CRDT with an event_id.

    .
    byte_size/2

    Return the size of the CloudI CRDT in bytes.

    .
    clear/2

    Clear the CloudI CRDT.

    .
    clear/3

    Clear a key in the CloudI CRDT.

    .
    clear_id/3 +

    Clear the CloudI CRDT with an event_id.

    .
    clear_id/4 +

    Clear a key in the CloudI CRDT with an event_id.

    .
    decr/3

    Decrement a numerical value by 1 in the CloudI CRDT.

    .
    decr/4

    Decrement a numerical value in the CloudI CRDT.

    .
    decr_id/4 +

    Decrement a numerical value by 1 in the CloudI CRDT with an event_id.

    .
    decr_id/5 +

    Decrement a numerical value in the CloudI CRDT with an event_id.

    .
    events_clear/3

    Clear a subscription to events from the CloudI CRDT.

    .
    events_subscribe/3 @@ -163,6 +181,10 @@

    Handle a CRDT service request.<

    Increment a numerical value by 1 in the CloudI CRDT.

    .
    incr/4

    Increment a numerical value in the CloudI CRDT.

    .
    incr_id/4 +

    Increment a numerical value by 1 in the CloudI CRDT with an event_id.

    .
    incr_id/5 +

    Increment a numerical value in the CloudI CRDT with an event_id.

    .
    is_key/3

    Check if a key is in the CloudI CRDT.

    .
    keys/2 @@ -173,6 +195,8 @@

    Create a CloudI CRDT.

    .
    put/4

    Put a value into the CloudI CRDT.

    .
    put_id/5 +

    Put a value into the CloudI CRDT with an event_id.

    .
    size/2

    Get the size of the CloudI CRDT.

    .
    update/5 @@ -183,10 +207,36 @@

    Update a value if

    Update a value iff it exists in the CloudI CRDT.

    Function Module:Function/2 must exist with the same version for every CloudI service process that shares this CloudI CRDT.

    update_assign/6 +

    Update a value or assign a value in the CloudI CRDT.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_assign/7 +

    Update a value or assign a value in the CloudI CRDT.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_assign_id/7 +

    Update a value or assign a value in the CloudI CRDT with an event_id.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_assign_id/8 +

    Update a value or assign a value in the CloudI CRDT with an event_id.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_id/6 +

    Update a value iff it exists in the CloudI CRDT with an event_id.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    update_id/7 +

    Update a value iff it exists in the CloudI CRDT with an event_id.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT.
    values/2

    Get all values in the CloudI CRDT.

    .
    zero/3

    Put a zero value in the CloudI CRDT.

    .
    zero_id/4 +

    Put a zero value in the CloudI CRDT with an event_id.

    .

    Function Details

    @@ -198,6 +248,13 @@

    assign/4

    Assign a value iff none exists in the CloudI CRDT.

    +

    assign_id/5

    +
    +

    assign_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Id::event_id(), State::state()) -> state()

    +

    +

    Assign a value iff none exists in the CloudI CRDT with an event_id.

    +

    +

    byte_size/2

    byte_size(Dispatcher::cloudi_service:dispatcher(), State::state()) -> non_neg_integer()

    @@ -219,6 +276,20 @@

    clear/3

    Clear a key in the CloudI CRDT.

    +

    clear_id/3

    +
    +

    clear_id(Dispatcher::cloudi_service:dispatcher(), Id::event_id(), State::state()) -> state()

    +

    +

    Clear the CloudI CRDT with an event_id.

    +

    + +

    clear_id/4

    +
    +

    clear_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Id::event_id(), State::state()) -> state()

    +

    +

    Clear a key in the CloudI CRDT with an event_id.

    +

    +

    decr/3

    decr(Dispatcher::cloudi_service:dispatcher(), Key::key(), State::state()) -> state()

    @@ -233,6 +304,20 @@

    decr/4

    Decrement a numerical value in the CloudI CRDT.

    +

    decr_id/4

    +
    +

    decr_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Id::event_id(), State::state()) -> state()

    +

    +

    Decrement a numerical value by 1 in the CloudI CRDT with an event_id.

    +

    + +

    decr_id/5

    +
    +

    decr_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::number(), Id::event_id(), State::state()) -> state()

    +

    +

    Decrement a numerical value in the CloudI CRDT with an event_id.

    +

    +

    events_clear/3

    events_clear(Dispatcher::cloudi_service:dispatcher(), Key::key(), State::state()) -> state()

    @@ -303,6 +388,20 @@

    incr/4

    Increment a numerical value in the CloudI CRDT.

    +

    incr_id/4

    +
    +

    incr_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Id::event_id(), State::state()) -> state()

    +

    +

    Increment a numerical value by 1 in the CloudI CRDT with an event_id.

    +

    + +

    incr_id/5

    +
    +

    incr_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::number(), Id::event_id(), State::state()) -> state()

    +

    +

    Increment a numerical value in the CloudI CRDT with an event_id.

    +

    +

    is_key/3

    is_key(Dispatcher::cloudi_service:dispatcher(), Key::key(), State::state()) -> boolean()

    @@ -338,6 +437,13 @@

    put/4

    Put a value into the CloudI CRDT.

    +

    put_id/5

    +
    +

    put_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Id::event_id(), State::state()) -> state()

    +

    +

    Put a value into the CloudI CRDT with an event_id.

    +

    +

    size/2

    size(Dispatcher::cloudi_service:dispatcher(), State::state()) -> non_neg_integer()

    @@ -371,6 +477,84 @@

    Update a value if all read operations (inconsistencies which would only be resolvable manually).

    +

    update_assign/6

    +
    +

    update_assign(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Module::module(), Function::atom(), State::state()) -> state()

    +

    +

    Update a value or assign a value in the CloudI CRDT.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_assign/7

    +
    +

    update_assign(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Module::module(), Function::atom(), Argument1::any(), State::state()) -> state()

    +

    +

    Update a value or assign a value in the CloudI CRDT.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_assign_id/7

    +
    +

    update_assign_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Module::module(), Function::atom(), Id::event_id(), State::state()) -> state()

    +

    +

    Update a value or assign a value in the CloudI CRDT with an event_id.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_assign_id/8

    +
    +

    update_assign_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Value::value(), Module::module(), Function::atom(), Argument1::any(), Id::event_id(), State::state()) -> state()

    +

    +

    Update a value or assign a value in the CloudI CRDT with an event_id.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_id/6

    +
    +

    update_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Module::module(), Function::atom(), Id::event_id(), State::state()) -> state()

    +

    +

    Update a value iff it exists in the CloudI CRDT with an event_id.

    + Function Module:Function/1 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    + +

    update_id/7

    +
    +

    update_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Module::module(), Function::atom(), Argument1::any(), Id::event_id(), State::state()) -> state()

    +

    +

    Update a value iff it exists in the CloudI CRDT with an event_id.

    + Function Module:Function/2 must exist with the same version + for every CloudI service process that shares this CloudI CRDT. + If the function does not execute to return the same result + (when given the same value) for each instance of the CloudI CRDT, + it can create inconsistencies in the Erlang map that is used for + all read operations + (inconsistencies which would only be resolvable manually).

    +

    values/2

    values(Dispatcher::cloudi_service:dispatcher(), State::state()) -> [value()]

    @@ -384,9 +568,16 @@

    zero/3

    Put a zero value in the CloudI CRDT.

    + +

    zero_id/4

    +
    +

    zero_id(Dispatcher::cloudi_service:dispatcher(), Key::key(), Id::event_id(), State::state()) -> state()

    +

    +

    Put a zero value in the CloudI CRDT with an event_id.

    +


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_environment.html b/src/lib/cloudi_core/doc/cloudi_environment.html index fa38828cc..d25f34709 100644 --- a/src/lib/cloudi_core/doc/cloudi_environment.html +++ b/src/lib/cloudi_core/doc/cloudi_environment.html @@ -12,9 +12,9 @@

    Module cloudi_environment

    CloudI Runtime Environment

    . -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:30 ------------------------------------------------------------------------

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

    @@ -30,6 +30,8 @@

    lookup()

    Function Index

    +
    lookup/0

    Get an environment variable lookup.

    .
    status/0 +

    Get execution environment status.

    .
    transform/1

    Transform a string, substituting environment variable values from the lookup.

    Use ${VARIABLE} or $VARIABLE syntax, where VARIABLE is a name with @@ -49,6 +51,13 @@

    lookup/0

    Get an environment variable lookup.

    +

    status/0

    +
    +

    status() -> [{atom(), string()}, ...]

    +

    +

    Get execution environment status.

    +

    +

    transform/1

    transform(String::string()) -> string()

    @@ -67,6 +76,6 @@

    Overviewerlang logo

    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_future.html b/src/lib/cloudi_core/doc/cloudi_future.html index 7c38a3ec5..9b740ee2d 100644 --- a/src/lib/cloudi_core/doc/cloudi_future.html +++ b/src/lib/cloudi_core/doc/cloudi_future.html @@ -14,7 +14,7 @@

    Module cloudi_future

    CloudI Futures

    .

    Copyright © 2015-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:08:06 ------------------------------------------------------------------------

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

    @@ -79,6 +79,6 @@

    Create a future.


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_ip_address.html b/src/lib/cloudi_core/doc/cloudi_ip_address.html index 8f2bc0925..7513a21ab 100644 --- a/src/lib/cloudi_core/doc/cloudi_ip_address.html +++ b/src/lib/cloudi_core/doc/cloudi_ip_address.html @@ -16,7 +16,7 @@

    CloudI IP Address Parsing

    better pattern matching within service names.

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:58 ------------------------------------------------------------------------

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

    @@ -77,6 +77,6 @@

    Create a list string represen
    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_key_value.html b/src/lib/cloudi_core/doc/cloudi_key_value.html index fb6a7d723..7a215deb9 100644 --- a/src/lib/cloudi_core/doc/cloudi_key_value.html +++ b/src/lib/cloudi_core/doc/cloudi_key_value.html @@ -15,7 +15,7 @@

    CloudI Key/Value Data Keys are unique in any of the underlying representations.

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:38 ------------------------------------------------------------------------

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

    @@ -102,6 +102,6 @@

    Generic key/value to_map.


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_lists.html b/src/lib/cloudi_core/doc/cloudi_lists.html index 95f8acda9..33f9fbd7e 100644 --- a/src/lib/cloudi_core/doc/cloudi_lists.html +++ b/src/lib/cloudi_core/doc/cloudi_lists.html @@ -14,7 +14,7 @@

    Module cloudi_lists

    List operations

    .

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.3 Sep 15 2018 18:07:39 ------------------------------------------------------------------------

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

    @@ -120,6 +120,6 @@

    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_logger_hut.html b/src/lib/cloudi_core/doc/cloudi_logger_hut.html index b4dcd556e..7e4541c85 100644 --- a/src/lib/cloudi_core/doc/cloudi_logger_hut.html +++ b/src/lib/cloudi_core/doc/cloudi_logger_hut.html @@ -14,7 +14,7 @@

    Module cloudi_logger_hut

    CloudI Logger Hut Integration

    .

    Copyright © 2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.1 Sep 15 2018 18:08:33 ------------------------------------------------------------------------

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

    @@ -37,6 +37,6 @@

    Hut callback for CloudI logging.<
    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_logger_lager.html b/src/lib/cloudi_core/doc/cloudi_logger_lager.html index 0ee2a4ee9..6a9c053fd 100644 --- a/src/lib/cloudi_core/doc/cloudi_logger_lager.html +++ b/src/lib/cloudi_core/doc/cloudi_logger_lager.html @@ -14,7 +14,7 @@

    Module cloudi_logger_lager

    CloudI Logger Lager Integration

    .

    Copyright © 2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:45 ------------------------------------------------------------------------

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

    @@ -78,6 +78,6 @@

    Lager
    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_math.html b/src/lib/cloudi_core/doc/cloudi_math.html index 12ce276cd..4738e36ab 100644 --- a/src/lib/cloudi_core/doc/cloudi_math.html +++ b/src/lib/cloudi_core/doc/cloudi_math.html @@ -14,7 +14,7 @@

    Module cloudi_math

    Math operations

    .

    Copyright © 2009-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:45 ------------------------------------------------------------------------

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

    @@ -46,6 +46,6 @@

    Provide a floor function.


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_proplists.html b/src/lib/cloudi_core/doc/cloudi_proplists.html index 6be6b4cd8..83eb3d0af 100644 --- a/src/lib/cloudi_core/doc/cloudi_proplists.html +++ b/src/lib/cloudi_core/doc/cloudi_proplists.html @@ -14,7 +14,7 @@

    Module cloudi_proplists

    Proplists Extensions Module

    .

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.3 Sep 15 2018 18:07:19 ------------------------------------------------------------------------

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

    @@ -71,6 +71,6 @@

    Remove many keys from the prop
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_queue.html b/src/lib/cloudi_core/doc/cloudi_queue.html index 54a2728de..6f4ee1771 100644 --- a/src/lib/cloudi_core/doc/cloudi_queue.html +++ b/src/lib/cloudi_core/doc/cloudi_queue.html @@ -18,7 +18,7 @@

    CloudI Send Queue

    with in-memory data.

    .

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:36 ------------------------------------------------------------------------

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

    @@ -40,12 +40,20 @@

    CloudI Send Queue

    be sent concurrently and every request must receive a response (receiving a response is the only proof the transaction was successful).

    - Only one instance of cloudi_queue is necessary within a service's state - due to the transaction id being globally unique. +

    Only one instance of cloudi_queue is necessary within a service's state +due to the transaction id being globally unique.

    + + If retries are enabled (by default, no retries are attempted), it is + possible that a service request will be delivered more than once + (e.g., if the service request is processed but the response is not + sent before a timeout occurs). Each retry sends a service request + with the same transaction id, so it may be used to detect a duplicate + receive (or a separate unique id could be used from within the + RequestInfo or Request data) by checking and modifying service state.

    Data Types

    options()

    -

    options() = [{retry, non_neg_integer()} | {retry_delay, non_neg_integer()} | {ordered, boolean()} | {validate_request_info, fun((RequestInfo::cloudi_service:request_info()) -> boolean()) | {Module1::module(), Function1::atom()}} | {validate_request, fun((RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request()) -> boolean()) | {Module2::module(), Function2::atom()}} | {validate_response_info, fun((ResponseInfo::cloudi_service:response_info()) -> boolean()) | {Module3::module(), Function3::atom()}} | {validate_response, fun((ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()) -> boolean()) | {Module4::module(), Function4::atom()}} | {failures_source_die, boolean()} | {failures_source_max_count, pos_integer()} | {failures_source_max_period, infinity | pos_integer()}]

    +

    options() = [{retry, non_neg_integer()} | {retry_delay, non_neg_integer()} | {ordered, boolean()} | {timeout_default, cloudi_service:timeout_milliseconds()} | {priority_default, cloudi_service:priority()} | {validate_request_info, fun((RequestInfo::cloudi_service:request_info()) -> boolean()) | {Module1::module(), Function1::atom()}} | {validate_request, fun((RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request()) -> boolean()) | {Module2::module(), Function2::atom()}} | {validate_response_info, fun((ResponseInfo::cloudi_service:response_info()) -> boolean()) | {Module3::module(), Function3::atom()}} | {validate_response, fun((ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()) -> boolean()) | {Module4::module(), Function4::atom()}} | {failures_source_die, boolean()} | {failures_source_max_count, pos_integer()} | {failures_source_max_period, infinity | pos_integer()}]

    ordered_requests()

    @@ -57,7 +65,7 @@

    requests()

    state()

    -

    state() = #cloudi_queue{retry = non_neg_integer(), retry_delay = non_neg_integer(), ordered = boolean(), word_size = pos_integer(), service = undefined | pid(), validate_request_info = undefined | fun((any()) -> boolean()), validate_request = undefined | fun((any(), any()) -> boolean()), validate_response_info = undefined | fun((any()) -> boolean()), validate_response = undefined | fun((any(), any()) -> boolean()), failures_source_die = boolean(), failures_source_max_count = pos_integer(), failures_source_max_period = infinity | pos_integer(), failures_source = [cloudi_timestamp:seconds_monotonic()], ordered_requests = ordered_requests(), ordered_pending = non_neg_integer(), requests = requests()}

    +

    state() = #cloudi_queue{retry = non_neg_integer(), retry_delay = non_neg_integer(), ordered = boolean(), timeout_default = cloudi_service:timeout_milliseconds(), priority_default = cloudi_service:priority(), word_size = pos_integer(), service = undefined | pid(), validate_request_info = undefined | fun((any()) -> boolean()), validate_request = undefined | fun((any(), any()) -> boolean()), validate_response_info = undefined | fun((any()) -> boolean()), validate_response = undefined | fun((any(), any()) -> boolean()), failures_source_die = boolean(), failures_source_max_count = pos_integer(), failures_source_max_period = infinity | pos_integer(), failures_source = [cloudi_timestamp:seconds_monotonic()], ordered_requests = ordered_requests(), ordered_pending = non_neg_integer(), requests = requests()}

    Function Index

    @@ -315,6 +323,6 @@

    A service request timeout.


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_request.html b/src/lib/cloudi_core/doc/cloudi_request.html index eda330ca4..8acde4b10 100644 --- a/src/lib/cloudi_core/doc/cloudi_request.html +++ b/src/lib/cloudi_core/doc/cloudi_request.html @@ -15,7 +15,7 @@

    CloudI Request

    Request format transform.

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:14 ------------------------------------------------------------------------

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

    @@ -44,6 +44,6 @@

    Decode incoming external re
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_request_info.html b/src/lib/cloudi_core/doc/cloudi_request_info.html index 6c5de9ac4..06557d96d 100644 --- a/src/lib/cloudi_core/doc/cloudi_request_info.html +++ b/src/lib/cloudi_core/doc/cloudi_request_info.html @@ -10,20 +10,20 @@

    Module cloudi_request_info

    - +

    CloudI RequestInfo Creation and Parsing

    RequestInfo is used for request meta-data which is normally key/value pairs that describe the context of the service request - (e.g., HTTP header names and values for a HTTP request). The encoding - provided below is a basic format for textual key/value data + (e.g., HTTP header names and values for a HTTP request). The default + encoding provided below is a basic format for textual key/value data (i.e., neither the key or value should contain a null character, '\0') which is easily parsed in any programming language and is referred to as the 'text_pairs' format. It is valid to have multiple entries for the same key within the RequestInfo data. A key must be of size 1 or greater (<<>> will never exist as a key in text_pairs data).

    . -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:22 ------------------------------------------------------------------------

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

    @@ -31,20 +31,31 @@

    Description

    CloudI RequestInfo Creation and Parsing

    RequestInfo is used for request meta-data which is normally key/value pairs that describe the context of the service request - (e.g., HTTP header names and values for a HTTP request). The encoding - provided below is a basic format for textual key/value data + (e.g., HTTP header names and values for a HTTP request). The default + encoding provided below is a basic format for textual key/value data (i.e., neither the key or value should contain a null character, '\0') which is easily parsed in any programming language and is referred to as the 'text_pairs' format. It is valid to have multiple entries for the same key within the RequestInfo data. A key must be of size 1 or greater (<<>> will never exist as a key in text_pairs data).

    +

    Use the 'binary_pairs' format if any of the key/value data is binary +data (i.e., if any of the key or value data contains +null characters, '\0').

    +

    The ResponseInfo data is normally service request response meta-data (providing the response equivalent of RequestInfo for a request) and can utilize the same functions below.

    These module functions provide Erlang serialization of the 'text_pairs' - format for use with the cloudi_key_value module. + format and the 'binary_pairs' format for use with the + cloudi_key_value module. +

    Data Types

    + +

    format()

    +

    format() = text_pairs | binary_pairs

    + +

    Function Index

    + + + + +
    key_value_append/2

    Append RequestInfo key/value data.

    @@ -53,6 +64,10 @@

    Append RequestInfo key/value da

    New RequestInfo key/value data.

    RequestInfo is meant to contain key/value pairs that is request meta-data.

    key_value_new/2 +

    New RequestInfo key/value data.

    + RequestInfo is meant to contain key/value pairs that is request + meta-data.
    key_value_parse/1

    Parse RequestInfo key/value data.

    RequestInfo is meant to contain key/value pairs that is request @@ -77,6 +92,15 @@

    New RequestInfo key/value data. +

    key_value_new/2

    +
    +

    key_value_new(RequestInfo::cloudi_key_value:key_values(), Format::format()) -> Result::binary()

    +

    +

    New RequestInfo key/value data.

    + RequestInfo is meant to contain key/value pairs that is request + meta-data. Create the binary RequestInfo data with any supported + data structure.

    +

    key_value_parse/1

    key_value_parse(RequestInfo::binary() | cloudi_key_value:key_values()) -> Result::#{cloudi_key_value:key() := cloudi_key_value:value()}

    @@ -87,6 +111,6 @@

    Parse RequestInfo key/value data
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_response.html b/src/lib/cloudi_core/doc/cloudi_response.html index bb0912bbc..4a6802784 100644 --- a/src/lib/cloudi_core/doc/cloudi_response.html +++ b/src/lib/cloudi_core/doc/cloudi_response.html @@ -15,7 +15,7 @@

    CloudI Response

    Response format transform.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:57 ------------------------------------------------------------------------

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

    @@ -38,6 +38,6 @@

    Encode outgoing external r
    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_response_info.html b/src/lib/cloudi_core/doc/cloudi_response_info.html index 981d02d0a..b840dd0ca 100644 --- a/src/lib/cloudi_core/doc/cloudi_response_info.html +++ b/src/lib/cloudi_core/doc/cloudi_response_info.html @@ -14,7 +14,7 @@

    Module cloudi_response_info

    CloudI ResponseInfo Creation

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:07:45 ------------------------------------------------------------------------

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

    @@ -55,6 +55,6 @@

    Overviewerlang logo

    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_service.html b/src/lib/cloudi_core/doc/cloudi_service.html index bca27c93d..6e7f719ca 100644 --- a/src/lib/cloudi_core/doc/cloudi_service.html +++ b/src/lib/cloudi_core/doc/cloudi_service.html @@ -15,7 +15,7 @@

    CloudI Internal Service Behavior< The interface which all internal services must implement.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:21 +

    Version: 1.7.3 Sep 15 2018 18:08:18 ------------------------------------------------------------------------

    This module defines the cloudi_service behaviour.
    Required callback functions: cloudi_service_init/4, cloudi_service_terminate/3.
    Optional callback functions: cloudi_service_handle_request/11, cloudi_service_handle_info/3.

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

    @@ -986,6 +986,6 @@

    Unsubscribe from a servic
    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_service_api.html b/src/lib/cloudi_core/doc/cloudi_service_api.html index 23112577d..d9c7f6186 100644 --- a/src/lib/cloudi_core/doc/cloudi_service_api.html +++ b/src/lib/cloudi_core/doc/cloudi_service_api.html @@ -13,9 +13,9 @@

    Module cloudi_service_api

    CloudI Service API Module

    A module that exposes dynamic configuration of CloudI. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.2 Feb 26 2018 17:29:20 +

    Version: 1.7.4 Sep 15 2018 18:07:12 ------------------------------------------------------------------------

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

    @@ -144,6 +144,10 @@

    chroot_external()

    chroot_external() = file:filename() | undefined

    +

    code_status()

    +

    code_status() = [{build_machine, nonempty_string()} | {build_kernel_version, nonempty_string()} | {build_operating_system, nonempty_string()} | {build_erlang_otp_release, nonempty_string()} | {build_cloudi_time, nonempty_string()} | {build_cloudi_cxx_compiler_version, nonempty_string()} | {build_cloudi_cxx_dependencies_versions, nonempty_string()} | {build_erts_c_compiler_version, nonempty_string()} | {install_erlang_erts_time, nonempty_string()} | {install_erlang_kernel_time, nonempty_string()} | {install_erlang_stdlib_time, nonempty_string()} | {install_erlang_sasl_time, nonempty_string()} | {install_erlang_compiler_time, nonempty_string()} | {install_cloudi_time, nonempty_string()} | {runtime_erlang_erts_version, nonempty_string()} | {runtime_erlang_kernel_version, nonempty_string()} | {runtime_erlang_stdlib_version, nonempty_string()} | {runtime_erlang_sasl_version, nonempty_string()} | {runtime_erlang_compiler_version, nonempty_string()} | {runtime_cloudi_version, nonempty_string()} | {runtime_machine_processors, pos_integer()} | {runtime_start, nonempty_string()} | {runtime_clock, nonempty_string()} | {runtime_clock_offset, nonempty_string()} | {runtime_total, nonempty_string()} | {runtime_cloudi_start, nonempty_string()} | {runtime_cloudi_total, nonempty_string()} | {runtime_cloudi_changes, [[{type, internal | external} | {file_age, nonempty_string()} | {file_path, nonempty_string()} | {service_ids, [service_id(), ...]}, ...]]}, ...]

    + +

    dest_list()

    dest_list() = acl() | undefined

    @@ -352,6 +356,18 @@

    service_proplist()

    service_proplist() = [{type, internal | external} | {prefix, cloudi:service_name_pattern()} | {module, atom() | file:filename()} | {file_path, file:filename()} | {args, list()} | {env, [{string(), string()}]} | {dest_refresh, dest_refresh()} | {protocol, default | local | tcp | udp} | {buffer_size, default | pos_integer()} | {timeout_init, timeout_initialize_value_milliseconds()} | {timeout_async, timeout_send_async_value_milliseconds()} | {timeout_sync, timeout_send_sync_value_milliseconds()} | {dest_list_deny, dest_list()} | {dest_list_allow, dest_list()} | {count_process, pos_integer() | float()} | {count_thread, pos_integer() | float()} | {max_r, non_neg_integer()} | {max_t, seconds()} | {options, service_options_internal() | service_options_external()}, ...]

    +

    service_status()

    +

    service_status() = service_status_internal() | service_status_external()

    + + +

    service_status_external()

    +

    service_status_external() = [{count_process, pos_integer()} | {count_thread, pos_integer()} | {uptime_total, nonempty_string()} | {uptime_running, nonempty_string()} | {uptime_restarts, nonempty_string()} | {downtime_day_restarting, nonempty_string()} | {downtime_week_restarting, nonempty_string()} | {downtime_month_restarting, nonempty_string()} | {downtime_year_restarting, nonempty_string()} | {interrupt_day_updating, nonempty_string()} | {interrupt_week_updating, nonempty_string()} | {interrupt_month_updating, nonempty_string()} | {interrupt_year_updating, nonempty_string()} | {availability_day_total, nonempty_string()} | {availability_day_running, nonempty_string()} | {availability_day_updated, nonempty_string()} | {availability_week_total, nonempty_string()} | {availability_week_running, nonempty_string()} | {availability_week_updated, nonempty_string()} | {availability_month_total, nonempty_string()} | {availability_month_running, nonempty_string()} | {availability_month_updated, nonempty_string()} | {availability_year_total, nonempty_string()} | {availability_year_running, nonempty_string()} | {availability_year_updated, nonempty_string()}, ...]

    + + +

    service_status_internal()

    +

    service_status_internal() = [{count_process, pos_integer()} | {uptime_total, nonempty_string()} | {uptime_running, nonempty_string()} | {uptime_restarts, nonempty_string()} | {downtime_day_restarting, nonempty_string()} | {downtime_week_restarting, nonempty_string()} | {downtime_month_restarting, nonempty_string()} | {downtime_year_restarting, nonempty_string()} | {interrupt_day_updating, nonempty_string()} | {interrupt_week_updating, nonempty_string()} | {interrupt_month_updating, nonempty_string()} | {interrupt_year_updating, nonempty_string()} | {availability_day_total, nonempty_string()} | {availability_day_running, nonempty_string()} | {availability_day_updated, nonempty_string()} | {availability_week_total, nonempty_string()} | {availability_week_running, nonempty_string()} | {availability_week_updated, nonempty_string()} | {availability_month_total, nonempty_string()} | {availability_month_running, nonempty_string()} | {availability_month_updated, nonempty_string()} | {availability_year_total, nonempty_string()} | {availability_year_running, nonempty_string()} | {availability_year_updated, nonempty_string()}, ...]

    + +

    service_update_plan()

    service_update_plan() = service_update_plan_internal() | service_update_plan_external()

    @@ -424,6 +440,11 @@

    Remove a directory from the CloudI Erlang VM code server's search paths.

    This doesn't impact any running services, only services that will be started in the future.
    code_status/1 +

    Provide the current CloudI Erlang VM code status.

    + Both build and runtime information is provided with the + service files changed after CloudI was started + (probably due to service updates).
    logging/1

    Provide the current logging configuration.

    .
    logging_file_set/2 @@ -482,6 +503,8 @@

    Restart service instances.

    services_search/2

    Search service instances for matches on the provided service name.

    Multiple services may be returned for a single service name.
    services_status/2 +

    List the current status of specific services.

    .
    services_update/2

    Update service instances.

    Update service instances without losing service requests and other @@ -541,6 +564,15 @@

    code_status/1

    +
    +

    code_status(Timeout::api_timeout_milliseconds()) -> {ok, code_status()} | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_code_status()}

    +

    +

    Provide the current CloudI Erlang VM code status.

    + Both build and runtime information is provided with the + service files changed after CloudI was started + (probably due to service updates).

    +

    logging/1

    logging(Timeout::api_timeout_milliseconds()) -> {ok, logging_proplist()} | {error, timeout | noproc}

    @@ -557,7 +589,7 @@

    Modify the current log file path

    logging_formatters_set/2

    -

    logging_formatters_set(L::logging_formatters_set_proplist(), Timeout::api_timeout_milliseconds()) -> ok | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_logging_formatters_set()}

    +

    logging_formatters_set(L::logging_formatters_set_proplist() | undefined, Timeout::api_timeout_milliseconds()) -> ok | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_logging_formatters_set()}

    Set the CloudI log formatters.

    lager backend (gen_event) modules are supported as 'output' modules and @@ -596,7 +628,7 @@

    Modify the current log stdout

    logging_syslog_set/2

    -

    logging_syslog_set(L::logging_syslog_set_proplist(), Timeout::api_timeout_milliseconds()) -> ok | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_logging_syslog_set()}

    +

    logging_syslog_set(L::logging_syslog_set_proplist() | undefined, Timeout::api_timeout_milliseconds()) -> ok | {error, timeout | noproc | cloudi_core_i_configuration:error_reason_logging_syslog_set()}

    Set the CloudI syslog configuration.

    @@ -703,7 +735,7 @@

    Restart service instances.

    services_search/2

    -

    services_search(Name::{atom(), cloudi:service_name()} | cloudi:service_name(), Timeout::api_timeout_milliseconds()) -> {ok, [{service_id(), service_internal()} | {service_id(), service_external()}]} | {error, timeout | noproc | service_name_invalid}

    +

    services_search(Name::{atom(), cloudi:service_name()} | cloudi:service_name(), Timeout::api_timeout_milliseconds()) -> {ok, [{service_id(), service_internal()} | {service_id(), service_external()}]} | {error, timeout | noproc | service_name_invalid | cloudi_core_i_configuration:error_reason_services_search()}

    Search service instances for matches on the provided service name.

    Multiple services may be returned for a single service name. Only service @@ -713,6 +745,13 @@

    +

    services_status/2

    +
    +

    services_status(L::[binary() | string()], Timeout::api_timeout_milliseconds()) -> {ok, [{service_id(), service_status()}, ...]} | {error, timeout | noproc | {service_id_invalid, any()} | {service_not_found, any()}}

    +

    +

    List the current status of specific services.

    +

    +

    services_update/2

    services_update(L::[{string() | binary(), service_update_plan()}, ...], Timeout::api_timeout_milliseconds()) -> {ok, ServiceIdsSetsSuccess::[[service_id(), ...], ...]} | {error, {ServiceIdsSetError::[service_id(), ...], Reason::{service_internal_update_failed | service_external_update_failed, any()}}, ServiceIdsSetsSuccess::[[service_id(), ...], ...]} | {error, timeout | noproc | {service_id_invalid, any()} | cloudi_core_i_configuration:error_reason_services_update()}

    @@ -723,6 +762,6 @@

    Update service instances.


    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_service_future.html b/src/lib/cloudi_core/doc/cloudi_service_future.html index 5fedebce6..02a3dff71 100644 --- a/src/lib/cloudi_core/doc/cloudi_service_future.html +++ b/src/lib/cloudi_core/doc/cloudi_service_future.html @@ -14,7 +14,7 @@

    Module cloudi_service_future

    CloudI Service Futures

    .

    Copyright © 2015-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:19 +

    Version: 1.7.1 Sep 15 2018 18:06:57 ------------------------------------------------------------------------

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

    @@ -79,6 +79,6 @@

    Create a future.


    -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_service_name.html b/src/lib/cloudi_core/doc/cloudi_service_name.html index f572f7d28..6fe7cb220 100644 --- a/src/lib/cloudi_core/doc/cloudi_service_name.html +++ b/src/lib/cloudi_core/doc/cloudi_service_name.html @@ -14,7 +14,7 @@

    Module cloudi_service_name

    CloudI Service Name Creation and Parsing

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:21 +

    Version: 1.7.1 Sep 15 2018 18:08:43 ------------------------------------------------------------------------

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

    @@ -79,6 +79,6 @@

    Overviewerlang logo

    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_string.html b/src/lib/cloudi_core/doc/cloudi_string.html index 70346f2f1..3e5b78b19 100644 --- a/src/lib/cloudi_core/doc/cloudi_string.html +++ b/src/lib/cloudi_core/doc/cloudi_string.html @@ -14,7 +14,7 @@

    Module cloudi_string

    String manipulation functions

    .

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:19 +

    Version: 1.7.4 Sep 15 2018 18:06:47 ------------------------------------------------------------------------

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

    @@ -82,8 +82,13 @@

    term_to_binary/1

    Convert an Erlang term to a binary string.

    Output is a utf8 encoded binary.
    term_to_binary_compact/1 +

    Convert an Erlang term to a compact binary string.

    + Output is a utf8 encoded binary.
    term_to_list/1

    Convert an Erlang term to a string.

    .
    term_to_list_compact/1 +

    Convert an Erlang term to a compact string.

    .
    titlecase/1

    Return the string in titlecase.

    .
    trim/1 @@ -291,6 +296,13 @@

    term_to_binary/1

    Convert an Erlang term to a binary string.

    Output is a utf8 encoded binary.

    +

    term_to_binary_compact/1

    +
    +

    term_to_binary_compact(T::any()) -> binary()

    +

    +

    Convert an Erlang term to a compact binary string.

    + Output is a utf8 encoded binary.

    +

    term_to_list/1

    term_to_list(T::any()) -> string()

    @@ -298,6 +310,13 @@

    term_to_list/1

    Convert an Erlang term to a string.

    +

    term_to_list_compact/1

    +
    +

    term_to_list_compact(T::any()) -> string()

    +

    +

    Convert an Erlang term to a compact string.

    +

    +

    titlecase/1

    titlecase(String::string() | binary()) -> string() | binary()

    @@ -356,6 +375,6 @@

    Return the string in uppercase. -

    Generated by EDoc, Feb 26 2018, 17:29:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_timestamp.html b/src/lib/cloudi_core/doc/cloudi_timestamp.html index 77b5ada62..1fc2e0741 100644 --- a/src/lib/cloudi_core/doc/cloudi_timestamp.html +++ b/src/lib/cloudi_core/doc/cloudi_timestamp.html @@ -12,9 +12,9 @@

    Module cloudi_timestamp

    Timestamp operations

    . -

    Copyright © 2015-2017 Michael Truog

    +

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:29:21 +

    Version: 1.7.4 Sep 15 2018 18:08:32 ------------------------------------------------------------------------

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

    @@ -47,6 +47,10 @@

    nanoseconds_monotonic(

    nanoseconds_monotonic() = integer()

    +

    native_monotonic()

    +

    native_monotonic() = integer()

    + +

    seconds_epoch()

    seconds_epoch() = non_neg_integer()

    @@ -57,14 +61,17 @@

    seconds_monotonic()time_unit()

    time_unit() = second | millisecond | microsecond | nanosecond | native | perf_counter | pos_integer()

    -

    UNIX epoch (1970-01-01T00:00:00) offsets (POSIX time)

    +

    UNIX epoch (1970-01-01T00:00:00Z) offsets (POSIX time)

    Function Index

    + (The UNIX epoch is 1970-01-01T00:00:00Z). + + (The UNIX epoch is 1970-01-01T00:00:00Z). + + (The UNIX epoch is 1970-01-01T00:00:00Z). + + + (The UNIX epoch is 1970-01-01T00:00:00Z). + (The UNIX epoch is 1970-01-01T00:00:00Z). + @@ -108,6 +125,10 @@

    Seco

    + + + + +
    convert/3

    Convert between time units.

    .
    microseconds/0

    Microseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    microseconds_epoch_to_string/1 +

    Create an ISO8601 timestamp from microseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    microseconds_monotonic/0

    Microseconds since an undefined point in time, from the Erlang VM.

    .
    microseconds_os/0 @@ -72,7 +79,10 @@

    Microseconds Always prefer the microseconds function instead of this function.

    milliseconds/0

    Milliseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    milliseconds_epoch_to_string/1 +

    Create an ISO8601 timestamp from milliseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    milliseconds_monotonic/0

    Milliseconds since an undefined point in time, from the Erlang VM.

    .
    milliseconds_os/0 @@ -80,15 +90,19 @@

    Milliseconds Always prefer the milliseconds function instead of this function.

    nanoseconds/0

    Nanoseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    nanoseconds_monotonic/0

    Nanoseconds since an undefined point in time, from the Erlang VM.

    .
    nanoseconds_os/0

    Nanoseconds since the UNIX epoch, from the hardware.

    Always prefer the nanoseconds function instead of this function.
    nanoseconds_to_string/1 +

    Format a nanoseconds duration as a minimal string with lower-precision integers.

    .
    nanoseconds_to_string/2 +

    Format a nanoseconds duration with options as a minimal string with lower-precision integers.

    .
    native/0

    Native time units since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    native_monotonic/0

    Native time units since an undefined point in time, from the Erlang VM.

    .
    native_os/0 @@ -96,7 +110,10 @@

    Native Always prefer the mative function instead of this function.

    seconds/0

    Seconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00).
    seconds_epoch_to_string/1 +

    Create an ISO8601 timestamp from seconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z).
    seconds_filter/3

    Filter a list of seconds since the UNIX epoch.

    The list is not ordered.
    seconds_os/0

    Seconds since the UNIX epoch, from the hardware.

    Always prefer the seconds function instead of this function.
    seconds_to_string/1 +

    Format a seconds duration as a minimal string with lower-precision integers.

    .
    seconds_to_string/2 +

    Format a seconds duration with options as a minimal string with lower-precision integers.

    .
    timestamp/0

    Return an Erlang VM timestamp.

    Not guaranteed to be strictly monotonically increasing @@ -138,7 +159,14 @@

    microseconds/0

    microseconds() -> microseconds_epoch()

    Microseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    microseconds_epoch_to_string/1

    +
    +

    microseconds_epoch_to_string(MicroSeconds::microseconds_epoch()) -> string()

    +

    +

    Create an ISO8601 timestamp from microseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    microseconds_monotonic/0

    @@ -153,14 +181,21 @@

    microseconds_os/0

    Microseconds since the UNIX epoch, from the hardware.

    Always prefer the microseconds function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    milliseconds/0

    milliseconds() -> milliseconds_epoch()

    Milliseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    milliseconds_epoch_to_string/1

    +
    +

    milliseconds_epoch_to_string(MilliSeconds::milliseconds_epoch()) -> string()

    +

    +

    Create an ISO8601 timestamp from milliseconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    milliseconds_monotonic/0

    @@ -175,14 +210,14 @@

    milliseconds_os/0

    Milliseconds since the UNIX epoch, from the hardware.

    Always prefer the milliseconds function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    nanoseconds/0

    nanoseconds() -> nanoseconds_epoch()

    Nanoseconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    nanoseconds_monotonic/0

    @@ -197,18 +232,32 @@

    nanoseconds_os/0

    Nanoseconds since the UNIX epoch, from the hardware.

    Always prefer the nanoseconds function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    nanoseconds_to_string/1

    +
    +

    nanoseconds_to_string(TotalNanoSeconds::non_neg_integer()) -> nonempty_string()

    +

    +

    Format a nanoseconds duration as a minimal string with lower-precision integers.

    +

    + +

    nanoseconds_to_string/2

    +
    +

    nanoseconds_to_string(TotalNanoSeconds::integer(), Options::signed) -> nonempty_string()

    +

    +

    Format a nanoseconds duration with options as a minimal string with lower-precision integers.

    +

    native/0

    native() -> integer()

    Native time units since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    native_monotonic/0

    -

    native_monotonic() -> integer()

    +

    native_monotonic() -> native_monotonic()

    Native time units since an undefined point in time, from the Erlang VM.

    @@ -219,14 +268,21 @@

    native_os/0

    Native time units since the UNIX epoch, from the hardware.

    Always prefer the mative function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    seconds/0

    seconds() -> seconds_epoch()

    Seconds since the UNIX epoch.

    - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    seconds_epoch_to_string/1

    +
    +

    seconds_epoch_to_string(Seconds::seconds_epoch()) -> string()

    +

    +

    Create an ISO8601 timestamp from seconds since the UNIX epoch.

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    seconds_filter/3

    @@ -255,7 +311,21 @@

    seconds_os/0

    Seconds since the UNIX epoch, from the hardware.

    Always prefer the seconds function instead of this function. - (The UNIX epoch is 1970-01-01T00:00:00)

    + (The UNIX epoch is 1970-01-01T00:00:00Z)

    + +

    seconds_to_string/1

    +
    +

    seconds_to_string(TotalSeconds::non_neg_integer()) -> nonempty_string()

    +

    +

    Format a seconds duration as a minimal string with lower-precision integers.

    +

    + +

    seconds_to_string/2

    +
    +

    seconds_to_string(TotalSeconds::integer(), Options::signed) -> nonempty_string()

    +

    +

    Format a seconds duration with options as a minimal string with lower-precision integers.

    +

    timestamp/0

    @@ -302,6 +372,6 @@

    The uptime of the Erlang n
    -

    Generated by EDoc, Feb 26 2018, 17:29:21.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/cloudi_trans_id.html b/src/lib/cloudi_core/doc/cloudi_trans_id.html index 318d6bbb6..804265924 100644 --- a/src/lib/cloudi_core/doc/cloudi_trans_id.html +++ b/src/lib/cloudi_core/doc/cloudi_trans_id.html @@ -18,7 +18,7 @@

    CloudI Transaction ID Usage

    of the request and its response result.

    Copyright © 2015-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:29:20 +

    Version: 1.7.1 Sep 15 2018 18:08:07 ------------------------------------------------------------------------

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

    @@ -126,6 +126,6 @@

    Return the transacti
    -

    Generated by EDoc, Feb 26 2018, 17:29:20.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/doc/overview-summary.html b/src/lib/cloudi_core/doc/overview-summary.html index d1e92c47d..2ecc51aa3 100644 --- a/src/lib/cloudi_core/doc/overview-summary.html +++ b/src/lib/cloudi_core/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_core application


    -

    Generated by EDoc, Feb 26 2018, 17:29:22.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_core/src/cloudi_core.app.src.in b/src/lib/cloudi_core/src/cloudi_core.app.src.in index ffbed2251..2a2260202 100644 --- a/src/lib/cloudi_core/src/cloudi_core.app.src.in +++ b/src/lib/cloudi_core/src/cloudi_core.app.src.in @@ -81,7 +81,6 @@ cloudi_x_cgroups, cloudi_x_cpg, cloudi_x_syslog_socket, - cloudi_x_msgpack, syntax_tools, compiler, sasl, diff --git a/src/lib/cloudi_service_api_requests/doc/cloudi_json_rpc.html b/src/lib/cloudi_service_api_requests/doc/cloudi_json_rpc.html index 3ca046cb7..e09c4011d 100644 --- a/src/lib/cloudi_service_api_requests/doc/cloudi_json_rpc.html +++ b/src/lib/cloudi_service_api_requests/doc/cloudi_json_rpc.html @@ -10,60 +10,152 @@

    Module cloudi_json_rpc

    - -

    CloudI JSON RPC

    . -

    Copyright © 2011-2017 Michael Truog

    + +

    CloudI JSON RPC

    + Implementation based on the version 2.0 of the JSON-RPC specification. +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 10:36:25 +

    Version: 1.7.4 Sep 15 2018 20:18:49 ------------------------------------------------------------------------

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

    Description

    CloudI JSON RPC

    + Implementation based on the version 2.0 of the JSON-RPC specification. + Named parameters are not supported to ensure parameters always have + an implicit order. Batch requests are not supported. +

    Data Types

    + +

    error_code()

    +

    error_code() = integer()

    + + +

    error_message()

    +

    error_message() = binary()

    + + +

    id()

    +

    id() = binary() | integer() | null

    + + +

    method()

    +

    method() = binary()

    + + +

    params()

    +

    params() = list()

    + + +

    result()

    +

    result() = any()

    +

    Function Index

    - - - - - - +
    request_to_json/2
    request_to_json/3
    request_to_term/1
    response_to_json/2
    response_to_json/4
    response_to_term/1
    + + + + + + + + + +
    error_internal_error/1 +

    Internal JSON-RPC error.

    .
    error_invalid_params/1 +

    Invalid method parameter(s).

    .
    error_invalid_request/0 +

    The JSON sent is not a valid Request object.

    .
    error_method_not_found/1 +

    The method does not exist / is not available.

    .
    error_parsing/0 +

    Invalid JSON was received by the server.

    .
    request_to_json/2 +

    Create a JSON-RPC request in a JSON binary.

    .
    request_to_json/3 +

    Create a JSON-RPC request with parameters in a JSON binary.

    .
    request_to_term/1 +

    Parse a JSON-RPC request to create Erlang terms.

    .
    response_to_json/2 +

    Create a JSON-RPC response in a JSON binary.

    .
    response_to_json/4 +

    Create a JSON-RPC error response in a JSON binary.

    .
    response_to_term/1 +

    Parse a JSON-RPC response to create Erlang terms.

    .

    Function Details

    +

    error_internal_error/1

    +
    +

    error_internal_error(Id::id()) -> binary()

    +

    +

    Internal JSON-RPC error.

    +

    + +

    error_invalid_params/1

    +
    +

    error_invalid_params(Id::id()) -> binary()

    +

    +

    Invalid method parameter(s).

    +

    + +

    error_invalid_request/0

    +
    +

    error_invalid_request() -> binary()

    +

    +

    The JSON sent is not a valid Request object.

    +

    + +

    error_method_not_found/1

    +
    +

    error_method_not_found(Id::id()) -> binary()

    +

    +

    The method does not exist / is not available.

    +

    + +

    error_parsing/0

    +
    +

    error_parsing() -> binary()

    +

    +

    Invalid JSON was received by the server.

    +

    +

    request_to_json/2

    -

    request_to_json(Method::atom() | string() | binary(), Id::integer()) -> binary()

    -
    +

    request_to_json(Method::atom() | string() | binary(), Id::id()) -> binary()

    +

    +

    Create a JSON-RPC request in a JSON binary.

    +

    request_to_json/3

    -

    request_to_json(Method::atom() | string() | binary(), Params::list(), Id::integer()) -> binary()

    -
    +

    request_to_json(Method::atom() | string() | binary(), Params::params(), Id::id()) -> binary()

    +

    +

    Create a JSON-RPC request with parameters in a JSON binary.

    +

    request_to_term/1

    -

    request_to_term(Data::binary() | string()) -> {binary(), [binary()], integer()}

    -
    +

    request_to_term(Data::binary() | string()) -> {method(), params(), id()}

    +

    +

    Parse a JSON-RPC request to create Erlang terms.

    +

    response_to_json/2

    -

    response_to_json(Result::binary(), Id::integer()) -> binary()

    -
    +

    response_to_json(Result::result(), Id::id()) -> binary()

    +

    +

    Create a JSON-RPC response in a JSON binary.

    +

    response_to_json/4

    -

    response_to_json(Result::binary() | null, ErrorCode::integer() | null, ErrorMessage::binary() | null, Id::binary() | integer()) -> binary()

    -
    +

    response_to_json(Result::result() | null, ErrorCode::error_code() | null, ErrorMessage::error_message() | null, Id::id()) -> binary()

    +

    +

    Create a JSON-RPC error response in a JSON binary.

    +

    response_to_term/1

    -

    response_to_term(Data::binary() | string()) -> {binary(), integer() | null, binary() | null, binary() | integer()}

    -
    +

    response_to_term(Data::binary() | string()) -> {result(), error_code() | null, error_message() | null, id()}

    +

    +

    Parse a JSON-RPC response to create Erlang terms.

    +


    -

    Generated by EDoc, Jun 7 2017, 10:36:25.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_api_requests/doc/cloudi_service_api_requests.html b/src/lib/cloudi_service_api_requests/doc/cloudi_service_api_requests.html index ec60d3222..3b58c0b6c 100644 --- a/src/lib/cloudi_service_api_requests/doc/cloudi_service_api_requests.html +++ b/src/lib/cloudi_service_api_requests/doc/cloudi_service_api_requests.html @@ -13,9 +13,9 @@

    Module cloudi_service_api_requests

    CloudI Service API Requests

    A service that exposes dynamic configuration of CloudI. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 10:36:25 +

    Version: 1.7.4 Sep 15 2018 20:18:49 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -24,19 +24,13 @@

    Description

    CloudI Service API Requests

    A service that exposes dynamic configuration of CloudI.

    Function Index

    - - +
    cloudi_service_handle_info/3
    cloudi_service_handle_request/11
    cloudi_service_handle_request/11
    cloudi_service_init/4
    cloudi_service_terminate/3

    Function Details

    -

    cloudi_service_handle_info/3

    -
    -

    cloudi_service_handle_info(Request, State, X3) -> any()

    -
    -

    cloudi_service_handle_request/11

    cloudi_service_handle_request(Type, Name, Pattern, RequestInfo, Request, Timeout, Priority, TransId, Pid, State, Dispatcher) -> any()

    @@ -54,6 +48,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Jun 7 2017, 10:36:25.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_api_requests/doc/overview-summary.html b/src/lib/cloudi_service_api_requests/doc/overview-summary.html index 4954982c5..fac7fce54 100644 --- a/src/lib/cloudi_service_api_requests/doc/overview-summary.html +++ b/src/lib/cloudi_service_api_requests/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_api_requests application


    -

    Generated by EDoc, Jun 7 2017, 10:36:25.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_db_mysql/doc/cloudi_service_db_mysql.html b/src/lib/cloudi_service_db_mysql/doc/cloudi_service_db_mysql.html index 78cf6b9ce..7bc48f1cf 100644 --- a/src/lib/cloudi_service_db_mysql/doc/cloudi_service_db_mysql.html +++ b/src/lib/cloudi_service_db_mysql/doc/cloudi_service_db_mysql.html @@ -12,9 +12,9 @@

    Module cloudi_service_db_mysql

    CloudI MySQL Data Module

    . -

    Copyright © 2009-2017 Michael Truog

    +

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 10:41:18 +

    Version: 1.7.4 Sep 15 2018 20:25:00 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -175,6 +175,6 @@

    A lis
    -

    Generated by EDoc, Jun 7 2017, 10:41:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_db_mysql/doc/overview-summary.html b/src/lib/cloudi_service_db_mysql/doc/overview-summary.html index cf09311cd..fe2429eb3 100644 --- a/src/lib/cloudi_service_db_mysql/doc/overview-summary.html +++ b/src/lib/cloudi_service_db_mysql/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_db_mysql application


    -

    Generated by EDoc, Jun 7 2017, 10:41:19.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_db_pgsql/doc/cloudi_service_db_pgsql.html b/src/lib/cloudi_service_db_pgsql/doc/cloudi_service_db_pgsql.html index 4f0c6996e..900ad2fd8 100644 --- a/src/lib/cloudi_service_db_pgsql/doc/cloudi_service_db_pgsql.html +++ b/src/lib/cloudi_service_db_pgsql/doc/cloudi_service_db_pgsql.html @@ -12,9 +12,9 @@

    Module cloudi_service_db_pgsql

    CloudI PostgreSQL Data Module

    . -

    Copyright © 2009-2017 Michael Truog

    +

    Copyright © 2009-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 10:46:40 +

    Version: 1.7.4 Sep 15 2018 20:38:07 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -147,6 +147,6 @@

    A lis
    -

    Generated by EDoc, Jun 7 2017, 10:46:40.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_db_pgsql/doc/overview-summary.html b/src/lib/cloudi_service_db_pgsql/doc/overview-summary.html index e95a465e9..f25d10960 100644 --- a/src/lib/cloudi_service_db_pgsql/doc/overview-summary.html +++ b/src/lib/cloudi_service_db_pgsql/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_db_pgsql application


    -

    Generated by EDoc, Jun 7 2017, 10:46:40.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_http_rest/doc/cloudi_service_http_rest.html b/src/lib/cloudi_service_http_rest/doc/cloudi_service_http_rest.html index f69ab8cb7..03269d02f 100644 --- a/src/lib/cloudi_service_http_rest/doc/cloudi_service_http_rest.html +++ b/src/lib/cloudi_service_http_rest/doc/cloudi_service_http_rest.html @@ -17,7 +17,7 @@

    CloudI HTTP REST Integration

    arguments.

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 18:33:30 +

    Version: 1.7.4 Sep 15 2018 21:02:13 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -80,6 +80,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 18:33:30.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_http_rest/doc/overview-summary.html b/src/lib/cloudi_service_http_rest/doc/overview-summary.html index e2f2620bd..e36c83542 100644 --- a/src/lib/cloudi_service_http_rest/doc/overview-summary.html +++ b/src/lib/cloudi_service_http_rest/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_http_rest application


    -

    Generated by EDoc, Feb 26 2018, 18:33:30.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_map_reduce/doc/cloudi_service_map_reduce.html b/src/lib/cloudi_service_map_reduce/doc/cloudi_service_map_reduce.html index 7779c0ca0..656edd3fa 100644 --- a/src/lib/cloudi_service_map_reduce/doc/cloudi_service_map_reduce.html +++ b/src/lib/cloudi_service_map_reduce/doc/cloudi_service_map_reduce.html @@ -14,9 +14,9 @@

    Module cloudi_service_map_reduce

    CloudI (Abstract) Map-Reduce Service

    This module provides an Erlang behaviour for fault-tolerant, database agnostic map-reduce. -

    Copyright © 2012-2017 Michael Truog

    +

    Copyright © 2012-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 18:47:42 +

    Version: 1.7.4 Sep 15 2018 21:12:10 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

    This module defines the cloudi_service_map_reduce behaviour.
    Required callback functions: cloudi_service_map_reduce_new/5, cloudi_service_map_reduce_send/2, cloudi_service_map_reduce_resend/2, cloudi_service_map_reduce_recv/7, cloudi_service_map_reduce_info/3.

    @@ -43,7 +43,7 @@

    Function Details

    cloudi_service_handle_info/3

    -

    cloudi_service_handle_info(Init, State, Dispatcher) -> any()

    +

    cloudi_service_handle_info(Init_begin, State, Dispatcher) -> any()

    cloudi_service_handle_request/11

    @@ -63,6 +63,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 18:47:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_map_reduce/doc/cloudi_task_size.html b/src/lib/cloudi_service_map_reduce/doc/cloudi_task_size.html index c0051c245..73600b803 100644 --- a/src/lib/cloudi_service_map_reduce/doc/cloudi_task_size.html +++ b/src/lib/cloudi_service_map_reduce/doc/cloudi_task_size.html @@ -14,7 +14,7 @@

    Module cloudi_task_size

    CloudI Task Size Calculation

    .

    Copyright © 2009-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 18:47:41 +

    Version: 1.7.1 Sep 15 2018 21:12:10 ------------------------------------------------------------------------

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

    @@ -24,7 +24,7 @@

    CloudI Task Size Calculation

    Data Types

    state()

    -

    state() = #cloudi_task_size{task_count = pos_integer(), task_size_initial = integer(), task_size_min = integer(), task_size_max = integer(), target_time = float(), target_time_min = float(), target_time_max = float(), target_time_incr = integer(), target_time_decr = integer(), lookup = #{}}

    +

    state() = #cloudi_task_size{task_count = pos_integer(), task_size_initial = integer(), task_size_min = integer(), task_size_max = integer(), target_time = float(), target_time_min = float(), target_time_max = float(), target_time_incr = integer(), target_time_decr = integer(), lookup = #{node() := #node{task_size = number()}}}

    Function Index

    @@ -71,6 +71,6 @@

    Reduce the task size after a
    -

    Generated by EDoc, Feb 26 2018, 18:47:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_map_reduce/doc/overview-summary.html b/src/lib/cloudi_service_map_reduce/doc/overview-summary.html index 42eeb5196..730df12e5 100644 --- a/src/lib/cloudi_service_map_reduce/doc/overview-summary.html +++ b/src/lib/cloudi_service_map_reduce/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_map_reduce application


    -

    Generated by EDoc, Feb 26 2018, 18:47:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_null/doc/cloudi_service_null.html b/src/lib/cloudi_service_null/doc/cloudi_service_null.html index 9a85f40c8..3c4828ef2 100644 --- a/src/lib/cloudi_service_null/doc/cloudi_service_null.html +++ b/src/lib/cloudi_service_null/doc/cloudi_service_null.html @@ -13,9 +13,9 @@

    Module cloudi_service_null

    Null Response CloudI Service

    Simple /dev/null equivalent as a CloudI service. -

    Copyright © 2017 Michael Truog

    +

    Copyright © 2017-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 18:58:46 +

    Version: 1.7.4 Sep 15 2018 21:22:33 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -48,6 +48,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 18:58:46.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_null/doc/overview-summary.html b/src/lib/cloudi_service_null/doc/overview-summary.html index 982cd0100..e8ff54a50 100644 --- a/src/lib/cloudi_service_null/doc/overview-summary.html +++ b/src/lib/cloudi_service_null/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_null application


    -

    Generated by EDoc, Feb 26 2018, 18:58:46.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_queue/doc/cloudi_service_queue.html b/src/lib/cloudi_service_queue/doc/cloudi_service_queue.html index 4b196c380..363e9c880 100644 --- a/src/lib/cloudi_service_queue/doc/cloudi_service_queue.html +++ b/src/lib/cloudi_service_queue/doc/cloudi_service_queue.html @@ -20,9 +20,9 @@

    CloudI Persistent Queue Service. -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 19:09:17 +

    Version: 1.7.4 Sep 15 2018 21:35:54 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -67,11 +67,14 @@

    CloudI Persistent Queue ServiceThe amount of time the service request is persisted is always limited by the timeout of the service request. Tracking the time taken by a service request depends on the Erlang VM time-keeping being dependable -which depends on the OS time-keeping not varying wildly -(otherwise service requests may timeout quicker due to the system time -moving into the future). If the fault_isolation service argument is -set to 'both', the original service request timeout value will be used -for the service request send to the destination and the service request +which depends on the OS time-keeping not varying wildly, if +fault_isolation is set to 'both' and an Erlang VM restart causes an old +queue file to be used (the new Erlang VM OS process will use the +new OS time to determine if service requests in the old queue file have +timed-out based on each service request timeout value). +If the fault_isolation service argument is set to 'both', +the original service request timeout value will be used for the +service request send to the destination and the service request send containing the response.

    If the retry service argument is set higher than 0, any retry attempts @@ -85,10 +88,11 @@

    CloudI Persistent Queue ServiceData Types

    request()

    @@ -134,6 +138,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 19:09:17.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_queue/doc/cloudi_write_ahead_logging.html b/src/lib/cloudi_service_queue/doc/cloudi_write_ahead_logging.html index ae6b350e9..ac37b77f2 100644 --- a/src/lib/cloudi_service_queue/doc/cloudi_write_ahead_logging.html +++ b/src/lib/cloudi_service_queue/doc/cloudi_write_ahead_logging.html @@ -13,9 +13,9 @@

    Module cloudi_write_ahead_logging

    CloudI Write Ahead Logging (WAL)

    File storage for transaction logging done by cloudi_service_queue. -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 19:09:17 +

    Version: 1.7.4 Sep 15 2018 21:35:54 ------------------------------------------------------------------------

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

    @@ -25,6 +25,10 @@

    CloudI Write Ahead Logging (WAL)< No disk index is maintained, but an in-memory index is kept.

    Data Types

    +

    checksum_algorithms()

    +

    checksum_algorithms() = crc32 | md5 | ripemd160 | sha | sha224 | sha256 | sha384 | sha512

    + +

    non_neg_integer_64bit()

    non_neg_integer_64bit() = 0..18446744073709551615

    @@ -38,7 +42,7 @@

    retry_function()

    state()

    -

    state() = #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    +

    state() = #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    update_function()

    @@ -49,7 +53,7 @@

    Function Index

    - + @@ -62,56 +66,56 @@

    Function Details

    erase/2

    -

    erase(ChunkId::cloudi_service:trans_id(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request(), #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}

    +

    erase(ChunkId::cloudi_service:trans_id(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request(), #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}

    erase_retry/4

    -

    erase_retry(ChunkId::cloudi_service:trans_id(), RetryMax::non_neg_integer(), RetryF::retry_function(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    +

    erase_retry(ChunkId::cloudi_service:trans_id(), RetryMax::non_neg_integer(), RetryF::retry_function(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    fetch_keys/1

    -

    fetch_keys(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> [cloudi_service:trans_id()]

    +

    fetch_keys(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> [cloudi_service:trans_id()]

    -

    new/4

    +

    new/5

    -

    new(FilePath::string(), FileSizeLimit::1024..18446744073709551615, Compression::0..9, RetryF::retry_function()) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    +

    new(FilePath::string(), FileSizeLimit::1024..18446744073709551615, Compression::0..9, Checksum::undefined | checksum_algorithms(), RetryF::retry_function()) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    size/1

    -

    size(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

    +

    size(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

    size_free/1

    -

    size_free(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

    +

    size_free(State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> non_neg_integer()

    store_end/3

    -

    store_end(ChunkId::cloudi_service:trans_id(), Chunk::#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    +

    store_end(ChunkId::cloudi_service:trans_id(), Chunk::#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    store_fail/2

    -

    store_fail(Chunk::#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    +

    store_fail(Chunk::#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}

    store_start/2

    -

    store_start(ChunkRequest::cloudi_service_queue:request(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}} | full

    +

    store_start(ChunkRequest::cloudi_service_queue:request(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}, #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}} | full

    update/3

    -

    update(ChunkId::cloudi_service:trans_id(), UpdateF::update_function(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request() | undefined, #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, position = non_neg_integer(), chunks = #{}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}

    +

    update(ChunkId::cloudi_service:trans_id(), UpdateF::update_function(), State::#state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}) -> {cloudi_service_queue:request() | undefined, #state{file = string(), file_size_limit = pos_integer_64bit(), compression = 0..9, checksum = undefined | checksum_algorithms(), checksum_size = pos_integer_64bit(), position = non_neg_integer(), chunks = #{cloudi_service:trans_id() := #chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}}, chunks_free = [#chunk{size = pos_integer_64bit(), position = non_neg_integer_64bit(), request = cloudi_service_queue:request() | undefined, retries = non_neg_integer()}]}}


    erase/2
    erase_retry/4
    fetch_keys/1
    new/4
    new/5
    size/1
    size_free/1
    store_end/3
    Overviewerlang logo
    -

    Generated by EDoc, Feb 26 2018, 19:09:17.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_queue/doc/overview-summary.html b/src/lib/cloudi_service_queue/doc/overview-summary.html index d314da5e1..2b3b1c63e 100644 --- a/src/lib/cloudi_service_queue/doc/overview-summary.html +++ b/src/lib/cloudi_service_queue/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_queue application


    -

    Generated by EDoc, Feb 26 2018, 19:09:17.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_quorum/doc/cloudi_service_quorum.html b/src/lib/cloudi_service_quorum/doc/cloudi_service_quorum.html index ab6a1fa74..e43ba78f5 100644 --- a/src/lib/cloudi_service_quorum/doc/cloudi_service_quorum.html +++ b/src/lib/cloudi_service_quorum/doc/cloudi_service_quorum.html @@ -14,9 +14,9 @@

    Module cloudi_service_quorum

    CloudI Quorum Service

    Using this service can provide Byzantine fault tolerance for any other services. -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 19:24:46 +

    Version: 1.7.4 Sep 15 2018 21:42:06 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -62,6 +62,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 19:24:46.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_quorum/doc/overview-summary.html b/src/lib/cloudi_service_quorum/doc/overview-summary.html index 212a00939..4c26f6ede 100644 --- a/src/lib/cloudi_service_quorum/doc/overview-summary.html +++ b/src/lib/cloudi_service_quorum/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_quorum application


    -

    Generated by EDoc, Feb 26 2018, 19:24:46.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_router/doc/cloudi_service_router.html b/src/lib/cloudi_service_router/doc/cloudi_service_router.html index 4eb01b218..a0dbd09f5 100644 --- a/src/lib/cloudi_service_router/doc/cloudi_service_router.html +++ b/src/lib/cloudi_service_router/doc/cloudi_service_router.html @@ -12,9 +12,9 @@

    Module cloudi_service_router

    CloudI Router Service

    . -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 19:36:57 +

    Version: 1.7.4 Sep 15 2018 21:55:26 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -53,6 +53,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 19:36:57.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_router/doc/cloudi_service_router_client.html b/src/lib/cloudi_service_router/doc/cloudi_service_router_client.html new file mode 100644 index 000000000..3e2706c07 --- /dev/null +++ b/src/lib/cloudi_service_router/doc/cloudi_service_router_client.html @@ -0,0 +1,55 @@ + + + + +Module cloudi_service_router_client + + + + +
    + +

    Module cloudi_service_router_client

    + +

    CloudI Router Service Client

    . +

    Copyright © 2018 Michael Truog

    + +

    Version: 1.7.4 Sep 15 2018 21:55:26 + ------------------------------------------------------------------------

    +

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

    + +

    Description

    +

    CloudI Router Service Client

    + +

    Data Types

    + +

    options()

    +

    options() = [{type, ssh}] | cloudi_service_router_ssh_client:options()

    + + +

    state()

    +

    state() = cloudi_service_router_ssh_client:state()

    + + +

    Function Index

    + + +
    forward/11
    new/3
    + +

    Function Details

    + +

    forward/11

    + + +

    new/3

    +
    +

    new(Options::options() | undefined, Environment::cloudi_environment:lookup(), SSH::cloudi_service_router_ssh_server:state() | undefined) -> state() | undefined

    +
    +
    + + +

    Generated by EDoc

    + + diff --git a/src/lib/cloudi_service_router/doc/cloudi_service_router_ssh_client.html b/src/lib/cloudi_service_router/doc/cloudi_service_router_ssh_client.html new file mode 100644 index 000000000..b0a29b26d --- /dev/null +++ b/src/lib/cloudi_service_router/doc/cloudi_service_router_ssh_client.html @@ -0,0 +1,98 @@ + + + + +Module cloudi_service_router_ssh_client + + + + +
    + +

    Module cloudi_service_router_ssh_client

    + +

    CloudI Router Service SSH Client

    . +

    Copyright © 2018 Michael Truog

    + +

    Version: 1.7.4 Sep 15 2018 21:55:26 + ------------------------------------------------------------------------

    +

    Behaviours: gen_server.

    +

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

    + +

    Description

    +

    CloudI Router Service SSH Client

    + +

    Data Types

    + +

    options()

    +

    options() = [{host_name, string()} | {port, pos_integer()} | {inet, inet | inet6 | undefined} | {user_dir, string()} | {system_dir, string()}]

    + + +

    state()

    +

    state() = #ssh_client{process = pid()}

    + + +

    Function Index

    + + + + + + + + + +
    code_change/3
    forward/11
    handle_call/3
    handle_cast/2
    handle_info/2
    init/1
    new/3
    silently_accept_hosts/3
    terminate/2
    + +

    Function Details

    + +

    code_change/3

    +
    +

    code_change(X1, State, X3) -> any()

    +
    + +

    forward/11

    + + +

    handle_call/3

    +
    +

    handle_call(Request, X2, State) -> any()

    +
    + +

    handle_cast/2

    +
    +

    handle_cast(Request, State) -> any()

    +
    + +

    handle_info/2

    +
    +

    handle_info(Request, Ssh_client_connection) -> any()

    +
    + +

    init/1

    +
    +

    init(X1) -> any()

    +
    + +

    new/3

    +
    +

    new(Options::options(), Environment::cloudi_environment:lookup(), SSH::cloudi_service_router_ssh_server:state() | undefined) -> state() | undefined

    +
    + +

    silently_accept_hosts/3

    +
    +

    silently_accept_hosts(PeerName::string(), FingerPrint::string(), SystemDir::string()) -> boolean()

    +
    + +

    terminate/2

    +
    +

    terminate(X1, Ssh_client_connection) -> any()

    +
    +
    + + +

    Generated by EDoc

    + + diff --git a/src/lib/cloudi_service_router/doc/cloudi_service_router_ssh_server.html b/src/lib/cloudi_service_router/doc/cloudi_service_router_ssh_server.html new file mode 100644 index 000000000..02a75bd18 --- /dev/null +++ b/src/lib/cloudi_service_router/doc/cloudi_service_router_ssh_server.html @@ -0,0 +1,110 @@ + + + + +Module cloudi_service_router_ssh_server + + + + +
    + +

    Module cloudi_service_router_ssh_server

    + +

    CloudI Router Service SSH Server

    . +

    Copyright © 2018 Michael Truog

    + +

    Version: 1.7.4 Sep 15 2018 21:55:26 + ------------------------------------------------------------------------

    +

    Behaviours: ssh_daemon_channel.

    +

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

    + +

    Description

    +

    CloudI Router Service SSH Server

    + +

    Data Types

    + +

    options()

    +

    options() = [{ip, inet:ip_address() | any | loopback} | {port, pos_integer()} | {inet, inet | inet6 | undefined} | {user_dir, string()} | {system_dir, string()}]

    + + +

    state()

    +

    state() = #ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()}

    + + +

    Function Index

    + + + + + + + + + + + +
    config_compression/1
    config_inet/1
    config_port/1
    config_system_dir/1
    config_user_dir/1
    destroy/1
    handle_msg/2
    handle_ssh_msg/2
    init/1
    new/3
    terminate/2
    + +

    Function Details

    + +

    config_compression/1

    +
    +

    config_compression(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> 0..9

    +
    + +

    config_inet/1

    +
    +

    config_inet(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> inet | inet6 | undefined

    +
    + +

    config_port/1

    +
    +

    config_port(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> pos_integer()

    +
    + +

    config_system_dir/1

    +
    +

    config_system_dir(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> string() | undefined

    +
    + +

    config_user_dir/1

    +
    +

    config_user_dir(Ssh_server::#ssh_server{config_compression = 0..9, config_inet = inet | inet6 | undefined, config_port = pos_integer(), config_system_dir = string(), config_user_dir = string(), process = undefined | ssh:daemon_ref()} | undefined) -> string() | undefined

    +
    + +

    destroy/1

    +
    +

    destroy(Ssh_server::state() | undefined) -> ok

    +
    + +

    handle_msg/2

    +
    +

    handle_msg(X1, State) -> any()

    +
    + +

    handle_ssh_msg/2

    +
    +

    handle_ssh_msg(X1, Ssh_server_connection) -> any()

    +
    + +

    init/1

    +
    +

    init(X1) -> any()

    +
    + +

    new/3

    +
    +

    new(Options::options() | undefined, Environment::cloudi_environment:lookup(), Dispatcher::cloudi_service:dispatcher()) -> state() | undefined

    +
    + +

    terminate/2

    +
    +

    terminate(Reason, State) -> any()

    +
    +
    + + +

    Generated by EDoc

    + + diff --git a/src/lib/cloudi_service_router/doc/edoc-info b/src/lib/cloudi_service_router/doc/edoc-info index f74616a3e..22ab6d65d 100644 --- a/src/lib/cloudi_service_router/doc/edoc-info +++ b/src/lib/cloudi_service_router/doc/edoc-info @@ -1,3 +1,4 @@ %% encoding: UTF-8 {application,cloudi_service_router}. -{modules,[cloudi_service_router]}. +{modules,[cloudi_service_router,cloudi_service_router_client, + cloudi_service_router_ssh_client,cloudi_service_router_ssh_server]}. diff --git a/src/lib/cloudi_service_router/doc/modules-frame.html b/src/lib/cloudi_service_router/doc/modules-frame.html index f188ccdac..2c0211b87 100644 --- a/src/lib/cloudi_service_router/doc/modules-frame.html +++ b/src/lib/cloudi_service_router/doc/modules-frame.html @@ -7,6 +7,9 @@

    Modules

    -
    cloudi_service_router
    +
    cloudi_service_router
    cloudi_service_router_client
    cloudi_service_router_ssh_client
    cloudi_service_router_ssh_server
    \ No newline at end of file diff --git a/src/lib/cloudi_service_router/doc/overview-summary.html b/src/lib/cloudi_service_router/doc/overview-summary.html index dc1b4a942..18015c0b7 100644 --- a/src/lib/cloudi_service_router/doc/overview-summary.html +++ b/src/lib/cloudi_service_router/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_router application


    -

    Generated by EDoc, Feb 26 2018, 19:36:57.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_tcp/doc/cloudi_service_tcp.html b/src/lib/cloudi_service_tcp/doc/cloudi_service_tcp.html index 60577a41c..96ca984f8 100644 --- a/src/lib/cloudi_service_tcp/doc/cloudi_service_tcp.html +++ b/src/lib/cloudi_service_tcp/doc/cloudi_service_tcp.html @@ -12,9 +12,9 @@

    Module cloudi_service_tcp

    Basic CloudI TCP Integration

    . -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 13:20:47 +

    Version: 1.7.4 Sep 15 2018 22:01:25 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -53,6 +53,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Jun 7 2017, 13:20:48.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_tcp/doc/overview-summary.html b/src/lib/cloudi_service_tcp/doc/overview-summary.html index 316d80e14..712e5d9b3 100644 --- a/src/lib/cloudi_service_tcp/doc/overview-summary.html +++ b/src/lib/cloudi_service_tcp/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_tcp application


    -

    Generated by EDoc, Jun 7 2017, 13:20:48.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_udp/doc/cloudi_service_udp.html b/src/lib/cloudi_service_udp/doc/cloudi_service_udp.html index a7349b845..8d45bdf1c 100644 --- a/src/lib/cloudi_service_udp/doc/cloudi_service_udp.html +++ b/src/lib/cloudi_service_udp/doc/cloudi_service_udp.html @@ -12,9 +12,9 @@

    Module cloudi_service_udp

    Basic CloudI UDP Integration

    . -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 13:24:45 +

    Version: 1.7.4 Sep 15 2018 22:07:56 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -53,6 +53,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Jun 7 2017, 13:24:46.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_udp/doc/overview-summary.html b/src/lib/cloudi_service_udp/doc/overview-summary.html index 8d6b326fb..938b310bf 100644 --- a/src/lib/cloudi_service_udp/doc/overview-summary.html +++ b/src/lib/cloudi_service_udp/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_udp application


    -

    Generated by EDoc, Jun 7 2017, 13:24:46.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_validate/doc/cloudi_service_validate.html b/src/lib/cloudi_service_validate/doc/cloudi_service_validate.html index 4fcb42e1f..83a17614c 100644 --- a/src/lib/cloudi_service_validate/doc/cloudi_service_validate.html +++ b/src/lib/cloudi_service_validate/doc/cloudi_service_validate.html @@ -12,9 +12,9 @@

    Module cloudi_service_validate

    CloudI Validate Service

    . -

    Copyright © 2015-2017 Michael Truog

    +

    Copyright © 2015-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 19:54:41 +

    Version: 1.7.4 Sep 15 2018 22:12:38 ------------------------------------------------------------------------

    Behaviours: cloudi_service.

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

    @@ -53,6 +53,6 @@

    cloudi_service_termina
    -

    Generated by EDoc, Feb 26 2018, 19:54:41.

    +

    Generated by EDoc

    diff --git a/src/lib/cloudi_service_validate/doc/overview-summary.html b/src/lib/cloudi_service_validate/doc/overview-summary.html index ba3d43463..2a0f0c8ea 100644 --- a/src/lib/cloudi_service_validate/doc/overview-summary.html +++ b/src/lib/cloudi_service_validate/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cloudi_service_validate application


    -

    Generated by EDoc, Feb 26 2018, 19:54:41.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/cpg.html b/src/lib/cpg/doc/cpg.html index 1072f6869..6da6fa5ad 100644 --- a/src/lib/cpg/doc/cpg.html +++ b/src/lib/cpg/doc/cpg.html @@ -16,7 +16,7 @@

    CloudI Process Groups (CPG)

    (lib/kernel-x.x.x/src/pg2.erl).

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:08:41 +

    Version: 1.7.4 Sep 15 2018 17:21:38 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -1154,6 +1154,6 @@

    Get the joi
    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/cpg_app.html b/src/lib/cpg/doc/cpg_app.html index d2f5055d9..0675cad34 100644 --- a/src/lib/cpg/doc/cpg_app.html +++ b/src/lib/cpg/doc/cpg_app.html @@ -14,7 +14,7 @@

    Module cpg_app

    CPG Application

    .

    Copyright © 2012-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:08:42 +

    Version: 1.7.1 Sep 15 2018 17:21:38 ------------------------------------------------------------------------

    Behaviours: application.

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

    @@ -68,6 +68,6 @@

    Stop the CPG application.


    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/cpg_callbacks.html b/src/lib/cpg/doc/cpg_callbacks.html index e4b4d1952..4c95a7d6a 100644 --- a/src/lib/cpg/doc/cpg_callbacks.html +++ b/src/lib/cpg/doc/cpg_callbacks.html @@ -12,9 +12,9 @@

    Module cpg_callbacks

    CPG Callback Handling.

    . -

    Copyright © 2014-2017 Michael Truog

    +

    Copyright © 2014-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:08:42 +

    Version: 1.7.4 Sep 15 2018 17:21:38 ------------------------------------------------------------------------

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

    @@ -82,6 +82,6 @@

    stop_link/2


    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/cpg_data.html b/src/lib/cpg/doc/cpg_data.html index 672f90ddc..f7ea64bca 100644 --- a/src/lib/cpg/doc/cpg_data.html +++ b/src/lib/cpg/doc/cpg_data.html @@ -16,7 +16,7 @@

    CPG Data Group Lookups.

    sending messages to the cpg scope process.

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:08:42 +

    Version: 1.7.3 Sep 15 2018 17:21:38 ------------------------------------------------------------------------

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

    @@ -405,6 +405,6 @@

    Get all the groups currently
    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/cpg_node_monitor.html b/src/lib/cpg/doc/cpg_node_monitor.html index c577a39f5..4c50d2c45 100644 --- a/src/lib/cpg/doc/cpg_node_monitor.html +++ b/src/lib/cpg/doc/cpg_node_monitor.html @@ -14,9 +14,9 @@

    Module cpg_node_monitor

    CPG Remote Node Monitor Process.

    Handle remote node pid monitors to reduce the messages the cpg scope process needs to manage. -

    Copyright © 2017 Michael Truog

    +

    Copyright © 2017-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:08:42 +

    Version: 1.7.4 Sep 15 2018 17:21:38 ------------------------------------------------------------------------

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

    @@ -103,6 +103,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/cpg_sup.html b/src/lib/cpg/doc/cpg_sup.html index 395104d1e..6fc26e8bb 100644 --- a/src/lib/cpg/doc/cpg_sup.html +++ b/src/lib/cpg/doc/cpg_sup.html @@ -14,7 +14,7 @@

    Module cpg_sup

    CPG Application Supervisor

    .

    Copyright © 2012-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:08:42 +

    Version: 1.7.1 Sep 15 2018 17:21:38 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -47,6 +47,6 @@

    Start a CPG scope.


    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/overview-summary.html b/src/lib/cpg/doc/overview-summary.html index 866441b98..48293eb27 100644 --- a/src/lib/cpg/doc/overview-summary.html +++ b/src/lib/cpg/doc/overview-summary.html @@ -11,6 +11,6 @@

    The cpg application


    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/supervisor_cpg.html b/src/lib/cpg/doc/supervisor_cpg.html index 29bb313c3..2280055ae 100644 --- a/src/lib/cpg/doc/supervisor_cpg.html +++ b/src/lib/cpg/doc/supervisor_cpg.html @@ -22,7 +22,7 @@

    CPG Supervisor.

    (mnesia is avoided and state is minimized).

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:08:42 +

    Version: 1.7.1 Sep 15 2018 17:21:38 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -116,6 +116,6 @@

    which_children/1


    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/supervisor_cpg_spawn.html b/src/lib/cpg/doc/supervisor_cpg_spawn.html index ff82d4353..03780e891 100644 --- a/src/lib/cpg/doc/supervisor_cpg_spawn.html +++ b/src/lib/cpg/doc/supervisor_cpg_spawn.html @@ -13,9 +13,9 @@

    Module supervisor_cpg_spawn

    CPG Supervisor Spawn.

    Helper process for cpg_supervisor. -

    Copyright © 2013-2017 Michael Truog

    +

    Copyright © 2013-2018 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:08:42 +

    Version: 1.7.4 Sep 15 2018 17:21:38 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -126,6 +126,6 @@

    which_children/1


    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/doc/supervisor_cpg_sup.html b/src/lib/cpg/doc/supervisor_cpg_sup.html index 38bcc8bd7..8d897b874 100644 --- a/src/lib/cpg/doc/supervisor_cpg_sup.html +++ b/src/lib/cpg/doc/supervisor_cpg_sup.html @@ -15,7 +15,7 @@

    CPG Supervisor for children.

    Helper process for cpg_supervisor.

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:08:42 +

    Version: 1.7.1 Sep 15 2018 17:21:38 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    @@ -42,6 +42,6 @@

    start_link/3


    -

    Generated by EDoc, Feb 26 2018, 17:08:42.

    +

    Generated by EDoc

    diff --git a/src/lib/cpg/src/cpg.app.src b/src/lib/cpg/src/cpg.app.src index 7dc75b67e..7d28f3c53 100644 --- a/src/lib/cpg/src/cpg.app.src +++ b/src/lib/cpg/src/cpg.app.src @@ -3,7 +3,7 @@ {application, cpg, [{description, "CloudI Process Groups"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [ cpg, cpg_app, diff --git a/src/lib/erlang_term/doc/erlang_term.html b/src/lib/erlang_term/doc/erlang_term.html index 3ee63f19e..76b5b6f65 100644 --- a/src/lib/erlang_term/doc/erlang_term.html +++ b/src/lib/erlang_term/doc/erlang_term.html @@ -14,7 +14,7 @@

    Module erlang_term

    Erlang Term Info

    .

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 May 31 2017 14:18:54 +

    Version: 1.7.1 Sep 15 2018 17:10:30 ------------------------------------------------------------------------

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

    diff --git a/src/lib/erlang_term/src/erlang_term.app.src b/src/lib/erlang_term/src/erlang_term.app.src index 015c117b8..11e208961 100644 --- a/src/lib/erlang_term/src/erlang_term.app.src +++ b/src/lib/erlang_term/src/erlang_term.app.src @@ -3,7 +3,7 @@ {application, erlang_term, [{description, "Erlang Term Info"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [erlang_term]}, {registered, []}, {applications, [stdlib, kernel]}]}. diff --git a/src/lib/key2value/doc/key2value.html b/src/lib/key2value/doc/key2value.html index f8ed99629..101bb8b04 100644 --- a/src/lib/key2value/doc/key2value.html +++ b/src/lib/key2value/doc/key2value.html @@ -15,7 +15,7 @@

    Key2Value

    Maintain 2 lookups for 2 separate keys and 1 value.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 May 31 2017 14:06:13 +

    Version: 1.7.1 Sep 15 2018 16:56:30 ------------------------------------------------------------------------

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

    diff --git a/src/lib/key2value/src/key2value.app.src b/src/lib/key2value/src/key2value.app.src index 736cd735c..51f6c932e 100644 --- a/src/lib/key2value/src/key2value.app.src +++ b/src/lib/key2value/src/key2value.app.src @@ -3,7 +3,7 @@ {application, key2value, [{description, "2-way Map Data Structure"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [key2value]}, {registered, []}, {applications, [stdlib, kernel]}]}. diff --git a/src/lib/keys1value/doc/keys1value.html b/src/lib/keys1value/doc/keys1value.html index 2890d69cf..07fcbee74 100644 --- a/src/lib/keys1value/doc/keys1value.html +++ b/src/lib/keys1value/doc/keys1value.html @@ -15,7 +15,7 @@

    Keys1Value

    Maintain an associative lookup for a list of keys and 1 value.

    Copyright © 2014-2017 Michael Truog

    -

    Version: 1.7.1 May 31 2017 14:09:12 +

    Version: 1.7.1 Sep 15 2018 17:01:43 ------------------------------------------------------------------------

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

    diff --git a/src/lib/keys1value/src/keys1value.app.src b/src/lib/keys1value/src/keys1value.app.src index 3fbf9c2b8..239c492dc 100644 --- a/src/lib/keys1value/src/keys1value.app.src +++ b/src/lib/keys1value/src/keys1value.app.src @@ -3,7 +3,7 @@ {application, keys1value, [{description, "Set Associative Map Data Structure For Key Lists"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [keys1value]}, {registered, []}, {applications, [stdlib, kernel]}]}. diff --git a/src/lib/pqueue/doc/pqueue.html b/src/lib/pqueue/doc/pqueue.html index 4d5ec8549..2ce68a748 100644 --- a/src/lib/pqueue/doc/pqueue.html +++ b/src/lib/pqueue/doc/pqueue.html @@ -17,7 +17,7 @@

    Static Priority Queue.

    quick in/out priority queue operations.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 May 31 2017 14:15:05 +

    Version: 1.7.1 Sep 15 2018 17:05:34 ------------------------------------------------------------------------

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

    diff --git a/src/lib/pqueue/doc/pqueue2.html b/src/lib/pqueue/doc/pqueue2.html index 0489202d1..7a3a683bd 100644 --- a/src/lib/pqueue/doc/pqueue2.html +++ b/src/lib/pqueue/doc/pqueue2.html @@ -16,7 +16,7 @@

    Skew Heap Priority Queue.

    queue implementation.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 May 31 2017 14:15:03 +

    Version: 1.7.1 Sep 15 2018 17:05:33 ------------------------------------------------------------------------

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

    diff --git a/src/lib/pqueue/doc/pqueue3.html b/src/lib/pqueue/doc/pqueue3.html index c72d27050..b757199c8 100644 --- a/src/lib/pqueue/doc/pqueue3.html +++ b/src/lib/pqueue/doc/pqueue3.html @@ -17,7 +17,7 @@

    A Large Priority Queue.

    when using 64 or more total priorities.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 May 31 2017 14:15:03 +

    Version: 1.7.1 Sep 15 2018 17:05:33 ------------------------------------------------------------------------

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

    diff --git a/src/lib/pqueue/doc/pqueue4.html b/src/lib/pqueue/doc/pqueue4.html index ec3514d2b..aa7322f55 100644 --- a/src/lib/pqueue/doc/pqueue4.html +++ b/src/lib/pqueue/doc/pqueue4.html @@ -17,7 +17,7 @@

    Static Priority Queue.

    quick in/out priority queue operations.

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 May 31 2017 14:15:05 +

    Version: 1.7.1 Sep 15 2018 17:05:34 ------------------------------------------------------------------------

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

    diff --git a/src/lib/pqueue/src/pqueue.app.src b/src/lib/pqueue/src/pqueue.app.src index 9eb3ddde8..002c05847 100644 --- a/src/lib/pqueue/src/pqueue.app.src +++ b/src/lib/pqueue/src/pqueue.app.src @@ -3,7 +3,7 @@ {application, pqueue, [{description, "Priority Queue Data Structures"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [pqueue, pqueue2, pqueue3, pqueue4]}, {registered, []}, {applications, [stdlib, kernel]}]}. diff --git a/src/lib/quickrand/doc/overview-summary.html b/src/lib/quickrand/doc/overview-summary.html index 5299aa1d8..3e755b9b2 100644 --- a/src/lib/quickrand/doc/overview-summary.html +++ b/src/lib/quickrand/doc/overview-summary.html @@ -11,6 +11,6 @@

    The quickrand application


    -

    Generated by EDoc, Feb 26 2018, 16:37:20.

    +

    Generated by EDoc

    diff --git a/src/lib/quickrand/doc/quickrand.html b/src/lib/quickrand/doc/quickrand.html index 6b9e0af0a..d16ec298c 100644 --- a/src/lib/quickrand/doc/quickrand.html +++ b/src/lib/quickrand/doc/quickrand.html @@ -14,7 +14,7 @@

    Module quickrand

    Quick Random Number Generation

    .

    Copyright © 2012-2017 Michael Truog

    -

    Version: 1.7.2 Feb 26 2018 16:37:20 +

    Version: 1.7.2 Sep 15 2018 16:41:31 ------------------------------------------------------------------------

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

    @@ -142,6 +142,6 @@

    uniform_cache/2


    -

    Generated by EDoc, Feb 26 2018, 16:37:20.

    +

    Generated by EDoc

    diff --git a/src/lib/quickrand/doc/quickrand_cache.html b/src/lib/quickrand/doc/quickrand_cache.html index d0898c987..83c09283e 100644 --- a/src/lib/quickrand/doc/quickrand_cache.html +++ b/src/lib/quickrand/doc/quickrand_cache.html @@ -14,7 +14,7 @@

    Module quickrand_cache

    Quick Random Number Generation With Cached Data

    .

    Copyright © 2017 Michael Truog

    -

    Version: 1.7.2 Feb 26 2018 16:37:20 +

    Version: 1.7.2 Sep 15 2018 16:41:31 ------------------------------------------------------------------------

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

    @@ -200,6 +200,6 @@

    State cac
    -

    Generated by EDoc, Feb 26 2018, 16:37:20.

    +

    Generated by EDoc

    diff --git a/src/lib/quickrand/doc/quickrand_cache_normal.html b/src/lib/quickrand/doc/quickrand_cache_normal.html index 49d8c141e..f9d9a7f21 100644 --- a/src/lib/quickrand/doc/quickrand_cache_normal.html +++ b/src/lib/quickrand/doc/quickrand_cache_normal.html @@ -14,7 +14,7 @@

    Module quickrand_cache_normal

    Quick Normal Distribution Random Number Generation With Cached Data

    .

    Copyright © 2017 Michael Truog

    -

    Version: 1.7.2 Feb 26 2018 16:37:20 +

    Version: 1.7.2 Sep 15 2018 16:41:31 ------------------------------------------------------------------------

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

    @@ -46,6 +46,6 @@

    State cache
    -

    Generated by EDoc, Feb 26 2018, 16:37:20.

    +

    Generated by EDoc

    diff --git a/src/lib/quickrand/doc/quickrand_hash.html b/src/lib/quickrand/doc/quickrand_hash.html index b76985202..10e3f0ef8 100644 --- a/src/lib/quickrand/doc/quickrand_hash.html +++ b/src/lib/quickrand/doc/quickrand_hash.html @@ -16,7 +16,7 @@

    Random Number Generat not meant for cryptographic purposes.

    .

    Copyright © 2017 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 16:37:20 +

    Version: 1.7.3 Sep 15 2018 16:41:31 ------------------------------------------------------------------------

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

    @@ -137,6 +137,6 @@

    Bob Jenkins lookup3 hash
    -

    Generated by EDoc, Feb 26 2018, 16:37:20.

    +

    Generated by EDoc

    diff --git a/src/lib/quickrand/doc/quickrand_normal.html b/src/lib/quickrand/doc/quickrand_normal.html index fd48d7969..67b58f753 100644 --- a/src/lib/quickrand/doc/quickrand_normal.html +++ b/src/lib/quickrand/doc/quickrand_normal.html @@ -14,7 +14,7 @@

    Module quickrand_normal

    Quick Normal Distribution Random Number Generation

    .

    Copyright © 2017 Michael Truog

    -

    Version: 1.7.2 Feb 26 2018 16:37:20 +

    Version: 1.7.2 Sep 15 2018 16:41:31 ------------------------------------------------------------------------

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

    @@ -41,6 +41,6 @@

    Box-Mulle
    -

    Generated by EDoc, Feb 26 2018, 16:37:20.

    +

    Generated by EDoc

    diff --git a/src/lib/quickrand/doc/random_wh06_int.html b/src/lib/quickrand/doc/random_wh06_int.html index 3bf33b3d6..f8af534cd 100644 --- a/src/lib/quickrand/doc/random_wh06_int.html +++ b/src/lib/quickrand/doc/random_wh06_int.html @@ -80,6 +80,6 @@

    uniform_s/2


    -

    Generated by EDoc, Feb 26 2018, 16:37:20.

    +

    Generated by EDoc

    diff --git a/src/lib/quickrand/doc/random_wh82.html b/src/lib/quickrand/doc/random_wh82.html index e89f0907c..7d2984fd9 100644 --- a/src/lib/quickrand/doc/random_wh82.html +++ b/src/lib/quickrand/doc/random_wh82.html @@ -80,6 +80,6 @@

    uniform_s/2


    -

    Generated by EDoc, Feb 26 2018, 16:37:20.

    +

    Generated by EDoc

    diff --git a/src/lib/quickrand/src/quickrand.app.src b/src/lib/quickrand/src/quickrand.app.src index bf7f09b62..ced14561d 100644 --- a/src/lib/quickrand/src/quickrand.app.src +++ b/src/lib/quickrand/src/quickrand.app.src @@ -3,7 +3,7 @@ {application, quickrand, [{description, "Quick Random Number Generation"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [ quickrand, quickrand_cache, diff --git a/src/lib/reltool_util/doc/overview-summary.html b/src/lib/reltool_util/doc/overview-summary.html index 57e629d40..fa8e6ce2d 100644 --- a/src/lib/reltool_util/doc/overview-summary.html +++ b/src/lib/reltool_util/doc/overview-summary.html @@ -11,6 +11,6 @@

    The reltool_util application


    -

    Generated by EDoc, Jun 7 2017, 09:54:48.

    +

    Generated by EDoc

    diff --git a/src/lib/reltool_util/doc/reltool_util.html b/src/lib/reltool_util/doc/reltool_util.html index 6eeaa7fb5..e93ddc347 100644 --- a/src/lib/reltool_util/doc/reltool_util.html +++ b/src/lib/reltool_util/doc/reltool_util.html @@ -16,7 +16,7 @@

    reltool Utility Functions

    are useful for runtime usage of applications and releases.

    Copyright © 2013-2017 Michael Truog

    -

    Version: 1.7.1 Jun 7 2017 09:54:48 +

    Version: 1.7.1 Sep 15 2018 17:15:32 ------------------------------------------------------------------------

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

    @@ -523,6 +523,6 @@

    Start everything
    -

    Generated by EDoc, Jun 7 2017, 09:54:48.

    +

    Generated by EDoc

    diff --git a/src/lib/reltool_util/src/reltool_util.app.src b/src/lib/reltool_util/src/reltool_util.app.src index e5eee3920..b11ab25e7 100644 --- a/src/lib/reltool_util/src/reltool_util.app.src +++ b/src/lib/reltool_util/src/reltool_util.app.src @@ -3,7 +3,7 @@ {application, reltool_util, [{description, "Reltool Utility Functions"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [reltool_util]}, {registered, []}, {applications, [stdlib, kernel]}]}. diff --git a/src/lib/supool/doc/supool.html b/src/lib/supool/doc/supool.html index 21e47b57e..9ee1254da 100644 --- a/src/lib/supool/doc/supool.html +++ b/src/lib/supool/doc/supool.html @@ -13,9 +13,9 @@

    Module supool

    Supervisor Pool

    Simple supervisor process pool with round-robin. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.1 May 31 2017 14:55:33 +

    Version: 1.7.4 Sep 15 2018 17:33:35 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    diff --git a/src/lib/supool/doc/supool_sup.html b/src/lib/supool/doc/supool_sup.html index e9a9ad150..cd82c042e 100644 --- a/src/lib/supool/doc/supool_sup.html +++ b/src/lib/supool/doc/supool_sup.html @@ -14,7 +14,7 @@

    Module supool_sup

    Pool Supervisor

    .

    Copyright © 2011-2017 Michael Truog

    -

    Version: 1.7.1 May 31 2017 14:55:33 +

    Version: 1.7.1 Sep 15 2018 17:33:35 ------------------------------------------------------------------------

    Behaviours: supervisor.

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

    diff --git a/src/lib/supool/src/supool.app.src b/src/lib/supool/src/supool.app.src index 14f9eab36..948f35d15 100644 --- a/src/lib/supool/src/supool.app.src +++ b/src/lib/supool/src/supool.app.src @@ -3,7 +3,7 @@ {application, supool, [{description, "Supervisor Pool"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [ supool, supool_sup diff --git a/src/lib/syslog_socket/doc/overview-summary.html b/src/lib/syslog_socket/doc/overview-summary.html index 012d639f6..99a30b3dd 100644 --- a/src/lib/syslog_socket/doc/overview-summary.html +++ b/src/lib/syslog_socket/doc/overview-summary.html @@ -11,6 +11,6 @@

    The syslog_socket application


    -

    Generated by EDoc, Feb 26 2018, 16:23:37.

    +

    Generated by EDoc

    diff --git a/src/lib/syslog_socket/doc/syslog_socket.html b/src/lib/syslog_socket/doc/syslog_socket.html index 37a56df93..73a9c5b5f 100644 --- a/src/lib/syslog_socket/doc/syslog_socket.html +++ b/src/lib/syslog_socket/doc/syslog_socket.html @@ -15,7 +15,7 @@

    Erlang syslog Client Interface< A minimal syslog client interface that supports both RFC3164 and RFC5424.

    Copyright © 2016-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 16:23:37 +

    Version: 1.7.3 Sep 15 2018 16:22:26 ------------------------------------------------------------------------

    Behaviours: gen_server.

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

    @@ -220,6 +220,6 @@

    terminate/2


    -

    Generated by EDoc, Feb 26 2018, 16:23:37.

    +

    Generated by EDoc

    diff --git a/src/lib/syslog_socket/src/syslog_socket.app.src b/src/lib/syslog_socket/src/syslog_socket.app.src index 08bd1d87a..ee7c6f958 100644 --- a/src/lib/syslog_socket/src/syslog_socket.app.src +++ b/src/lib/syslog_socket/src/syslog_socket.app.src @@ -3,7 +3,7 @@ {application, syslog_socket, [{description, "syslog Client Interface"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [syslog_socket]}, {registered, []}, {applications, [stdlib, kernel]}]}. diff --git a/src/lib/trie/doc/btrie.html b/src/lib/trie/doc/btrie.html index 18714409a..a2d8a8cc8 100644 --- a/src/lib/trie/doc/btrie.html +++ b/src/lib/trie/doc/btrie.html @@ -21,7 +21,7 @@

    A trie data structure implem This Erlang trie implementation uses binary keys.

    Copyright © 2010-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 16:32:22 +

    Version: 1.7.1 Sep 15 2018 16:35:31 ------------------------------------------------------------------------

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

    @@ -399,6 +399,6 @@

    Update a counter in a trie.


    -

    Generated by EDoc, Feb 26 2018, 16:32:22.

    +

    Generated by EDoc

    diff --git a/src/lib/trie/doc/overview-summary.html b/src/lib/trie/doc/overview-summary.html index a14985bc0..b6dba0875 100644 --- a/src/lib/trie/doc/overview-summary.html +++ b/src/lib/trie/doc/overview-summary.html @@ -11,6 +11,6 @@

    The trie application


    -

    Generated by EDoc, Feb 26 2018, 16:32:22.

    +

    Generated by EDoc

    diff --git a/src/lib/trie/doc/proper_srv.html b/src/lib/trie/doc/proper_srv.html index 384a451f0..a19a69e65 100644 --- a/src/lib/trie/doc/proper_srv.html +++ b/src/lib/trie/doc/proper_srv.html @@ -147,6 +147,6 @@

    update/3


    -

    Generated by EDoc, Feb 26 2018, 16:32:22.

    +

    Generated by EDoc

    diff --git a/src/lib/trie/doc/trie.html b/src/lib/trie/doc/trie.html index 85caff3ad..a14a5925d 100644 --- a/src/lib/trie/doc/trie.html +++ b/src/lib/trie/doc/trie.html @@ -23,7 +23,7 @@

    A trie data structure implem lookups (find or fetch, see http://okeuday.livejournal.com/16941.html).

    Copyright © 2010-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 16:32:22 +

    Version: 1.7.1 Sep 15 2018 16:35:31 ------------------------------------------------------------------------

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

    @@ -547,6 +547,6 @@

    Update a counter in a trie.


    -

    Generated by EDoc, Feb 26 2018, 16:32:22.

    +

    Generated by EDoc

    diff --git a/src/lib/trie/doc/trie_proper.html b/src/lib/trie/doc/trie_proper.html index 6a109a459..977d3efa7 100644 --- a/src/lib/trie/doc/trie_proper.html +++ b/src/lib/trie/doc/trie_proper.html @@ -15,6 +15,6 @@

    Module trie_proper


    -

    Generated by EDoc, Feb 26 2018, 16:32:22.

    +

    Generated by EDoc

    diff --git a/src/lib/trie/src/trie.app.src b/src/lib/trie/src/trie.app.src index 5b32abbf4..ddc392779 100644 --- a/src/lib/trie/src/trie.app.src +++ b/src/lib/trie/src/trie.app.src @@ -3,7 +3,7 @@ {application, trie, [{description, "Trie Data Structure"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [btrie, trie]}, {registered, []}, {applications, [stdlib, kernel]}]}. diff --git a/src/lib/uuid/doc/overview-summary.html b/src/lib/uuid/doc/overview-summary.html index 09e73c97b..3d527b632 100644 --- a/src/lib/uuid/doc/overview-summary.html +++ b/src/lib/uuid/doc/overview-summary.html @@ -11,6 +11,6 @@

    The uuid application


    -

    Generated by EDoc, Feb 26 2018, 16:46:19.

    +

    Generated by EDoc

    diff --git a/src/lib/uuid/doc/uuid.html b/src/lib/uuid/doc/uuid.html index c5df8f729..55bb25baf 100644 --- a/src/lib/uuid/doc/uuid.html +++ b/src/lib/uuid/doc/uuid.html @@ -13,9 +13,9 @@

    Module uuid

    Erlang UUID Generation

    http://www.ietf.org/rfc/rfc4122.txt is the reference for official UUIDs. -

    Copyright © 2011-2017 Michael Truog

    +

    Copyright © 2011-2018 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 16:46:19 +

    Version: 1.7.4 Sep 15 2018 16:48:33 ------------------------------------------------------------------------

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

    @@ -363,6 +363,6 @@

    Conv
    -

    Generated by EDoc, Feb 26 2018, 16:46:19.

    +

    Generated by EDoc

    diff --git a/src/lib/uuid/src/uuid.app.src b/src/lib/uuid/src/uuid.app.src index 429939518..9f7fe3a27 100644 --- a/src/lib/uuid/src/uuid.app.src +++ b/src/lib/uuid/src/uuid.app.src @@ -3,7 +3,7 @@ {application, uuid, [{description, "Native UUID Generation"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [uuid]}, {registered, []}, {applications, [quickrand, stdlib, kernel]}]}. diff --git a/src/lib/varpool/doc/overview-summary.html b/src/lib/varpool/doc/overview-summary.html index 0922655bf..046b43600 100644 --- a/src/lib/varpool/doc/overview-summary.html +++ b/src/lib/varpool/doc/overview-summary.html @@ -11,6 +11,6 @@

    The varpool application


    -

    Generated by EDoc, Feb 26 2018, 17:18:44.

    +

    Generated by EDoc

    diff --git a/src/lib/varpool/doc/varpool.html b/src/lib/varpool/doc/varpool.html index 8c01513fb..fcce8dc1d 100644 --- a/src/lib/varpool/doc/varpool.html +++ b/src/lib/varpool/doc/varpool.html @@ -14,7 +14,7 @@

    Module varpool

    Local Variable Pool

    .

    Copyright © 2015-2017 Michael Truog

    -

    Version: 1.7.3 Feb 26 2018 17:18:44 +

    Version: 1.7.3 Sep 15 2018 17:51:22 ------------------------------------------------------------------------

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

    @@ -68,6 +68,6 @@

    update/2


    -

    Generated by EDoc, Feb 26 2018, 17:18:44.

    +

    Generated by EDoc

    diff --git a/src/lib/varpool/doc/varpool_sup.html b/src/lib/varpool/doc/varpool_sup.html index f7c15e476..c88b99b5c 100644 --- a/src/lib/varpool/doc/varpool_sup.html +++ b/src/lib/varpool/doc/varpool_sup.html @@ -14,7 +14,7 @@

    Module varpool_sup

    Local Variable Pool Supervisor

    .

    Copyright © 2015-2017 Michael Truog

    -

    Version: 1.7.1 Feb 26 2018 17:18:44 +

    Version: 1.7.1 Sep 15 2018 17:51:22 ------------------------------------------------------------------------

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

    @@ -52,6 +52,6 @@

    Stop the Pool supervisor.


    -

    Generated by EDoc, Feb 26 2018, 17:18:44.

    +

    Generated by EDoc

    diff --git a/src/lib/varpool/src/varpool.app.src b/src/lib/varpool/src/varpool.app.src index b96e96ad3..59fc329f8 100644 --- a/src/lib/varpool/src/varpool.app.src +++ b/src/lib/varpool/src/varpool.app.src @@ -3,7 +3,7 @@ {application, varpool, [{description, "Local Variable Pool"}, - {vsn, "1.7.3"}, + {vsn, "1.7.4"}, {modules, [ varpool, varpool_sup diff --git a/src/reltool.config.in b/src/reltool.config.in index 55bee3dbe..5db027cc7 100644 --- a/src/reltool.config.in +++ b/src/reltool.config.in @@ -27,13 +27,13 @@ {debug_info, keep}, %{app, debugger, % [{incl_cond, include}, {mod_cond, all}, {app_file, keep}]}, - {app, sasl, - [{incl_cond, include}, {mod_cond, all}, {app_file, keep}]}, {boot_rel, "cloudi"}, % CloudI source code, including dependencies {app, cloudi_core, [{incl_cond, include}, {mod_cond, all}, {app_file, keep}]}, + {app, cloudi_x_msgpack, + [{incl_cond, include}, {mod_cond, all}, {app_file, keep}]}, % CloudI services, not automatically started % (i.e., started by the internal service configuration entries) @@ -87,10 +87,7 @@ [ % CloudI cloudi_core, - % Erlang - sasl, - stdlib, - kernel + cloudi_x_msgpack ]}, {rel, "start_clean", "", [