| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421 |
- # Copyright (c) 2025-2026 Buf Technologies, Inc.
- #
- # 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.
- # Generated from google/protobuf/api.proto. DO NOT EDIT.
- # Generated by protoc-gen-py v0.1.1 with parameter "no_fmt_off".
- # ruff: noqa: PGH004
- # ruff: noqa
- from __future__ import annotations
- from typing import Literal, TYPE_CHECKING, TypeAlias
- from protobuf import Message
- from protobuf._codegen import file_desc
- from . import source_context_pb, type_pb
- if TYPE_CHECKING:
- from protobuf import DescFile
- from .source_context_pb import SourceContext
- from .type_pb import Option, Syntax
- _ApiFields: TypeAlias = Literal[
- "name",
- "methods",
- "options",
- "version",
- "source_context",
- "mixins",
- "syntax",
- "edition",
- ]
- class Api(Message[_ApiFields]):
- """
- Api is a light-weight descriptor for an API Interface.
- Interfaces are also described as "protocol buffer services" in some contexts,
- such as by the "service" keyword in a .proto file, but they are different
- from API Services, which represent a concrete implementation of an interface
- as opposed to simply a description of methods and bindings. They are also
- sometimes simply referred to as "APIs" in other contexts, such as the name of
- this message itself. See https://cloud.google.com/apis/design/glossary for
- detailed terminology.
- New usages of this message as an alternative to ServiceDescriptorProto are
- strongly discouraged. This message does not reliability preserve all
- information necessary to model the schema and preserve semantics. Instead
- make use of FileDescriptorSet which preserves the necessary information.
- ```proto
- message google.protobuf.Api
- ```
- Attributes:
- name:
- The fully qualified name of this interface, including package name
- followed by the interface's simple name.
- ```proto
- string name = 1;
- ```
- methods:
- The methods of this interface, in unspecified order.
- ```proto
- repeated google.protobuf.Method methods = 2;
- ```
- options:
- Any metadata attached to the interface.
- ```proto
- repeated google.protobuf.Option options = 3;
- ```
- version:
- A version string for this interface. If specified, must have the form
- `major-version.minor-version`, as in `1.10`. If the minor version is
- omitted, it defaults to zero. If the entire version field is empty, the
- major version is derived from the package name, as outlined below. If the
- field is not empty, the version in the package name will be verified to be
- consistent with what is provided here.
- The versioning schema uses [semantic
- versioning](http://semver.org) where the major version number
- indicates a breaking change and the minor version an additive,
- non-breaking change. Both version numbers are signals to users
- what to expect from different versions, and should be carefully
- chosen based on the product plan.
- The major version is also reflected in the package name of the
- interface, which must end in `v<major-version>`, as in
- `google.feature.v1`. For major versions 0 and 1, the suffix can
- be omitted. Zero major versions must only be used for
- experimental, non-GA interfaces.
- ```proto
- string version = 4;
- ```
- source_context:
- Source context for the protocol buffer service represented by this
- message.
- ```proto
- optional google.protobuf.SourceContext source_context = 5;
- ```
- mixins:
- Included interfaces. See [Mixin][].
- ```proto
- repeated google.protobuf.Mixin mixins = 6;
- ```
- syntax:
- The source syntax of the service.
- ```proto
- google.protobuf.Syntax syntax = 7;
- ```
- edition:
- The source edition string, only valid when syntax is SYNTAX_EDITIONS.
- ```proto
- string edition = 8;
- ```
- """
- __slots__ = (
- "name",
- "methods",
- "options",
- "version",
- "source_context",
- "mixins",
- "syntax",
- "edition",
- )
- if TYPE_CHECKING:
- def __init__(
- self,
- *,
- name: str = "",
- methods: list[Method] | None = None,
- options: list[Option] | None = None,
- version: str = "",
- source_context: SourceContext | None = None,
- mixins: list[Mixin] | None = None,
- syntax: Syntax | None = None,
- edition: str = "",
- ) -> None:
- pass
- name: str
- methods: list[Method]
- options: list[Option]
- version: str
- source_context: SourceContext | None
- mixins: list[Mixin]
- syntax: Syntax
- edition: str
- _MethodFields: TypeAlias = Literal[
- "name",
- "request_type_url",
- "request_streaming",
- "response_type_url",
- "response_streaming",
- "options",
- "syntax",
- "edition",
- ]
- class Method(Message[_MethodFields]):
- """
- Method represents a method of an API interface.
- New usages of this message as an alternative to MethodDescriptorProto are
- strongly discouraged. This message does not reliability preserve all
- information necessary to model the schema and preserve semantics. Instead
- make use of FileDescriptorSet which preserves the necessary information.
- ```proto
- message google.protobuf.Method
- ```
- Attributes:
- name:
- The simple name of this method.
- ```proto
- string name = 1;
- ```
- request_type_url:
- A URL of the input message type.
- ```proto
- string request_type_url = 2;
- ```
- request_streaming:
- If true, the request is streamed.
- ```proto
- bool request_streaming = 3;
- ```
- response_type_url:
- The URL of the output message type.
- ```proto
- string response_type_url = 4;
- ```
- response_streaming:
- If true, the response is streamed.
- ```proto
- bool response_streaming = 5;
- ```
- options:
- Any metadata attached to the method.
- ```proto
- repeated google.protobuf.Option options = 6;
- ```
- syntax:
- The source syntax of this method.
- This field should be ignored, instead the syntax should be inherited from
- Api. This is similar to Field and EnumValue.
- ```proto
- google.protobuf.Syntax syntax = 7 [deprecated = true];
- ```
- edition:
- The source edition string, only valid when syntax is SYNTAX_EDITIONS.
- This field should be ignored, instead the edition should be inherited from
- Api. This is similar to Field and EnumValue.
- ```proto
- string edition = 8 [deprecated = true];
- ```
- """
- __slots__ = (
- "name",
- "request_type_url",
- "request_streaming",
- "response_type_url",
- "response_streaming",
- "options",
- "syntax",
- "edition",
- )
- if TYPE_CHECKING:
- def __init__(
- self,
- *,
- name: str = "",
- request_type_url: str = "",
- request_streaming: bool = False,
- response_type_url: str = "",
- response_streaming: bool = False,
- options: list[Option] | None = None,
- syntax: Syntax | None = None,
- edition: str = "",
- ) -> None:
- pass
- name: str
- request_type_url: str
- request_streaming: bool
- response_type_url: str
- response_streaming: bool
- options: list[Option]
- syntax: Syntax
- edition: str
- _MixinFields: TypeAlias = Literal["name", "root"]
- class Mixin(Message[_MixinFields]):
- """
- Declares an API Interface to be included in this interface. The including
- interface must redeclare all the methods from the included interface, but
- documentation and options are inherited as follows:
- - If after comment and whitespace stripping, the documentation
- string of the redeclared method is empty, it will be inherited
- from the original method.
- - Each annotation belonging to the service config (http,
- visibility) which is not set in the redeclared method will be
- inherited.
- - If an http annotation is inherited, the path pattern will be
- modified as follows. Any version prefix will be replaced by the
- version of the including interface plus the [root][] path if
- specified.
- Example of a simple mixin:
- package google.acl.v1;
- service AccessControl {
- // Get the underlying ACL object.
- rpc GetAcl(GetAclRequest) returns (Acl) {
- option (google.api.http).get = "/v1/{resource=**}:getAcl";
- }
- }
- package google.storage.v2;
- service Storage {
- rpc GetAcl(GetAclRequest) returns (Acl);
- // Get a data record.
- rpc GetData(GetDataRequest) returns (Data) {
- option (google.api.http).get = "/v2/{resource=**}";
- }
- }
- Example of a mixin configuration:
- apis:
- - name: google.storage.v2.Storage
- mixins:
- - name: google.acl.v1.AccessControl
- The mixin construct implies that all methods in `AccessControl` are
- also declared with same name and request/response types in
- `Storage`. A documentation generator or annotation processor will
- see the effective `Storage.GetAcl` method after inheriting
- documentation and annotations as follows:
- service Storage {
- // Get the underlying ACL object.
- rpc GetAcl(GetAclRequest) returns (Acl) {
- option (google.api.http).get = "/v2/{resource=**}:getAcl";
- }
- ...
- }
- Note how the version in the path pattern changed from `v1` to `v2`.
- If the `root` field in the mixin is specified, it should be a
- relative path under which inherited HTTP paths are placed. Example:
- apis:
- - name: google.storage.v2.Storage
- mixins:
- - name: google.acl.v1.AccessControl
- root: acls
- This implies the following inherited HTTP annotation:
- service Storage {
- // Get the underlying ACL object.
- rpc GetAcl(GetAclRequest) returns (Acl) {
- option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
- }
- ...
- }
- ```proto
- message google.protobuf.Mixin
- ```
- Attributes:
- name:
- The fully qualified name of the interface which is included.
- ```proto
- string name = 1;
- ```
- root:
- If non-empty specifies a path under which inherited HTTP paths
- are rooted.
- ```proto
- string root = 2;
- ```
- """
- __slots__ = ("name", "root")
- if TYPE_CHECKING:
- def __init__(self, *, name: str = "", root: str = "") -> None:
- pass
- name: str
- root: str
- _DESC = file_desc(
- b'\n\x19google/protobuf/api.proto\x12\x0fgoogle.protobuf\x1a$google/protobuf/source_context.proto\x1a\x1agoogle/protobuf/type.proto"\xdb\x02\n\x03Api\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x121\n\x07methods\x18\x02 \x03(\x0b2\x17.google.protobuf.MethodR\x07methods\x121\n\x07options\x18\x03 \x03(\x0b2\x17.google.protobuf.OptionR\x07options\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\x12E\n\x0esource_context\x18\x05 \x01(\x0b2\x1e.google.protobuf.SourceContextR\rsourceContext\x12.\n\x06mixins\x18\x06 \x03(\x0b2\x16.google.protobuf.MixinR\x06mixins\x12/\n\x06syntax\x18\x07 \x01(\x0e2\x17.google.protobuf.SyntaxR\x06syntax\x12\x18\n\x07edition\x18\x08 \x01(\tR\x07edition"\xd4\x02\n\x06Method\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12(\n\x10request_type_url\x18\x02 \x01(\tR\x0erequestTypeUrl\x12+\n\x11request_streaming\x18\x03 \x01(\x08R\x10requestStreaming\x12*\n\x11response_type_url\x18\x04 \x01(\tR\x0fresponseTypeUrl\x12-\n\x12response_streaming\x18\x05 \x01(\x08R\x11responseStreaming\x121\n\x07options\x18\x06 \x03(\x0b2\x17.google.protobuf.OptionR\x07options\x123\n\x06syntax\x18\x07 \x01(\x0e2\x17.google.protobuf.SyntaxR\x06syntaxB\x02\x18\x01\x12\x1c\n\x07edition\x18\x08 \x01(\tR\x07editionB\x02\x18\x01"/\n\x05Mixin\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04root\x18\x02 \x01(\tR\x04rootBv\n\x13com.google.protobufB\x08ApiProtoP\x01Z,google.golang.org/protobuf/types/known/apipb\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3',
- [source_context_pb.desc(), type_pb.desc()],
- {"Api": Api, "Method": Method, "Mixin": Mixin},
- )
- def desc() -> DescFile:
- """Returns the descriptor for the file `google/protobuf/api.proto`."""
- return _DESC
|