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

require 'google/protobuf'

require 'google/protobuf/descriptor_pb'


descriptor_data = "\n\x17google/api/policy.proto\x12\ngoogle.api\x1a google/protobuf/descriptor.proto\"S\n\x0b\x46ieldPolicy\x12\x10\n\x08selector\x18\x01 \x01(\t\x12\x1b\n\x13resource_permission\x18\x02 \x01(\t\x12\x15\n\rresource_type\x18\x03 \x01(\t\"S\n\x0cMethodPolicy\x12\x10\n\x08selector\x18\t \x01(\t\x12\x31\n\x10request_policies\x18\x02 \x03(\x0b\x32\x17.google.api.FieldPolicy:O\n\x0c\x66ield_policy\x12\x1d.google.protobuf.FieldOptions\x18\xe8\xce\xc1K \x01(\x0b\x32\x17.google.api.FieldPolicy:R\n\rmethod_policy\x12\x1e.google.protobuf.MethodOptions\x18\xb5\x97\x99M \x01(\x0b\x32\x18.google.api.MethodPolicyBm\n\x0e\x63om.google.apiB\x0bPolicyProtoP\x01ZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig\xa2\x02\x04GAPIb\x06proto3"

pool = ::Google::Protobuf::DescriptorPool.generated_pool
pool.add_serialized_file(descriptor_data)

module Google
  module Api
    FieldPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.FieldPolicy").msgclass
    MethodPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.MethodPolicy").msgclass
  end
end

#### Source proto file: google/api/policy.proto ####
#
# // Copyright 2025 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/serviceconfig;serviceconfig";
# option java_multiple_files = true;
# option java_outer_classname = "PolicyProto";
# option java_package = "com.google.api";
# option objc_class_prefix = "GAPI";
#
# extend google.protobuf.FieldOptions {
#   // See [FieldPolicy][].
#   google.api.FieldPolicy field_policy = 158361448;
# }
#
# extend google.protobuf.MethodOptions {
#   // See [MethodPolicy][].
#   google.api.MethodPolicy method_policy = 161893301;
# }
#
# // Google API Policy Annotation
# //
# // This message defines a simple API policy annotation that can be used to
# // annotate API request and response message fields with applicable policies.
# // One field may have multiple applicable policies that must all be satisfied
# // before a request can be processed. This policy annotation is used to
# // generate the overall policy that will be used for automatic runtime
# // policy enforcement and documentation generation.
# message FieldPolicy {
#   // Selects one or more request or response message fields to apply this
#   // `FieldPolicy`.
#   //
#   // When a `FieldPolicy` is used in proto annotation, the selector must
#   // be left as empty. The service config generator will automatically fill
#   // the correct value.
#   //
#   // When a `FieldPolicy` is used in service config, the selector must be a
#   // comma-separated string with valid request or response field paths,
#   // such as "foo.bar" or "foo.bar,foo.baz".
#   string selector = 1;
#
#   // Specifies the required permission(s) for the resource referred to by the
#   // field. It requires the field contains a valid resource reference, and
#   // the request must pass the permission checks to proceed. For example,
#   // "resourcemanager.projects.get".
#   string resource_permission = 2;
#
#   // Specifies the resource type for the resource referred to by the field.
#   string resource_type = 3;
# }
#
# // Defines policies applying to an RPC method.
# message MethodPolicy {
#   // Selects a method to which these policies should be enforced, for example,
#   // "google.pubsub.v1.Subscriber.CreateSubscription".
#   //
#   // Refer to [selector][google.api.DocumentationRule.selector] for syntax
#   // details.
#   //
#   // NOTE: This field must not be set in the proto annotation. It will be
#   // automatically filled by the service config compiler .
#   string selector = 9;
#
#   // Policies that are applicable to the request message.
#   repeated FieldPolicy request_policies = 2;
# }
