// Copyright 2023 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 C++ microgenerator.
// If you make any local changes, they will be lost.
// file:///workspace/generator/discovery/compute_public_google_rest_v1.json
// revision: 20231110

syntax = "proto3";

package google.cloud.cpp.compute.v1;

message InterconnectAttachmentConfigurationConstraints {
  // [Output Only] Whether the attachment's BGP session
  // requires/allows/disallows BGP MD5 authentication. This can take one of the
  // following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example,
  // a Cross-Cloud Interconnect connection to a remote cloud provider that
  // requires BGP MD5 authentication has the interconnectRemoteLocation
  // attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and
  // that property is propagated to the attachment. Similarly, if BGP MD5 is
  // MD5_UNSUPPORTED, an error is returned if MD5 is requested.
  // MD5_OPTIONAL: MD5_OPTIONAL: BGP MD5 authentication is supported and can
  // optionally be configured.
  // MD5_REQUIRED: MD5_REQUIRED: BGP MD5 authentication must be configured.
  // MD5_UNSUPPORTED: MD5_UNSUPPORTED: BGP MD5 authentication must not be
  // configured
  optional string bgp_md5 = 1 [json_name = "bgpMd5"];

  // [Output Only] List of ASN ranges that the remote location is known to
  // support. Formatted as an array of inclusive ranges {min: min-value, max:
  // max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}]
  // allows the peer ASN to be 123 or anything in the range 64512-65534. This
  // field is only advisory. Although the API accepts other ranges, these are
  // the ranges that we recommend.
  repeated InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
      bgp_peer_asn_ranges = 2 [json_name = "bgpPeerAsnRanges"];
}

message InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange {
  optional uint32 max = 1 [json_name = "max"];

  optional uint32 min = 2 [json_name = "min"];
}
