/* * Licensed to ElasticSearch and Shay Banon under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. ElasticSearch 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.elasticsearch.node; import org.elasticsearch.client.Client; import org.elasticsearch.client.IngestClient; import org.elasticsearch.client.SearchClient; import org.elasticsearch.client.ClusterAdminClient; import org.elasticsearch.client.IndicesAdminClient; import org.elasticsearch.common.settings.Settings; /** * A node represent a node within a cluster (<tt>cluster.name</tt>). The {@link #client()} can be used * in order to use a {@link Client} to perform actions/operations against the cluster. * <p/> * <p>In order to create a node, the {@link NodeBuilder} can be used. When done with it, make sure to * call {@link #close()} on it. * * */ public interface Node { /** * The settings that were used to create the node. */ Settings settings(); /** * A universal client (for convenience, decorator for ingest/search/admin client) * */ Client client(); /** * An ingest client */ IngestClient ingestClient(); /** * A search client */ SearchClient searchClient(); /** * An cluster admin client */ ClusterAdminClient clusterAdminClient(); /** * An cluster admin client */ IndicesAdminClient indicesAdminClient(); /** * Start the node. If the node is already started, this method is no-op. */ Node start(); /** * Stops the node. If the node is already stopped, this method is no-op. */ Node stop(); /** * Closes the node (and {@link #stop}s if its running). */ void close(); /** * Returns <tt>true</tt> if the node is closed. */ boolean isClosed(); }