// Copyright (C) 2019-2025, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.

package config

// the HTTPWriteTimeoutKey was moved here so that it would not generate the
// false-positive linter error "G101: Potential hardcoded credentials" when running golangci-lint.
const HTTPWriteTimeoutKey = "http-write-timeout" // #nosec G101

const (
	DataDirKey                               = "data-dir"
	ConfigFileKey                            = "config-file"
	ConfigContentKey                         = "config-file-content"
	ConfigContentTypeKey                     = "config-file-content-type"
	VersionKey                               = "version"
	VersionJSONKey                           = "version-json"
	GenesisFileKey                           = "genesis-file"
	GenesisFileContentKey                    = "genesis-file-content"
	UpgradeFileKey                           = "upgrade-file"
	UpgradeFileContentKey                    = "upgrade-file-content"
	NetworkNameKey                           = "network-id"
	ACPSupportKey                            = "acp-support"
	ACPObjectKey                             = "acp-object"
	DynamicFeesBandwidthWeightKey            = "dynamic-fees-bandwidth-weight"
	DynamicFeesDBReadWeightKey               = "dynamic-fees-db-read-weight"
	DynamicFeesDBWriteWeightKey              = "dynamic-fees-db-write-weight"
	DynamicFeesComputeWeightKey              = "dynamic-fees-compute-weight"
	DynamicFeesMaxGasCapacityKey             = "dynamic-fees-max-gas-capacity"
	DynamicFeesMaxGasPerSecondKey            = "dynamic-fees-max-gas-per-second"
	DynamicFeesTargetGasPerSecondKey         = "dynamic-fees-target-gas-per-second"
	DynamicFeesMinGasPriceKey                = "dynamic-fees-min-gas-price"
	DynamicFeesExcessConversionConstantKey   = "dynamic-fees-excess-conversion-constant"
	ValidatorFeesCapacityKey                 = "validator-fees-capacity"
	ValidatorFeesTargetKey                   = "validator-fees-target"
	ValidatorFeesMinPriceKey                 = "validator-fees-min-price"
	ValidatorFeesExcessConversionConstantKey = "validator-fees-excess-conversion-constant"
	TxFeeKey                                 = "tx-fee"
	CreateAssetTxFeeKey                      = "create-asset-tx-fee"
	UptimeRequirementKey                     = "uptime-requirement"
	MinValidatorStakeKey                     = "min-validator-stake"
	MaxValidatorStakeKey                     = "max-validator-stake"
	MinDelegatorStakeKey                     = "min-delegator-stake"
	MinDelegatorFeeKey                       = "min-delegation-fee"
	MinStakeDurationKey                      = "min-stake-duration"
	MaxStakeDurationKey                      = "max-stake-duration"
	StakeMaxConsumptionRateKey               = "stake-max-consumption-rate"
	StakeMinConsumptionRateKey               = "stake-min-consumption-rate"
	StakeMintingPeriodKey                    = "stake-minting-period"
	StakeSupplyCapKey                        = "stake-supply-cap"
	DBTypeKey                                = "db-type"
	DBReadOnlyKey                            = "db-read-only"
	DBPathKey                                = "db-dir"
	DBConfigFileKey                          = "db-config-file"
	DBConfigContentKey                       = "db-config-file-content"
	PublicIPKey                              = "public-ip"
	PublicIPResolutionFreqKey                = "public-ip-resolution-frequency"
	PublicIPResolutionServiceKey             = "public-ip-resolution-service"
	HTTPHostKey                              = "http-host"
	HTTPPortKey                              = "http-port"
	HTTPSEnabledKey                          = "http-tls-enabled"
	HTTPSKeyFileKey                          = "http-tls-key-file"
	HTTPSKeyContentKey                       = "http-tls-key-file-content"
	HTTPSCertFileKey                         = "http-tls-cert-file"
	HTTPSCertContentKey                      = "http-tls-cert-file-content"

	HTTPAllowedOrigins       = "http-allowed-origins"
	HTTPAllowedHostsKey      = "http-allowed-hosts"
	HTTPShutdownTimeoutKey   = "http-shutdown-timeout"
	HTTPShutdownWaitKey      = "http-shutdown-wait"
	HTTPReadTimeoutKey       = "http-read-timeout"
	HTTPReadHeaderTimeoutKey = "http-read-header-timeout"

	HTTPIdleTimeoutKey                                 = "http-idle-timeout"
	StateSyncIPsKey                                    = "state-sync-ips"
	StateSyncIDsKey                                    = "state-sync-ids"
	BootstrapIPsKey                                    = "bootstrap-ips"
	BootstrapIDsKey                                    = "bootstrap-ids"
	StakingHostKey                                     = "staking-host"
	StakingPortKey                                     = "staking-port"
	StakingEphemeralCertEnabledKey                     = "staking-ephemeral-cert-enabled"
	StakingTLSKeyPathKey                               = "staking-tls-key-file"
	StakingTLSKeyContentKey                            = "staking-tls-key-file-content"
	StakingCertPathKey                                 = "staking-tls-cert-file"
	StakingCertContentKey                              = "staking-tls-cert-file-content"
	StakingEphemeralSignerEnabledKey                   = "staking-ephemeral-signer-enabled"
	StakingSignerKeyPathKey                            = "staking-signer-key-file"
	StakingSignerKeyContentKey                         = "staking-signer-key-file-content"
	StakingRPCSignerEndpointKey                        = "staking-rpc-signer-endpoint"
	SybilProtectionEnabledKey                          = "sybil-protection-enabled"
	SybilProtectionDisabledWeightKey                   = "sybil-protection-disabled-weight"
	NetworkInitialTimeoutKey                           = "network-initial-timeout"
	NetworkMinimumTimeoutKey                           = "network-minimum-timeout"
	NetworkMaximumTimeoutKey                           = "network-maximum-timeout"
	NetworkMaximumInboundTimeoutKey                    = "network-maximum-inbound-timeout"
	NetworkTimeoutHalflifeKey                          = "network-timeout-halflife"
	NetworkTimeoutCoefficientKey                       = "network-timeout-coefficient"
	NetworkHealthMinPeersKey                           = "network-health-min-conn-peers"
	NetworkHealthMaxTimeSinceMsgReceivedKey            = "network-health-max-time-since-msg-received"
	NetworkHealthMaxTimeSinceMsgSentKey                = "network-health-max-time-since-msg-sent"
	NetworkHealthMaxPortionSendQueueFillKey            = "network-health-max-portion-send-queue-full"
	NetworkHealthMaxSendFailRateKey                    = "network-health-max-send-fail-rate"
	NetworkHealthMaxOutstandingDurationKey             = "network-health-max-outstanding-request-duration"
	NetworkPeerListNumValidatorIPsKey                  = "network-peer-list-num-validator-ips"
	NetworkPeerListPullGossipFreqKey                   = "network-peer-list-pull-gossip-frequency"
	NetworkPeerListBloomResetFreqKey                   = "network-peer-list-bloom-reset-frequency"
	NetworkInitialReconnectDelayKey                    = "network-initial-reconnect-delay"
	NetworkReadHandshakeTimeoutKey                     = "network-read-handshake-timeout"
	NetworkPingTimeoutKey                              = "network-ping-timeout"
	NetworkPingFrequencyKey                            = "network-ping-frequency"
	NetworkMaxReconnectDelayKey                        = "network-max-reconnect-delay"
	NetworkCompressionTypeKey                          = "network-compression-type"
	NetworkMaxClockDifferenceKey                       = "network-max-clock-difference"
	NetworkAllowPrivateIPsKey                          = "network-allow-private-ips"
	NetworkRequireValidatorToConnectKey                = "network-require-validator-to-connect"
	NetworkPeerReadBufferSizeKey                       = "network-peer-read-buffer-size"
	NetworkPeerWriteBufferSizeKey                      = "network-peer-write-buffer-size"
	NetworkTCPProxyEnabledKey                          = "network-tcp-proxy-enabled"
	NetworkTCPProxyReadTimeoutKey                      = "network-tcp-proxy-read-timeout"
	NetworkTLSKeyLogFileKey                            = "network-tls-key-log-file-unsafe"
	NetworkInboundConnUpgradeThrottlerCooldownKey      = "network-inbound-connection-throttling-cooldown"
	NetworkInboundThrottlerMaxConnsPerSecKey           = "network-inbound-connection-throttling-max-conns-per-sec"
	NetworkOutboundConnectionThrottlingRpsKey          = "network-outbound-connection-throttling-rps"
	NetworkOutboundConnectionTimeoutKey                = "network-outbound-connection-timeout"
	NetworkNoIngressValidatorConnectionsGracePeriodKey = "network-no-ingress-connections-grace-period"
	BenchlistFailThresholdKey                          = "benchlist-fail-threshold"
	BenchlistDurationKey                               = "benchlist-duration"
	BenchlistMinFailingDurationKey                     = "benchlist-min-failing-duration"
	LogsDirKey                                         = "log-dir"
	LogLevelKey                                        = "log-level"
	LogDisplayLevelKey                                 = "log-display-level"
	LogFormatKey                                       = "log-format"
	LogRotaterMaxSizeKey                               = "log-rotater-max-size"
	LogRotaterMaxFilesKey                              = "log-rotater-max-files"
	LogRotaterMaxAgeKey                                = "log-rotater-max-age"
	LogRotaterCompressEnabledKey                       = "log-rotater-compress-enabled"
	LogDisableDisplayPluginLogsKey                     = "log-disable-display-plugin-logs"
	SnowSampleSizeKey                                  = "snow-sample-size"
	SnowQuorumSizeKey                                  = "snow-quorum-size"
	SnowPreferenceQuorumSizeKey                        = "snow-preference-quorum-size"
	SnowConfidenceQuorumSizeKey                        = "snow-confidence-quorum-size"
	SnowCommitThresholdKey                             = "snow-commit-threshold"
	SnowConcurrentRepollsKey                           = "snow-concurrent-repolls"
	SnowOptimalProcessingKey                           = "snow-optimal-processing"
	SnowMaxProcessingKey                               = "snow-max-processing"
	SnowMaxTimeProcessingKey                           = "snow-max-time-processing"
	PartialSyncPrimaryNetworkKey                       = "partial-sync-primary-network"
	TrackSubnetsKey                                    = "track-subnets"
	AdminAPIEnabledKey                                 = "api-admin-enabled"
	InfoAPIEnabledKey                                  = "api-info-enabled"
	MetricsAPIEnabledKey                               = "api-metrics-enabled"
	HealthAPIEnabledKey                                = "api-health-enabled"
	MeterVMsEnabledKey                                 = "meter-vms-enabled"
	ConsensusAppConcurrencyKey                         = "consensus-app-concurrency"
	ConsensusShutdownTimeoutKey                        = "consensus-shutdown-timeout"
	ConsensusFrontierPollFrequencyKey                  = "consensus-frontier-poll-frequency"
	ProposerVMUseCurrentHeightKey                      = "proposervm-use-current-height"
	ProposerVMMinBlockDelayKey                         = "proposervm-min-block-delay"
	FdLimitKey                                         = "fd-limit"
	IndexEnabledKey                                    = "index-enabled"
	IndexAllowIncompleteKey                            = "index-allow-incomplete"
	RouterHealthMaxDropRateKey                         = "router-health-max-drop-rate"
	RouterHealthMaxOutstandingRequestsKey              = "router-health-max-outstanding-requests"
	HealthCheckFreqKey                                 = "health-check-frequency"
	HealthCheckAveragerHalflifeKey                     = "health-check-averager-halflife"
	PluginDirKey                                       = "plugin-dir"
	BootstrapBeaconConnectionTimeoutKey                = "bootstrap-beacon-connection-timeout"
	BootstrapMaxTimeGetAncestorsKey                    = "bootstrap-max-time-get-ancestors"
	BootstrapAncestorsMaxContainersSentKey             = "bootstrap-ancestors-max-containers-sent"
	BootstrapAncestorsMaxContainersReceivedKey         = "bootstrap-ancestors-max-containers-received"
	ChainDataDirKey                                    = "chain-data-dir"
	ChainConfigDirKey                                  = "chain-config-dir"
	ChainConfigContentKey                              = "chain-config-content"
	SubnetConfigDirKey                                 = "subnet-config-dir"
	SubnetConfigContentKey                             = "subnet-config-content"
	ProfileDirKey                                      = "profile-dir"
	ProfileContinuousEnabledKey                        = "profile-continuous-enabled"
	ProfileContinuousFreqKey                           = "profile-continuous-freq"
	ProfileContinuousMaxFilesKey                       = "profile-continuous-max-files"
	InboundThrottlerAtLargeAllocSizeKey                = "throttler-inbound-at-large-alloc-size"
	InboundThrottlerVdrAllocSizeKey                    = "throttler-inbound-validator-alloc-size"
	InboundThrottlerNodeMaxAtLargeBytesKey             = "throttler-inbound-node-max-at-large-bytes"
	InboundThrottlerMaxProcessingMsgsPerNodeKey        = "throttler-inbound-node-max-processing-msgs"
	InboundThrottlerBandwidthRefillRateKey             = "throttler-inbound-bandwidth-refill-rate"
	InboundThrottlerBandwidthMaxBurstSizeKey           = "throttler-inbound-bandwidth-max-burst-size"
	InboundThrottlerCPUMaxRecheckDelayKey              = "throttler-inbound-cpu-max-recheck-delay"
	InboundThrottlerDiskMaxRecheckDelayKey             = "throttler-inbound-disk-max-recheck-delay"
	CPUVdrAllocKey                                     = "throttler-inbound-cpu-validator-alloc"
	CPUMaxNonVdrUsageKey                               = "throttler-inbound-cpu-max-non-validator-usage"
	CPUMaxNonVdrNodeUsageKey                           = "throttler-inbound-cpu-max-non-validator-node-usage"
	SystemTrackerFrequencyKey                          = "system-tracker-frequency"
	SystemTrackerProcessingHalflifeKey                 = "system-tracker-processing-halflife"
	SystemTrackerCPUHalflifeKey                        = "system-tracker-cpu-halflife"
	SystemTrackerDiskHalflifeKey                       = "system-tracker-disk-halflife"
	SystemTrackerRequiredAvailableDiskSpaceKey         = "system-tracker-disk-required-available-space"
	SystemTrackerWarningThresholdAvailableDiskSpaceKey = "system-tracker-disk-warning-threshold-available-space"
	DiskVdrAllocKey                                    = "throttler-inbound-disk-validator-alloc"
	DiskMaxNonVdrUsageKey                              = "throttler-inbound-disk-max-non-validator-usage"
	DiskMaxNonVdrNodeUsageKey                          = "throttler-inbound-disk-max-non-validator-node-usage"
	OutboundThrottlerAtLargeAllocSizeKey               = "throttler-outbound-at-large-alloc-size"
	OutboundThrottlerVdrAllocSizeKey                   = "throttler-outbound-validator-alloc-size"
	OutboundThrottlerNodeMaxAtLargeBytesKey            = "throttler-outbound-node-max-at-large-bytes"
	UptimeMetricFreqKey                                = "uptime-metric-freq"
	VMAliasesFileKey                                   = "vm-aliases-file"
	VMAliasesContentKey                                = "vm-aliases-file-content"
	ChainAliasesFileKey                                = "chain-aliases-file"
	ChainAliasesContentKey                             = "chain-aliases-file-content"
	TracingEndpointKey                                 = "tracing-endpoint"
	TracingInsecureKey                                 = "tracing-insecure"
	TracingSampleRateKey                               = "tracing-sample-rate"
	TracingExporterTypeKey                             = "tracing-exporter-type"
	TracingHeadersKey                                  = "tracing-headers"
	ProcessContextFileKey                              = "process-context-file"
)
