/**
 * Copyright 2022-2024 Centreon
 *
 * Licensed 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.
 *
 * For more information : contact@centreon.com
 */
syntax = "proto3";

import "common.proto";

package com.centreon.broker;

/* Ignore */
message Bbdo {
  uint32 major = 1;
  uint32 minor = 2;
  uint32 patch = 3;
}

/* io::bbdo, bbdo::de_welcome, 49 */
message Welcome {
  Bbdo version = 1;
  string extensions = 2;
  uint64 poller_id = 3;
  string poller_name = 4;
  /* Broker name is more relevant than poller name because for example on the
   * central, rrd broker, central broker and engine share the same poller name
   * that is 'Central'. */
  string broker_name = 5;
  com.centreon.common.PeerType peer_type = 6;
  bool extended_negotiation = 7;
}

/* io::bbdo, bbdo::de_pb_ack, 50 */
message Ack {
  uint32 acknowledged_events = 1;
}

/* io::bbdo, bbdo::de_pb_stop, 51 */
message Stop {
  uint64 poller_id = 1;
}

/* io::bbdo, bbdo::de_pb_engine_configuration, 52 */
message EngineConfiguration {
  uint64 poller_id = 1;    // Poller ID of the sender (Engine or Broker)
  string poller_name = 2;  // Poller name of the sender
  string broker_name = 3;  // Broker name of the sender
  com.centreon.common.PeerType peer_type =
      4;  // Peer type of the sender (Engine or Broker)
  string engine_config_version =
      5;  // Engine uses this to send the conf version
  bool need_update =
      6;  // Broker uses this to tell Engine if an update is needed
}
