/*
 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
 * agreements. See the NOTICE file distributed with this work for additional information regarding
 * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance with the License. You may obtain a
 * copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */

package org.apache.geode.distributed;

import org.apache.geode.distributed.internal.membership.api.MembershipConfig;

/**
 * This interface defines all the configuration properties that can be used. <U>Since</U>: Geode 1.0
 */
public interface ConfigurationProperties {

  /**
   * The static string definition of the <i>"ack-severe-alert-threshold"</i> property
   * <a name="ack-severe-alert-threshold"></a>
   * <p>
   * <U>Description</U>: The number of seconds the distributed system will wait after the
   * ack-wait-threshold for a message to be acknowledged before it issues an alert at <i>severe</i>
   * level. The default value is zero, which turns off this feature. When ack-severe-alert-threshold
   * is used, GemFire will also initiate additional checks to see if the process is alive. These
   * checks will begin when the ack-wait-threshold is reached and will continue until GemFire has
   * been able to communicate with the process and ascertain its status.
   * <p>
   * <U>Default</U>: "0"
   * <p>
   * <U>Allowed values</U>: 0..2147483647
   */
  String ACK_SEVERE_ALERT_THRESHOLD = "ack-severe-alert-threshold";
  /**
   * The static String definition of the <i>"ack-wait-threshold"</i> property
   * <a name="ack-wait-threshold"></a>
   * <p>
   * <U>Description</U>: The number of seconds the distributed system will wait for a message to be
   * acknowledged before it sends a <i>warning</i> level alert to signal that something might be
   * wrong with the system node that is unresponsive. After sending this alert the waiter continues
   * to wait. The alerts are logged in the log as warnings and will cause an alert notification in
   * the Admin API and GemFire JMX Agent.
   * <p>
   * <U>Default</U>: "15"
   * <p>
   * <U>Allowed values</U>: 1..2147483647
   */
  String ACK_WAIT_THRESHOLD = "ack-wait-threshold";
  /**
   * The static String definition of the <i>"archive-disk-space-limit"</i> property
   * <a name="archive-disk-space-limit"></a>
   * <p>
   * <U>Description</U>: Limits, in megabytes, how much disk space can be consumed by old inactive
   * statistic archive files. When the limit is exceeded the oldest inactive archive is deleted. Set
   * to zero to disable automatic archive deletion.
   * <p>
   * <U>Default</U>: "0"
   * <p>
   * <U>Allowed values</U>: 0..1000000
   */
  String ARCHIVE_DISK_SPACE_LIMIT = "archive-disk-space-limit";
  /**
   * The static String definition of the <i>"archive-file-size-limit"</i> property
   * <a name="archive-file-size-limit"></a>
   * <p>
   * <U>Description</U>: Limits, in megabytes, how large the current statistic archive file can grow
   * before it is closed and archival rolls on to a new file. Set to zero to disable archive
   * rolling.
   * <p>
   * <U>Default</U>: "0"
   * <p>
   * <U>Allowed values</U>: 0..1000000
   */
  String ARCHIVE_FILE_SIZE_LIMIT = "archive-file-size-limit";
  /**
   * The static String definition of the <i>"async-distribution-timeout"</i> property
   * <a name="async-distribution-timeout"></a>
   * <p>
   * <U>Description</U>: The number of milliseconds before a publishing process should attempt to
   * distribute a cache operation before switching over to asynchronous messaging for this process.
   * To enable asynchronous messaging, the value must be set above zero. If a thread that is
   * publishing to the cache exceeds this value when attempting to distribute to this process, it
   * will switch to asynchronous messaging until this process catches up, departs, or some specified
   * limit is reached, such as <a href="#async-queue-timeout"> async-queue-timeout</a> or
   * <a href="#async-max-queue-size"> async-max-queue-size</a>.
   * <p>
   * <U>Default</U>: "0"
   * <p>
   * <U>Allowed values</U>: 0..60000
   */
  String ASYNC_DISTRIBUTION_TIMEOUT = "async-distribution-timeout";
  /**
   * The static String definition of the <i>"async-max-queue-size"</i> property
   * <a name="async-max-queue-size"></a>
   * <p>
   * <U>Description</U>: The maximum size in megabytes that a publishing process should be allowed
   * to asynchronously enqueue for this process before asking this process to depart from the
   * distributed system.
   * <p>
   * <U>Default</U>: "8"
   * <p>
   * <U>Allowed values</U>: 0..1024
   */
  String ASYNC_MAX_QUEUE_SIZE = "async-max-queue-size";
  /**
   * The static String definition of the <i>"async-queue-timeout"</i> property
   * <a name="async-queue-timeout"></a>
   * <p>
   * <U>Description</U>: The number of milliseconds a queuing publisher may enqueue asynchronous
   * messages without any distribution to this process before that publisher requests this process
   * to depart. If a queuing publisher has not been able to send this process any cache operations
   * prior to the timeout, this process will attempt to close its cache and disconnect from the
   * distributed system.
   * <p>
   * <U>Default</U>: "60000"
   * <p>
   * <U>Allowed values</U>: 0..86400000
   */
  String ASYNC_QUEUE_TIMEOUT = "async-queue-timeout";
  /**
   * The static String definition of the <i>"bind-address"</i> property
   * <a name="bind-address"></a>
   * <p>
   * <U>Description</U>: The IP address that this distributed system's server sockets will listen
   * on. If set to an empty string then the local machine's default address will be listened on.
   * <p>
   * <U>Default</U>: ""
   */
  String BIND_ADDRESS = "bind-address";
  /**
   * The static String definition of the <i>"cache-xml-file"</i> property
   * <a name="cache-xml-file"></a>
   * <p>
   * <U>Description</U>: Specifies the name of the XML file or resource to initialize the cache with
   * when it is {@linkplain org.apache.geode.cache.CacheFactory#create created}. Create will first
   * look for a file that matches the value of this property. If a file is not found then it will be
   * searched for using {@link java.lang.ClassLoader#getResource}. If the value of this property is
   * the empty string (<code>""</code>), then the cache will not be declaratively initialized.
   * <p>
   * <U>Default</U>: "cache.xml"
   */
  String CACHE_XML_FILE = "cache-xml-file";
  /**
   * The static String definition of the <i>"cluster-configuration-dir"</i> property
   * <a name="cluster-configuration-dir"></a>
   * <p>
   * <U>Description</U>: This property specifies the directory in which the cluster configuration
   * related disk-store and artifacts are stored This property is only applicable to dedicated
   * locators which have "enable-cluster-configuration" set to true.
   *
   * Since 1.12, the product does not use this property anymore.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.1
   *
   * @deprecated Since Geode1.14. use import-cluster-configuration and export-cluster-configuration
   *             to upload/download cluster configuration to/from the cluster.
   */
  @Deprecated
  String CLUSTER_CONFIGURATION_DIR = "cluster-configuration-dir";

  /**
   * The static String definition of the cluster ssl prefix <i>"cluster-ssl"</i> used in conjunction
   * with other <i>cluster-ssl-*</i> properties property
   * <a name="cluster-ssl"></a>
   * <p>
   * <U>Description</U>: The cluster-ssl property prefix
   *
   * @deprecated Since Geode1.0, use ssl-* properties and ssl-enabled-components
   */
  @Deprecated
  String CLUSTER_SSL_PREFIX = "cluster-ssl";

  /**
   * The static String definition of the <i>"ssl-cluster-alias"</i> property
   * <a name="ssl-cluster-alias"></a>
   * <p>
   * <U>Description</U>: This property is to be used if a specific key is to be used out of a
   * keystore for the cluster ssl certificate.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: Geode 1.0
   */
  String SSL_CLUSTER_ALIAS = "ssl-cluster-alias";
  /**
   * The static String definition of the <i>"cluster-ssl-ciphers"</i> property
   * <a name="cluster-ssl-ciphers"></a>
   * <p>
   * <U>Description</U>: A space separated list of the SSL cipher suites to enable. Those listed
   * must be supported by the available providers.Preferably use cluster-ssl-* properties rather
   * than ssl-* properties.
   * <p>
   * <U>Default</U>: "any"
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_CIPHERS}
   */
  @Deprecated
  String CLUSTER_SSL_CIPHERS = "cluster-ssl-ciphers";
  /**
   * The static String definition of the <i>"cluster-ssl-enabled"</i> property
   * <a name="cluster-ssl-enabled"></a>
   * <p>
   * <U>Description</U>: If true, all gemfire socket communication is configured to use SSL through
   * JSSE.
   * <p>
   * <U>Default</U>: "false"
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 see {@link #SSL_ENABLED_COMPONENTS}
   */
  @Deprecated
  String CLUSTER_SSL_ENABLED = "cluster-ssl-enabled";
  /**
   * The static String definition of the <i>"cluster-ssl-keystore"</i> property
   * <a name="cluster-ssl-keystore"></a>
   * <p>
   * <U>Description</U>Location of the Java keystore file containing certificate and private key.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_KEYSTORE}
   */
  @Deprecated
  String CLUSTER_SSL_KEYSTORE = "cluster-ssl-keystore";
  /**
   * The static String definition of the <i>"cluster-ssl-keystore-password"</i> property
   * <a name="cluster-ssl-keystore-password"></a>
   * <p>
   * <U>Description</U>Password to access the private key from the keystore file specified by
   * javax.net.ssl.keyStore.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_KEYSTORE_PASSWORD}
   */
  @Deprecated
  String CLUSTER_SSL_KEYSTORE_PASSWORD = "cluster-ssl-keystore-password";
  /**
   * The static String definition of the <i>"cluster-ssl-keystore-type"</i> property
   * <a name="cluster-ssl-keystore-type"></a>
   * <p>
   * <U>Description</U>For Java keystore file format, this property has the value jks (or JKS).
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_KEYSTORE_TYPE}
   */
  @Deprecated
  String CLUSTER_SSL_KEYSTORE_TYPE = "cluster-ssl-keystore-type";
  /**
   * The static String definition of the <i>"cluster-ssl-protocols"</i> property
   * <a name="cluster-ssl-protocols"></a>
   * <p>
   * <U>Description</U>: A space separated list of the SSL protocols to enable. Those listed must be
   * supported by the available providers.
   * <p>
   * <U>Default</U>: "any"
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_PROTOCOLS}
   */
  @Deprecated
  String CLUSTER_SSL_PROTOCOLS = "cluster-ssl-protocols";
  /**
   * The static String definition of the <i>"cluster-ssl-require-authentication"</i> property
   * <a name="cluster-ssl-require-authentication"></a>
   * <p>
   * <U>Description</U>: If false, allow ciphers that do not require the client side of the
   * connection to be authenticated.
   * <p>
   * <U>Default</U>: "true"
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_REQUIRE_AUTHENTICATION}
   */
  @Deprecated
  String CLUSTER_SSL_REQUIRE_AUTHENTICATION = "cluster-ssl-require-authentication";
  /**
   * The static String definition of the <i>"cluster-ssl-truststore"</i> property
   * <a name="cluster-ssl-truststore"></a>
   * <p>
   * <U>Description</U>Location of the Java keystore file containing the collection of CA
   * certificates trusted by distributed member (trust store).
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_TRUSTSTORE}
   */
  @Deprecated
  String CLUSTER_SSL_TRUSTSTORE = "cluster-ssl-truststore";
  /**
   * The static String definition of the <i>"cluster-ssl-truststore-password"</i> property
   * <a name="cluster-ssl-truststore-password"></a>
   * <p>
   * <U>Description</U>Password to unlock the keystore file (store password) specified by
   * javax.net.ssl.trustStore.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_TRUSTSTORE_PASSWORD}
   */
  @Deprecated
  String CLUSTER_SSL_TRUSTSTORE_PASSWORD = "cluster-ssl-truststore-password";
  /**
   * The static String definition of the <i>"conflate-events"</i> property
   * <a name="conflate-events"></a>
   * <p>
   * <U>Description</U>: This is a client-side property that is passed to the server. Allowable
   * values are "server", "true", and "false". With the "server" setting, this client's servers
   * use their own client queue conflation settings. With a "true" setting, the servers disregard
   * their own configuration and enable conflation of events for all regions for the client. A
   * "false" setting causes the client's servers to disable conflation for all regions for the
   * client. <U>Default</U>: "server"
   * <p>
   * <U>Since</U>: GemFire 5.7
   */
  String CONFLATE_EVENTS = "conflate-events";
  /**
   * The static String definition of the <i>"conserve-sockets"</i> property
   * <a name="conserve-sockets"></a>
   * <p>
   * <U>Description</U>: If "true" then a minimal number of sockets will be used when connecting to
   * the distributed system. This conserves resource usage but can cause performance to suffer. If
   * "false" then every application thread that sends distribution messages to other members of the
   * distributed system will own its own sockets and have exclusive access to them. The length of
   * time a thread can have exclusive access to a socket can be configured with "socket-lease-time".
   * <U>Default</U>: "false"
   * <p>
   * <U>Allowed values</U>: true|false
   */
  String CONSERVE_SOCKETS = "conserve-sockets";
  /**
   * The static String definition of the <i>"delta-propagation"</i> property
   * <a name="delta-propagation"></a>
   * <p>
   * <U>Description</U>: "true" indicates that server propagates
   * delta generated from {@link org.apache.geode.Delta} type of objects. If "false" then server
   * propagates full object but not delta.
   * <p>
   * <U>Default</U>: "true"
   * <p>
   * <U>Allowed values</U>: true|false
   */
  String DELTA_PROPAGATION = "delta-propagation";
  /**
   * The static String definition of the <i>"deploy-working-dir"</i> property
   * <a name="deploy-working-dir"></a>
   * <p>
   * <U>Description</U>: Specifies the working directory which this distributed member will use to
   * persist deployed JAR files. This directory should be unchanged when restarting the member so
   * that it can read what was previously persisted. The default is the current working directory as
   * determined by <code>System.getProperty("user.dir")</code>.
   * <p>
   * <U>Default</U>: <code>System.getProperty("user.dir")</code>
   * <p>
   * <U>Since</U>: GemFire 7.0
   */
  String DEPLOY_WORKING_DIR = "deploy-working-dir";
  /**
   * The static String definition of the <i>"disable-auto-reconnect"</i> property
   * <a name="disable-auto-reconnect"></a>
   * <p>
   * <U>Description</U>: By default GemFire will attempt to reconnect and reinitialize the cache
   * when it has been forced out of the distributed system by a network-partition event or has
   * otherwise been shunned by other members. This setting will turn off this behavior.
   * <p>
   * <U>Default</U>: "false"
   */
  String DISABLE_AUTO_RECONNECT = "disable-auto-reconnect";
  /**
   * The static String definition of the <i>"disable-tcp"</i> property
   * <a name="disable-tcp"></a>
   * <p>
   * <U>Description</U>: Turns off use of tcp/ip sockets, forcing the cache to use datagram sockets
   * for all communication. This is useful if you have a large number of processes in the
   * distributed cache since it eliminates the per-connection reader-thread that is otherwise
   * required. However, udp communications are somewhat slower than tcp/ip communications due to the
   * extra work required in Java to break messages down to transmittable sizes, and the extra work
   * required to guarantee message delivery.
   * <p>
   * <U>Default</U>: "false"
   * <p>
   * <U>Allowed values</U>: true or false
   * <p>
   * <U>Since</U>: GemFire 5.0
   */
  String DISABLE_TCP = "disable-tcp";
  /**
   * The static String definition of the <i>"disable-jmx"</i> property
   * <a name="disable-jmx"></a>
   * <p>
   * <U>Description</U>: Turns off use of JMX, preventing the process from creating Geode MBeans.
   * <p>
   * <U>Default</U>: "false"
   * <p>
   * <U>Allowed values</U>: true or false
   * <p>
   * <U>Since</U>: Geode 1.9
   */
  String DISABLE_JMX = "disable-jmx";
  /**
   * The static String definition of the <i>"distributed-system-id"</i> property
   * <a name="distributed-system-id"></a>
   * <p>
   * <U>Decription:</U>A number that uniquely identifies this
   * distributed system, when using the WAN gateway to share data between multiple distributed
   * systems. This setting is only required when using the WAN gateway in conjunction with the
   * <b>P</b>ortable <b>D</b>ata e<b>X</b>change (PDX) serialization format.
   * <p>
   * If set, this setting must be the same for every member in this distributed system. It must be
   * different than the number in other distributed systems that this one will connect to using the
   * WAN. -1 means no setting.
   * <p>
   * <U>Range:</U>-1..255
   * <p>
   * <U>Default:</U>: "-1"
   */
  String DISTRIBUTED_SYSTEM_ID = "distributed-system-id";
  /**
   * The static String definition of the <i>"durable-client-id"</i> property
   * <a name="durable-client-id"></a>
   * <p>
   * <U>Description</U>: The id to be used by this durable client. When a durable client connects to
   * a server, this id is used by the server to identify it. The server will accumulate updates for
   * a durable client while it is disconnected and deliver these events to the client when it
   * reconnects. <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 5.5
   */
  String DURABLE_CLIENT_ID = "durable-client-id";
  /**
   * The static String definition of the <i>"durable-client-timeout"</i> property
   * <a name="durable-client-timeout"></a>
   * <p>
   * <U>Description</U>: The number of seconds a disconnected durable client is kept alive and
   * updates are accumulated for it by the server before it is terminated. <U>Default</U>: "300"
   * <p>
   * <U>Since</U>: GemFire 5.5
   */
  String DURABLE_CLIENT_TIMEOUT = "durable-client-timeout";
  /**
   * The static String definition of the <i>"enable-cluster-configuration"</i> property
   * <a name="enable-cluster-configuration"></a>
   * <p>
   * <U>Description</U>: "true" causes creation of cluster configuration service on dedicated
   * locators. The cluster configuration service on dedicated locator(s) would serve the
   * configuration to new members joining the distributed system and also save the configuration
   * changes caused by the Gfsh commands. This property is only applicable to dedicated locators.
   * <p>
   * <U>Default</U>: "true"
   * <p>
   * <U>Allowed values</U>: true or false
   * <p>
   * <U>Since</U>: GemFire 8.0
   */
  String ENABLE_CLUSTER_CONFIGURATION = "enable-cluster-configuration";

  /**
   * The static String definition of the <i>"enable-management-rest-service"</i> property
   * <a name="enable-management-rest-service"></a>
   * <p>
   * <U>Description</U>: "true" causes the cluster management rest service to be enabled. This
   * service
   * requires the cluster configuration service to be enabled. If "enable-cluster-configuration" is
   * false and this is true, the management rest service would do nothing but report an error if you
   * try to use it. Also even if this property is set to "true", The management rest service will
   * only be started if "http-service-port" is not "0".
   * <p>
   * <U>Default</U>: "true"
   * <p>
   * <U>Allowed values</U>: true or false
   * <p>
   * <U>Since</U>: Geode 1.10
   */
  String ENABLE_MANAGEMENT_REST_SERVICE = "enable-management-rest-service";

  /**
   * The static String definition of the <i>"enable-network-partition-detection"</i> property
   * <a name="enable-network-partition-detection"></a>
   * <p>
   * <U>Description</U>: Turns on network partitioning detection algorithms, which detect loss of
   * quorum and shuts down losing partitions.
   * <p>
   * <U>Default</U>: "true"
   */
  String ENABLE_NETWORK_PARTITION_DETECTION = "enable-network-partition-detection";
  /**
   * The static String definition of the <i>"enable-time-statistics"</i> property
   * <a name="enable-time-statistics"></a>
   * <p>
   * <U>Description</U>: "true" causes additional time-based statistics to be gathered for gemfire
   * operations. This can aid in discovering where time is going in cache operations, albeit at the
   * expense of extra clock probes on every operation. "false" disables the additional time-based
   * statistics.
   * <p>
   * <U>Default</U>: "false"
   * <p>
   * <U>Allowed values</U>: true or false
   * <p>
   * <U>Since</U>: 5.0
   */
  String ENABLE_TIME_STATISTICS = "enable-time-statistics";
  /**
   * The static String definition of the <i>"enforce-unique-host"</i> property
   * <a name="enforce-unique-host"></a>
   * <p>
   * <U>Description</U>: Whether or not partitioned regions will put redundant copies of the same
   * data in different JVMs running on the same physical host.
   * <p>
   * By default, partitioned regions will try to put redundancy copies on different physical hosts,
   * but it may put them on the same physical host if no other hosts are available. Setting this
   * property to true will prevent partitions regions from ever putting redundant copies of data on
   * the same physical host.
   * <p>
   * <U>Default</U>: "false"
   */
  String ENFORCE_UNIQUE_HOST = "enforce-unique-host";
  /**
   * The static String definition of the <i>"ssl-gateway-alias"</i> property
   * <a name="ssl-gateway-alias"></a>
   * <p>
   * <U>Description</U>: This property is to be used if a specific key is to be used for the SSL
   * communications for the Gateways.
   * <p>
   * <U><i>Optional</i></U> <U>Default</U>: ""
   * <p>
   * <U>Since</U>: Geode 1.0
   */
  String SSL_GATEWAY_ALIAS = "ssl-gateway-alias";
  /**
   * The static String definition of the <i>"gateway-ssl-ciphers"</i> property
   * <a name="gateway-ssl-ciphers"></a>
   * <p>
   * <U>Description</U>: A space separated list of the SSL cipher suites to enable. Those listed
   * must be supported by the available providers.
   * <p>
   * <U>Default</U>: <code>any</code>
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_CIPHERS}
   */
  @Deprecated
  String GATEWAY_SSL_CIPHERS = "gateway-ssl-ciphers";
  /**
   * The static String definition of the <i>"gateway-ssl-enabled"</i> property
   * <a name="gateway-ssl-enabled"></a>
   * <p>
   * <U>Description</U>: Specifies if gateway is started with separate ssl configuration. If not
   * specified global property ssl-enabled (and its other related properties) are used to create
   * gateway socket
   * <p>
   * <U>Default</U>: <code>false</code>
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_ENABLED_COMPONENTS} with the optional
   *             {@link #SSL_GATEWAY_ALIAS}
   */
  @Deprecated
  String GATEWAY_SSL_ENABLED = "gateway-ssl-enabled";
  /**
   * The static String definition of the <i>"gateway-ssl-keystore"</i> property
   * <a name="gateway-ssl-keystore"></a>
   * <p>
   * <U>Description</U>Location of the Java keystore file containing certificate and private key.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_KEYSTORE}
   */
  @Deprecated
  String GATEWAY_SSL_KEYSTORE = "gateway-ssl-keystore";
  /**
   * The static String definition of the <i>"gateway-ssl-keystore-password"</i> property
   * <a name="gateway-ssl-keystore-password"></a>
   * <p>
   * <U>Description</U>Password to access the private key from the keystore file specified by
   * javax.net.ssl.keyStore.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_KEYSTORE_PASSWORD}
   */
  @Deprecated
  String GATEWAY_SSL_KEYSTORE_PASSWORD = "gateway-ssl-keystore-password";
  /**
   * The static String definition of the <i>"gateway-ssl-keystore-type"</i> property
   * <a name="gateway-ssl-keystore-type"></a>
   * <p>
   * <U>Description</U>For Java keystore file format, this property has the value jks (or JKS).
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_KEYSTORE_TYPE}
   */
  @Deprecated
  String GATEWAY_SSL_KEYSTORE_TYPE = "gateway-ssl-keystore-type";
  /**
   * The static String definition of the <i>"gateway-ssl-protocols"</i> property
   * <a name="gateway-ssl-protocols"></a>
   * <p>
   * <U>Description</U>: A space separated list of the SSL protocols to enable. Those listed must be
   * supported by the available providers.
   * <p>
   * <U>Default</U>: <code>any</code>
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_PROTOCOLS}
   */
  @Deprecated
  String GATEWAY_SSL_PROTOCOLS = "gateway-ssl-protocols";
  /**
   * The static String definition of the <i>"gateway-ssl-require-authentication"</i> property
   * <a name="gateway-ssl-require-authentication"></a>
   * <p>
   * <U>Description</U>: If false, allow ciphers that do not require the Gateway Sender side of the
   * connection to be authenticated.
   * <p>
   * <U>Default</U>: <code>any</code>
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_REQUIRE_AUTHENTICATION}
   */
  @Deprecated
  String GATEWAY_SSL_REQUIRE_AUTHENTICATION = "gateway-ssl-require-authentication";
  /**
   * The static String definition of the <i>"gateway-ssl-truststore"</i> property
   * <a name="gateway-ssl-truststore"></a>
   * <p>
   * <U>Description</U>Location of the Java keystore file containing the collection of CA
   * certificates trusted by server (trust store).
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_TRUSTSTORE}
   */
  @Deprecated
  String GATEWAY_SSL_TRUSTSTORE = "gateway-ssl-truststore";
  /**
   * The static String definition of the <i>"gateway-ssl-truststore-password"</i> property
   * <a name="gateway-ssl-truststore-password"></a>
   * <p>
   * <U>Description</U>: Password to unlock the keystore file (store password) specified by
   * javax.net.ssl.trustStore.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_TRUSTSTORE_PASSWORD}
   */
  @Deprecated
  String GATEWAY_SSL_TRUSTSTORE_PASSWORD = "gateway-ssl-truststore-password";
  /**
   * The static String definition of the <i>"groups"</i> property.
   * <a name="groups"></a>
   * <p>
   * <U>Description</U>: Defines the list of groups this member belongs to. Use commas to separate
   * group names. Note that anything defined by the deprecated roles gemfire property will also be
   * considered a group.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 7.0
   */
  String GROUPS = "groups";
  /**
   * The static String definition of the <i>"http-service-bind-address"</i> property
   * <a name="http-service-bind-address"></a>
   * <p>
   * <U>Description</U>: The address where the GemFire HTTP service will listen for remote
   * connections. One can use this property to configure what ip address or host name the HTTP
   * service will listen on. When not set, by default the HTTP service will listen on the local
   * host's address.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.0
   */
  String HTTP_SERVICE_BIND_ADDRESS = "http-service-bind-address";
  /**
   * The static String definition of the <i>"http-service-port"</i> property
   * <a name="http-service-port"></a>
   * <p>
   * <U>Description</U>: Specifies the port used by the GemFire HTTP service. If configured with
   * non-zero value, then an HTTP service will listen on this port. A value of "0" disables Gemfire
   * HTTP service.
   * <p>
   * <U>Default</U>: "7070"
   * <p>
   * <U>Allowed values</U>: 0..65535
   * <p>
   * <U>Since</U>: GemFire 8.0
   */
  String HTTP_SERVICE_PORT = "http-service-port";
  /**
   * The static String definition of the <i>"ssl-web-alias"</i> property
   * <a name="ssl-web-alias"></a>
   * <p>
   * <U>Description</U>: This property is to be used if a specific key is to be used for the SSL
   * communications for the HTTP service.
   * <p>
   * <U><i>Optional</i></U> <U>Default</U>: ""
   * <p>
   * <U>Since</U>: Geode 1.0
   */
  String SSL_WEB_ALIAS = "ssl-web-alias";


  @Deprecated
  String HTTP_SERVICE_SSL_PREFIX = "http-service-ssl-";

  /**
   * The static String definition of the <i>"http-service-ssl-ciphers"</i> property
   * <a name="http-service-ssl-ciphers"></a>
   * <p>
   * <U>Description</U>: A space separated list of the SSL cipher suites to enable. Those listed
   * must be supported by the available providers.
   * <p>
   * <U>Default</U>: <code>any</code>
   * <p>
   * <U>Since</U>: GemFire 8.1
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_CIPHERS}
   */
  @Deprecated
  String HTTP_SERVICE_SSL_CIPHERS = "http-service-ssl-ciphers";
  /**
   * The static String definition of the <i>"http-service-ssl-enabled"</i> property
   * <a name="http-service-ssl-enabled"></a>
   * <p>
   * <U>Description</U>: Specifies if http service is started with separate ssl configuration. If
   * not specified, global property cluster-ssl-enabled (and its other related properties) are used
   * to secure http service. All http-service-ssl-* properties are inherited from cluster-ssl-*
   * properties. User can override them using specific http-service-ssl-* property.
   * <p>
   * <U>Default</U>: <code>false</code>
   * <p>
   * <U>Since</U>: GemFire 8.1
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_ENABLED_COMPONENTS} with optional
   *             {@link #SSL_WEB_ALIAS}
   */
  @Deprecated
  String HTTP_SERVICE_SSL_ENABLED = "http-service-ssl-enabled";
  /**
   * The static String definition of the <i>"http-service-ssl-keystore"</i> property
   * <a name="http-service-ssl-keystore"></a>
   * <p>
   * <U>Description</U>: Location of the Java keystore file containing certificate and private key.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.1
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_KEYSTORE}
   */
  @Deprecated
  String HTTP_SERVICE_SSL_KEYSTORE = "http-service-ssl-keystore";
  /**
   * The static String definition of the <i>"http-service-ssl-keystore-password"</i> property
   * <a name="http-service-ssl-keystore-password"></a>
   * <p>
   * <U>Description</U>: Password to access the private key from the keystore file specified by
   * javax.net.ssl.keyStore.
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.1
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_KEYSTORE_PASSWORD}
   */
  @Deprecated
  String HTTP_SERVICE_SSL_KEYSTORE_PASSWORD = "http-service-ssl-keystore-password";
  /**
   * The static String definition of the <i>"http-service-ssl-keystore-type"</i> property
   * <a name="http-service-ssl-keystore-type"></a>
   * <p>
   * <U>Description</U>: For Java keystore file format, this property has the value jks (or JKS).
   * <p>
   * <U>Default</U>: ""
   * <p>
   * <U>Since</U>: GemFire 8.1
   *
   * @deprecated Since Geode 1.0 use {@link #SSL_KEYSTORE_TYPE}
   */
  @Deprecated
  String HTTP_SERVICE_SSL_KEYSTORE_TYPE = "http-service-ssl-keystore-type";
  /**
