
org.elasticsearch.node.Node Maven / Gradle / Ivy
/*
* Licensed to Elasticsearch 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.common.lease.Releasable;
import org.elasticsearch.common.settings.Settings;
/**
* A node represent a node within a cluster (cluster.name). The {@link #client()} can be used
* in order to use a {@link Client} to perform actions/operations against the cluster.
*
* 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 extends Releasable {
/**
* The settings that were used to create the node.
*/
Settings settings();
/**
* A client that can be used to execute actions (operations) against the cluster.
*/
Client client();
/**
* 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 true if the node is closed.
*/
boolean isClosed();
}