/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://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.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/compute/v1/compute.proto

package com.google.cloud.compute.v1;

public interface RouterStatusBgpPeerStatusOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.cloud.compute.v1.RouterStatusBgpPeerStatus)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Routes that were advertised to the remote BGP peer
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.Route advertised_routes = 333393068;</code>
   */
  java.util.List<com.google.cloud.compute.v1.Route> getAdvertisedRoutesList();
  /**
   *
   *
   * <pre>
   * Routes that were advertised to the remote BGP peer
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.Route advertised_routes = 333393068;</code>
   */
  com.google.cloud.compute.v1.Route getAdvertisedRoutes(int index);
  /**
   *
   *
   * <pre>
   * Routes that were advertised to the remote BGP peer
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.Route advertised_routes = 333393068;</code>
   */
  int getAdvertisedRoutesCount();
  /**
   *
   *
   * <pre>
   * Routes that were advertised to the remote BGP peer
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.Route advertised_routes = 333393068;</code>
   */
  java.util.List<? extends com.google.cloud.compute.v1.RouteOrBuilder>
      getAdvertisedRoutesOrBuilderList();
  /**
   *
   *
   * <pre>
   * Routes that were advertised to the remote BGP peer
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.Route advertised_routes = 333393068;</code>
   */
  com.google.cloud.compute.v1.RouteOrBuilder getAdvertisedRoutesOrBuilder(int index);

  /**
   * <code>optional .google.cloud.compute.v1.BfdStatus bfd_status = 395631729;</code>
   *
   * @return Whether the bfdStatus field is set.
   */
  boolean hasBfdStatus();
  /**
   * <code>optional .google.cloud.compute.v1.BfdStatus bfd_status = 395631729;</code>
   *
   * @return The bfdStatus.
   */
  com.google.cloud.compute.v1.BfdStatus getBfdStatus();
  /** <code>optional .google.cloud.compute.v1.BfdStatus bfd_status = 395631729;</code> */
  com.google.cloud.compute.v1.BfdStatusOrBuilder getBfdStatusOrBuilder();

  /**
   *
   *
   * <pre>
   * Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
   * </pre>
   *
   * <code>optional bool enable_ipv6 = 181467939;</code>
   *
   * @return Whether the enableIpv6 field is set.
   */
  boolean hasEnableIpv6();
  /**
   *
   *
   * <pre>
   * Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
   * </pre>
   *
   * <code>optional bool enable_ipv6 = 181467939;</code>
   *
   * @return The enableIpv6.
   */
  boolean getEnableIpv6();

  /**
   *
   *
   * <pre>
   * IP address of the local BGP interface.
   * </pre>
   *
   * <code>optional string ip_address = 406272220;</code>
   *
   * @return Whether the ipAddress field is set.
   */
  boolean hasIpAddress();
  /**
   *
   *
   * <pre>
   * IP address of the local BGP interface.
   * </pre>
   *
   * <code>optional string ip_address = 406272220;</code>
   *
   * @return The ipAddress.
   */
  java.lang.String getIpAddress();
  /**
   *
   *
   * <pre>
   * IP address of the local BGP interface.
   * </pre>
   *
   * <code>optional string ip_address = 406272220;</code>
   *
   * @return The bytes for ipAddress.
   */
  com.google.protobuf.ByteString getIpAddressBytes();

  /**
   *
   *
   * <pre>
   * IPv6 address of the local BGP interface.
   * </pre>
   *
   * <code>optional string ipv6_nexthop_address = 27968211;</code>
   *
   * @return Whether the ipv6NexthopAddress field is set.
   */
  boolean hasIpv6NexthopAddress();
  /**
   *
   *
   * <pre>
   * IPv6 address of the local BGP interface.
   * </pre>
   *
   * <code>optional string ipv6_nexthop_address = 27968211;</code>
   *
   * @return The ipv6NexthopAddress.
   */
  java.lang.String getIpv6NexthopAddress();
  /**
   *
   *
   * <pre>
   * IPv6 address of the local BGP interface.
   * </pre>
   *
   * <code>optional string ipv6_nexthop_address = 27968211;</code>
   *
   * @return The bytes for ipv6NexthopAddress.
   */
  com.google.protobuf.ByteString getIpv6NexthopAddressBytes();

  /**
   *
   *
   * <pre>
   * URL of the VPN tunnel that this BGP peer controls.
   * </pre>
   *
   * <code>optional string linked_vpn_tunnel = 352296953;</code>
   *
   * @return Whether the linkedVpnTunnel field is set.
   */
  boolean hasLinkedVpnTunnel();
  /**
   *
   *
   * <pre>
   * URL of the VPN tunnel that this BGP peer controls.
   * </pre>
   *
   * <code>optional string linked_vpn_tunnel = 352296953;</code>
   *
   * @return The linkedVpnTunnel.
   */
  java.lang.String getLinkedVpnTunnel();
  /**
   *
   *
   * <pre>
   * URL of the VPN tunnel that this BGP peer controls.
   * </pre>
   *
   * <code>optional string linked_vpn_tunnel = 352296953;</code>
   *
   * @return The bytes for linkedVpnTunnel.
   */
  com.google.protobuf.ByteString getLinkedVpnTunnelBytes();

  /**
   *
   *
   * <pre>
   * Informs whether MD5 authentication is enabled on this BGP peer.
   * </pre>
   *
   * <code>optional bool md5_auth_enabled = 451152075;</code>
   *
   * @return Whether the md5AuthEnabled field is set.
   */
  boolean hasMd5AuthEnabled();
  /**
   *
   *
   * <pre>
   * Informs whether MD5 authentication is enabled on this BGP peer.
   * </pre>
   *
   * <code>optional bool md5_auth_enabled = 451152075;</code>
   *
   * @return The md5AuthEnabled.
   */
  boolean getMd5AuthEnabled();

  /**
   *
   *
   * <pre>
   * Name of this BGP peer. Unique within the Routers resource.
   * </pre>
   *
   * <code>optional string name = 3373707;</code>
   *
   * @return Whether the name field is set.
   */
  boolean hasName();
  /**
   *
   *
   * <pre>
   * Name of this BGP peer. Unique within the Routers resource.
   * </pre>
   *
   * <code>optional string name = 3373707;</code>
   *
   * @return The name.
   */
  java.lang.String getName();
  /**
   *
   *
   * <pre>
   * Name of this BGP peer. Unique within the Routers resource.
   * </pre>
   *
   * <code>optional string name = 3373707;</code>
   *
   * @return The bytes for name.
   */
  com.google.protobuf.ByteString getNameBytes();

  /**
   *
   *
   * <pre>
   * Number of routes learned from the remote BGP Peer.
   * </pre>
   *
   * <code>optional uint32 num_learned_routes = 135457535;</code>
   *
   * @return Whether the numLearnedRoutes field is set.
   */
  boolean hasNumLearnedRoutes();
  /**
   *
   *
   * <pre>
   * Number of routes learned from the remote BGP Peer.
   * </pre>
   *
   * <code>optional uint32 num_learned_routes = 135457535;</code>
   *
   * @return The numLearnedRoutes.
   */
  int getNumLearnedRoutes();

  /**
   *
   *
   * <pre>
   * IP address of the remote BGP interface.
   * </pre>
   *
   * <code>optional string peer_ip_address = 207735769;</code>
   *
   * @return Whether the peerIpAddress field is set.
   */
  boolean hasPeerIpAddress();
  /**
   *
   *
   * <pre>
   * IP address of the remote BGP interface.
   * </pre>
   *
   * <code>optional string peer_ip_address = 207735769;</code>
   *
   * @return The peerIpAddress.
   */
  java.lang.String getPeerIpAddress();
  /**
   *
   *
   * <pre>
   * IP address of the remote BGP interface.
   * </pre>
   *
   * <code>optional string peer_ip_address = 207735769;</code>
   *
   * @return The bytes for peerIpAddress.
   */
  com.google.protobuf.ByteString getPeerIpAddressBytes();

  /**
   *
   *
   * <pre>
   * IPv6 address of the remote BGP interface.
   * </pre>
   *
   * <code>optional string peer_ipv6_nexthop_address = 491486608;</code>
   *
   * @return Whether the peerIpv6NexthopAddress field is set.
   */
  boolean hasPeerIpv6NexthopAddress();
  /**
   *
   *
   * <pre>
   * IPv6 address of the remote BGP interface.
   * </pre>
   *
   * <code>optional string peer_ipv6_nexthop_address = 491486608;</code>
   *
   * @return The peerIpv6NexthopAddress.
   */
  java.lang.String getPeerIpv6NexthopAddress();
  /**
   *
   *
   * <pre>
   * IPv6 address of the remote BGP interface.
   * </pre>
   *
   * <code>optional string peer_ipv6_nexthop_address = 491486608;</code>
   *
   * @return The bytes for peerIpv6NexthopAddress.
   */
  com.google.protobuf.ByteString getPeerIpv6NexthopAddressBytes();

  /**
   *
   *
   * <pre>
   * [Output only] URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance is the peer side of the BGP session.
   * </pre>
   *
   * <code>optional string router_appliance_instance = 468312989;</code>
   *
   * @return Whether the routerApplianceInstance field is set.
   */
  boolean hasRouterApplianceInstance();
  /**
   *
   *
   * <pre>
   * [Output only] URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance is the peer side of the BGP session.
   * </pre>
   *
   * <code>optional string router_appliance_instance = 468312989;</code>
   *
   * @return The routerApplianceInstance.
   */
  java.lang.String getRouterApplianceInstance();
  /**
   *
   *
   * <pre>
   * [Output only] URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance is the peer side of the BGP session.
   * </pre>
   *
   * <code>optional string router_appliance_instance = 468312989;</code>
   *
   * @return The bytes for routerApplianceInstance.
   */
  com.google.protobuf.ByteString getRouterApplianceInstanceBytes();

  /**
   *
   *
   * <pre>
   * The state of the BGP session. For a list of possible values for this field, see BGP session states.
   * </pre>
   *
   * <code>optional string state = 109757585;</code>
   *
   * @return Whether the state field is set.
   */
  boolean hasState();
  /**
   *
   *
   * <pre>
   * The state of the BGP session. For a list of possible values for this field, see BGP session states.
   * </pre>
   *
   * <code>optional string state = 109757585;</code>
   *
   * @return The state.
   */
  java.lang.String getState();
  /**
   *
   *
   * <pre>
   * The state of the BGP session. For a list of possible values for this field, see BGP session states.
   * </pre>
   *
   * <code>optional string state = 109757585;</code>
   *
   * @return The bytes for state.
   */
  com.google.protobuf.ByteString getStateBytes();

  /**
   *
   *
   * <pre>
   * Status of the BGP peer: {UP, DOWN}
   * Check the Status enum for the list of possible values.
   * </pre>
   *
   * <code>optional string status = 181260274;</code>
   *
   * @return Whether the status field is set.
   */
  boolean hasStatus();
  /**
   *
   *
   * <pre>
   * Status of the BGP peer: {UP, DOWN}
   * Check the Status enum for the list of possible values.
   * </pre>
   *
   * <code>optional string status = 181260274;</code>
   *
   * @return The status.
   */
  java.lang.String getStatus();
  /**
   *
   *
   * <pre>
   * Status of the BGP peer: {UP, DOWN}
   * Check the Status enum for the list of possible values.
   * </pre>
   *
   * <code>optional string status = 181260274;</code>
   *
   * @return The bytes for status.
   */
  com.google.protobuf.ByteString getStatusBytes();

  /**
   *
   *
   * <pre>
   * Indicates why particular status was returned.
   * Check the StatusReason enum for the list of possible values.
   * </pre>
   *
   * <code>optional string status_reason = 342706993;</code>
   *
   * @return Whether the statusReason field is set.
   */
  boolean hasStatusReason();
  /**
   *
   *
   * <pre>
   * Indicates why particular status was returned.
   * Check the StatusReason enum for the list of possible values.
   * </pre>
   *
   * <code>optional string status_reason = 342706993;</code>
   *
   * @return The statusReason.
   */
  java.lang.String getStatusReason();
  /**
   *
   *
   * <pre>
   * Indicates why particular status was returned.
   * Check the StatusReason enum for the list of possible values.
   * </pre>
   *
   * <code>optional string status_reason = 342706993;</code>
   *
   * @return The bytes for statusReason.
   */
  com.google.protobuf.ByteString getStatusReasonBytes();

  /**
   *
   *
   * <pre>
   * Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds
   * </pre>
   *
   * <code>optional string uptime = 235379688;</code>
   *
   * @return Whether the uptime field is set.
   */
  boolean hasUptime();
  /**
   *
   *
   * <pre>
   * Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds
   * </pre>
   *
   * <code>optional string uptime = 235379688;</code>
   *
   * @return The uptime.
   */
  java.lang.String getUptime();
  /**
   *
   *
   * <pre>
   * Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds
   * </pre>
   *
   * <code>optional string uptime = 235379688;</code>
   *
   * @return The bytes for uptime.
   */
  com.google.protobuf.ByteString getUptimeBytes();

  /**
   *
   *
   * <pre>
   * Time this session has been up, in seconds. Format: 145
   * </pre>
   *
   * <code>optional string uptime_seconds = 104736040;</code>
   *
   * @return Whether the uptimeSeconds field is set.
   */
  boolean hasUptimeSeconds();
  /**
   *
   *
   * <pre>
   * Time this session has been up, in seconds. Format: 145
   * </pre>
   *
   * <code>optional string uptime_seconds = 104736040;</code>
   *
   * @return The uptimeSeconds.
   */
  java.lang.String getUptimeSeconds();
  /**
   *
   *
   * <pre>
   * Time this session has been up, in seconds. Format: 145
   * </pre>
   *
   * <code>optional string uptime_seconds = 104736040;</code>
   *
   * @return The bytes for uptimeSeconds.
   */
  com.google.protobuf.ByteString getUptimeSecondsBytes();
}
