# frozen_string_literal: true
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/field_info.proto

require 'google/protobuf'

require 'google/protobuf/descriptor_pb'


descriptor_data = "\n\x1bgoogle/api/field_info.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\"\xc1\x01\n\tFieldInfo\x12,\n\x06\x66ormat\x18\x01 \x01(\x0e\x32\x1c.google.api.FieldInfo.Format\x12\x33\n\x10referenced_types\x18\x02 \x03(\x0b\x32\x19.google.api.TypeReference\"Q\n\x06\x46ormat\x12\x16\n\x12\x46ORMAT_UNSPECIFIED\x10\x00\x12\t\n\x05UUID4\x10\x01\x12\x08\n\x04IPV4\x10\x02\x12\x08\n\x04IPV6\x10\x03\x12\x10\n\x0cIPV4_OR_IPV6\x10\x04\"\"\n\rTypeReference\x12\x11\n\ttype_name\x18\x01 \x01(\t:L\n\nfield_info\x12\x1d.google.protobuf.FieldOptions\x18\xcc\xf1\xf9\x8a\x01 \x01(\x0b\x32\x15.google.api.FieldInfoBl\n\x0e\x63om.google.apiB\x0e\x46ieldInfoProtoP\x01ZAgoogle.golang.org/genproto/googleapis/api/annotations;annotations\xa2\x02\x04GAPIb\x06proto3"

pool = Google::Protobuf::DescriptorPool.generated_pool

begin
  pool.add_serialized_file(descriptor_data)
rescue TypeError
  # Compatibility code: will be removed in the next major version.
  require 'google/protobuf/descriptor_pb'
  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
  parsed.clear_dependency
  serialized = parsed.class.encode(parsed)
  file = pool.add_serialized_file(serialized)
  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
  imports = [
  ]
  imports.each do |type_name, expected_filename|
    import_file = pool.lookup(type_name).file_descriptor
    if import_file.name != expected_filename
      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
    end
  end
  warn "Each proto file must use a consistent fully-qualified name."
  warn "This will become an error in the next major version."
end

module Google
  module Api
    FieldInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.FieldInfo").msgclass
    FieldInfo::Format = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.FieldInfo.Format").enummodule
    TypeReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.TypeReference").msgclass
  end
end

#### Source proto file: google/api/field_info.proto ####
#
# // Copyright 2024 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
# //
# //     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.
#
# syntax = "proto3";
#
# package google.api;
#
# import "google/protobuf/descriptor.proto";
#
# option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
# option java_multiple_files = true;
# option java_outer_classname = "FieldInfoProto";
# option java_package = "com.google.api";
# option objc_class_prefix = "GAPI";
#
# extend google.protobuf.FieldOptions {
#   // Rich semantic descriptor of an API field beyond the basic typing.
#   //
#   // Examples:
#   //
#   //     string request_id = 1 [(google.api.field_info).format = UUID4];
#   //     string old_ip_address = 2 [(google.api.field_info).format = IPV4];
#   //     string new_ip_address = 3 [(google.api.field_info).format = IPV6];
#   //     string actual_ip_address = 4 [
#   //       (google.api.field_info).format = IPV4_OR_IPV6
#   //     ];
#   //     google.protobuf.Any generic_field = 5 [
#   //       (google.api.field_info).referenced_types = {type_name: "ActualType"},
#   //       (google.api.field_info).referenced_types = {type_name: "OtherType"},
#   //     ];
#   //     google.protobuf.Any generic_user_input = 5 [
#   //       (google.api.field_info).referenced_types = {type_name: "*"},
#   //     ];
#   google.api.FieldInfo field_info = 291403980;
# }
#
# // Rich semantic information of an API field beyond basic typing.
# message FieldInfo {
#   // The standard format of a field value. The supported formats are all backed
#   // by either an RFC defined by the IETF or a Google-defined AIP.
#   enum Format {
#     // Default, unspecified value.
#     FORMAT_UNSPECIFIED = 0;
#
#     // Universally Unique Identifier, version 4, value as defined by
#     // https://datatracker.ietf.org/doc/html/rfc4122. The value may be
#     // normalized to entirely lowercase letters. For example, the value
#     // `F47AC10B-58CC-0372-8567-0E02B2C3D479` would be normalized to
#     // `f47ac10b-58cc-0372-8567-0e02b2c3d479`.
#     UUID4 = 1;
#
#     // Internet Protocol v4 value as defined by [RFC
#     // 791](https://datatracker.ietf.org/doc/html/rfc791). The value may be
#     // condensed, with leading zeros in each octet stripped. For example,
#     // `001.022.233.040` would be condensed to `1.22.233.40`.
#     IPV4 = 2;
#
#     // Internet Protocol v6 value as defined by [RFC
#     // 2460](https://datatracker.ietf.org/doc/html/rfc2460). The value may be
#     // normalized to entirely lowercase letters with zeros compressed, following
#     // [RFC 5952](https://datatracker.ietf.org/doc/html/rfc5952). For example,
#     // the value `2001:0DB8:0::0` would be normalized to `2001:db8::`.
#     IPV6 = 3;
#
#     // An IP address in either v4 or v6 format as described by the individual
#     // values defined herein. See the comments on the IPV4 and IPV6 types for
#     // allowed normalizations of each.
#     IPV4_OR_IPV6 = 4;
#   }
#
#   // The standard format of a field value. This does not explicitly configure
#   // any API consumer, just documents the API's format for the field it is
#   // applied to.
#   Format format = 1;
#
#   // The type(s) that the annotated, generic field may represent.
#   //
#   // Currently, this must only be used on fields of type `google.protobuf.Any`.
#   // Supporting other generic types may be considered in the future.
#   repeated TypeReference referenced_types = 2;
# }
#
# // A reference to a message type, for use in [FieldInfo][google.api.FieldInfo].
# message TypeReference {
#   // The name of the type that the annotated, generic field may represent.
#   // If the type is in the same protobuf package, the value can be the simple
#   // message name e.g., `"MyMessage"`. Otherwise, the value must be the
#   // fully-qualified message name e.g., `"google.library.v1.Book"`.
#   //
#   // If the type(s) are unknown to the service (e.g. the field accepts generic
#   // user input), use the wildcard `"*"` to denote this behavior.
#   //
#   // See [AIP-202](https://google.aip.dev/202#type-references) for more details.
#   string type_name = 1;
# }
