// Code generated by user config generator. DO NOT EDIT.

package service

import "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"

func GetUserConfig(kind string) *schema.Schema {
	switch kind {
	case "alloydbomni":
		return alloydbomniUserConfig()
	case "cassandra":
		return cassandraUserConfig()
	case "clickhouse":
		return clickhouseUserConfig()
	case "dragonfly":
		return dragonflyUserConfig()
	case "flink":
		return flinkUserConfig()
	case "grafana":
		return grafanaUserConfig()
	case "influxdb":
		return influxdbUserConfig()
	case "kafka":
		return kafkaUserConfig()
	case "kafka_connect":
		return kafkaConnectUserConfig()
	case "kafka_mirrormaker":
		return kafkaMirrormakerUserConfig()
	case "m3aggregator":
		return m3aggregatorUserConfig()
	case "m3db":
		return m3dbUserConfig()
	case "mysql":
		return mysqlUserConfig()
	case "opensearch":
		return opensearchUserConfig()
	case "pg":
		return pgUserConfig()
	case "redis":
		return redisUserConfig()
	case "thanos":
		return thanosUserConfig()
	case "valkey":
		return valkeyUserConfig()
	default:
		return nil
	}
}

// GetFieldMapping returns TF fields to Json fields mapping (in unix-path way)
func GetFieldMapping(kind string) map[string]string {
	return map[string]map[string]string{
		"alloydbomni": {
			"ip_filter_object":                  "ip_filter",
			"ip_filter_string":                  "ip_filter",
			"pg/pg_partman_bgw__dot__interval":  "pg/pg_partman_bgw.interval",
			"pg/pg_partman_bgw__dot__role":      "pg/pg_partman_bgw.role",
			"pg/pg_stat_statements__dot__track": "pg/pg_stat_statements.track",
		},
		"cassandra": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"clickhouse": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"dragonfly": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"flink": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"grafana": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"influxdb": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"kafka": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"kafka_connect": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"kafka_mirrormaker": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"m3aggregator": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"m3db": {
			"ip_filter_object":                "ip_filter",
			"ip_filter_string":                "ip_filter",
			"rules/mapping/namespaces_object": "rules/mapping/namespaces",
			"rules/mapping/namespaces_string": "rules/mapping/namespaces",
		},
		"mysql": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"opensearch": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
			"opensearch/cluster_filecache_remote_data_ratio":                         "opensearch/cluster.filecache.remote_data_ratio",
			"opensearch/cluster_remote_store":                                        "opensearch/cluster.remote_store",
			"opensearch/cluster_remote_store/state_global_metadata_upload_timeout":   "opensearch/cluster.remote_store/state.global_metadata.upload_timeout",
			"opensearch/cluster_remote_store/state_metadata_manifest_upload_timeout": "opensearch/cluster.remote_store/state.metadata_manifest.upload_timeout",
			"opensearch/cluster_remote_store/translog_buffer_interval":               "opensearch/cluster.remote_store/translog.buffer_interval",
			"opensearch/cluster_remote_store/translog_max_readers":                   "opensearch/cluster.remote_store/translog.max_readers",
			"opensearch/cluster_routing_allocation_balance_prefer_primary":           "opensearch/cluster.routing.allocation.balance.prefer_primary",
			"opensearch/cluster_search_request_slowlog":                              "opensearch/cluster.search.request.slowlog",
			"opensearch/node_search_cache_size":                                      "opensearch/node.search.cache.size",
			"opensearch/remote_store/segment_pressure_bytes_lag_variance_factor":     "opensearch/remote_store/segment.pressure.bytes_lag.variance_factor",
			"opensearch/remote_store/segment_pressure_consecutive_failures_limit":    "opensearch/remote_store/segment.pressure.consecutive_failures.limit",
			"opensearch/remote_store/segment_pressure_enabled":                       "opensearch/remote_store/segment.pressure.enabled",
			"opensearch/remote_store/segment_pressure_time_lag_variance_factor":      "opensearch/remote_store/segment.pressure.time_lag.variance_factor",
			"opensearch/search_insights_top_queries":                                 "opensearch/search.insights.top_queries",
			"opensearch/segrep/pressure_checkpoint_limit":                            "opensearch/segrep/pressure.checkpoint.limit",
			"opensearch/segrep/pressure_enabled":                                     "opensearch/segrep/pressure.enabled",
			"opensearch/segrep/pressure_replica_stale_limit":                         "opensearch/segrep/pressure.replica.stale.limit",
			"opensearch/segrep/pressure_time_limit":                                  "opensearch/segrep/pressure.time.limit",
		},
		"pg": {
			"ip_filter_object":                                "ip_filter",
			"ip_filter_string":                                "ip_filter",
			"pg/pg_partman_bgw__dot__interval":                "pg/pg_partman_bgw.interval",
			"pg/pg_partman_bgw__dot__role":                    "pg/pg_partman_bgw.role",
			"pg/pg_stat_monitor__dot__pgsm_enable_query_plan": "pg/pg_stat_monitor.pgsm_enable_query_plan",
			"pg/pg_stat_monitor__dot__pgsm_max_buckets":       "pg/pg_stat_monitor.pgsm_max_buckets",
			"pg/pg_stat_statements__dot__track":               "pg/pg_stat_statements.track",
		},
		"redis": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
		"thanos": {
			"compactor/retention_days":                         "compactor/retention.days",
			"ip_filter_object":                                 "ip_filter",
			"ip_filter_string":                                 "ip_filter",
			"query/query_default_evaluation_interval":          "query/query.default-evaluation-interval",
			"query/query_lookback_delta":                       "query/query.lookback-delta",
			"query/query_metadata_default_time_range":          "query/query.metadata.default-time-range",
			"query/query_timeout":                              "query/query.timeout",
			"query/store_limits_request_samples":               "query/store.limits.request-samples",
			"query/store_limits_request_series":                "query/store.limits.request-series",
			"query_frontend":                                   "query-frontend",
			"query_frontend/query_range_align_range_with_step": "query-frontend/query-range.align-range-with-step",
			"receiver_ingesting":                               "receiver-ingesting",
			"receiver_routing":                                 "receiver-routing",
		},
		"valkey": {
			"ip_filter_object": "ip_filter",
			"ip_filter_string": "ip_filter",
		},
	}[kind]
}
func UserConfigTypes() []string {
	return []string{"alloydbomni", "cassandra", "clickhouse", "dragonfly", "flink", "grafana", "influxdb", "kafka", "kafka_connect", "kafka_mirrormaker", "m3aggregator", "m3db", "mysql", "opensearch", "pg", "redis", "thanos", "valkey"}
}
