@Test public void testGetLocalDatabaseUrl() { Properties ambariProperties = new Properties(); ambariProperties.setProperty("server.jdbc.database_name", "ambaritestdatabase"); Configuration conf = new Configuration(ambariProperties); Assert.assertEquals(conf.getLocalDatabaseUrl(), Configuration.JDBC_LOCAL_URL.concat("ambaritestdatabase")); }
public String getLocalDatabaseUrl() { String dbName = properties.getProperty(SERVER_DB_NAME.getKey()); if(dbName == null || dbName.isEmpty()) { throw new RuntimeException("Server DB Name is not configured!"); } return JDBC_LOCAL_URL + dbName; }
Configuration { public String getLocalDatabaseUrl() { String dbName = properties.getProperty(SERVER_DB_NAME.getKey()); if(dbName == null || dbName.isEmpty()) { throw new RuntimeException("Server DB Name is not configured!"); } return JDBC_LOCAL_URL + dbName; } }
Configuration { public String getLocalDatabaseUrl() { String dbName = properties.getProperty(SERVER_DB_NAME.getKey()); if(dbName == null || dbName.isEmpty()) { throw new RuntimeException("Server DB Name is not configured!"); } return JDBC_LOCAL_URL + dbName; } Configuration();  Configuration(Properties properties); }
Configuration { public String getLocalDatabaseUrl() { String dbName = properties.getProperty(SERVER_DB_NAME.getKey()); if(dbName == null || dbName.isEmpty()) { throw new RuntimeException("Server DB Name is not configured!"); } return JDBC_LOCAL_URL + dbName; } Configuration();  Configuration(Properties properties); String getProperty(String key); Properties getProperties(); String getProperty(ConfigurationProperty<T> configurationProperty); void setProperty(ConfigurationProperty<String> configurationProperty, String value); Properties getLog4jProperties(); void writeToAmbariUpgradeConfigUpdatesFile(Multimap<AbstractUpgradeCatalog.ConfigUpdateType, Entry<String, String>> propertiesToLog,
                                                     String configType, String serviceName, String writeToAmbariUpgradeConfigUpdatesFile); Map<String, String> getDatabaseConnectorNames(); Map<String, String> getPreviousDatabaseConnectorNames(); JsonObject getHostChangesJson(String hostChangesFile); File getViewsDir(); boolean isViewValidationEnabled(); boolean isViewRemoveUndeployedEnabled(); int getJavaVersion(); File getBootStrapDir(); String getBootStrapScript(); String getBootSetupAgentScript(); String getBootSetupAgentPassword(); File getRecommendationsDir(); String getRecommendationsArtifactsLifetime(); int getRecommendationsArtifactsRolloverMax(); String areHostsSysPrepped(); CommandExecutionType getStageExecutionType(); String getStackAdvisorScript(); List<String> getRollingUpgradeSkipPackagesPrefixes(); boolean isUpgradePrecheckBypass(); int getStackUpgradeAutoRetryTimeoutMins(); int getStackUpgradeAutoRetryCheckIntervalSecs(); List<String> getStackUpgradeAutoRetryCustomCommandNamesToIgnore(); List<String> getStackUpgradeAutoRetryCommandDetailsToIgnore(); Map<String, String> getConfigsMap(); Map<String, String> getAgentConfigsMap(); boolean csrfProtectionEnabled(); ClientSecurityType getClientSecurityType(); void setClientSecurityType(ClientSecurityType type); String getWebAppDir(); String getHostsMapFile(); String getMetadataPath(); String getCommonServicesPath(); String getExtensionsPath(); String getMpacksStagingPath(); String getServerVersionFilePath(); String getServerVersion(); String getDefaultApiAuthenticatedUser(); int getClientSSLApiPort(); boolean getApiSSLAuthentication(); boolean getAgentSSLAuthentication(); String getStrictTransportSecurityHTTPResponseHeader(); String getXFrameOptionsHTTPResponseHeader(); String getXXSSProtectionHTTPResponseHeader(); String getXContentTypeHTTPResponseHeader(); String getCacheControlHTTPResponseHeader(); String getPragmaHTTPResponseHeader(); String getCharsetHTTPResponseHeader(); String getViewsStrictTransportSecurityHTTPResponseHeader(); String getViewsXFrameOptionsHTTPResponseHeader(); String getViewsXXSSProtectionHTTPResponseHeader(); String getViewsXContentTypeHTTPResponseHeader(); String getViewsCacheControlHTTPResponseHeader(); String getViewsPragmaHTTPResponseHeader(); String getViewsCharsetHTTPResponseHeader(); boolean validateAgentHostnames(); boolean isTwoWaySsl(); boolean isApiGzipped(); boolean isAgentApiGzipped(); String getApiGzipMinSize(); PersistenceType getPersistenceType(); String getDatabaseDriver(); String getDatabaseUrl(); String getLocalDatabaseUrl(); String getDatabaseUser(); String getDatabasePassword(); String getRcaDatabaseDriver(); String getRcaDatabaseUrl(); String getRcaDatabaseUser(); String getRcaDatabasePassword(); LdapServerProperties getLdapServerProperties(); boolean isLdapConfigured(); String getServerOsType(); String getServerOsFamily(); String getMasterHostname(String defaultValue); int getClientApiPort(); String getOjdbcJarName(); String getJavaHome(); String getJDKName(); String getJCEName(); String getAmbariBlacklistFile(); String getServerDBName(); String getMySQLJarName(); JPATableGenerationStrategy getJPATableGenerationStrategy(); int getConnectionMaxIdleTime(); String getAnonymousAuditName(); boolean isMasterKeyPersisted(); File getServerKeyStoreDirectory(); File getMasterKeyLocation(); File getMasterKeyStoreLocation(); long getTemporaryKeyStoreRetentionMinutes(); boolean isActivelyPurgeTemporaryKeyStore(); String getSrvrDisabledCiphers(); String getSrvrDisabledProtocols(); int getOneWayAuthPort(); int getTwoWayAuthPort(); Properties getDatabaseCustomProperties(); Properties getPersistenceCustomProperties(); int getHttpRequestHeaderSize(); int getHttpResponseHeaderSize(); Set<String> getPropertiesToBlackList(); Map<String, String> getAmbariProperties(); long getExecutionCommandsCacheSize(); boolean getHostRoleCommandStatusSummaryCacheEnabled(); long getHostRoleCommandStatusSummaryCacheSize(); long getHostRoleCommandStatusSummaryCacheExpiryDuration(); boolean isStaleConfigCacheEnabled(); Integer staleConfigCacheExpiration(); String[] getRepoValidationSuffixes(String osType); String isExecutionSchedulerClusterd(); String getExecutionSchedulerThreads(); Integer getRequestReadTimeout(); Integer getRequestConnectTimeout(); Integer getViewAmbariRequestReadTimeout(); Integer getViewAmbariRequestConnectTimeout(); String getExecutionSchedulerConnections(); Long getExecutionSchedulerMisfireToleration(); Integer getExecutionSchedulerStartDelay(); Long getExecutionSchedulerWait(); Integer getExternalScriptTimeout(); Integer getExternalScriptThreadPoolSize(); boolean getParallelStageExecution(); String getCustomActionDefinitionPath(); int getAgentPackageParallelCommandsLimit(); String getDefaultAgentTaskTimeout(boolean isPackageInstallationTask); Long getAgentServiceCheckTaskTimeout(); Integer getDefaultServerTaskTimeout(); String getResourceDirPath(); String getSharedResourcesDirPath(); String getServerJDBCPostgresSchemaName(); int getClientThreadPoolSize(); int getAgentThreadPoolSize(); int getViewExtractionThreadPoolMaxSize(); int getViewExtractionThreadPoolCoreSize(); int getViewRequestThreadPoolMaxSize(); Boolean extractViewsAfterClusterConfig(); int getViewRequestThreadPoolTimeout(); int getPropertyProvidersThreadPoolCoreSize(); int getPropertyProvidersThreadPoolMaxSize(); int getPropertyProvidersWorkerQueueSize(); long getPropertyProvidersCompletionServiceTimeout(); long getViewExtractionThreadPoolTimeout(); int getHttpSessionInactiveTimeout(); String getAlertTemplateFile(); int getAlertEventPublisherCorePoolSize(); int getAlertEventPublisherMaxPoolSize(); int getAlertEventPublisherWorkerQueueSize(); String getNodeRecoveryType(); String getNodeRecoveryMaxCount(); String getNodeRecoveryLifetimeMaxCount(); String getNodeRecoveryWindowInMin(); String getRecoveryDisabledComponents(); String getRecoveryEnabledComponents(); String getNodeRecoveryRetryGap(); String getDefaultKdcPort(); int getKdcConnectionCheckTimeout(); File getKerberosKeytabCacheDir(); boolean isKerberosJaasConfigurationCheckEnabled(); LdapUsernameCollisionHandlingBehavior getLdapSyncCollisionHandlingBehavior(); DatabaseType getDatabaseType(); String getDatabaseSchema(); ConnectionPoolType getConnectionPoolType(); int getConnectionPoolMinimumSize(); int getConnectionPoolMaximumSize(); int getConnectionPoolMaximumAge(); int getConnectionPoolMaximumIdle(); int getConnectionPoolMaximumExcessIdle(); int getConnectionPoolAcquisitionSize(); int getConnectionPoolAcquisitionRetryAttempts(); int getConnectionPoolAcquisitionRetryDelay(); int getConnectionPoolIdleTestInternval(); void setProperty(String key, String value); int getMetricCacheTTLSeconds(); int getMetricCacheIdleSeconds(); int getMetricsRequestReadTimeoutMillis(); int getMetricsRequestIntervalReadTimeoutMillis(); int getMetricsRequestConnectTimeoutMillis(); boolean isMetricsCacheDisabled(); Long getMetricRequestBufferTimeCatchupInterval(); String getMetricsCacheManagerHeapPercent(); boolean useMetricsCacheCustomSizingEngine(); JwtAuthenticationProperties getJwtProperties(); AmbariKerberosAuthenticationProperties getKerberosAuthenticationProperties(); String getServerTempDir(); @Experimental(feature = ExperimentalFeature.PARALLEL_PROCESSING) boolean isExperimentalConcurrentStageProcessingEnabled(); @Experimental(feature = ExperimentalFeature.ALERT_CACHING) boolean isAlertCacheEnabled(); @Experimental(feature = ExperimentalFeature.ALERT_CACHING) int getAlertCacheFlushInterval(); @Experimental(feature = ExperimentalFeature.ALERT_CACHING) int getAlertCacheSize(); String getAmbariDisplayUrl(); int getOperationsRetryAttempts(); int getVersionDefinitionConnectTimeout(); int getVersionDefinitionReadTimeout(); String getAgentStackRetryOnInstallCount(); String isAgentStackRetryOnInstallEnabled(); boolean isAuditLogEnabled(); boolean isServerLocksProfilingEnabled(); int getAuditLoggerCapacity(); Integer getSNMPUdpBindPort(); Integer getAmbariSNMPUdpBindPort(); boolean isLdapAlternateUserSearchEnabled(); String getProxyHostAndPorts(); int getMetricsServiceCacheTimeout(); int getMetricsServiceThreadPriority(); int getMetricsServiceThreadPoolCoreSize(); int getMetricsServiceThreadPoolMaxSize(); int getMetricsServiceWorkerQueueSize(); int getMetricsServiceRequestTTL(); boolean isMetricsServiceRequestTTLCacheEnabled(); int getTaskIdListLimit(); boolean isActiveInstance(); boolean isUserHookEnabled(); int getParallelTopologyTaskCreationThreadPoolSize(); boolean isParallelTopologyTaskCreationEnabled(); int getLogSearchPortalConnectTimeout(); int getLogSearchPortalReadTimeout(); int getLogSearchMetadataCacheExpireTimeout(); static void main(String[] args); int getKerberosOperationRetries(); int getKerberosOperationRetryTimeout(); Integer getAgentApiAcceptors(); Integer getClientApiAcceptors(); String getPamConfigurationFile(); String getAutoGroupCreation(); }
Configuration { public String getLocalDatabaseUrl() { String dbName = properties.getProperty(SERVER_DB_NAME.getKey()); if(dbName == null || dbName.isEmpty()) { throw new RuntimeException("Server DB Name is not configured!"); } return JDBC_LOCAL_URL + dbName; } Configuration();  Configuration(Properties properties); String getProperty(String key); Properties getProperties(); String getProperty(ConfigurationProperty<T> configurationProperty); void setProperty(ConfigurationProperty<String> configurationProperty, String value); Properties getLog4jProperties(); void writeToAmbariUpgradeConfigUpdatesFile(Multimap<AbstractUpgradeCatalog.ConfigUpdateType, Entry<String, String>> propertiesToLog,
                                                     String configType, String serviceName, String writeToAmbariUpgradeConfigUpdatesFile); Map<String, String> getDatabaseConnectorNames(); Map<String, String> getPreviousDatabaseConnectorNames(); JsonObject getHostChangesJson(String hostChangesFile); File getViewsDir(); boolean isViewValidationEnabled(); boolean isViewRemoveUndeployedEnabled(); int getJavaVersion(); File getBootStrapDir(); String getBootStrapScript(); String getBootSetupAgentScript(); String getBootSetupAgentPassword(); File getRecommendationsDir(); String getRecommendationsArtifactsLifetime(); int getRecommendationsArtifactsRolloverMax(); String areHostsSysPrepped(); CommandExecutionType getStageExecutionType(); String getStackAdvisorScript(); List<String> getRollingUpgradeSkipPackagesPrefixes(); boolean isUpgradePrecheckBypass(); int getStackUpgradeAutoRetryTimeoutMins(); int getStackUpgradeAutoRetryCheckIntervalSecs(); List<String> getStackUpgradeAutoRetryCustomCommandNamesToIgnore(); List<String> getStackUpgradeAutoRetryCommandDetailsToIgnore(); Map<String, String> getConfigsMap(); Map<String, String> getAgentConfigsMap(); boolean csrfProtectionEnabled(); ClientSecurityType getClientSecurityType(); void setClientSecurityType(ClientSecurityType type); String getWebAppDir(); String getHostsMapFile(); String getMetadataPath(); String getCommonServicesPath(); String getExtensionsPath(); String getMpacksStagingPath(); String getServerVersionFilePath(); String getServerVersion(); String getDefaultApiAuthenticatedUser(); int getClientSSLApiPort(); boolean getApiSSLAuthentication(); boolean getAgentSSLAuthentication(); String getStrictTransportSecurityHTTPResponseHeader(); String getXFrameOptionsHTTPResponseHeader(); String getXXSSProtectionHTTPResponseHeader(); String getXContentTypeHTTPResponseHeader(); String getCacheControlHTTPResponseHeader(); String getPragmaHTTPResponseHeader(); String getCharsetHTTPResponseHeader(); String getViewsStrictTransportSecurityHTTPResponseHeader(); String getViewsXFrameOptionsHTTPResponseHeader(); String getViewsXXSSProtectionHTTPResponseHeader(); String getViewsXContentTypeHTTPResponseHeader(); String getViewsCacheControlHTTPResponseHeader(); String getViewsPragmaHTTPResponseHeader(); String getViewsCharsetHTTPResponseHeader(); boolean validateAgentHostnames(); boolean isTwoWaySsl(); boolean isApiGzipped(); boolean isAgentApiGzipped(); String getApiGzipMinSize(); PersistenceType getPersistenceType(); String getDatabaseDriver(); String getDatabaseUrl(); String getLocalDatabaseUrl(); String getDatabaseUser(); String getDatabasePassword(); String getRcaDatabaseDriver(); String getRcaDatabaseUrl(); String getRcaDatabaseUser(); String getRcaDatabasePassword(); LdapServerProperties getLdapServerProperties(); boolean isLdapConfigured(); String getServerOsType(); String getServerOsFamily(); String getMasterHostname(String defaultValue); int getClientApiPort(); String getOjdbcJarName(); String getJavaHome(); String getJDKName(); String getJCEName(); String getAmbariBlacklistFile(); String getServerDBName(); String getMySQLJarName(); JPATableGenerationStrategy getJPATableGenerationStrategy(); int getConnectionMaxIdleTime(); String getAnonymousAuditName(); boolean isMasterKeyPersisted(); File getServerKeyStoreDirectory(); File getMasterKeyLocation(); File getMasterKeyStoreLocation(); long getTemporaryKeyStoreRetentionMinutes(); boolean isActivelyPurgeTemporaryKeyStore(); String getSrvrDisabledCiphers(); String getSrvrDisabledProtocols(); int getOneWayAuthPort(); int getTwoWayAuthPort(); Properties getDatabaseCustomProperties(); Properties getPersistenceCustomProperties(); int getHttpRequestHeaderSize(); int getHttpResponseHeaderSize(); Set<String> getPropertiesToBlackList(); Map<String, String> getAmbariProperties(); long getExecutionCommandsCacheSize(); boolean getHostRoleCommandStatusSummaryCacheEnabled(); long getHostRoleCommandStatusSummaryCacheSize(); long getHostRoleCommandStatusSummaryCacheExpiryDuration(); boolean isStaleConfigCacheEnabled(); Integer staleConfigCacheExpiration(); String[] getRepoValidationSuffixes(String osType); String isExecutionSchedulerClusterd(); String getExecutionSchedulerThreads(); Integer getRequestReadTimeout(); Integer getRequestConnectTimeout(); Integer getViewAmbariRequestReadTimeout(); Integer getViewAmbariRequestConnectTimeout(); String getExecutionSchedulerConnections(); Long getExecutionSchedulerMisfireToleration(); Integer getExecutionSchedulerStartDelay(); Long getExecutionSchedulerWait(); Integer getExternalScriptTimeout(); Integer getExternalScriptThreadPoolSize(); boolean getParallelStageExecution(); String getCustomActionDefinitionPath(); int getAgentPackageParallelCommandsLimit(); String getDefaultAgentTaskTimeout(boolean isPackageInstallationTask); Long getAgentServiceCheckTaskTimeout(); Integer getDefaultServerTaskTimeout(); String getResourceDirPath(); String getSharedResourcesDirPath(); String getServerJDBCPostgresSchemaName(); int getClientThreadPoolSize(); int getAgentThreadPoolSize(); int getViewExtractionThreadPoolMaxSize(); int getViewExtractionThreadPoolCoreSize(); int getViewRequestThreadPoolMaxSize(); Boolean extractViewsAfterClusterConfig(); int getViewRequestThreadPoolTimeout(); int getPropertyProvidersThreadPoolCoreSize(); int getPropertyProvidersThreadPoolMaxSize(); int getPropertyProvidersWorkerQueueSize(); long getPropertyProvidersCompletionServiceTimeout(); long getViewExtractionThreadPoolTimeout(); int getHttpSessionInactiveTimeout(); String getAlertTemplateFile(); int getAlertEventPublisherCorePoolSize(); int getAlertEventPublisherMaxPoolSize(); int getAlertEventPublisherWorkerQueueSize(); String getNodeRecoveryType(); String getNodeRecoveryMaxCount(); String getNodeRecoveryLifetimeMaxCount(); String getNodeRecoveryWindowInMin(); String getRecoveryDisabledComponents(); String getRecoveryEnabledComponents(); String getNodeRecoveryRetryGap(); String getDefaultKdcPort(); int getKdcConnectionCheckTimeout(); File getKerberosKeytabCacheDir(); boolean isKerberosJaasConfigurationCheckEnabled(); LdapUsernameCollisionHandlingBehavior getLdapSyncCollisionHandlingBehavior(); DatabaseType getDatabaseType(); String getDatabaseSchema(); ConnectionPoolType getConnectionPoolType(); int getConnectionPoolMinimumSize(); int getConnectionPoolMaximumSize(); int getConnectionPoolMaximumAge(); int getConnectionPoolMaximumIdle(); int getConnectionPoolMaximumExcessIdle(); int getConnectionPoolAcquisitionSize(); int getConnectionPoolAcquisitionRetryAttempts(); int getConnectionPoolAcquisitionRetryDelay(); int getConnectionPoolIdleTestInternval(); void setProperty(String key, String value); int getMetricCacheTTLSeconds(); int getMetricCacheIdleSeconds(); int getMetricsRequestReadTimeoutMillis(); int getMetricsRequestIntervalReadTimeoutMillis(); int getMetricsRequestConnectTimeoutMillis(); boolean isMetricsCacheDisabled(); Long getMetricRequestBufferTimeCatchupInterval(); String getMetricsCacheManagerHeapPercent(); boolean useMetricsCacheCustomSizingEngine(); JwtAuthenticationProperties getJwtProperties(); AmbariKerberosAuthenticationProperties getKerberosAuthenticationProperties(); String getServerTempDir(); @Experimental(feature = ExperimentalFeature.PARALLEL_PROCESSING) boolean isExperimentalConcurrentStageProcessingEnabled(); @Experimental(feature = ExperimentalFeature.ALERT_CACHING) boolean isAlertCacheEnabled(); @Experimental(feature = ExperimentalFeature.ALERT_CACHING) int getAlertCacheFlushInterval(); @Experimental(feature = ExperimentalFeature.ALERT_CACHING) int getAlertCacheSize(); String getAmbariDisplayUrl(); int getOperationsRetryAttempts(); int getVersionDefinitionConnectTimeout(); int getVersionDefinitionReadTimeout(); String getAgentStackRetryOnInstallCount(); String isAgentStackRetryOnInstallEnabled(); boolean isAuditLogEnabled(); boolean isServerLocksProfilingEnabled(); int getAuditLoggerCapacity(); Integer getSNMPUdpBindPort(); Integer getAmbariSNMPUdpBindPort(); boolean isLdapAlternateUserSearchEnabled(); String getProxyHostAndPorts(); int getMetricsServiceCacheTimeout(); int getMetricsServiceThreadPriority(); int getMetricsServiceThreadPoolCoreSize(); int getMetricsServiceThreadPoolMaxSize(); int getMetricsServiceWorkerQueueSize(); int getMetricsServiceRequestTTL(); boolean isMetricsServiceRequestTTLCacheEnabled(); int getTaskIdListLimit(); boolean isActiveInstance(); boolean isUserHookEnabled(); int getParallelTopologyTaskCreationThreadPoolSize(); boolean isParallelTopologyTaskCreationEnabled(); int getLogSearchPortalConnectTimeout(); int getLogSearchPortalReadTimeout(); int getLogSearchMetadataCacheExpireTimeout(); static void main(String[] args); int getKerberosOperationRetries(); int getKerberosOperationRetryTimeout(); Integer getAgentApiAcceptors(); Integer getClientApiAcceptors(); String getPamConfigurationFile(); String getAutoGroupCreation(); static final String PREFIX_DIR; static final float JDK_MIN_VERSION; static final String SERVER_JDBC_PROPERTIES_PREFIX; static final String SERVER_PERSISTENCE_PROPERTIES_PREFIX; static final String HOSTNAME_MACRO; static final String JDBC_UNIT_NAME; static final String JDBC_LOCAL_URL; static final String DEFAULT_DERBY_SCHEMA; static final String DEFAULT_H2_SCHEMA; static final String JDBC_IN_MEMORY_URL; static final String JDBC_IN_MEMORY_DRIVER; static final String JDBC_IN_MEMORY_USER; static final String JDBC_IN_MEMORY_PASSWORD; static final String JAVAX_SSL_TRUSTSTORE; static final String JAVAX_SSL_TRUSTSTORE_PASSWORD; static final String JAVAX_SSL_TRUSTSTORE_TYPE; static final String MAPREDUCE2_LOG4J_CONFIG_TAG; static final int PROCESSOR_BASED_THREADPOOL_CORE_SIZE_DEFAULT; static final int PROCESSOR_BASED_THREADPOOL_MAX_SIZE_DEFAULT; static final String MASTER_KEY_ENV_PROP; static final String MASTER_KEY_FILENAME_DEFAULT; static final String MASTER_KEYSTORE_FILENAME_DEFAULT; static final String SERVER_VERSION_KEY; static final String AMBARI_LOG_FILE; @Markdown(description = "The directory on the Ambari Server file system used for storing Ambari Agent bootstrap information such as request responses.")
  static final ConfigurationProperty<String> BOOTSTRAP_DIRECTORY; @Markdown(description = "The directory on the Ambari Server file system used for expanding Views and storing webapp work.")
  static final ConfigurationProperty<String> VIEWS_DIRECTORY; @Markdown(description = "Determines whether to validate a View's configuration XML file against an XSD.")
  static final ConfigurationProperty<String> VIEWS_VALIDATE; @Markdown(description = "Determines whether remove undeployed views from the Ambari database.")
  static final ConfigurationProperty<String> VIEWS_REMOVE_UNDEPLOYED; @Markdown(description = "The Ambari Server webapp root directory.")
  static final ConfigurationProperty<String> WEBAPP_DIRECTORY; @Markdown(description = "The location and name of the Python script used to bootstrap new Ambari Agent hosts.")
  static final ConfigurationProperty<String> BOOTSTRAP_SCRIPT; @Markdown(description = "The location and name of the Python script executed on the Ambari Agent host during the bootstrap process.")
  static final ConfigurationProperty<String> BOOTSTRAP_SETUP_AGENT_SCRIPT; @Markdown(description = "The password to set on the `AMBARI_PASSPHRASE` environment variable before invoking the bootstrap script.")
  static final ConfigurationProperty<String> BOOTSTRAP_SETUP_AGENT_PASSWORD; @Markdown(description = "The host name of the Ambari Server which will be used by the Ambari Agents for communication.")
  static final ConfigurationProperty<String> BOOTSTRAP_MASTER_HOSTNAME; @Markdown(
      description = "The amount of time that Recommendation API data is kept on the Ambari Server file system. This is specified using a `hdwmy` syntax for pairing the value with a time unit (hours, days, weeks, months, years)",
      examples = { "8h", "2w", "1m" } )
  static final ConfigurationProperty<String> RECOMMENDATIONS_ARTIFACTS_LIFETIME; @Markdown(
            description = "Maximum number of recommendations artifacts at a given time",
            examples = {"50","10","100"} )
    static final ConfigurationProperty<Integer> RECOMMENDATIONS_ARTIFACTS_ROLLOVER_MAX; @Markdown(description = "The directory on the Ambari Server file system used for storing Recommendation API artifacts.")
  static final ConfigurationProperty<String> RECOMMENDATIONS_DIR; @Markdown(description = "The location and name of the Python stack advisor script executed when configuring services.")
  static final ConfigurationProperty<String> STACK_ADVISOR_SCRIPT; @Markdown(description = "The name of the shell script used to wrap all invocations of Python by Ambari. ")
  static final ConfigurationProperty<String> AMBARI_PYTHON_WRAP; @Markdown(description = "The username of the default user assumed to be executing API calls. When set, authentication is not required in order to login to Ambari or use the REST APIs.  ")
  static final ConfigurationProperty<String> API_AUTHENTICATED_USER; @Markdown(description = "Determines whether SSL is used in for secure connections to Ambari. When enabled, ambari-server setup-https must be run in order to properly configure keystores.")
  static final ConfigurationProperty<String> API_USE_SSL; @Markdown(description = "Determines whether Cross-Site Request Forgery attacks are prevented by looking for the `X-Requested-By` header.")
  static final ConfigurationProperty<String> API_CSRF_PREVENTION; @Markdown(description = "Determines whether data sent to and from the Ambari service should be compressed.")
  static final ConfigurationProperty<String> API_GZIP_COMPRESSION_ENABLED; @Markdown(description = "Used in conjunction with `api.gzip.compression.enabled`, determines the mininum size that an HTTP request must be before it should be compressed. This is measured in bytes.")
  static final ConfigurationProperty<String> API_GZIP_MIN_COMPRESSION_SIZE; @Markdown(description = "Determiens whether communication with the Ambari Agents should have the JSON payloads compressed with GZIP.")
  static final ConfigurationProperty<String> AGENT_API_GZIP_COMPRESSION_ENABLED; @Markdown(description = "Determines whether SSL is used to communicate between Ambari Server and Ambari Agents.")
  static final ConfigurationProperty<String> AGENT_USE_SSL; @Markdown(description = "Determines whether the Ambari Agent host names should be validated against a regular expression to ensure that they are well-formed.<br><br>WARNING: By setting this value to false, host names will not be validated, allowing a possible security vulnerability as described in CVE-2014-3582. See https://cwiki.apache.org/confluence/display/AMBARI/Ambari+Vulnerabilities for more information.")
  static final ConfigurationProperty<String> SRVR_AGENT_HOSTNAME_VALIDATE; @Markdown(description = "Determines whether two-way SSL should be used between Ambari Server and Ambari Agents so that the agents must also use SSL.")
  static final ConfigurationProperty<String> SRVR_TWO_WAY_SSL; @Markdown(description = "The port that the Ambari Server will use to communicate with the agents over SSL.")
  static final ConfigurationProperty<String> SRVR_TWO_WAY_SSL_PORT; @Markdown(description = "The port that the Ambari Agents will use to communicate with the Ambari Server over SSL.")
  static final ConfigurationProperty<String> SRVR_ONE_WAY_SSL_PORT; @Markdown(description = "The directory on the Ambari Server where keystores are kept.")
  static final ConfigurationProperty<String> SRVR_KSTR_DIR; @Markdown(description = "The name of the file located in the `security.server.keys_dir` directory where certificates will be generated when Ambari uses the `openssl ca` command.")
  static final ConfigurationProperty<String> SRVR_CRT_NAME; @Markdown(description = "The name of the certificate request file used when generating certificates.")
  static final ConfigurationProperty<String> SRVR_CSR_NAME; @Markdown(description = "The name of the private key used to sign requests.")
  static final ConfigurationProperty<String> SRVR_KEY_NAME; @Markdown(description = "The name of the keystore file, located in `security.server.keys_dir`")
  static final ConfigurationProperty<String> KSTR_NAME; @Markdown(description = "The type of the keystore file specified in `security.server.key_name`. Self-signed certificates can be `PKCS12` while CA signed certificates are `JKS`")
  static final ConfigurationProperty<String> KSTR_TYPE; @Markdown(description = "The name of the truststore file ambari uses to store trusted certificates. Located in `security.server.keys_dir`")
  static final ConfigurationProperty<String> TSTR_NAME; @Markdown(description = "The type of the truststore file specified in `security.server.truststore_name`. Self-signed certificates can be `PKCS12` while CA signed certificates are `JKS`")
  static final ConfigurationProperty<String> TSTR_TYPE; @Markdown(description = "The filename which contains the password for the keystores, truststores, and certificates.")
  static final ConfigurationProperty<String> SRVR_CRT_PASS_FILE; @Markdown(description = "The password for the keystores, truststores, and certificates. If not specified, then `security.server.crt_pass_file` should be used")
  static final ConfigurationProperty<String> SRVR_CRT_PASS; @Markdown(description = "The length of the randomly generated password for keystores and truststores. ")
  static final ConfigurationProperty<String> SRVR_CRT_PASS_LEN; @Markdown(description = "An environment variable which can be used to supply the Ambari Server password when bootstrapping new Ambari Agents.")
  static final ConfigurationProperty<String> PASSPHRASE_ENV; @Markdown(description = "The password to the Ambari Server to supply to new Ambari Agent hosts being bootstrapped.")
  static final ConfigurationProperty<String> PASSPHRASE; @Markdown(
      description = "A list of cipher suites which are not strong enough to use and will be excluded when creating SSL connections.",
      examples = {"SSL_RSA_WITH_RC4_128_MD5\\|SSL_RSA_WITH_RC4_12‌​8_MD5"})
  static final ConfigurationProperty<String> SRVR_DISABLED_CIPHERS; @Markdown(
      description = "The list of protocols which should not be used when creating SSL connections.",
      examples = { "TLSv1.1\\|TLSv1.2" })
  static final ConfigurationProperty<String> SRVR_DISABLED_PROTOCOLS; @Markdown(description = "The location on the Ambari Server where all resources exist, including common services, stacks, and scripts.")
  static final ConfigurationProperty<String> RESOURCES_DIR; @Markdown(
      description = "The location on the Ambari Server where the stack resources exist.",
      examples = { "/var/lib/ambari-server/resources/stacks" })
  static final ConfigurationProperty<String> METADATA_DIR_PATH; @Markdown(
      description = "The location on the Ambari Server where common service resources exist. Stack services share the common service files.",
      examples = { "/var/lib/ambari-server/resources/common-services" })
  static final ConfigurationProperty<String> COMMON_SERVICES_DIR_PATH; @Markdown(
      description = "Determines how to handle username collision while updating from LDAP.",
      examples = { "skip", "convert" }
  )
  static final ConfigurationProperty<String> LDAP_SYNC_USERNAME_COLLISIONS_BEHAVIOR; @Markdown(
      description = "The location on the Ambari Server where stack extensions exist.",
      examples = { "/var/lib/ambari-server/resources/extensions" })
  static final ConfigurationProperty<String> EXTENSIONS_DIR_PATH; @Markdown(
      description = "The Ambari Management Pack staging directory on the Ambari Server.",
      examples = { "/var/lib/ambari-server/resources/mpacks" })
  static final ConfigurationProperty<String> MPACKS_STAGING_DIR_PATH; @Markdown(
      description = "The full path to the file which contains the Ambari Server version. This is used to ensure that there is not a version mismatch between Ambari Agents and Ambari Server.",
      examples = { "/var/lib/ambari-server/resources/version" })
  static final ConfigurationProperty<String> SERVER_VERSION_FILE; @Markdown(
      description = "The location of the JDK on the Ambari Agent hosts.",
      examples = { "/usr/jdk64/jdk1.7.0_45" })
  static final ConfigurationProperty<String> JAVA_HOME; @Markdown(
      description = "The name of the JDK installation binary.",
      examples = { "jdk-7u45-linux-x64.tar.gz" })
  static final ConfigurationProperty<String> JDK_NAME; @Markdown(
      description = "The name of the JCE policy ZIP file. ",
      examples = {"UnlimitedJCEPolicyJDK7.zip"})
  static final ConfigurationProperty<String> JCE_NAME; @Markdown(
      description = "The auto group creation by Ambari")
  static final ConfigurationProperty<Boolean> AUTO_GROUP_CREATION; @Markdown(description = "The PAM configuration file.")
  static final ConfigurationProperty<String> PAM_CONFIGURATION_FILE; @Markdown(
      examples = { "local", "ldap" },
      description = "The type of authentication mechanism used by Ambari.")
  static final ConfigurationProperty<String> CLIENT_SECURITY; @Markdown(description = "The port that client connections will use with the REST API. The Ambari Web client runs on this port.")
  static final ConfigurationProperty<String> CLIENT_API_PORT; @Markdown(description = "The port that client connections will use with the REST API when using SSL. The Ambari Web client runs on this port if SSL is enabled.")
  static final ConfigurationProperty<String> CLIENT_API_SSL_PORT; @Markdown(description = "The location on the Ambari server where the REST API keystore and password files are stored if using SSL.")
  static final ConfigurationProperty<String> CLIENT_API_SSL_KSTR_DIR_NAME; @Markdown(description = "The name of the keystore used when the Ambari Server REST API is protected by SSL.")
  static final ConfigurationProperty<String> CLIENT_API_SSL_KSTR_NAME; @Markdown(description = "The type of the keystore file specified in `client.api.ssl.keystore_name`. Self-signed certificates can be `PKCS12` while CA signed certificates are `JKS`")
  static final ConfigurationProperty<String> CLIENT_API_SSL_KSTR_TYPE; @Markdown(description = "The name of the truststore used when the Ambari Server REST API is protected by SSL.")
  static final ConfigurationProperty<String> CLIENT_API_SSL_TSTR_NAME; @Markdown(description = "The type of the keystore file specified in `client.api.ssl.truststore_name`. Self-signed certificates can be `PKCS12` while CA signed certificates are `JKS`")
  static final ConfigurationProperty<String> CLIENT_API_SSL_TSTR_TYPE; @Markdown(description = "The filename which contains the password for the keystores, truststores, and certificates for the REST API when it's protected by SSL.")
  static final ConfigurationProperty<String> CLIENT_API_SSL_CRT_PASS_FILE_NAME; @Markdown(description = "The password for the keystores, truststores, and certificates for the REST API when it's protected by SSL. If not specified, then `client.api.ssl.cert_pass_file` should be used.")
  static final ConfigurationProperty<String> CLIENT_API_SSL_CRT_PASS; @Markdown(description = "Determines whether the agents will automatically attempt to download updates to stack resources from the Ambari Server.")
  static final ConfigurationProperty<String> ENABLE_AUTO_AGENT_CACHE_UPDATE; @Markdown(description = "Determines whether the Ambari Agents will use the `df` or `df -l` command when checking disk mounts for capacity issues. Auto-mounted remote directories can cause long delays.")
  static final ConfigurationProperty<String> CHECK_REMOTE_MOUNTS; @Markdown(description = "The timeout, used by the `timeout` command in linux, when checking mounts for free capacity.")
  static final ConfigurationProperty<String> CHECK_MOUNTS_TIMEOUT; @Markdown(description = "The path of the file which lists the properties that should be masked from the api that returns ambari.properties")
  static final ConfigurationProperty<String> PROPERTY_MASK_FILE; @Markdown(description = "The name of the database.")
  static final ConfigurationProperty<String> SERVER_DB_NAME; @Markdown(description = "The amount of time, in milliseconds, that a view will wait before terminating an HTTP(S) read request.")
  static final ConfigurationProperty<String> REQUEST_READ_TIMEOUT; @Markdown(description = "The amount of time, in milliseconds, that a view will wait when trying to connect on HTTP(S) operations to a remote resource.")
  static final ConfigurationProperty<String> REQUEST_CONNECT_TIMEOUT; @Markdown(description = "The amount of time, in milliseconds, that a view will wait before terminating an HTTP(S) read request to the Ambari REST API.")
  static final ConfigurationProperty<String> AMBARI_REQUEST_READ_TIMEOUT; @Markdown(description = "The amount of time, in milliseconds, that a view will wait when trying to connect on HTTP(S) operations to the Ambari REST API.")
  static final ConfigurationProperty<String> AMBARI_REQUEST_CONNECT_TIMEOUT; @Markdown(description = "The schema within a named PostgreSQL database where Ambari's tables, users, and constraints are stored. ")
  static final ConfigurationProperty<String> SERVER_JDBC_POSTGRES_SCHEMA_NAME; @Markdown(description = "The name of the Oracle JDBC JAR connector.")
  static final ConfigurationProperty<String> OJDBC_JAR_NAME; @Markdown(description = "The name of the MySQL JDBC JAR connector.")
  static final ConfigurationProperty<String> MYSQL_JAR_NAME; @Markdown(description = "An internal property used for unit testing and development purposes.")
  static final ConfigurationProperty<String> IS_LDAP_CONFIGURED; @Markdown(description = "Determines whether to use LDAP over SSL (LDAPS).")
  static final ConfigurationProperty<String> LDAP_USE_SSL; @Markdown(description = "The LDAP URL used for connecting to an LDAP server when authenticating users. This should include both the host name and port.")
  static final ConfigurationProperty<String> LDAP_PRIMARY_URL; @Markdown(description = "A second LDAP URL to use as a backup when authenticating users. This should include both the host name and port.")
  static final ConfigurationProperty<String> LDAP_SECONDARY_URL; @Markdown(description = "The base DN to use when filtering LDAP users and groups. This is only used when LDAP authentication is enabled.")
  static final ConfigurationProperty<String> LDAP_BASE_DN; @Markdown(description = "Determines whether LDAP requests can connect anonymously or if a managed user is required to connect.")
  static final ConfigurationProperty<String> LDAP_BIND_ANONYMOUSLY; @Markdown(description = "The DN of the manager account to use when binding to LDAP if anonymous binding is disabled.")
  static final ConfigurationProperty<String> LDAP_MANAGER_DN; @Markdown(description = "The password for the manager account used to bind to LDAP if anonymous binding is disabled.")
  static final ConfigurationProperty<String> LDAP_MANAGER_PASSWORD; @Markdown(description = "The attribute used for determining what the distinguished name property is.")
  static final ConfigurationProperty<String> LDAP_DN_ATTRIBUTE; @Markdown(description = "The attribute used for determining the user name, such as `uid`.")
  static final ConfigurationProperty<String> LDAP_USERNAME_ATTRIBUTE; @Markdown(description = "Declares whether to force the ldap user name to be lowercase or leave as-is." +
      " This is useful when local user names are expected to be lowercase but the LDAP user names are not.")
  static final ConfigurationProperty<String> LDAP_USERNAME_FORCE_LOWERCASE; @Markdown(description = "The filter used when searching for users in LDAP.")
  static final ConfigurationProperty<String> LDAP_USER_BASE; @Markdown(description = "The class to which user objects in LDAP belong.")
  static final ConfigurationProperty<String> LDAP_USER_OBJECT_CLASS; @Markdown(description = "The filter used when searching for groups in LDAP.")
  static final ConfigurationProperty<String> LDAP_GROUP_BASE; @Markdown(description = "The class to which group objects in LDAP belong.")
  static final ConfigurationProperty<String> LDAP_GROUP_OBJECT_CLASS; @Markdown(description = "The attribute used to determine the group name in LDAP.")
  static final ConfigurationProperty<String> LDAP_GROUP_NAMING_ATTR; @Markdown(description = "The LDAP attribute which identifies group membership.")
  static final ConfigurationProperty<String> LDAP_GROUP_MEMBERSHIP_ATTR; @Markdown(
      description = "A comma-separate list of groups which would give a user administrative access to Ambari when syncing from LDAP. This is only used when `authorization.ldap.groupSearchFilter` is blank.",
      examples = { "administrators", "Hadoop Admins,Hadoop Admins.*,DC Admins,.*Hadoop Operators" })
  static final ConfigurationProperty<String> LDAP_ADMIN_GROUP_MAPPING_RULES; @Markdown(
      description = "A filter used to lookup a user in LDAP based on the Ambari user name",
      examples = { "(&({usernameAttribute}={0})(objectClass={userObjectClass}))" })
  static final ConfigurationProperty<String> LDAP_USER_SEARCH_FILTER; @Markdown(description = "Determines whether a secondary (alternate) LDAP user search filer is used if the primary filter fails to find a user.")
  static final ConfigurationProperty<String> LDAP_ALT_USER_SEARCH_ENABLED; @Markdown(description = "An alternate LDAP user search filter which can be used if `authentication.ldap.alternateUserSearchEnabled` is enabled and the primary filter fails to find a user.")
  static final ConfigurationProperty<String> LDAP_ALT_USER_SEARCH_FILTER; @Markdown(description = "The DN to use when searching for LDAP groups.")
  static final ConfigurationProperty<String> LDAP_GROUP_SEARCH_FILTER; @Markdown(description = "Determines whether to follow LDAP referrals to other URLs when the LDAP controller doesn't have the requested object.")
  static final ConfigurationProperty<String> LDAP_REFERRAL; @Markdown(description = "Determines whether results from LDAP are paginated when requested.")
  static final ConfigurationProperty<String> LDAP_PAGINATION_ENABLED; @Markdown(
      description = "Regex pattern to use when replacing the user member attribute ID value with a placeholder. This is used in cases where a UID of an LDAP member is not a full CN or unique ID (e.g.: `member: <SID=123>;<GID=123>;cn=myCn,dc=org,dc=apache`)",
      examples = { "(?<sid>.*);(?<guid>.*);(?<member>.*)" })
  static final ConfigurationProperty<String> LDAP_SYNC_USER_MEMBER_REPLACE_PATTERN; @Markdown(
      description = "Regex pattern to use when replacing the group member attribute ID value with a placeholder. This is used in cases where a UID of an LDAP member is not a full CN or unique ID (e.g.: `member: <SID=123>;<GID=123>;cn=myCn,dc=org,dc=apache`)",
      examples = { "(?<sid>.*);(?<guid>.*);(?<member>.*)" })
  static final ConfigurationProperty<String> LDAP_SYCN_GROUP_MEMBER_REPLACE_PATTERN; @Markdown(
    description = "Filter to use for syncing user members of a group from LDAP (by default it is not used).",
    examples = {"(&(objectclass=posixaccount)(uid={member}))"})
  static final ConfigurationProperty<String> LDAP_SYNC_USER_MEMBER_FILTER; @Markdown(
    description = "Filter to use for syncing group members of a group from LDAP. (by default it is not used)",
    examples = {"(&(objectclass=posixgroup)(cn={member}))"})
  static final ConfigurationProperty<String> LDAP_SYNC_GROUP_MEMBER_FILTER; @Markdown(description = "Enable the profiling of internal locks.")
  static final ConfigurationProperty<Boolean> SERVER_LOCKS_PROFILING; @Markdown(description = "The size of the cache which is used to hold current operations in memory until they complete.")
  static final ConfigurationProperty<Long> SERVER_EC_CACHE_SIZE; @Markdown(description = "Determines whether an existing request's status is cached. This is enabled by default to prevent increases in database access when there are long running operations in progress.")
  static final ConfigurationProperty<Boolean> SERVER_HRC_STATUS_SUMMARY_CACHE_ENABLED; @Markdown(
      relatedTo = "server.hrcStatusSummary.cache.enabled",
      description = "The size of the cache which is used to hold a status of every operation in a request.")
  static final ConfigurationProperty<Long> SERVER_HRC_STATUS_SUMMARY_CACHE_SIZE; @Markdown(
      relatedTo = "server.hrcStatusSummary.cache.enabled",
      description = "The expiration time, in minutes, of the request status cache.")
  static final ConfigurationProperty<Long> SERVER_HRC_STATUS_SUMMARY_CACHE_EXPIRY_DURATION; @Markdown(description = "Determines when the stale configuration cache is enabled. If disabled, then queries to determine if components need to be restarted will query the database directly.")
  static final ConfigurationProperty<Boolean> SERVER_STALE_CONFIG_CACHE_ENABLED; @Markdown(
      relatedTo = "server.cache.isStale.enabled",
      description = "The expiration time, in {@link TimeUnit#MINUTES}, that stale configuration information is cached.")
  static final ConfigurationProperty<Integer> SERVER_STALE_CONFIG_CACHE_EXPIRATION; @Markdown(
      examples = { "local", "remote" },
      description = "The type of database connection being used. Unless using an embedded PostgresSQL server, then this should be `remote`.")
  static final ConfigurationProperty<String> SERVER_PERSISTENCE_TYPE; @Markdown(description = "The user name used to login to the database.")
  static final ConfigurationProperty<String> SERVER_JDBC_USER_NAME; @Markdown(description = "The password for the user when logging into the database.")
  static final ConfigurationProperty<String> SERVER_JDBC_USER_PASSWD; @Markdown(description = "The name of the PostgresSQL JDBC JAR connector.")
  static final ConfigurationProperty<String> SERVER_JDBC_DRIVER; @Markdown(
      internal = true,
      description = "The full JDBC url used for in-memory database creation.")
  static final ConfigurationProperty<String> SERVER_JDBC_URL; @Markdown(description = "The size of the buffer to use, in bytes, for REST API HTTP header requests.")
  static final ConfigurationProperty<Integer> SERVER_HTTP_REQUEST_HEADER_SIZE; @Markdown(description = "The size of the buffer to use, in bytes, for REST API HTTP header responses.")
  static final ConfigurationProperty<Integer> SERVER_HTTP_RESPONSE_HEADER_SIZE; @Markdown(description = "A comma-separated list of packages which will be skipped during a stack upgrade.")
  static final ConfigurationProperty<String> ROLLING_UPGRADE_SKIP_PACKAGES_PREFIXES; @Markdown(description = "Determines whether pre-upgrade checks will be skipped when performing a rolling or express stack upgrade.")
  static final ConfigurationProperty<Boolean> STACK_UPGRADE_BYPASS_PRECHECKS; @Markdown(description = "The amount of time to wait in order to retry a command during a stack upgrade when an agent loses communication. This value must be greater than the `agent.task.timeout` value.")
  static final ConfigurationProperty<Integer> STACK_UPGRADE_AUTO_RETRY_TIMEOUT_MINS; @Markdown(
      relatedTo = "stack.upgrade.auto.retry.timeout.mins",
      description = "The amount of time to wait, in seconds, between checking for upgrade tasks to be retried. This value is only applicable if `stack.upgrade.auto.retry.timeout.mins` is positive.")
  static final ConfigurationProperty<Integer> STACK_UPGRADE_AUTO_RETRY_CHECK_INTERVAL_SECS; @Markdown(description = "A comma-separate list of upgrade tasks names to skip when retrying failed commands automatically.")
  static final ConfigurationProperty<String> STACK_UPGRADE_AUTO_RETRY_CUSTOM_COMMAND_NAMES_TO_IGNORE; @Markdown(description = "A comma-separate list of upgrade tasks details to skip when retrying failed commands automatically.")
  static final ConfigurationProperty<String> STACK_UPGRADE_AUTO_RETRY_COMMAND_DETAILS_TO_IGNORE; @Markdown(description = "Determines whether to use JWT authentication when connecting to remote Hadoop resources.")
  static final ConfigurationProperty<Boolean> JWT_AUTH_ENABLED; @Markdown(
      relatedTo = "authentication.jwt.enabled",
      description = "The URL for authentication of the user in the absence of a JWT token when handling a JWT request.")
  static final ConfigurationProperty<String> JWT_AUTH_PROVIDER_URL; @Markdown(
      relatedTo = "authentication.jwt.enabled",
      description = "The key to use when verifying the authenticity of a JWT token.")
  static final ConfigurationProperty<String> JWT_PUBLIC; @Markdown(
      relatedTo = "authentication.jwt.enabled",
      description = "A list of the JWT audiences expected. Leaving this blank will allow for any audience.")
  static final ConfigurationProperty<String> JWT_AUDIENCES; @Markdown(
      relatedTo = "authentication.jwt.enabled",
      description = "The name of the cookie which will be used to extract the JWT token from the request.")
  static final ConfigurationProperty<String> JWT_COOKIE_NAME; @Markdown(
      relatedTo = "authentication.jwt.enabled",
      description = "The original URL to use when constructing the logic URL for JWT.")
  static final ConfigurationProperty<String> JWT_ORIGINAL_URL_QUERY_PARAM; @Markdown(description = "Determines whether to use Kerberos (SPNEGO) authentication when connecting Ambari.")
  static final ConfigurationProperty<Boolean> KERBEROS_AUTH_ENABLED; @Markdown(description = "The Kerberos principal name to use when verifying user-supplied Kerberos tokens for authentication via SPNEGO")
  static final ConfigurationProperty<String> KERBEROS_AUTH_SPNEGO_PRINCIPAL; @Markdown(description = "The Kerberos keytab file to use when verifying user-supplied Kerberos tokens for authentication via SPNEGO")
  static final ConfigurationProperty<String> KERBEROS_AUTH_SPNEGO_KEYTAB_FILE; @Markdown(description = "A comma-delimited (ordered) list of preferred user types to use when finding the Ambari user account for the user-supplied Kerberos identity during authentication via SPNEGO")
  static final ConfigurationProperty<String> KERBEROS_AUTH_USER_TYPES; @Markdown(description = "The auth-to-local rules set to use when translating a user's principal name to a local user name during authentication via SPNEGO.")
  static final ConfigurationProperty<String> KERBEROS_AUTH_AUTH_TO_LOCAL_RULES; @Markdown(description = "The number of times failed kerberos operations should be retried to execute.")
  static final ConfigurationProperty<Integer> KERBEROS_OPERATION_RETRIES; @Markdown(description = "The time to wait (in seconds) between failed kerberos operations retries.")
  static final ConfigurationProperty<Integer> KERBEROS_OPERATION_RETRY_TIMEOUT; @Markdown(
      examples = {"internal", "c3p0"},
      description = "The connection pool manager to use for database connections. If using MySQL, then `c3p0` is automatically chosen.")
  static final ConfigurationProperty<String> SERVER_JDBC_CONNECTION_POOL; @Markdown(
      relatedTo = "server.jdbc.connection-pool",
      description = "The minimum number of connections that should always exist in the database connection pool. Only used with c3p0.")
  static final ConfigurationProperty<Integer> SERVER_JDBC_CONNECTION_POOL_MIN_SIZE; @Markdown(
      relatedTo = "server.jdbc.connection-pool",
      description = "The maximum number of connections that should exist in the database connection pool. Only used with c3p0.")
  static final ConfigurationProperty<Integer> SERVER_JDBC_CONNECTION_POOL_MAX_SIZE; @Markdown(
      relatedTo = "server.jdbc.connection-pool",
      description = "The number of connections that should be retrieved when the pool size must increase. "
          + "This should be set higher than 1 since the assumption is that a pool that needs to grow should probably grow by more than 1. Only used with c3p0.")
  static final ConfigurationProperty<Integer> SERVER_JDBC_CONNECTION_POOL_AQUISITION_SIZE; @Markdown(
      relatedTo = "server.jdbc.connection-pool",
      description = " The maximum amount of time, in seconds, any connection, whether its been idle or active, should remain in the pool. "
          + "This will terminate the connection after the expiration age and force new connections to be opened. Only used with c3p0.")
  static final ConfigurationProperty<Integer> SERVER_JDBC_CONNECTION_POOL_MAX_AGE; @Markdown(
      relatedTo = "server.jdbc.connection-pool",
      description = "The maximum amount of time, in seconds, that an idle connection can remain in the pool. "
          + "This should always be greater than the value returned from `server.jdbc.connection-pool.max-idle-time-excess`. Only used with c3p0.")
  static final ConfigurationProperty<Integer> SERVER_JDBC_CONNECTION_POOL_MAX_IDLE_TIME; @Markdown(
      relatedTo = "server.jdbc.connection-pool",
      description = "The maximum amount of time, in seconds, that connections beyond the minimum pool size should remain in the pool. "
          + "This should always be less than than the value returned from `server.jdbc.connection-pool.max-idle-time`. Only used with c3p0.")
  static final ConfigurationProperty<Integer> SERVER_JDBC_CONNECTION_POOL_MAX_IDLE_TIME_EXCESS; @Markdown(
      relatedTo = "server.jdbc.connection-pool",
      description = "The number of seconds in between testing each idle connection in the connection pool for validity. Only used with c3p0.")
  static final ConfigurationProperty<Integer> SERVER_JDBC_CONNECTION_POOL_IDLE_TEST_INTERVAL; @Markdown(
      relatedTo = "server.jdbc.connection-pool",
      description = "The number of times connections should be retried to be acquired from the database before giving up. Only used with c3p0.")
  static final ConfigurationProperty<Integer> SERVER_JDBC_CONNECTION_POOL_ACQUISITION_RETRY_ATTEMPTS; @Markdown(
      relatedTo = "server.jdbc.connection-pool",
      description = "The delay, in milliseconds, between connection acquisition attempts. Only used with c3p0.")
  static final ConfigurationProperty<Integer> SERVER_JDBC_CONNECTION_POOL_ACQUISITION_RETRY_DELAY; @Markdown(description = "The number of retry attempts for failed API and blueprint operations.")
  static final ConfigurationProperty<Integer> OPERATIONS_RETRY_ATTEMPTS; @Deprecated
  @Markdown(description = "The user name for connecting to the database which stores RCA information.")
  static final ConfigurationProperty<String> SERVER_JDBC_RCA_USER_NAME; @Deprecated
  @Markdown(description = "The password for the user when connecting to the database which stores RCA information.")
  static final ConfigurationProperty<String> SERVER_JDBC_RCA_USER_PASSWD; @Deprecated
  @Markdown(description = "The PostgresSQL driver name for the RCA database.")
  static final ConfigurationProperty<String> SERVER_JDBC_RCA_DRIVER; @Deprecated
  @Markdown(description = "The full JDBC URL for connecting to the RCA database.")
  static final ConfigurationProperty<String> SERVER_JDBC_RCA_URL; @Markdown(description = "The table generation strategy to use when initializing JPA.")
  static final ConfigurationProperty<JPATableGenerationStrategy> SERVER_JDBC_GENERATE_TABLES; @Markdown(
      examples = { "redhat", "ubuntu" },
      description = "The operating system family for all hosts in the cluster. This is used when bootstrapping agents and when enabling Kerberos.")
  static final ConfigurationProperty<String> OS_FAMILY; @Markdown(
      examples = { "6", "7" },
      description = "The operating system version for all hosts in the cluster. This is used when bootstrapping agents and when enabling Kerberos.")
  static final ConfigurationProperty<String> OS_VERSION; @Markdown(description = "The location on the Ambari Server of the file which is used for mapping host names.")
  static final ConfigurationProperty<String> SRVR_HOSTS_MAPPING; @Markdown(description = "The location of the truststore to use when setting the `javax.net.ssl.trustStore` property.")
  static final ConfigurationProperty<String> SSL_TRUSTSTORE_PATH; @Markdown(description = "The password to use when setting the `javax.net.ssl.trustStorePassword` property")
  static final ConfigurationProperty<String> SSL_TRUSTSTORE_PASSWORD; @Markdown(description = "The type of truststore used by the `javax.net.ssl.trustStoreType` property.")
  static final ConfigurationProperty<String> SSL_TRUSTSTORE_TYPE; @Markdown(description = "The location on the Ambari Server of the master key file. This is the key to the master keystore.")
  static final ConfigurationProperty<String> MASTER_KEY_LOCATION; @Markdown(description = "The location on the Ambari Server of the master keystore file.")
  static final ConfigurationProperty<String> MASTER_KEYSTORE_LOCATION; @Markdown(description = "The time, in minutes, that the temporary, in-memory credential store retains values.")
  static final ConfigurationProperty<Long> TEMPORARYSTORE_RETENTION_MINUTES; @Markdown(description = "Determines whether the temporary keystore should have keys actively purged on a fixed internal. or only when requested after expiration.")
  static final ConfigurationProperty<Boolean> TEMPORARYSTORE_ACTIVELY_PURGE; @Markdown(
      examples = {"http://ambari.apache.org:8080"},
      description = "The URL to use when creating messages which should include the Ambari Server URL.")
  static final ConfigurationProperty<String> AMBARI_DISPLAY_URL; @Markdown(description = "The suffixes to use when validating Ubuntu repositories.")
  static final ConfigurationProperty<String> REPO_SUFFIX_KEY_UBUNTU; @Markdown(description = "The suffixes to use when validating most types of repositories.")
  static final ConfigurationProperty<String> REPO_SUFFIX_KEY_DEFAULT; @Markdown(description = "Determines whether Quartz will use a clustered job scheduled when performing scheduled actions like rolling restarts.")
  static final ConfigurationProperty<String> EXECUTION_SCHEDULER_CLUSTERED; @Markdown(description = "The number of threads that the Quartz job scheduler will use when executing scheduled jobs.")
  static final ConfigurationProperty<String> EXECUTION_SCHEDULER_THREADS; @Markdown(description = "The number of concurrent database connections that the Quartz job scheduler can use.")
  static final ConfigurationProperty<String> EXECUTION_SCHEDULER_CONNECTIONS; @Markdown(description = "The time, in minutes, that a scheduled job can be run after its missed scheduled execution time.")
  static final ConfigurationProperty<Long> EXECUTION_SCHEDULER_MISFIRE_TOLERATION; @Markdown(description = "The delay, in seconds, that a Quartz job must wait before it starts.")
  static final ConfigurationProperty<Integer> EXECUTION_SCHEDULER_START_DELAY; @Markdown(description = "The time, in seconds, that the Quartz execution scheduler will wait before checking for new commands to schedule, such as rolling restarts.")
  static final ConfigurationProperty<Long> EXECUTION_SCHEDULER_WAIT; @Markdown(description = "The location on the Ambari Server where temporary artifacts can be created.")
  static final ConfigurationProperty<String> SERVER_TMP_DIR; @Markdown(description = "The location on the Ambari Server where request logs can be created.")
  static final ConfigurationProperty<String> REQUEST_LOGPATH; @Markdown(description = "The pattern of request log file name")
  static final ConfigurationProperty<String> REQUEST_LOGNAMEPATTERN; @Markdown(description = "The number of days that request log would be retained.")
  static final ConfigurationProperty<Integer> REQUEST_LOG_RETAINDAYS; @Markdown(description = "The time, in milliseconds, until an external script is killed.")
  static final ConfigurationProperty<Integer> EXTERNAL_SCRIPT_TIMEOUT; @Markdown(description = "The number of threads that should be allocated to run external script.")
  static final ConfigurationProperty<Integer> THREAD_POOL_SIZE_FOR_EXTERNAL_SCRIPT; static final String DEF_ARCHIVE_EXTENSION; static final String DEF_ARCHIVE_CONTENT_TYPE; @Markdown(description = "The port used to communicate with the Kerberos Key Distribution Center.")
  static final ConfigurationProperty<String> KDC_PORT; @Markdown(description = "The timeout, in milliseconds, to wait when communicating with a Kerberos Key Distribution Center.")
  static final ConfigurationProperty<Integer> KDC_CONNECTION_CHECK_TIMEOUT; @Markdown(description = "The location on the Ambari Server where Kerberos keytabs are cached.")
  static final ConfigurationProperty<String> KERBEROSTAB_CACHE_DIR; @Markdown(description = "Determines whether Kerberos-enabled Ambari deployments should use JAAS to validate login credentials.")
  static final ConfigurationProperty<Boolean> KERBEROS_CHECK_JAAS_CONFIGURATION; @Markdown(
      examples = {"DEFAULT", "AUTO_START", "FULL"},
      description = "The type of automatic recovery of failed services and components to use.")
  static final ConfigurationProperty<String> RECOVERY_TYPE; @Markdown(
      description = "The maximum number of recovery attempts of a failed component during the lifetime of an Ambari Agent instance. "
      + "This is reset when the Ambari Agent is restarted.")
  static final ConfigurationProperty<String> RECOVERY_LIFETIME_MAX_COUNT; @Markdown(description = "The maximum number of recovery attempts of a failed component during a specified recovery window.")
  static final ConfigurationProperty<String> RECOVERY_MAX_COUNT; @Markdown(
      relatedTo = "recovery.max_count",
      description = "The length of a recovery window, in minutes, in which recovery attempts can be retried.")
  static final ConfigurationProperty<String> RECOVERY_WINDOW_IN_MIN; @Markdown(description = "The delay, in minutes, between automatic retry windows.")
  static final ConfigurationProperty<String> RECOVERY_RETRY_GAP; @Markdown(
      examples = {"NAMENODE,ZOOKEEPER_SERVER"},
      description = "A comma-separated list of component names which are not included in automatic recovery attempts.")
  static final ConfigurationProperty<String> RECOVERY_DISABLED_COMPONENTS; @Markdown(
    examples = {"NAMENODE,ZOOKEEPER_SERVER"},
    description = "A comma-separated list of component names which are included in automatic recovery attempts.")
  static final ConfigurationProperty<String> RECOVERY_ENABLED_COMPONENTS; @Markdown(description = "A comma-separated whitelist of host and port values which Ambari Server can use to determine if a proxy value is valid.")
  static final ConfigurationProperty<String> PROXY_ALLOWED_HOST_PORTS; @Markdown(description = "Determines whether operations in different execution requests can be run concurrently.")
  static final ConfigurationProperty<Boolean> PARALLEL_STAGE_EXECUTION; @Markdown(description = "Drives view extraction in case of blueprint deployments; non-system views are deployed when cluster configuration is successful")
  static final ConfigurationProperty<Boolean> VIEW_EXTRACT_AFTER_CLUSTER_CONFIG; @Markdown(description = "How to execute commands in one stage")
  static final ConfigurationProperty<String> COMMAND_EXECUTION_TYPE; @Markdown(description = "The time, in seconds, before agent commands are killed. This does not include package installation commands.")
  static final ConfigurationProperty<Long> AGENT_TASK_TIMEOUT; @Markdown(description = "The time, in seconds, before agent service check commands are killed.")
  static final ConfigurationProperty<Long> AGENT_SERVICE_CHECK_TASK_TIMEOUT; @Markdown(description = "The time, in seconds, before package installation commands are killed.")
  static final ConfigurationProperty<Long> AGENT_PACKAGE_INSTALL_TASK_TIMEOUT; @Markdown(description = "The maximum number of tasks which can run within a single operational request. If there are more tasks, then they will be broken up between multiple operations.")
  static final ConfigurationProperty<Integer> AGENT_PACKAGE_PARALLEL_COMMANDS_LIMIT; @Markdown(description = "The time, in seconds, before a server-side operation is terminated.")
  static final ConfigurationProperty<Integer> SERVER_TASK_TIMEOUT; @Markdown(description = "The location on the Ambari Server where custom actions are defined.")
  static final ConfigurationProperty<String> CUSTOM_ACTION_DEFINITION; @Markdown(description = "The location on the Ambari Server where resources are stored. This is exposed via HTTP in order for Ambari Agents to access them.")
  static final ConfigurationProperty<String> SHARED_RESOURCES_DIR; @Markdown(description = "The name of the user given to requests which are executed without any credentials.")
  static final ConfigurationProperty<String> ANONYMOUS_AUDIT_NAME; @Markdown(description = "Determines whether Ambari Agent instances have already have the necessary stack software installed")
  static final ConfigurationProperty<String> SYS_PREPPED_HOSTS; @Markdown(description = "The time, in milliseconds, that Ambari Agent connections can remain open and idle.")
  static final ConfigurationProperty<Integer> SERVER_CONNECTION_MAX_IDLE_TIME; @ConfigurationMarkdown(
      group = ConfigurationGrouping.JETTY_THREAD_POOL,
      scaleValues = {
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_10, value = "25"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_50, value = "35"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_100, value = "50"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_500, value = "65") },
      markdown = @Markdown(description = "The size of the Jetty connection pool used for handling incoming REST API requests. This should be large enough to handle requests from both web browsers and embedded Views."))
  static final ConfigurationProperty<Integer> CLIENT_THREADPOOL_SIZE; @ConfigurationMarkdown(
      group = ConfigurationGrouping.JETTY_THREAD_POOL,
      scaleValues = {
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_10, value = "25"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_50, value = "35"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_100, value = "75"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_500, value = "100") },
      markdown = @Markdown(description = "The size of the Jetty connection pool used for handling incoming Ambari Agent requests."))
  static final ConfigurationProperty<Integer> AGENT_THREADPOOL_SIZE; @Markdown(description = "The maximum number of threads used to extract Ambari Views when Ambari Server is starting up.")
  static final ConfigurationProperty<Integer> VIEW_EXTRACTION_THREADPOOL_MAX_SIZE; @Markdown(description = "The number of threads used to extract Ambari Views when Ambari Server is starting up.")
  static final ConfigurationProperty<Integer> VIEW_EXTRACTION_THREADPOOL_CORE_SIZE; @Markdown(description = "The time, in milliseconds, that non-core threads will live when extraction views on Ambari Server startup.")
  static final ConfigurationProperty<Long> VIEW_EXTRACTION_THREADPOOL_TIMEOUT; @Markdown(
      relatedTo = "agent.threadpool.size.max",
      description = "The maximum number of threads which will be allocated to handling REST API requests from embedded views. This value should be smaller than `agent.threadpool.size.max`")
  static final ConfigurationProperty<Integer> VIEW_REQUEST_THREADPOOL_MAX_SIZE; @Markdown(description = "The time, milliseconds, that REST API requests from embedded views can wait if there are no threads available to service the view's request. "
      + "Setting this too low can cause views to timeout.")
  static final ConfigurationProperty<Integer> VIEW_REQUEST_THREADPOOL_TIMEOUT; @Markdown(description = "The maximum number of threads that will be used to retrieve data from federated datasources, such as remote JMX endpoints.")
  static final ConfigurationProperty<Integer> PROPERTY_PROVIDER_THREADPOOL_MAX_SIZE; @Markdown(description = "The core number of threads that will be used to retrieve data from federated datasources, such as remote JMX endpoints.")
  static final ConfigurationProperty<Integer> PROPERTY_PROVIDER_THREADPOOL_CORE_SIZE; @Markdown(description = "The maximum size of pending federated datasource requests, such as those to JMX endpoints, which can be queued before rejecting new requests.")
  static final ConfigurationProperty<Integer> PROPERTY_PROVIDER_THREADPOOL_WORKER_QUEUE_SIZE; @Markdown(description = "The maximum time, in milliseconds, that federated requests for data can execute before being terminated. "
      + "Increasing this value could result in degraded performanc from the REST APIs.")
  static final ConfigurationProperty<Long> PROPERTY_PROVIDER_THREADPOOL_COMPLETION_TIMEOUT; @Markdown(description = "The time, in seconds, that open HTTP sessions will remain valid while they are inactive.")
  static final ConfigurationProperty<Integer> SERVER_HTTP_SESSION_INACTIVE_TIMEOUT; @Markdown(description = "Determines whether Ambari Metric data is cached.")
  static final ConfigurationProperty<Boolean> TIMELINE_METRICS_CACHE_DISABLE; @Markdown(
      relatedTo = "server.timeline.metrics.cache.disabled",
      description = "The time, in seconds, that Ambari Metric timeline data is cached by Ambari Server.")
  static final ConfigurationProperty<Integer> TIMELINE_METRICS_CACHE_TTL; @Markdown(
      relatedTo = "server.timeline.metrics.cache.disabled",
      description = "The time, in seconds, that Ambari Metric data can remain in the cache without being accessed.")
  static final ConfigurationProperty<Integer> TIMELINE_METRICS_CACHE_IDLE_TIME; @Markdown(
      relatedTo = "server.timeline.metrics.cache.disabled",
      description = "The time, in milliseconds, that initial requests to populate metric data will wait while reading from Ambari Metrics.")
  static final ConfigurationProperty<Integer> TIMELINE_METRICS_REQUEST_READ_TIMEOUT; @Markdown(
      relatedTo = "server.timeline.metrics.cache.disabled",
      description = "The time, in milliseconds, that requests to update stale metric data will wait while reading from Ambari Metrics. "
          + "This allows for greater control by allowing stale values to be returned instead of waiting for Ambari Metrics to always populate responses with the latest data.")
  static final ConfigurationProperty<Integer> TIMELINE_METRICS_REQUEST_INTERVAL_READ_TIMEOUT; @Markdown(
      relatedTo = "server.timeline.metrics.cache.disabled",
      description = "The time, in milliseconds, to wait while attempting to connect to Ambari Metrics.")
  static final ConfigurationProperty<Integer> TIMELINE_METRICS_REQUEST_CONNECT_TIMEOUT; @Markdown(
      relatedTo = "server.timeline.metrics.cache.disabled",
      description = "The time, in milliseconds, that Ambari Metrics intervals should use when extending the boundaries of the original request.")
  static final ConfigurationProperty<Long> TIMELINE_METRICS_REQUEST_CATCHUP_INTERVAL; @Markdown(
      relatedTo = "server.timeline.metrics.cache.disabled",
      description = "The amount of heap on the Ambari Server dedicated to the caching values from Ambari Metrics. Measured as part of the total heap of Ambari Server.")
  static final ConfigurationProperty<String> TIMELINE_METRICS_CACHE_HEAP_PERCENT; @Markdown(
      relatedTo = "server.timeline.metrics.cache.disabled",
      description = "Determines if a custom engine should be used to increase performance of calculating the current size of the cache for Ambari Metric data.")
  static final ConfigurationProperty<Boolean> TIMELINE_METRICS_CACHE_USE_CUSTOM_SIZING_ENGINE; @Markdown(description = "Determines whether to use to SSL to connect to Ambari Metrics when retrieving metric data.")
  static final ConfigurationProperty<Boolean> AMBARI_METRICS_HTTPS_ENABLED; @Markdown(
      internal = true,
      description = "Determines whether to allow stages retrieved from the database to be processed by multiple threads.")
  static final ConfigurationProperty<Boolean> EXPERIMENTAL_CONCURRENCY_STAGE_PROCESSING_ENABLED; @Markdown(description="The full path to the XML file that describes the different alert templates.")
  static final ConfigurationProperty<String> ALERT_TEMPLATE_FILE; @ConfigurationMarkdown(
      group = ConfigurationGrouping.ALERTS,
      scaleValues = {
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_10, value = "2"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_50, value = "2"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_100, value = "4"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_500, value = "4") },
      markdown = @Markdown(
          description = "The core number of threads used to process incoming alert events. The value should be increased as the size of the cluster increases."))
  static final ConfigurationProperty<Integer> ALERTS_EXECUTION_SCHEDULER_THREADS_CORE_SIZE; @ConfigurationMarkdown(
      group = ConfigurationGrouping.ALERTS,
      scaleValues = {
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_10, value = "2"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_50, value = "2"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_100, value = "8"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_500, value = "8") },
      markdown = @Markdown(
          description = "The number of threads used to handle alerts received from the Ambari Agents. The value should be increased as the size of the cluster increases."))
  static final ConfigurationProperty<Integer> ALERTS_EXECUTION_SCHEDULER_THREADS_MAX_SIZE; @ConfigurationMarkdown(
      group = ConfigurationGrouping.ALERTS,
      scaleValues = {
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_10, value = "400"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_50, value = "2000"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_100, value = "4000"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_500, value = "20000") },
      markdown = @Markdown(
          description = "The number of queued alerts allowed before discarding old alerts which have not been handled. The value should be increased as the size of the cluster increases."))
  static final ConfigurationProperty<Integer> ALERTS_EXECUTION_SCHEDULER_WORKER_QUEUE_SIZE; @ConfigurationMarkdown(
      group = ConfigurationGrouping.ALERTS,
      scaleValues = {
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_10, value = "false" ),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_50, value = "false"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_100, value = "false"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_500, value = "true") },
      markdown = @Markdown(
          description = "Determines whether current alerts should be cached. "
              + "Enabling this can increase performance on large cluster, but can also result in lost alert data if the cache is not flushed frequently."))
  static final ConfigurationProperty<Boolean> ALERTS_CACHE_ENABLED; @ConfigurationMarkdown(
      group = ConfigurationGrouping.ALERTS,
      scaleValues = {
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_10, value = "10" ),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_50, value = "10"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_100, value = "10"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_500, value = "10") },
      markdown = @Markdown(
          relatedTo = "alerts.cache.enabled",
          description = "The time, in minutes, after which cached alert information is flushed to the database"))
  static final ConfigurationProperty<Integer> ALERTS_CACHE_FLUSH_INTERVAL; @ConfigurationMarkdown(
      group = ConfigurationGrouping.ALERTS,
      scaleValues = {
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_10, value = "50000" ),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_50, value = "50000"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_100, value = "100000"),
          @ClusterScale(clusterSize = ClusterSizeType.HOSTS_500, value = "100000") },
      markdown = @Markdown(
          relatedTo = "alerts.cache.enabled",
          description = "The size of the alert cache."))
  static final ConfigurationProperty<Integer> ALERTS_CACHE_SIZE; @Markdown(description = "When using SSL, this will be used to set the `Strict-Transport-Security` response header.")
  static final ConfigurationProperty<String> HTTP_STRICT_TRANSPORT_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `X-Frame-Options` HTTP response header.")
  static final ConfigurationProperty<String> HTTP_X_FRAME_OPTIONS_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `X-XSS-Protection` HTTP response header.")
  static final ConfigurationProperty<String> HTTP_X_XSS_PROTECTION_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `X-CONTENT-TYPE` HTTP response header.")
  static final ConfigurationProperty<String> HTTP_X_CONTENT_TYPE_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `Cache-Control` HTTP response header.")
  static final ConfigurationProperty<String> HTTP_CACHE_CONTROL_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `PRAGMA` HTTP response header.")
  static final ConfigurationProperty<String> HTTP_PRAGMA_HEADER_VALUE; @Markdown(description = "The value that will be used to set the Character encoding to HTTP response header.")
  static final ConfigurationProperty<String> HTTP_CHARSET; @Markdown(description = "The value that will be used to set the `Strict-Transport-Security` HTTP response header for Ambari View requests.")
  static final ConfigurationProperty<String> VIEWS_HTTP_STRICT_TRANSPORT_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `X-Frame-Options` HTTP response header for Ambari View requests.")
  static final ConfigurationProperty<String> VIEWS_HTTP_X_FRAME_OPTIONS_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `X-XSS-Protection` HTTP response header for Ambari View requests.")
  static final ConfigurationProperty<String> VIEWS_HTTP_X_XSS_PROTECTION_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `X-CONTENT-TYPE` HTTP response header for Ambari View requests.")
  static final ConfigurationProperty<String> VIEWS_HTTP_X_CONTENT_TYPE_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `Cache-Control` HTTP response header for Ambari View requests.")
  static final ConfigurationProperty<String> VIEWS_HTTP_CACHE_CONTROL_HEADER_VALUE; @Markdown(description = "The value that will be used to set the `PRAGMA` HTTP response header for Ambari View requests.")
  static final ConfigurationProperty<String> VIEWS_HTTP_PRAGMA_HEADER_VALUE; @Markdown(description = "The value that will be used to set the Character encoding to HTTP response header for Ambari View requests.")
  static final ConfigurationProperty<String> VIEWS_HTTP_CHARSET; @Markdown(description = "The time, in milliseconds, that requests to connect to a URL to retrieve Version Definition Files (VDF) will wait before being terminated.")
  static final ConfigurationProperty<Integer> VERSION_DEFINITION_CONNECT_TIMEOUT; @Markdown(description = "The time, in milliseconds, that requests to read from a connected URL to retrieve Version Definition Files (VDF) will wait before being terminated.")
  static final ConfigurationProperty<Integer> VERSION_DEFINITION_READ_TIMEOUT; @Markdown(description = "Determines whether agents should retrying installation commands when the repository is not available. "
      + "This can prevent false installation errors with repositories that are sporadically inaccessible.")
  static final ConfigurationProperty<Boolean> AGENT_STACK_RETRY_ON_REPO_UNAVAILABILITY; @Markdown(
      relatedTo = "agent.stack.retry.on_repo_unavailability",
      description = "The number of times an Ambari Agent should retry package installation when it fails due to a repository error. ")
  static final ConfigurationProperty<Integer> AGENT_STACK_RETRY_COUNT; @Markdown(description = "Determines whether audit logging is enabled.")
  static final ConfigurationProperty<Boolean> AUDIT_LOG_ENABLED; @Markdown(
      relatedTo = "auditlog.enabled",
      description = "The size of the worker queue for audit logger events.")
  static final ConfigurationProperty<Integer> AUDIT_LOGGER_CAPACITY; @Markdown(description = "The UDP port to use when binding the SNMP dispatcher on Ambari Server startup. If no port is specified, then a random port will be used.")
  static final ConfigurationProperty<String> ALERTS_SNMP_DISPATCH_UDP_PORT; @Markdown(description = "The UDP port to use when binding the Ambari SNMP dispatcher on Ambari Server startup. If no port is specified, then a random port will be used.")
  static final ConfigurationProperty<String> ALERTS_AMBARI_SNMP_DISPATCH_UDP_PORT; @Markdown(description = "The amount of time, in minutes, that JMX and REST metrics retrieved directly can remain in the cache.")
  static final ConfigurationProperty<Integer> METRIC_RETRIEVAL_SERVICE_CACHE_TIMEOUT; @Markdown(description = "The priority of threads used by the service which retrieves JMX and REST metrics directly from their respective endpoints.")
  static final ConfigurationProperty<Integer> METRIC_RETRIEVAL_SERVICE_THREAD_PRIORITY; @Markdown(description = "The maximum number of threads used to retrieve JMX and REST metrics directly from their respective endpoints.")
  static final ConfigurationProperty<Integer> METRIC_RETRIEVAL_SERVICE_THREADPOOL_MAX_SIZE; @Markdown(description = "The core number of threads used to retrieve JMX and REST metrics directly from their respective endpoints.")
  static final ConfigurationProperty<Integer> METRIC_RETRIEVAL_SERVICE_THREADPOOL_CORE_SIZE; @Markdown(description = "The number of queued requests allowed for JMX and REST metrics before discarding old requests which have not been fullfilled.")
  static final ConfigurationProperty<Integer> METRIC_RETRIEVAL_SERVICE_THREADPOOL_WORKER_QUEUE_SIZE; @Markdown(
      relatedTo = "metrics.retrieval-service.request.ttl",
      description = "Enables throttling requests to the same endpoint within a fixed amount of time. "
          + "This property will prevent Ambari from making new metric requests to update the cache for URLs which have been recently retrieved.")
  static final ConfigurationProperty<Boolean> METRIC_RETRIEVAL_SERVICE_REQUEST_TTL_ENABLED; @Markdown(
      relatedTo = "metrics.retrieval-service.request.ttl.enabled",
      description = "The number of seconds to wait between issuing JMX or REST metric requests to the same endpoint. "
          + "This property is used to throttle requests to the same URL being made too close together")
  static final ConfigurationProperty<Integer> METRIC_RETRIEVAL_SERVICE_REQUEST_TTL; @Markdown(description = "The maximum number of tasks which can be queried by ID from the database.")
  static final ConfigurationProperty<Integer> TASK_ID_LIST_LIMIT; @Markdown(description = "Indicates whether the current ambari server instance is active or not.")
  static final ConfigurationProperty<Boolean> ACTIVE_INSTANCE; @Markdown(description = "Indicates whether the post user creation is enabled or not. By default is false.")
  static final ConfigurationProperty<Boolean> POST_USER_CREATION_HOOK_ENABLED; @Markdown(description = "The location of the post user creation hook on the ambari server hosting machine.")
  static final ConfigurationProperty<String> POST_USER_CREATION_HOOK; @Markdown(description = "Indicates the delay, in milliseconds, for the log4j monitor to check for changes")
  static final ConfigurationProperty<Long> LOG4JMONITOR_DELAY; @Markdown(description = "Indicates whether parallel topology task creation is enabled")
  static final ConfigurationProperty<Boolean> TOPOLOGY_TASK_PARALLEL_CREATION_ENABLED; @Markdown(description = "The number of threads to use for parallel topology task creation if enabled")
  static final ConfigurationProperty<Integer> TOPOLOGY_TASK_PARALLEL_CREATION_THREAD_COUNT; @Markdown(description = "Count of acceptors to configure for the jetty connector used for Ambari agent.")
  static final ConfigurationProperty<Integer> SRVR_AGENT_ACCEPTOR_THREAD_COUNT; @Markdown(description = "Count of acceptors to configure for the jetty connector used for Ambari API.")
  static final ConfigurationProperty<Integer> SRVR_API_ACCEPTOR_THREAD_COUNT; @Markdown(description = "The time, in milliseconds, that the Ambari Server will wait while attempting to connect to the LogSearch Portal service.")
  static final ConfigurationProperty<Integer> LOGSEARCH_PORTAL_CONNECT_TIMEOUT; @Markdown(description = "The time, in milliseconds, that the Ambari Server will wait while attempting to read a response from the LogSearch Portal service.")
  static final ConfigurationProperty<Integer> LOGSEARCH_PORTAL_READ_TIMEOUT; @Markdown(description = "Global disable flag for AmbariServer Metrics.")
  static final ConfigurationProperty<Boolean> AMBARISERVER_METRICS_DISABLE; @Markdown(description = "The time, in hours, that the Ambari Server will hold Log File metadata in its internal cache before making a request to the LogSearch Portal to get the latest metadata.")
  static final ConfigurationProperty<Integer> LOGSEARCH_METADATA_CACHE_EXPIRE_TIMEOUT; @Markdown(description = "The time, in seconds, that the ambari-server Python script will wait for Jetty to startup before returning an error code.")
  static final ConfigurationProperty<Integer> SERVER_STARTUP_WEB_TIMEOUT; }