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

public class SolrConstants {

  public static final String REQUEST_ACTION = "action";
  public static final String REQUEST_NAME = "name";
  public static final String REQUEST_NUM_SHARDS = "numShards";
  public static final String REQUEST_REPLICATION_FACTOR = "replicationFactor";
  public static final String REQUEST_COLLECTION_CONFIG_NAME = "collection.configName";
  public static final String REQUEST_COLLECTIONS_PATH = "/admin/collections";
  public static final String RESPONSE_COLLECTIONS = "collections";
  public static final String SOLR_WRITER_NAME = "solr";
  public static final String SOLR_ZOOKEEPER = "solr.zookeeper";
}
