/**
 * 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.
 */

export const ADD_DASHBOARD_QUERY = 'ADD_DASHBOARD_QUERY';

// dashboard
export const SET_CURRENT_INDEX = 'SET_CURRENT_INDEX';
export const SET_GLOBAL = 'SET_GLOBAL';
export const CLEAR_GLOBAL = 'CLEAR_GLOBAL';
export const SET_SERVICES = 'SET_SERVICES';
export const SET_DATABASES = 'SET_DATABASES';
export const SET_DATABASE_INFO = 'SET_DATABASE_INFO';
export const SET_CURRENT_DATABASE = 'SET_CURRENT_DATABASE';
export const SET_CURRENT_SERVICE = 'SET_CURRENT_SERVICE';
export const SET_SERVICE_INFO = 'SET_SERVICE_INFO';
export const SET_ENDPOINTS = 'SET_ENDPOINTS';
export const SET_CURRENT_ENDPOINT = 'SET_CURRENT_ENDPOINT';
export const SET_ENDPOINT_INFO = 'SET_ENDPOINT_INFO';
export const SET_INSTANCES = 'SET_INSTANCES';
export const SET_CURRENT_INSTANCE = 'SET_CURRENT_INSTANCE';
export const SET_INSTANCE_INFO = 'SET_INSTANCE_INFO';
export const SET_TEMPLATES = 'SET_TEMPLATES';
export const UPDATE_DASHBOARD = 'UPDATE_DASHBOARD';
export const SET_PAGE_TYPE = 'SET_PAGE_TYPE';
export const SET_ALL_ENDPOINT_EVENTS = 'SET_ALL_ENDPOINT_EVENTS';
export const SET_ALL_SERVICE_EVENTS = 'SET_ALL_SERVICE_EVENTS';
export const SET_ALL_INSTANCE_EVENTS = 'SET_ALL_INSTANCE_EVENTS';
export const SET_EVENTS_PAGE_TYPE = 'SET_EVENTS_PAGE_TYPE';
export const SET_CURRENT_SERIES_TYPE = 'SET_CURRENT_SERIES_TYPE';
export const SET_CLEAR_SELECTED_EVENTS = 'SET_CLEAR_SELECTED_EVENTS';
export const SET_SERVICE_DEPENDENCY = 'SET_SERVICE_DEPENDENCY';
export const SET_SERVICE_INSTANCE_DEPENDENCY = 'SET_SERVICE_INSTANCE_DEPENDENCY';
export const SET_ENDPOINT_DEPENDENCY = 'SET_ENDPOINT_DEPENDENCY';
export const SET_SELECTOR_ERRORS = 'SET_SELECTOR_ERRORS';
export const SET_DASHBOARD_ERRORS = 'SET_DASHBOARD_ERRORS';
export const SET_CURRENT_DEPENDENCY_ENDPOINT = 'SET_CURRENT_DEPENDENCY_ENDPOINT';

// comp
export const SET_CURRENT_GROUP = 'SET_CURRENT_GROUP';
export const SET_CURRENT_SERVICE_GROUP = 'SET_CURRENT_SERVICE_GROUP';
export const SET_CURRENT_GROUP_WITH_CURRENT = 'SET_CURRENT_GROUP_WITH_CURRENT';
export const SET_CURRENT_COMPS = 'SET_CURRENT_COMPS';
export const ADD_COMPS_GROUP = 'ADD_COMPS_GROUP';
export const IMPORT_TREE = 'IMPORT_TREE';
export const IMPORT_COMPS_TREE = 'IMPORT_COMPS_TREE';
export const ADD_COMPS_TREE = 'ADD_COMPS_TREE';
export const DELETE_COMPS_GROUP = 'DELETE_COMPS_GROUP';
export const DELETE_COMPS_TREE = 'DELETE_COMPS_TREE';
export const ADD_COMP = 'ADD_COMP';
export const DELETE_COMP = 'DELETE_COMP';
export const SET_COMPS_TREE = 'SET_COMPS_TREE';
export const SWICH_CURRENTCOMP = 'SWICH_CURRENTCOMP';
export const SET_GROUP_QUERY = 'SET_GROUP_QUERY';
export const EDIT_COMP_CONFIG = 'EDIT_COMP_CONFIG';
export const SET_COMPS_ID = 'SET_COMPS_ID';
export const SET_DASHBOARD_EVENTS = 'SET_DASHBOARD_EVENTS';
export const SET_CHECKED_EVENTS = 'SET_CHECKED_EVENTS';
export const SET_ENABLE_EVENTS = 'SET_ENABLE_EVENTS';
