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

{
  "groups": [
    {
      "name": "spring.shardingsphere.datasource",
      "type": "org.apache.shardingsphere.shardingjdbc.spring.boot.SpringBootConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.complex",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlHintShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.hint",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlHintShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.inline",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.standard",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.complex",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlHintShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.hint",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlHintShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.inline",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.standard",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration"
    }
  ],
  "properties": [
    {
      "name": "spring.shardingsphere.enabled",
      "type": "java.lang.Boolean",
      "description": "Whether enable shardingsphere or not.",
      "defaultValue": true
    },
    {
      "name": "spring.shardingsphere.props",
      "type": "java.util.Properties",
      "sourceType": "org.apache.shardingsphere.shardingjdbc.spring.boot.common.SpringBootPropertiesConfigurationProperties",
      "description": "Customize shardingsphere properties."
    },
    {
      "name": "spring.shardingsphere.datasource.names",
      "type": "java.lang.String",
      "sourceType": "org.apache.shardingsphere.shardingjdbc.spring.boot.SpringBootConfiguration"
    },
    {
      "name": "spring.shardingsphere.datasource",
      "type": "java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>>",
      "sourceType": "org.apache.shardingsphere.spring.boot.util.DataSourceUtil"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.complex",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.complex.algorithm-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.complex.sharding-columns",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.hint",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlHintShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlHintShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.hint.algorithm-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.inline",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.inline.algorithm-expression",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.inline.sharding-column",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.none",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlNoneShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.standard",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.standard.precise-algorithm-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.standard.range-algorithm-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-database-strategy.standard.sharding-column",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.complex",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.complex.algorithm-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlComplexShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.complex.sharding-columns",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.hint",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlHintShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlHintShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.hint.algorithm-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.inline",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.inline.algorithm-expression",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlInlineShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.inline.sharding-column",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.none",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlNoneShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.standard",
      "type": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.standard.precise-algorithm-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.standard.range-algorithm-class-name",
      "type": "java.lang.String"
    },
    {
      "sourceType": "org.apache.shardingsphere.core.yaml.config.sharding.strategy.YamlStandardShardingStrategyConfiguration",
      "name": "spring.shardingsphere.sharding.default-table-strategy.standard.sharding-column",
      "type": "java.lang.String"
    }
  ],
  "hints": [
    {
      "name": "spring.shardingsphere.datasource.keys",
      "values": []
    },
    {
      "name": "spring.shardingsphere.datasource.values",
      "values": [
      ],
      "providers": [
        {
          "name": "any"
        }
      ]
    }
  ]
}
