// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
// @generated from file peerman.proto (package peerman, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file peerman.proto.
 */
export const file_peerman: GenFile = /*@__PURE__*/
  fileDesc("[encoded data, 12391 characters]");

/**
 * @generated from message peerman.Peer
 */
export type Peer = Message<"peerman.Peer"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string description = 3;
   */
  description: string;

  /**
   * @generated from field: int64 asn = 4;
   */
  asn: bigint;

  /**
   * @generated from field: int64 local_asn = 5;
   */
  localAsn: bigint;

  /**
   * WireGuard
   *
   * @generated from field: string wg_private_key = 6;
   */
  wgPrivateKey: string;

  /**
   * @generated from field: string wg_public_key = 7;
   */
  wgPublicKey: string;

  /**
   * @generated from field: string wg_remote_address = 8;
   */
  wgRemoteAddress: string;

  /**
   * @generated from field: uint32 wg_remote_port = 9;
   */
  wgRemotePort: number;

  /**
   * @generated from field: uint32 wg_listen_port = 10;
   */
  wgListenPort: number;

  /**
   * @generated from field: string wg_interface_name = 11;
   */
  wgInterfaceName: string;

  /**
   * Tunnel addressing
   *
   * @generated from field: string ipv4_tunnel_local = 12;
   */
  ipv4TunnelLocal: string;

  /**
   * @generated from field: string ipv4_tunnel_remote = 13;
   */
  ipv4TunnelRemote: string;

  /**
   * @generated from field: string ipv6_tunnel_local = 14;
   */
  ipv6TunnelLocal: string;

  /**
   * @generated from field: string ipv6_tunnel_remote = 15;
   */
  ipv6TunnelRemote: string;

  /**
   * BGP session
   *
   * @generated from field: bool multiprotocol = 16;
   */
  multiprotocol: boolean;

  /**
   * @generated from field: bool extended_nexthop = 17;
   */
  extendedNexthop: boolean;

  /**
   * @generated from field: peerman.SessionProtocol sessions = 18;
   */
  sessions: SessionProtocol;

  /**
   * @generated from field: bool passive = 19;
   */
  passive: boolean;

  /**
   * @generated from field: int32 import_max_prefix = 20;
   */
  importMaxPrefix: number;

  /**
   * @generated from field: int32 export_max_prefix = 21;
   */
  exportMaxPrefix: number;

  /**
   * Metadata
   *
   * @generated from field: bool enabled = 22;
   */
  enabled: boolean;

  /**
   * @generated from field: string created_at = 23;
   */
  createdAt: string;

  /**
   * @generated from field: string updated_at = 24;
   */
  updatedAt: string;

  /**
   * Cluster
   *
   * @generated from field: string origin_node_id = 25;
   */
  originNodeId: string;
};

/**
 * Describes the message peerman.Peer.
 * Use `create(PeerSchema)` to create a new message.
 */
export const PeerSchema: GenMessage<Peer> = /*@__PURE__*/
  messageDesc(file_peerman, 0);

/**
 * @generated from message peerman.Settings
 */
export type Settings = Message<"peerman.Settings"> & {
  /**
   * @generated from field: int64 local_asn = 1;
   */
  localAsn: bigint;

  /**
   * @generated from field: string bird_template_name = 2;
   */
  birdTemplateName: string;

  /**
   * @generated from field: string bird_router_id = 3;
   */
  birdRouterId: string;

  /**
   * @generated from field: uint32 wg_default_listen_port = 4;
   */
  wgDefaultListenPort: number;

  /**
   * @generated from field: string dn42_ipv4_prefix = 5;
   */
  dn42Ipv4Prefix: string;

  /**
   * @generated from field: string dn42_ipv6_prefix = 6;
   */
  dn42Ipv6Prefix: string;

  /**
   * @generated from field: string wg_table = 7;
   */
  wgTable: string;

  /**
   * WireGuard advanced
   *
   * @generated from field: uint32 wg_mtu = 8;
   */
  wgMtu: number;

  /**
   * @generated from field: uint32 wg_fwmark = 9;
   */
  wgFwmark: number;

  /**
   * @generated from field: string wg_post_up = 10;
   */
  wgPostUp: string;

  /**
   * @generated from field: string wg_post_down = 11;
   */
  wgPostDown: string;

  /**
   * ROA/RPKI
   *
   * @generated from field: string roa_mode = 12;
   */
  roaMode: string;

  /**
   * @generated from field: string roa_static_v4_url = 13;
   */
  roaStaticV4Url: string;

  /**
   * @generated from field: string roa_static_v6_url = 14;
   */
  roaStaticV6Url: string;

  /**
   * @generated from field: string roa_rtr_address = 15;
   */
  roaRtrAddress: string;

  /**
   * @generated from field: uint32 roa_rtr_port = 16;
   */
  roaRtrPort: number;

  /**
   * BIRD filter
   *
   * @generated from field: uint32 bird_import_limit = 17;
   */
  birdImportLimit: number;

  /**
   * @generated from field: string bird_export_filter = 18;
   */
  birdExportFilter: string;

  /**
   * @generated from field: string bird_import_filter = 19;
   */
  birdImportFilter: string;

  /**
   * Community filters
   *
   * @generated from field: bool enable_community_filters = 20;
   */
  enableCommunityFilters: boolean;

  /**
   * BFD
   *
   * @generated from field: bool enable_bfd = 21;
   */
  enableBfd: boolean;

  /**
   * @generated from field: uint32 bfd_interval_ms = 22;
   */
  bfdIntervalMs: number;

  /**
   * @generated from field: uint32 bfd_multiplier = 23;
   */
  bfdMultiplier: number;

  /**
   * Cluster IPv6
   *
   * @generated from field: string cluster_tunnel_ipv6_range = 24;
   */
  clusterTunnelIpv6Range: string;
};

/**
 * Describes the message peerman.Settings.
 * Use `create(SettingsSchema)` to create a new message.
 */
export const SettingsSchema: GenMessage<Settings> = /*@__PURE__*/
  messageDesc(file_peerman, 1);

/**
 * @generated from message peerman.ListPeersRequest
 */
export type ListPeersRequest = Message<"peerman.ListPeersRequest"> & {
};

/**
 * Describes the message peerman.ListPeersRequest.
 * Use `create(ListPeersRequestSchema)` to create a new message.
 */
export const ListPeersRequestSchema: GenMessage<ListPeersRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 2);

/**
 * @generated from message peerman.ListPeersResponse
 */
export type ListPeersResponse = Message<"peerman.ListPeersResponse"> & {
  /**
   * @generated from field: repeated peerman.Peer peers = 1;
   */
  peers: Peer[];
};

/**
 * Describes the message peerman.ListPeersResponse.
 * Use `create(ListPeersResponseSchema)` to create a new message.
 */
export const ListPeersResponseSchema: GenMessage<ListPeersResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 3);

/**
 * @generated from message peerman.GetPeerRequest
 */
export type GetPeerRequest = Message<"peerman.GetPeerRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;
};

/**
 * Describes the message peerman.GetPeerRequest.
 * Use `create(GetPeerRequestSchema)` to create a new message.
 */
export const GetPeerRequestSchema: GenMessage<GetPeerRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 4);

/**
 * @generated from message peerman.CreatePeerRequest
 */
export type CreatePeerRequest = Message<"peerman.CreatePeerRequest"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: string description = 2;
   */
  description: string;

  /**
   * @generated from field: int64 asn = 3;
   */
  asn: bigint;

  /**
   * @generated from field: int64 local_asn = 4;
   */
  localAsn: bigint;

  /**
   * @generated from field: string wg_private_key = 5;
   */
  wgPrivateKey: string;

  /**
   * @generated from field: string wg_public_key = 6;
   */
  wgPublicKey: string;

  /**
   * @generated from field: string wg_remote_address = 7;
   */
  wgRemoteAddress: string;

  /**
   * @generated from field: uint32 wg_remote_port = 8;
   */
  wgRemotePort: number;

  /**
   * @generated from field: uint32 wg_listen_port = 9;
   */
  wgListenPort: number;

  /**
   * @generated from field: string wg_interface_name = 10;
   */
  wgInterfaceName: string;

  /**
   * @generated from field: string ipv4_tunnel_local = 11;
   */
  ipv4TunnelLocal: string;

  /**
   * @generated from field: string ipv4_tunnel_remote = 12;
   */
  ipv4TunnelRemote: string;

  /**
   * @generated from field: string ipv6_tunnel_local = 13;
   */
  ipv6TunnelLocal: string;

  /**
   * @generated from field: string ipv6_tunnel_remote = 14;
   */
  ipv6TunnelRemote: string;

  /**
   * @generated from field: bool multiprotocol = 15;
   */
  multiprotocol: boolean;

  /**
   * @generated from field: bool extended_nexthop = 16;
   */
  extendedNexthop: boolean;

  /**
   * @generated from field: peerman.SessionProtocol sessions = 17;
   */
  sessions: SessionProtocol;

  /**
   * @generated from field: bool passive = 18;
   */
  passive: boolean;

  /**
   * @generated from field: int32 import_max_prefix = 19;
   */
  importMaxPrefix: number;

  /**
   * @generated from field: int32 export_max_prefix = 20;
   */
  exportMaxPrefix: number;

  /**
   * @generated from field: string origin_node_id = 21;
   */
  originNodeId: string;
};

/**
 * Describes the message peerman.CreatePeerRequest.
 * Use `create(CreatePeerRequestSchema)` to create a new message.
 */
export const CreatePeerRequestSchema: GenMessage<CreatePeerRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 5);

/**
 * @generated from message peerman.UpdatePeerRequest
 */
export type UpdatePeerRequest = Message<"peerman.UpdatePeerRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string description = 3;
   */
  description: string;

  /**
   * @generated from field: int64 asn = 4;
   */
  asn: bigint;

  /**
   * @generated from field: int64 local_asn = 5;
   */
  localAsn: bigint;

  /**
   * @generated from field: string wg_private_key = 6;
   */
  wgPrivateKey: string;

  /**
   * @generated from field: string wg_public_key = 7;
   */
  wgPublicKey: string;

  /**
   * @generated from field: string wg_remote_address = 8;
   */
  wgRemoteAddress: string;

  /**
   * @generated from field: uint32 wg_remote_port = 9;
   */
  wgRemotePort: number;

  /**
   * @generated from field: uint32 wg_listen_port = 10;
   */
  wgListenPort: number;

  /**
   * @generated from field: string wg_interface_name = 11;
   */
  wgInterfaceName: string;

  /**
   * @generated from field: string ipv4_tunnel_local = 12;
   */
  ipv4TunnelLocal: string;

  /**
   * @generated from field: string ipv4_tunnel_remote = 13;
   */
  ipv4TunnelRemote: string;

  /**
   * @generated from field: string ipv6_tunnel_local = 14;
   */
  ipv6TunnelLocal: string;

  /**
   * @generated from field: string ipv6_tunnel_remote = 15;
   */
  ipv6TunnelRemote: string;

  /**
   * @generated from field: bool multiprotocol = 16;
   */
  multiprotocol: boolean;

  /**
   * @generated from field: bool extended_nexthop = 17;
   */
  extendedNexthop: boolean;

  /**
   * @generated from field: peerman.SessionProtocol sessions = 18;
   */
  sessions: SessionProtocol;

  /**
   * @generated from field: bool passive = 19;
   */
  passive: boolean;

  /**
   * @generated from field: int32 import_max_prefix = 20;
   */
  importMaxPrefix: number;

  /**
   * @generated from field: int32 export_max_prefix = 21;
   */
  exportMaxPrefix: number;

  /**
   * @generated from field: string origin_node_id = 22;
   */
  originNodeId: string;
};

/**
 * Describes the message peerman.UpdatePeerRequest.
 * Use `create(UpdatePeerRequestSchema)` to create a new message.
 */
export const UpdatePeerRequestSchema: GenMessage<UpdatePeerRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 6);

/**
 * @generated from message peerman.DeletePeerRequest
 */
export type DeletePeerRequest = Message<"peerman.DeletePeerRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;
};

/**
 * Describes the message peerman.DeletePeerRequest.
 * Use `create(DeletePeerRequestSchema)` to create a new message.
 */
export const DeletePeerRequestSchema: GenMessage<DeletePeerRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 7);

/**
 * @generated from message peerman.DeletePeerResponse
 */
export type DeletePeerResponse = Message<"peerman.DeletePeerResponse"> & {
};

/**
 * Describes the message peerman.DeletePeerResponse.
 * Use `create(DeletePeerResponseSchema)` to create a new message.
 */
export const DeletePeerResponseSchema: GenMessage<DeletePeerResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 8);

/**
 * @generated from message peerman.TogglePeerRequest
 */
export type TogglePeerRequest = Message<"peerman.TogglePeerRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;
};

/**
 * Describes the message peerman.TogglePeerRequest.
 * Use `create(TogglePeerRequestSchema)` to create a new message.
 */
export const TogglePeerRequestSchema: GenMessage<TogglePeerRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 9);

/**
 * @generated from message peerman.GenerateKeypairRequest
 */
export type GenerateKeypairRequest = Message<"peerman.GenerateKeypairRequest"> & {
};

/**
 * Describes the message peerman.GenerateKeypairRequest.
 * Use `create(GenerateKeypairRequestSchema)` to create a new message.
 */
export const GenerateKeypairRequestSchema: GenMessage<GenerateKeypairRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 10);

/**
 * @generated from message peerman.GenerateKeypairResponse
 */
export type GenerateKeypairResponse = Message<"peerman.GenerateKeypairResponse"> & {
  /**
   * @generated from field: string private_key = 1;
   */
  privateKey: string;

  /**
   * @generated from field: string public_key = 2;
   */
  publicKey: string;
};

/**
 * Describes the message peerman.GenerateKeypairResponse.
 * Use `create(GenerateKeypairResponseSchema)` to create a new message.
 */
export const GenerateKeypairResponseSchema: GenMessage<GenerateKeypairResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 11);

/**
 * @generated from message peerman.GetConfigRequest
 */
export type GetConfigRequest = Message<"peerman.GetConfigRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;
};

/**
 * Describes the message peerman.GetConfigRequest.
 * Use `create(GetConfigRequestSchema)` to create a new message.
 */
export const GetConfigRequestSchema: GenMessage<GetConfigRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 12);

/**
 * @generated from message peerman.ConfigResponse
 */
export type ConfigResponse = Message<"peerman.ConfigResponse"> & {
  /**
   * @generated from field: string content = 1;
   */
  content: string;
};

/**
 * Describes the message peerman.ConfigResponse.
 * Use `create(ConfigResponseSchema)` to create a new message.
 */
export const ConfigResponseSchema: GenMessage<ConfigResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 13);

/**
 * @generated from message peerman.ExportAllRequest
 */
export type ExportAllRequest = Message<"peerman.ExportAllRequest"> & {
};

/**
 * Describes the message peerman.ExportAllRequest.
 * Use `create(ExportAllRequestSchema)` to create a new message.
 */
export const ExportAllRequestSchema: GenMessage<ExportAllRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 14);

/**
 * @generated from message peerman.RestartWireGuardRequest
 */
export type RestartWireGuardRequest = Message<"peerman.RestartWireGuardRequest"> & {
  /**
   * @generated from field: string interface_name = 1;
   */
  interfaceName: string;
};

/**
 * Describes the message peerman.RestartWireGuardRequest.
 * Use `create(RestartWireGuardRequestSchema)` to create a new message.
 */
export const RestartWireGuardRequestSchema: GenMessage<RestartWireGuardRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 15);

/**
 * @generated from message peerman.RestartWireGuardResponse
 */
export type RestartWireGuardResponse = Message<"peerman.RestartWireGuardResponse"> & {
};

/**
 * Describes the message peerman.RestartWireGuardResponse.
 * Use `create(RestartWireGuardResponseSchema)` to create a new message.
 */
export const RestartWireGuardResponseSchema: GenMessage<RestartWireGuardResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 16);

/**
 * @generated from message peerman.GetSettingsRequest
 */
export type GetSettingsRequest = Message<"peerman.GetSettingsRequest"> & {
};

/**
 * Describes the message peerman.GetSettingsRequest.
 * Use `create(GetSettingsRequestSchema)` to create a new message.
 */
export const GetSettingsRequestSchema: GenMessage<GetSettingsRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 17);

/**
 * @generated from message peerman.SaveSettingsRequest
 */
export type SaveSettingsRequest = Message<"peerman.SaveSettingsRequest"> & {
  /**
   * @generated from field: peerman.Settings settings = 1;
   */
  settings?: Settings | undefined;
};

/**
 * Describes the message peerman.SaveSettingsRequest.
 * Use `create(SaveSettingsRequestSchema)` to create a new message.
 */
export const SaveSettingsRequestSchema: GenMessage<SaveSettingsRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 18);

/**
 * @generated from message peerman.Node
 */
export type Node = Message<"peerman.Node"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string listen_addr = 3;
   */
  listenAddr: string;

  /**
   * @generated from field: int64 local_asn = 4;
   */
  localAsn: bigint;

  /**
   * @generated from field: string description = 5;
   */
  description: string;

  /**
   * @generated from field: bool online = 6;
   */
  online: boolean;

  /**
   * @generated from field: string last_seen_at = 7;
   */
  lastSeenAt: string;

  /**
   * @generated from field: string created_at = 8;
   */
  createdAt: string;

  /**
   * @generated from field: string updated_at = 9;
   */
  updatedAt: string;
};

/**
 * Describes the message peerman.Node.
 * Use `create(NodeSchema)` to create a new message.
 */
export const NodeSchema: GenMessage<Node> = /*@__PURE__*/
  messageDesc(file_peerman, 19);

/**
 * @generated from message peerman.ProbeResult
 */
export type ProbeResult = Message<"peerman.ProbeResult"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string from_node_id = 2;
   */
  fromNodeId: string;

  /**
   * @generated from field: string to_node_id = 3;
   */
  toNodeId: string;

  /**
   * @generated from field: double avg_latency_ms = 4;
   */
  avgLatencyMs: number;

  /**
   * @generated from field: double min_latency_ms = 5;
   */
  minLatencyMs: number;

  /**
   * @generated from field: double max_latency_ms = 6;
   */
  maxLatencyMs: number;

  /**
   * @generated from field: double packet_loss_pct = 7;
   */
  packetLossPct: number;

  /**
   * @generated from field: int32 packets_sent = 8;
   */
  packetsSent: number;

  /**
   * @generated from field: int32 packets_received = 9;
   */
  packetsReceived: number;

  /**
   * @generated from field: string probed_at = 10;
   */
  probedAt: string;
};

/**
 * Describes the message peerman.ProbeResult.
 * Use `create(ProbeResultSchema)` to create a new message.
 */
export const ProbeResultSchema: GenMessage<ProbeResult> = /*@__PURE__*/
  messageDesc(file_peerman, 20);

/**
 * @generated from message peerman.CommunityRule
 */
export type CommunityRule = Message<"peerman.CommunityRule"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string description = 2;
   */
  description: string;

  /**
   * @generated from field: double max_latency_ms = 3;
   */
  maxLatencyMs: number;

  /**
   * @generated from field: double max_packet_loss_pct = 4;
   */
  maxPacketLossPct: number;

  /**
   * @generated from field: string community_ipv4 = 5;
   */
  communityIpv4: string;

  /**
   * @generated from field: string community_ipv6 = 6;
   */
  communityIpv6: string;

  /**
   * @generated from field: bool enabled = 7;
   */
  enabled: boolean;

  /**
   * @generated from field: double min_bandwidth_mbps = 8;
   */
  minBandwidthMbps: number;

  /**
   * @generated from field: int32 crypto_weight = 9;
   */
  cryptoWeight: number;

  /**
   * @generated from field: int32 med_penalty = 10;
   */
  medPenalty: number;
};

/**
 * Describes the message peerman.CommunityRule.
 * Use `create(CommunityRuleSchema)` to create a new message.
 */
export const CommunityRuleSchema: GenMessage<CommunityRule> = /*@__PURE__*/
  messageDesc(file_peerman, 21);

/**
 * Node CRUD
 *
 * @generated from message peerman.ListNodesRequest
 */
export type ListNodesRequest = Message<"peerman.ListNodesRequest"> & {
};

/**
 * Describes the message peerman.ListNodesRequest.
 * Use `create(ListNodesRequestSchema)` to create a new message.
 */
export const ListNodesRequestSchema: GenMessage<ListNodesRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 22);

/**
 * @generated from message peerman.ListNodesResponse
 */
export type ListNodesResponse = Message<"peerman.ListNodesResponse"> & {
  /**
   * @generated from field: repeated peerman.Node nodes = 1;
   */
  nodes: Node[];
};

/**
 * Describes the message peerman.ListNodesResponse.
 * Use `create(ListNodesResponseSchema)` to create a new message.
 */
export const ListNodesResponseSchema: GenMessage<ListNodesResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 23);

/**
 * @generated from message peerman.RegisterNodeRequest
 */
export type RegisterNodeRequest = Message<"peerman.RegisterNodeRequest"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: string listen_addr = 2;
   */
  listenAddr: string;

  /**
   * @generated from field: int64 local_asn = 3;
   */
  localAsn: bigint;

  /**
   * @generated from field: string description = 4;
   */
  description: string;
};

/**
 * Describes the message peerman.RegisterNodeRequest.
 * Use `create(RegisterNodeRequestSchema)` to create a new message.
 */
export const RegisterNodeRequestSchema: GenMessage<RegisterNodeRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 24);

/**
 * @generated from message peerman.UpdateNodeRequest
 */
export type UpdateNodeRequest = Message<"peerman.UpdateNodeRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string listen_addr = 3;
   */
  listenAddr: string;

  /**
   * @generated from field: int64 local_asn = 4;
   */
  localAsn: bigint;

  /**
   * @generated from field: string description = 5;
   */
  description: string;
};

/**
 * Describes the message peerman.UpdateNodeRequest.
 * Use `create(UpdateNodeRequestSchema)` to create a new message.
 */
export const UpdateNodeRequestSchema: GenMessage<UpdateNodeRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 25);

/**
 * @generated from message peerman.DeleteNodeRequest
 */
export type DeleteNodeRequest = Message<"peerman.DeleteNodeRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;
};

/**
 * Describes the message peerman.DeleteNodeRequest.
 * Use `create(DeleteNodeRequestSchema)` to create a new message.
 */
export const DeleteNodeRequestSchema: GenMessage<DeleteNodeRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 26);

/**
 * @generated from message peerman.DeleteNodeResponse
 */
export type DeleteNodeResponse = Message<"peerman.DeleteNodeResponse"> & {
};

/**
 * Describes the message peerman.DeleteNodeResponse.
 * Use `create(DeleteNodeResponseSchema)` to create a new message.
 */
export const DeleteNodeResponseSchema: GenMessage<DeleteNodeResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 27);

/**
 * Sync
 *
 * @generated from message peerman.PushPeerRequest
 */
export type PushPeerRequest = Message<"peerman.PushPeerRequest"> & {
  /**
   * @generated from field: peerman.Peer peer = 1;
   */
  peer?: Peer | undefined;

  /**
   * @generated from field: string origin_node_id = 2;
   */
  originNodeId: string;
};

/**
 * Describes the message peerman.PushPeerRequest.
 * Use `create(PushPeerRequestSchema)` to create a new message.
 */
export const PushPeerRequestSchema: GenMessage<PushPeerRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 28);

/**
 * @generated from message peerman.PushPeerResponse
 */
export type PushPeerResponse = Message<"peerman.PushPeerResponse"> & {
};

/**
 * Describes the message peerman.PushPeerResponse.
 * Use `create(PushPeerResponseSchema)` to create a new message.
 */
export const PushPeerResponseSchema: GenMessage<PushPeerResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 29);

/**
 * @generated from message peerman.PullPeersRequest
 */
export type PullPeersRequest = Message<"peerman.PullPeersRequest"> & {
  /**
   * @generated from field: string since = 1;
   */
  since: string;
};

/**
 * Describes the message peerman.PullPeersRequest.
 * Use `create(PullPeersRequestSchema)` to create a new message.
 */
export const PullPeersRequestSchema: GenMessage<PullPeersRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 30);

/**
 * @generated from message peerman.PullPeersResponse
 */
export type PullPeersResponse = Message<"peerman.PullPeersResponse"> & {
  /**
   * @generated from field: repeated peerman.Peer peers = 1;
   */
  peers: Peer[];
};

/**
 * Describes the message peerman.PullPeersResponse.
 * Use `create(PullPeersResponseSchema)` to create a new message.
 */
export const PullPeersResponseSchema: GenMessage<PullPeersResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 31);

/**
 * @generated from message peerman.PushProbeResultRequest
 */
export type PushProbeResultRequest = Message<"peerman.PushProbeResultRequest"> & {
  /**
   * @generated from field: peerman.ProbeResult result = 1;
   */
  result?: ProbeResult | undefined;
};

/**
 * Describes the message peerman.PushProbeResultRequest.
 * Use `create(PushProbeResultRequestSchema)` to create a new message.
 */
export const PushProbeResultRequestSchema: GenMessage<PushProbeResultRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 32);

/**
 * @generated from message peerman.PushProbeResultResponse
 */
export type PushProbeResultResponse = Message<"peerman.PushProbeResultResponse"> & {
};

/**
 * Describes the message peerman.PushProbeResultResponse.
 * Use `create(PushProbeResultResponseSchema)` to create a new message.
 */
export const PushProbeResultResponseSchema: GenMessage<PushProbeResultResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 33);

/**
 * Probe
 *
 * @generated from message peerman.ListProbeResultsRequest
 */
export type ListProbeResultsRequest = Message<"peerman.ListProbeResultsRequest"> & {
  /**
   * @generated from field: string from_node_id = 1;
   */
  fromNodeId: string;

  /**
   * @generated from field: string to_node_id = 2;
   */
  toNodeId: string;

  /**
   * @generated from field: int32 limit = 3;
   */
  limit: number;
};

/**
 * Describes the message peerman.ListProbeResultsRequest.
 * Use `create(ListProbeResultsRequestSchema)` to create a new message.
 */
export const ListProbeResultsRequestSchema: GenMessage<ListProbeResultsRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 34);

/**
 * @generated from message peerman.ListProbeResultsResponse
 */
export type ListProbeResultsResponse = Message<"peerman.ListProbeResultsResponse"> & {
  /**
   * @generated from field: repeated peerman.ProbeResult results = 1;
   */
  results: ProbeResult[];
};

/**
 * Describes the message peerman.ListProbeResultsResponse.
 * Use `create(ListProbeResultsResponseSchema)` to create a new message.
 */
export const ListProbeResultsResponseSchema: GenMessage<ListProbeResultsResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 35);

/**
 * @generated from message peerman.RunProbeRequest
 */
export type RunProbeRequest = Message<"peerman.RunProbeRequest"> & {
  /**
   * @generated from field: string from_node_id = 1;
   */
  fromNodeId: string;

  /**
   * @generated from field: string to_node_id = 2;
   */
  toNodeId: string;
};

/**
 * Describes the message peerman.RunProbeRequest.
 * Use `create(RunProbeRequestSchema)` to create a new message.
 */
export const RunProbeRequestSchema: GenMessage<RunProbeRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 36);

/**
 * @generated from message peerman.RunProbeResponse
 */
export type RunProbeResponse = Message<"peerman.RunProbeResponse"> & {
  /**
   * @generated from field: peerman.ProbeResult result = 1;
   */
  result?: ProbeResult | undefined;
};

/**
 * Describes the message peerman.RunProbeResponse.
 * Use `create(RunProbeResponseSchema)` to create a new message.
 */
export const RunProbeResponseSchema: GenMessage<RunProbeResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 37);

/**
 * Community
 *
 * @generated from message peerman.ListCommunityRulesRequest
 */
export type ListCommunityRulesRequest = Message<"peerman.ListCommunityRulesRequest"> & {
};

/**
 * Describes the message peerman.ListCommunityRulesRequest.
 * Use `create(ListCommunityRulesRequestSchema)` to create a new message.
 */
export const ListCommunityRulesRequestSchema: GenMessage<ListCommunityRulesRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 38);

/**
 * @generated from message peerman.ListCommunityRulesResponse
 */
export type ListCommunityRulesResponse = Message<"peerman.ListCommunityRulesResponse"> & {
  /**
   * @generated from field: repeated peerman.CommunityRule rules = 1;
   */
  rules: CommunityRule[];
};

/**
 * Describes the message peerman.ListCommunityRulesResponse.
 * Use `create(ListCommunityRulesResponseSchema)` to create a new message.
 */
export const ListCommunityRulesResponseSchema: GenMessage<ListCommunityRulesResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 39);

/**
 * @generated from message peerman.SaveCommunityRuleRequest
 */
export type SaveCommunityRuleRequest = Message<"peerman.SaveCommunityRuleRequest"> & {
  /**
   * @generated from field: peerman.CommunityRule rule = 1;
   */
  rule?: CommunityRule | undefined;
};

/**
 * Describes the message peerman.SaveCommunityRuleRequest.
 * Use `create(SaveCommunityRuleRequestSchema)` to create a new message.
 */
export const SaveCommunityRuleRequestSchema: GenMessage<SaveCommunityRuleRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 40);

/**
 * @generated from message peerman.DeleteCommunityRuleRequest
 */
export type DeleteCommunityRuleRequest = Message<"peerman.DeleteCommunityRuleRequest"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;
};

/**
 * Describes the message peerman.DeleteCommunityRuleRequest.
 * Use `create(DeleteCommunityRuleRequestSchema)` to create a new message.
 */
export const DeleteCommunityRuleRequestSchema: GenMessage<DeleteCommunityRuleRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 41);

/**
 * @generated from message peerman.DeleteCommunityRuleResponse
 */
export type DeleteCommunityRuleResponse = Message<"peerman.DeleteCommunityRuleResponse"> & {
};

/**
 * Describes the message peerman.DeleteCommunityRuleResponse.
 * Use `create(DeleteCommunityRuleResponseSchema)` to create a new message.
 */
export const DeleteCommunityRuleResponseSchema: GenMessage<DeleteCommunityRuleResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 42);

/**
 * @generated from message peerman.GetPeerCommunitiesRequest
 */
export type GetPeerCommunitiesRequest = Message<"peerman.GetPeerCommunitiesRequest"> & {
  /**
   * @generated from field: string peer_id = 1;
   */
  peerId: string;
};

/**
 * Describes the message peerman.GetPeerCommunitiesRequest.
 * Use `create(GetPeerCommunitiesRequestSchema)` to create a new message.
 */
export const GetPeerCommunitiesRequestSchema: GenMessage<GetPeerCommunitiesRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 43);

/**
 * @generated from message peerman.GetPeerCommunitiesResponse
 */
export type GetPeerCommunitiesResponse = Message<"peerman.GetPeerCommunitiesResponse"> & {
  /**
   * @generated from field: repeated string community_ipv4 = 1;
   */
  communityIpv4: string[];

  /**
   * @generated from field: repeated string community_ipv6 = 2;
   */
  communityIpv6: string[];
};

/**
 * Describes the message peerman.GetPeerCommunitiesResponse.
 * Use `create(GetPeerCommunitiesResponseSchema)` to create a new message.
 */
export const GetPeerCommunitiesResponseSchema: GenMessage<GetPeerCommunitiesResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 44);

/**
 * @generated from message peerman.NodeInfo
 */
export type NodeInfo = Message<"peerman.NodeInfo"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: string listen_addr = 2;
   */
  listenAddr: string;

  /**
   * @generated from field: int64 local_asn = 3;
   */
  localAsn: bigint;

  /**
   * @generated from field: string description = 4;
   */
  description: string;

  /**
   * @generated from field: string last_seen_at = 5;
   */
  lastSeenAt: string;

  /**
   * @generated from field: string wg_public_key = 6;
   */
  wgPublicKey: string;

  /**
   * @generated from field: string tunnel_ip = 7;
   */
  tunnelIp: string;

  /**
   * @generated from field: string tunnel_ipv6 = 8;
   */
  tunnelIpv6: string;
};

/**
 * Describes the message peerman.NodeInfo.
 * Use `create(NodeInfoSchema)` to create a new message.
 */
export const NodeInfoSchema: GenMessage<NodeInfo> = /*@__PURE__*/
  messageDesc(file_peerman, 45);

/**
 * @generated from message peerman.ExchangeNodesRequest
 */
export type ExchangeNodesRequest = Message<"peerman.ExchangeNodesRequest"> & {
  /**
   * @generated from field: repeated peerman.NodeInfo nodes = 1;
   */
  nodes: NodeInfo[];
};

/**
 * Describes the message peerman.ExchangeNodesRequest.
 * Use `create(ExchangeNodesRequestSchema)` to create a new message.
 */
export const ExchangeNodesRequestSchema: GenMessage<ExchangeNodesRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 46);

/**
 * @generated from message peerman.ExchangeNodesResponse
 */
export type ExchangeNodesResponse = Message<"peerman.ExchangeNodesResponse"> & {
  /**
   * @generated from field: repeated peerman.NodeInfo nodes = 1;
   */
  nodes: NodeInfo[];
};

/**
 * Describes the message peerman.ExchangeNodesResponse.
 * Use `create(ExchangeNodesResponseSchema)` to create a new message.
 */
export const ExchangeNodesResponseSchema: GenMessage<ExchangeNodesResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 47);

/**
 * @generated from message peerman.HealthCheckRequest
 */
export type HealthCheckRequest = Message<"peerman.HealthCheckRequest"> & {
};

/**
 * Describes the message peerman.HealthCheckRequest.
 * Use `create(HealthCheckRequestSchema)` to create a new message.
 */
export const HealthCheckRequestSchema: GenMessage<HealthCheckRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 48);

/**
 * @generated from message peerman.HealthCheckResponse
 */
export type HealthCheckResponse = Message<"peerman.HealthCheckResponse"> & {
  /**
   * @generated from field: bool ok = 1;
   */
  ok: boolean;
};

/**
 * Describes the message peerman.HealthCheckResponse.
 * Use `create(HealthCheckResponseSchema)` to create a new message.
 */
export const HealthCheckResponseSchema: GenMessage<HealthCheckResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 49);

/**
 * @generated from message peerman.ExecuteCommandRequest
 */
export type ExecuteCommandRequest = Message<"peerman.ExecuteCommandRequest"> & {
  /**
   * @generated from field: string command = 1;
   */
  command: string;

  /**
   * @generated from field: string target_node_id = 2;
   */
  targetNodeId: string;
};

/**
 * Describes the message peerman.ExecuteCommandRequest.
 * Use `create(ExecuteCommandRequestSchema)` to create a new message.
 */
export const ExecuteCommandRequestSchema: GenMessage<ExecuteCommandRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 50);

/**
 * @generated from message peerman.ExecuteCommandResponse
 */
export type ExecuteCommandResponse = Message<"peerman.ExecuteCommandResponse"> & {
  /**
   * @generated from field: repeated peerman.NodeBirdResult results = 1;
   */
  results: NodeBirdResult[];
};

/**
 * Describes the message peerman.ExecuteCommandResponse.
 * Use `create(ExecuteCommandResponseSchema)` to create a new message.
 */
export const ExecuteCommandResponseSchema: GenMessage<ExecuteCommandResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 51);

/**
 * @generated from message peerman.NodeBirdResult
 */
export type NodeBirdResult = Message<"peerman.NodeBirdResult"> & {
  /**
   * @generated from field: string node_id = 1;
   */
  nodeId: string;

  /**
   * @generated from field: string node_name = 2;
   */
  nodeName: string;

  /**
   * @generated from field: string output = 3;
   */
  output: string;

  /**
   * @generated from field: int32 status_code = 4;
   */
  statusCode: number;

  /**
   * @generated from field: string error = 5;
   */
  error: string;
};

/**
 * Describes the message peerman.NodeBirdResult.
 * Use `create(NodeBirdResultSchema)` to create a new message.
 */
export const NodeBirdResultSchema: GenMessage<NodeBirdResult> = /*@__PURE__*/
  messageDesc(file_peerman, 52);

/**
 * @generated from message peerman.RunTracerouteRequest
 */
export type RunTracerouteRequest = Message<"peerman.RunTracerouteRequest"> & {
  /**
   * @generated from field: string target = 1;
   */
  target: string;

  /**
   * @generated from field: string target_node_id = 2;
   */
  targetNodeId: string;
};

/**
 * Describes the message peerman.RunTracerouteRequest.
 * Use `create(RunTracerouteRequestSchema)` to create a new message.
 */
export const RunTracerouteRequestSchema: GenMessage<RunTracerouteRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 53);

/**
 * @generated from message peerman.RunTracerouteResponse
 */
export type RunTracerouteResponse = Message<"peerman.RunTracerouteResponse"> & {
  /**
   * @generated from field: repeated peerman.NodeTracerouteResult results = 1;
   */
  results: NodeTracerouteResult[];
};

/**
 * Describes the message peerman.RunTracerouteResponse.
 * Use `create(RunTracerouteResponseSchema)` to create a new message.
 */
export const RunTracerouteResponseSchema: GenMessage<RunTracerouteResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 54);

/**
 * @generated from message peerman.NodeTracerouteResult
 */
export type NodeTracerouteResult = Message<"peerman.NodeTracerouteResult"> & {
  /**
   * @generated from field: string node_id = 1;
   */
  nodeId: string;

  /**
   * @generated from field: string node_name = 2;
   */
  nodeName: string;

  /**
   * @generated from field: string output = 3;
   */
  output: string;
};

/**
 * Describes the message peerman.NodeTracerouteResult.
 * Use `create(NodeTracerouteResultSchema)` to create a new message.
 */
export const NodeTracerouteResultSchema: GenMessage<NodeTracerouteResult> = /*@__PURE__*/
  messageDesc(file_peerman, 55);

/**
 * @generated from message peerman.GetWGStatusRequest
 */
export type GetWGStatusRequest = Message<"peerman.GetWGStatusRequest"> & {
  /**
   * @generated from field: string interface = 1;
   */
  interface: string;
};

/**
 * Describes the message peerman.GetWGStatusRequest.
 * Use `create(GetWGStatusRequestSchema)` to create a new message.
 */
export const GetWGStatusRequestSchema: GenMessage<GetWGStatusRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 56);

/**
 * @generated from message peerman.WGStatusResponse
 */
export type WGStatusResponse = Message<"peerman.WGStatusResponse"> & {
  /**
   * @generated from field: repeated peerman.WGInterface interfaces = 1;
   */
  interfaces: WGInterface[];
};

/**
 * Describes the message peerman.WGStatusResponse.
 * Use `create(WGStatusResponseSchema)` to create a new message.
 */
export const WGStatusResponseSchema: GenMessage<WGStatusResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 57);

/**
 * @generated from message peerman.WGInterface
 */
export type WGInterface = Message<"peerman.WGInterface"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: string public_key = 2;
   */
  publicKey: string;

  /**
   * @generated from field: uint32 listen_port = 3;
   */
  listenPort: number;

  /**
   * @generated from field: repeated peerman.WGPeerStatus peers = 4;
   */
  peers: WGPeerStatus[];
};

/**
 * Describes the message peerman.WGInterface.
 * Use `create(WGInterfaceSchema)` to create a new message.
 */
export const WGInterfaceSchema: GenMessage<WGInterface> = /*@__PURE__*/
  messageDesc(file_peerman, 58);

/**
 * @generated from message peerman.WGPeerStatus
 */
export type WGPeerStatus = Message<"peerman.WGPeerStatus"> & {
  /**
   * @generated from field: string public_key = 1;
   */
  publicKey: string;

  /**
   * @generated from field: string endpoint = 2;
   */
  endpoint: string;

  /**
   * @generated from field: string allowed_ips = 3;
   */
  allowedIps: string;

  /**
   * @generated from field: string latest_handshake = 4;
   */
  latestHandshake: string;

  /**
   * @generated from field: string transfer_rx = 5;
   */
  transferRx: string;

  /**
   * @generated from field: string transfer_tx = 6;
   */
  transferTx: string;
};

/**
 * Describes the message peerman.WGPeerStatus.
 * Use `create(WGPeerStatusSchema)` to create a new message.
 */
export const WGPeerStatusSchema: GenMessage<WGPeerStatus> = /*@__PURE__*/
  messageDesc(file_peerman, 59);

/**
 * @generated from message peerman.GetBirdStatusRequest
 */
export type GetBirdStatusRequest = Message<"peerman.GetBirdStatusRequest"> & {
};

/**
 * Describes the message peerman.GetBirdStatusRequest.
 * Use `create(GetBirdStatusRequestSchema)` to create a new message.
 */
export const GetBirdStatusRequestSchema: GenMessage<GetBirdStatusRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 60);

/**
 * @generated from message peerman.BirdStatusResponse
 */
export type BirdStatusResponse = Message<"peerman.BirdStatusResponse"> & {
  /**
   * @generated from field: repeated peerman.BirdProtocol protocols = 1;
   */
  protocols: BirdProtocol[];
};

/**
 * Describes the message peerman.BirdStatusResponse.
 * Use `create(BirdStatusResponseSchema)` to create a new message.
 */
export const BirdStatusResponseSchema: GenMessage<BirdStatusResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 61);

/**
 * @generated from message peerman.BirdProtocol
 */
export type BirdProtocol = Message<"peerman.BirdProtocol"> & {
  /**
   * @generated from field: string name = 1;
   */
  name: string;

  /**
   * @generated from field: string proto = 2;
   */
  proto: string;

  /**
   * @generated from field: string table = 3;
   */
  table: string;

  /**
   * @generated from field: string state = 4;
   */
  state: string;

  /**
   * @generated from field: string since = 5;
   */
  since: string;

  /**
   * @generated from field: string info = 6;
   */
  info: string;
};

/**
 * Describes the message peerman.BirdProtocol.
 * Use `create(BirdProtocolSchema)` to create a new message.
 */
export const BirdProtocolSchema: GenMessage<BirdProtocol> = /*@__PURE__*/
  messageDesc(file_peerman, 62);

/**
 * @generated from message peerman.FlapEvent
 */
export type FlapEvent = Message<"peerman.FlapEvent"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string prefix = 2;
   */
  prefix: string;

  /**
   * @generated from field: string prefix_type = 3;
   */
  prefixType: string;

  /**
   * @generated from field: string node_id = 4;
   */
  nodeId: string;

  /**
   * @generated from field: int32 change_count = 5;
   */
  changeCount: number;

  /**
   * @generated from field: string window_start = 6;
   */
  windowStart: string;

  /**
   * @generated from field: string window_end = 7;
   */
  windowEnd: string;

  /**
   * @generated from field: string source = 8;
   */
  source: string;

  /**
   * @generated from field: bool active = 9;
   */
  active: boolean;

  /**
   * @generated from field: string detected_at = 10;
   */
  detectedAt: string;

  /**
   * @generated from field: string resolved_at = 11;
   */
  resolvedAt: string;
};

/**
 * Describes the message peerman.FlapEvent.
 * Use `create(FlapEventSchema)` to create a new message.
 */
export const FlapEventSchema: GenMessage<FlapEvent> = /*@__PURE__*/
  messageDesc(file_peerman, 63);

/**
 * @generated from message peerman.ListFlapEventsRequest
 */
export type ListFlapEventsRequest = Message<"peerman.ListFlapEventsRequest"> & {
  /**
   * @generated from field: bool active_only = 1;
   */
  activeOnly: boolean;

  /**
   * @generated from field: int32 limit = 2;
   */
  limit: number;
};

/**
 * Describes the message peerman.ListFlapEventsRequest.
 * Use `create(ListFlapEventsRequestSchema)` to create a new message.
 */
export const ListFlapEventsRequestSchema: GenMessage<ListFlapEventsRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 64);

/**
 * @generated from message peerman.ListFlapEventsResponse
 */
export type ListFlapEventsResponse = Message<"peerman.ListFlapEventsResponse"> & {
  /**
   * @generated from field: repeated peerman.FlapEvent events = 1;
   */
  events: FlapEvent[];
};

/**
 * Describes the message peerman.ListFlapEventsResponse.
 * Use `create(ListFlapEventsResponseSchema)` to create a new message.
 */
export const ListFlapEventsResponseSchema: GenMessage<ListFlapEventsResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 65);

/**
 * @generated from message peerman.GetFlapStatsRequest
 */
export type GetFlapStatsRequest = Message<"peerman.GetFlapStatsRequest"> & {
};

/**
 * Describes the message peerman.GetFlapStatsRequest.
 * Use `create(GetFlapStatsRequestSchema)` to create a new message.
 */
export const GetFlapStatsRequestSchema: GenMessage<GetFlapStatsRequest> = /*@__PURE__*/
  messageDesc(file_peerman, 66);

/**
 * @generated from message peerman.GetFlapStatsResponse
 */
export type GetFlapStatsResponse = Message<"peerman.GetFlapStatsResponse"> & {
  /**
   * @generated from field: int32 active_count = 1;
   */
  activeCount: number;

  /**
   * @generated from field: int32 total_today = 2;
   */
  totalToday: number;

  /**
   * @generated from field: double avg_changes_per_hour = 3;
   */
  avgChangesPerHour: number;
};

/**
 * Describes the message peerman.GetFlapStatsResponse.
 * Use `create(GetFlapStatsResponseSchema)` to create a new message.
 */
export const GetFlapStatsResponseSchema: GenMessage<GetFlapStatsResponse> = /*@__PURE__*/
  messageDesc(file_peerman, 67);

/**
 * @generated from enum peerman.SessionProtocol
 */
export enum SessionProtocol {
  /**
   * @generated from enum value: SESSION_IPV4 = 0;
   */
  SESSION_IPV4 = 0,

  /**
   * @generated from enum value: SESSION_IPV6 = 1;
   */
  SESSION_IPV6 = 1,

  /**
   * @generated from enum value: SESSION_BOTH = 2;
   */
  SESSION_BOTH = 2,
}

/**
 * Describes the enum peerman.SessionProtocol.
 */
export const SessionProtocolSchema: GenEnum<SessionProtocol> = /*@__PURE__*/
  enumDesc(file_peerman, 0);

/**
 * @generated from service peerman.PeerService
 */
export const PeerService: GenService<{
  /**
   * @generated from rpc peerman.PeerService.ListPeers
   */
  listPeers: {
    methodKind: "unary";
    input: typeof ListPeersRequestSchema;
    output: typeof ListPeersResponseSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.GetPeer
   */
  getPeer: {
    methodKind: "unary";
    input: typeof GetPeerRequestSchema;
    output: typeof PeerSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.CreatePeer
   */
  createPeer: {
    methodKind: "unary";
    input: typeof CreatePeerRequestSchema;
    output: typeof PeerSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.UpdatePeer
   */
  updatePeer: {
    methodKind: "unary";
    input: typeof UpdatePeerRequestSchema;
    output: typeof PeerSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.DeletePeer
   */
  deletePeer: {
    methodKind: "unary";
    input: typeof DeletePeerRequestSchema;
    output: typeof DeletePeerResponseSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.TogglePeer
   */
  togglePeer: {
    methodKind: "unary";
    input: typeof TogglePeerRequestSchema;
    output: typeof PeerSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.GenerateKeypair
   */
  generateKeypair: {
    methodKind: "unary";
    input: typeof GenerateKeypairRequestSchema;
    output: typeof GenerateKeypairResponseSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.GetWireGuardConfig
   */
  getWireGuardConfig: {
    methodKind: "unary";
    input: typeof GetConfigRequestSchema;
    output: typeof ConfigResponseSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.GetBirdConfig
   */
  getBirdConfig: {
    methodKind: "unary";
    input: typeof GetConfigRequestSchema;
    output: typeof ConfigResponseSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.ExportAllWireGuard
   */
  exportAllWireGuard: {
    methodKind: "unary";
    input: typeof ExportAllRequestSchema;
    output: typeof ConfigResponseSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.ExportAllBird
   */
  exportAllBird: {
    methodKind: "unary";
    input: typeof ExportAllRequestSchema;
    output: typeof ConfigResponseSchema;
  },
  /**
   * @generated from rpc peerman.PeerService.RestartWireGuard
   */
  restartWireGuard: {
    methodKind: "unary";
    input: typeof RestartWireGuardRequestSchema;
    output: typeof RestartWireGuardResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_peerman, 0);

/**
 * @generated from service peerman.SettingsService
 */
export const SettingsService: GenService<{
  /**
   * @generated from rpc peerman.SettingsService.GetSettings
   */
  getSettings: {
    methodKind: "unary";
    input: typeof GetSettingsRequestSchema;
    output: typeof SettingsSchema;
  },
  /**
   * @generated from rpc peerman.SettingsService.SaveSettings
   */
  saveSettings: {
    methodKind: "unary";
    input: typeof SaveSettingsRequestSchema;
    output: typeof SettingsSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_peerman, 1);

/**
 * @generated from service peerman.ClusterService
 */
export const ClusterService: GenService<{
  /**
   * @generated from rpc peerman.ClusterService.ListNodes
   */
  listNodes: {
    methodKind: "unary";
    input: typeof ListNodesRequestSchema;
    output: typeof ListNodesResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.RegisterNode
   */
  registerNode: {
    methodKind: "unary";
    input: typeof RegisterNodeRequestSchema;
    output: typeof NodeSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.UpdateNode
   */
  updateNode: {
    methodKind: "unary";
    input: typeof UpdateNodeRequestSchema;
    output: typeof NodeSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.DeleteNode
   */
  deleteNode: {
    methodKind: "unary";
    input: typeof DeleteNodeRequestSchema;
    output: typeof DeleteNodeResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.PushPeer
   */
  pushPeer: {
    methodKind: "unary";
    input: typeof PushPeerRequestSchema;
    output: typeof PushPeerResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.PullPeers
   */
  pullPeers: {
    methodKind: "unary";
    input: typeof PullPeersRequestSchema;
    output: typeof PullPeersResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.PushProbeResult
   */
  pushProbeResult: {
    methodKind: "unary";
    input: typeof PushProbeResultRequestSchema;
    output: typeof PushProbeResultResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.ListProbeResults
   */
  listProbeResults: {
    methodKind: "unary";
    input: typeof ListProbeResultsRequestSchema;
    output: typeof ListProbeResultsResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.RunProbe
   */
  runProbe: {
    methodKind: "unary";
    input: typeof RunProbeRequestSchema;
    output: typeof RunProbeResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.ListCommunityRules
   */
  listCommunityRules: {
    methodKind: "unary";
    input: typeof ListCommunityRulesRequestSchema;
    output: typeof ListCommunityRulesResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.SaveCommunityRule
   */
  saveCommunityRule: {
    methodKind: "unary";
    input: typeof SaveCommunityRuleRequestSchema;
    output: typeof CommunityRuleSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.DeleteCommunityRule
   */
  deleteCommunityRule: {
    methodKind: "unary";
    input: typeof DeleteCommunityRuleRequestSchema;
    output: typeof DeleteCommunityRuleResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.GetPeerCommunities
   */
  getPeerCommunities: {
    methodKind: "unary";
    input: typeof GetPeerCommunitiesRequestSchema;
    output: typeof GetPeerCommunitiesResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.ExchangeNodes
   */
  exchangeNodes: {
    methodKind: "unary";
    input: typeof ExchangeNodesRequestSchema;
    output: typeof ExchangeNodesResponseSchema;
  },
  /**
   * @generated from rpc peerman.ClusterService.HealthCheck
   */
  healthCheck: {
    methodKind: "unary";
    input: typeof HealthCheckRequestSchema;
    output: typeof HealthCheckResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_peerman, 2);

/**
 * @generated from service peerman.BirdService
 */
export const BirdService: GenService<{
  /**
   * @generated from rpc peerman.BirdService.ExecuteCommand
   */
  executeCommand: {
    methodKind: "unary";
    input: typeof ExecuteCommandRequestSchema;
    output: typeof ExecuteCommandResponseSchema;
  },
  /**
   * @generated from rpc peerman.BirdService.RunTraceroute
   */
  runTraceroute: {
    methodKind: "unary";
    input: typeof RunTracerouteRequestSchema;
    output: typeof RunTracerouteResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_peerman, 3);

/**
 * @generated from service peerman.ManagementService
 */
export const ManagementService: GenService<{
  /**
   * @generated from rpc peerman.ManagementService.GetWireGuardStatus
   */
  getWireGuardStatus: {
    methodKind: "unary";
    input: typeof GetWGStatusRequestSchema;
    output: typeof WGStatusResponseSchema;
  },
  /**
   * @generated from rpc peerman.ManagementService.GetBirdStatus
   */
  getBirdStatus: {
    methodKind: "unary";
    input: typeof GetBirdStatusRequestSchema;
    output: typeof BirdStatusResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_peerman, 4);

/**
 * @generated from service peerman.FlapService
 */
export const FlapService: GenService<{
  /**
   * @generated from rpc peerman.FlapService.ListFlapEvents
   */
  listFlapEvents: {
    methodKind: "unary";
    input: typeof ListFlapEventsRequestSchema;
    output: typeof ListFlapEventsResponseSchema;
  },
  /**
   * @generated from rpc peerman.FlapService.GetFlapStats
   */
  getFlapStats: {
    methodKind: "unary";
    input: typeof GetFlapStatsRequestSchema;
    output: typeof GetFlapStatsResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_peerman, 5);

