/*
* 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
*
* 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/api/routing.proto
// Protobuf Java Version: 3.25.3
package com.google.api;
public interface RoutingParameterOrBuilder
extends
// @@protoc_insertion_point(interface_extends:google.api.RoutingParameter)
com.google.protobuf.MessageOrBuilder {
/**
*
*
*
* A request field to extract the header key-value pair from.
*
*
* string field = 1;
*
* @return The field.
*/
java.lang.String getField();
/**
*
*
*
* A request field to extract the header key-value pair from.
*
*
* string field = 1;
*
* @return The bytes for field.
*/
com.google.protobuf.ByteString getFieldBytes();
/**
*
*
*
* A pattern matching the key-value field. Optional.
* If not specified, the whole field specified in the `field` field will be
* taken as value, and its name used as key. If specified, it MUST contain
* exactly one named segment (along with any number of unnamed segments) The
* pattern will be matched over the field specified in the `field` field, then
* if the match is successful:
* - the name of the single named segment will be used as a header name,
* - the match value of the segment will be used as a header value;
* if the match is NOT successful, nothing will be sent.
*
* Example:
*
* -- This is a field in the request message
* | that the header value will be extracted from.
* |
* | -- This is the key name in the
* | | routing header.
* V |
* field: "table_name" v
* path_template: "projects/*/{table_location=instances/*}/tables/*"
* ^ ^
* | |
* In the {} brackets is the pattern that -- |
* specifies what to extract from the |
* field as a value to be sent. |
* |
* The string in the field must match the whole pattern --
* before brackets, inside brackets, after brackets.
*
* When looking at this specific example, we can see that:
* - A key-value pair with the key `table_location`
* and the value matching `instances/*` should be added
* to the x-goog-request-params routing header.
* - The value is extracted from the request message's `table_name` field
* if it matches the full pattern specified:
* `projects/*/instances/*/tables/*`.
*
* **NB:** If the `path_template` field is not provided, the key name is
* equal to the field name, and the whole field should be sent as a value.
* This makes the pattern for the field and the value functionally equivalent
* to `**`, and the configuration
*
* {
* field: "table_name"
* }
*
* is a functionally equivalent shorthand to:
*
* {
* field: "table_name"
* path_template: "{table_name=**}"
* }
*
* See Example 1 for more details.
*
*
* string path_template = 2;
*
* @return The pathTemplate.
*/
java.lang.String getPathTemplate();
/**
*
*
*
* A pattern matching the key-value field. Optional.
* If not specified, the whole field specified in the `field` field will be
* taken as value, and its name used as key. If specified, it MUST contain
* exactly one named segment (along with any number of unnamed segments) The
* pattern will be matched over the field specified in the `field` field, then
* if the match is successful:
* - the name of the single named segment will be used as a header name,
* - the match value of the segment will be used as a header value;
* if the match is NOT successful, nothing will be sent.
*
* Example:
*
* -- This is a field in the request message
* | that the header value will be extracted from.
* |
* | -- This is the key name in the
* | | routing header.
* V |
* field: "table_name" v
* path_template: "projects/*/{table_location=instances/*}/tables/*"
* ^ ^
* | |
* In the {} brackets is the pattern that -- |
* specifies what to extract from the |
* field as a value to be sent. |
* |
* The string in the field must match the whole pattern --
* before brackets, inside brackets, after brackets.
*
* When looking at this specific example, we can see that:
* - A key-value pair with the key `table_location`
* and the value matching `instances/*` should be added
* to the x-goog-request-params routing header.
* - The value is extracted from the request message's `table_name` field
* if it matches the full pattern specified:
* `projects/*/instances/*/tables/*`.
*
* **NB:** If the `path_template` field is not provided, the key name is
* equal to the field name, and the whole field should be sent as a value.
* This makes the pattern for the field and the value functionally equivalent
* to `**`, and the configuration
*
* {
* field: "table_name"
* }
*
* is a functionally equivalent shorthand to:
*
* {
* field: "table_name"
* path_template: "{table_name=**}"
* }
*
* See Example 1 for more details.
*
*
* string path_template = 2;
*
* @return The bytes for pathTemplate.
*/
com.google.protobuf.ByteString getPathTemplateBytes();
}