diff --git a/.gitignore b/.gitignore index 1a139f2..d1964ff 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ __pycache__ .pytest_cache .vscode .coverage +.python-version diff --git a/buf/buf.gen.yaml b/buf/buf.gen.yaml index e3d9e51..d2ab942 100644 --- a/buf/buf.gen.yaml +++ b/buf/buf.gen.yaml @@ -6,7 +6,7 @@ plugins: out: ./src - plugin: buf.build/protocolbuffers/python out: ./src - - name: "mypy" + - plugin: buf.build/protocolbuffers/pyi out: "./src" - - name: "mypy_grpc" + - plugin: "buf.build/community/nipunn1313-mypy-grpc" out: "./src" diff --git a/init_gen.py b/init_gen.py index 8292d74..c00de3e 100755 --- a/init_gen.py +++ b/init_gen.py @@ -90,7 +90,7 @@ def __init__(self): self._in_const: bool = False def visit_ClassDef(self, node: ast.ClassDef): - if self.is_public(node.name): + if self.is_public(node.name) and not node.name.endswith("AsyncStub"): self.symbols.append(node.name) def is_public(self, name: str) -> bool: diff --git a/magefiles/magefile.go b/magefiles/magefile.go index 5d31408..2247a80 100644 --- a/magefiles/magefile.go +++ b/magefiles/magefile.go @@ -99,6 +99,7 @@ func gen(bufImage, fileSources string) error { for bufImage, clientFiles := range files { err = buf.Run( buf.AddArg("generate"), + buf.AddArg("--include-imports"), buf.AddArg("--template"), buf.AddArg(filepath.Join("buf", "buf.gen.yaml")), buf.AddArg(bufImage), diff --git a/poetry.lock b/poetry.lock index 60a4b68..ef65aaa 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,6 +1,17 @@ +[[package]] +name = "babel" +version = "2.13.1" +description = "Internationalization utilities" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +dev = ["pytest (>=6.0)", "pytest-cov", "freezegun (>=1.0,<2.0)"] + [[package]] name = "black" -version = "23.10.1" +version = "23.11.0" description = "The uncompromising code formatter." category = "dev" optional = false @@ -21,6 +32,39 @@ d = ["aiohttp (>=3.7.4)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] +[[package]] +name = "cel-python" +version = "0.1.5" +description = "Pure Python CEL Implementation" +category = "main" +optional = false +python-versions = ">=3.7, <4" + +[package.dependencies] +babel = ">=2.9.0" +jmespath = ">=0.10.0" +lark-parser = ">=0.10.1" +python-dateutil = ">=2.8.1" +pyyaml = ">=5.4.1" +requests = ">=2.25.1" +urllib3 = ">=1.26.4" + +[[package]] +name = "certifi" +version = "2023.11.17" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" +optional = false +python-versions = ">=3.7.0" + [[package]] name = "click" version = "8.1.7" @@ -40,6 +84,25 @@ category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +[[package]] +name = "grpcio" +version = "1.59.3" +description = "HTTP/2-based RPC framework" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +protobuf = ["grpcio-tools (>=1.59.3)"] + +[[package]] +name = "idna" +version = "3.6" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" + [[package]] name = "isort" version = "5.12.0" @@ -55,22 +118,25 @@ pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib" plugins = ["setuptools"] [[package]] -name = "mypy" -version = "1.6.1" -description = "Optional static typing for Python" -category = "dev" +name = "jmespath" +version = "1.0.1" +description = "JSON Matching Expressions" +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" -[package.dependencies] -mypy-extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=4.1.0" +[[package]] +name = "lark-parser" +version = "0.12.0" +description = "a modern parsing library" +category = "main" +optional = false +python-versions = "*" [package.extras] -dmypy = ["psutil (>=4.0)"] -install-types = ["pip"] -reports = ["lxml"] +atomic_cache = ["atomicwrites"] +nearley = ["js2py"] +regex = ["regex"] [[package]] name = "mypy-extensions" @@ -81,16 +147,12 @@ optional = false python-versions = ">=3.5" [[package]] -name = "mypy-protobuf" -version = "3.5.0" -description = "Generate mypy stub files from protobuf specs" +name = "nodeenv" +version = "1.8.0" +description = "Node.js virtual environment builder" category = "dev" optional = false -python-versions = ">=3.8" - -[package.dependencies] -protobuf = ">=4.23.4" -types-protobuf = ">=4.23.0.2" +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" [[package]] name = "packaging" @@ -110,7 +172,7 @@ python-versions = ">=3.7" [[package]] name = "platformdirs" -version = "3.11.0" +version = "4.0.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false @@ -122,24 +184,88 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest-cov (>=4.1)", "pytes [[package]] name = "protobuf" -version = "4.25.0" +version = "4.25.1" description = "" -category = "dev" +category = "main" optional = false python-versions = ">=3.8" [[package]] -name = "tomli" -version = "2.0.1" -description = "A lil' TOML parser" +name = "protovalidate" +version = "0.3.0" +description = "Protocol Buffer Validation for Python" +category = "main" +optional = false +python-versions = ">=3.11" + +[package.dependencies] +cel-python = "*" +protobuf = "*" + +[[package]] +name = "pyright" +version = "1.1.337" +description = "Command line wrapper for pyright" category = "dev" optional = false python-versions = ">=3.7" +[package.dependencies] +nodeenv = ">=1.6.0" + +[package.extras] +all = ["twine (>=3.4.1)"] +dev = ["twine (>=3.4.1)"] + [[package]] -name = "types-protobuf" -version = "4.24.0.4" -description = "Typing stubs for protobuf" +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" category = "dev" optional = false python-versions = ">=3.7" @@ -152,23 +278,49 @@ category = "dev" optional = false python-versions = ">=3.8" +[[package]] +name = "urllib3" +version = "2.1.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=3.8" + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + [metadata] lock-version = "1.1" -python-versions = ">=3.8" -content-hash = "c12e6c4fc8458e86126c83d85f8aa36dd27d53847f62ff686414069ebda0621f" +python-versions = ">=3.8,<4" +content-hash = "edb9d36e97b863e4c62f428c4a8e0f7c24f9f78b5f11876b512b05f5ea411915" [metadata.files] +babel = [] black = [] +cel-python = [] +certifi = [] +charset-normalizer = [] click = [] colorama = [] +grpcio = [] +idna = [] isort = [] -mypy = [] +jmespath = [] +lark-parser = [] mypy-extensions = [] -mypy-protobuf = [] +nodeenv = [] packaging = [] pathspec = [] platformdirs = [] protobuf = [] +protovalidate = [] +pyright = [] +python-dateutil = [] +pyyaml = [] +requests = [] +six = [] tomli = [] -types-protobuf = [] typing-extensions = [] +urllib3 = [] diff --git a/pyproject.toml b/pyproject.toml index 72fb736..f12eb2f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,40 +25,21 @@ classifiers = [ ] packages = [ { include = "aserto", from = "src" }, + { include = "google", from = "src" }, + { include = "buf", from = "src" }, ] [tool.poetry.dependencies] -python = ">=3.8" +python = ">=3.8,<4" +grpcio = "^1.49" +protobuf = "^4.21.0" +protovalidate = { version = "^0.3.0", python = ">=3.11"} [tool.poetry.dev-dependencies] -mypy = "^1.6.1" -mypy-protobuf = "^3.5.0" -black = "^23.10.1" -isort = "^5.10.1" - -[tool.mypy] -show_error_codes = true -check_untyped_defs = false -disallow_any_decorated = false -disallow_any_explicit = false -disallow_any_expr = false -disallow_any_generics = false -disallow_any_unimported = true -disallow_incomplete_defs = true -disallow_subclassing_any = true -disallow_untyped_calls = true -disallow_untyped_decorators = true -disallow_untyped_defs = true -implicit_reexport = true -no_implicit_optional = true -strict_equality = true -strict_optional = false -warn_no_return = true -warn_redundant_casts = true -warn_return_any = true -warn_unreachable = true -warn_unused_ignores = true +black = "^23.11.0" +isort = "^5.10.0" +pyright = "^1.1.0" [build-system] requires = ["poetry-core>=1.0.0"] diff --git a/src/aserto/directory/common/v2/common_pb2.py b/src/aserto/directory/common/v2/common_pb2.py index 8da9aa4..ccc5d83 100644 --- a/src/aserto/directory/common/v2/common_pb2.py +++ b/src/aserto/directory/common/v2/common_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/common/v2/common.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/common/v2/common_pb2.pyi b/src/aserto/directory/common/v2/common_pb2.pyi index 5f42d71..4df2936 100644 --- a/src/aserto/directory/common/v2/common_pb2.pyi +++ b/src/aserto/directory/common/v2/common_pb2.pyi @@ -1,494 +1,190 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _Flag: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _FlagEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Flag.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - FLAG_UNKNOWN: _Flag.ValueType # 0 - """default, no special object behavior""" - FLAG_HIDDEN: _Flag.ValueType # 1 - """hidden object""" - FLAG_READONLY: _Flag.ValueType # 2 - """read-only object""" - FLAG_SYSTEM: _Flag.ValueType # 4 - """system object""" - FLAG_SHADOW: _Flag.ValueType # 8 - """shadow object by type+key associated to parent object""" - -class Flag(_Flag, metaclass=_FlagEnumTypeWrapper): ... - -FLAG_UNKNOWN: Flag.ValueType # 0 -"""default, no special object behavior""" -FLAG_HIDDEN: Flag.ValueType # 1 -"""hidden object""" -FLAG_READONLY: Flag.ValueType # 2 -"""read-only object""" -FLAG_SYSTEM: Flag.ValueType # 4 -"""system object""" -FLAG_SHADOW: Flag.ValueType # 8 -"""shadow object by type+key associated to parent object""" -global___Flag = Flag - -@typing_extensions.final -class ObjectType(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NAME_FIELD_NUMBER: builtins.int - DISPLAY_NAME_FIELD_NUMBER: builtins.int - IS_SUBJECT_FIELD_NUMBER: builtins.int - ORDINAL_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - SCHEMA_FIELD_NUMBER: builtins.int - CREATED_AT_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - HASH_FIELD_NUMBER: builtins.int - name: builtins.str - """object type name (unique, lc-string)""" - display_name: builtins.str - """object type display name""" - is_subject: builtins.bool - """object type is a subject (user|group) (default false)""" - ordinal: builtins.int - """sort ordinal (default 0)""" - status: builtins.int - """status flag bitmap (default 0)""" - @property - def schema(self) -> google.protobuf.struct_pb2.Struct: - """object type schema definition (JSON)""" - @property - def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """created at timestamp (UTC)""" - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """last updated timestamp (UTC)""" - hash: builtins.str - """object instance hash""" - def __init__( - self, - *, - name: builtins.str = ..., - display_name: builtins.str = ..., - is_subject: builtins.bool = ..., - ordinal: builtins.int = ..., - status: builtins.int = ..., - schema: google.protobuf.struct_pb2.Struct | None = ..., - created_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - hash: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "schema", b"schema", "updated_at", b"updated_at"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "display_name", b"display_name", "hash", b"hash", "is_subject", b"is_subject", "name", b"name", "ordinal", b"ordinal", "schema", b"schema", "status", b"status", "updated_at", b"updated_at"]) -> None: ... - -global___ObjectType = ObjectType - -@typing_extensions.final -class Permission(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NAME_FIELD_NUMBER: builtins.int - DISPLAY_NAME_FIELD_NUMBER: builtins.int - CREATED_AT_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - HASH_FIELD_NUMBER: builtins.int - name: builtins.str - """permission name (unique, cs-string)""" - display_name: builtins.str - """permission display name""" - @property - def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """created at timestamp (UTC)""" - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """last updated timestamp (UTC)""" - hash: builtins.str - """object instance hash""" - def __init__( - self, - *, - name: builtins.str = ..., - display_name: builtins.str = ..., - created_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - hash: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "updated_at", b"updated_at"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "display_name", b"display_name", "hash", b"hash", "name", b"name", "updated_at", b"updated_at"]) -> None: ... - -global___Permission = Permission - -@typing_extensions.final -class RelationType(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NAME_FIELD_NUMBER: builtins.int - OBJECT_TYPE_FIELD_NUMBER: builtins.int - DISPLAY_NAME_FIELD_NUMBER: builtins.int - ORDINAL_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - UNIONS_FIELD_NUMBER: builtins.int - PERMISSIONS_FIELD_NUMBER: builtins.int - CREATED_AT_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - HASH_FIELD_NUMBER: builtins.int - name: builtins.str - """relation type name selector""" - object_type: builtins.str - """object type referenced by relation""" - display_name: builtins.str - """relation display name""" - ordinal: builtins.int - """sort ordinal (default 0)""" - status: builtins.int - """status bitmap (default 0)""" - @property - def unions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """relations union-ed with relation type instance""" - @property - def permissions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """permissions associated to relation type instance""" - @property - def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """created at timestamp (UTC)""" - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """last updated timestamp (UTC)""" - hash: builtins.str - """object instance hash""" - def __init__( - self, - *, - name: builtins.str = ..., - object_type: builtins.str = ..., - display_name: builtins.str = ..., - ordinal: builtins.int = ..., - status: builtins.int = ..., - unions: collections.abc.Iterable[builtins.str] | None = ..., - permissions: collections.abc.Iterable[builtins.str] | None = ..., - created_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - hash: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "updated_at", b"updated_at"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "display_name", b"display_name", "hash", b"hash", "name", b"name", "object_type", b"object_type", "ordinal", b"ordinal", "permissions", b"permissions", "status", b"status", "unions", b"unions", "updated_at", b"updated_at"]) -> None: ... - -global___RelationType = RelationType - -@typing_extensions.final -class Object(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - DISPLAY_NAME_FIELD_NUMBER: builtins.int - PROPERTIES_FIELD_NUMBER: builtins.int - CREATED_AT_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - HASH_FIELD_NUMBER: builtins.int - key: builtins.str - """external object key (cs-string)""" - type: builtins.str - """object type name""" - display_name: builtins.str - """display name object""" - @property - def properties(self) -> google.protobuf.struct_pb2.Struct: - """property bag""" - @property - def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """created at timestamp (UTC)""" - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """last updated timestamp (UTC)""" - hash: builtins.str - """object instance hash""" - def __init__( - self, - *, - key: builtins.str = ..., - type: builtins.str = ..., - display_name: builtins.str = ..., - properties: google.protobuf.struct_pb2.Struct | None = ..., - created_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - hash: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "properties", b"properties", "updated_at", b"updated_at"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "display_name", b"display_name", "hash", b"hash", "key", b"key", "properties", b"properties", "type", b"type", "updated_at", b"updated_at"]) -> None: ... - -global___Object = Object - -@typing_extensions.final -class Relation(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SUBJECT_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - OBJECT_FIELD_NUMBER: builtins.int - CREATED_AT_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - HASH_FIELD_NUMBER: builtins.int - @property - def subject(self) -> global___ObjectIdentifier: - """subject identifier""" - relation: builtins.str - """relation type name""" - @property - def object(self) -> global___ObjectIdentifier: - """object identifier""" - @property - def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """created at timestamp (UTC)""" - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """last updated timestamp (UTC)""" - hash: builtins.str - """object instance hash""" - def __init__( - self, - *, - subject: global___ObjectIdentifier | None = ..., - relation: builtins.str = ..., - object: global___ObjectIdentifier | None = ..., - created_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - hash: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "object", b"object", "subject", b"subject", "updated_at", b"updated_at"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "hash", b"hash", "object", b"object", "relation", b"relation", "subject", b"subject", "updated_at", b"updated_at"]) -> None: ... - -global___Relation = Relation - -@typing_extensions.final -class ObjectDependency(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_KEY_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_KEY_FIELD_NUMBER: builtins.int - DEPTH_FIELD_NUMBER: builtins.int - IS_CYCLE_FIELD_NUMBER: builtins.int - PATH_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type name of source object""" - object_key: builtins.str - """object search key of source object""" - relation: builtins.str - """relation identifier""" - subject_type: builtins.str - """object type id of target object""" - subject_key: builtins.str - """object search key of target object""" - depth: builtins.int - """dependency depth""" - is_cycle: builtins.bool - """dependency cycle""" - @property - def path(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """dependency path""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_key: builtins.str = ..., - relation: builtins.str = ..., - subject_type: builtins.str = ..., - subject_key: builtins.str = ..., - depth: builtins.int = ..., - is_cycle: builtins.bool = ..., - path: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["depth", b"depth", "is_cycle", b"is_cycle", "object_key", b"object_key", "object_type", b"object_type", "path", b"path", "relation", b"relation", "subject_key", b"subject_key", "subject_type", b"subject_type"]) -> None: ... - -global___ObjectDependency = ObjectDependency - -@typing_extensions.final -class ObjectTypeIdentifier(google.protobuf.message.Message): - """ObjectType identifier""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NAME_FIELD_NUMBER: builtins.int - name: builtins.str - """object type name (unique, lc-string)""" - def __init__( - self, - *, - name: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_name", b"_name", "name", b"name"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_name", b"_name", "name", b"name"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_name", b"_name"]) -> typing_extensions.Literal["name"] | None: ... - -global___ObjectTypeIdentifier = ObjectTypeIdentifier - -@typing_extensions.final -class PermissionIdentifier(google.protobuf.message.Message): - """Permission identifier""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NAME_FIELD_NUMBER: builtins.int - name: builtins.str - """permission name (unique, cs-string)""" - def __init__( - self, - *, - name: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_name", b"_name", "name", b"name"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_name", b"_name", "name", b"name"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_name", b"_name"]) -> typing_extensions.Literal["name"] | None: ... - -global___PermissionIdentifier = PermissionIdentifier - -@typing_extensions.final -class RelationTypeIdentifier(google.protobuf.message.Message): - """RelationType identifier""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NAME_FIELD_NUMBER: builtins.int - OBJECT_TYPE_FIELD_NUMBER: builtins.int - name: builtins.str - """relation type name selector""" - object_type: builtins.str - """object type referenced by relation""" - def __init__( - self, - *, - name: builtins.str | None = ..., - object_type: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_name", b"_name", "_object_type", b"_object_type", "name", b"name", "object_type", b"object_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_name", b"_name", "_object_type", b"_object_type", "name", b"name", "object_type", b"object_type"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing_extensions.Literal["_name", b"_name"]) -> typing_extensions.Literal["name"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing_extensions.Literal["_object_type", b"_object_type"]) -> typing_extensions.Literal["object_type"] | None: ... - -global___RelationTypeIdentifier = RelationTypeIdentifier - -@typing_extensions.final -class ObjectIdentifier(google.protobuf.message.Message): - """Object identifier""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - TYPE_FIELD_NUMBER: builtins.int - KEY_FIELD_NUMBER: builtins.int - type: builtins.str - """object type""" - key: builtins.str - """external object key (cs-string)""" - def __init__( - self, - *, - type: builtins.str | None = ..., - key: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_key", b"_key", "_type", b"_type", "key", b"key", "type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_key", b"_key", "_type", b"_type", "key", b"key", "type", b"type"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing_extensions.Literal["_key", b"_key"]) -> typing_extensions.Literal["key"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing_extensions.Literal["_type", b"_type"]) -> typing_extensions.Literal["type"] | None: ... - -global___ObjectIdentifier = ObjectIdentifier - -@typing_extensions.final -class RelationIdentifier(google.protobuf.message.Message): - """Relation identifier""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SUBJECT_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - OBJECT_FIELD_NUMBER: builtins.int - @property - def subject(self) -> global___ObjectIdentifier: - """subject identifier""" - @property - def relation(self) -> global___RelationTypeIdentifier: - """relation identifier""" - @property - def object(self) -> global___ObjectIdentifier: - """object identifier""" - def __init__( - self, - *, - subject: global___ObjectIdentifier | None = ..., - relation: global___RelationTypeIdentifier | None = ..., - object: global___ObjectIdentifier | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["object", b"object", "relation", b"relation", "subject", b"subject"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object", b"object", "relation", b"relation", "subject", b"subject"]) -> None: ... - -global___RelationIdentifier = RelationIdentifier - -@typing_extensions.final -class PaginationRequest(google.protobuf.message.Message): - """Pagination request""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SIZE_FIELD_NUMBER: builtins.int - TOKEN_FIELD_NUMBER: builtins.int - size: builtins.int - """requested page size, valid value between 1-100 rows (default 100)""" - token: builtins.str - """pagination start token, default "" """ - def __init__( - self, - *, - size: builtins.int = ..., - token: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["size", b"size", "token", b"token"]) -> None: ... - -global___PaginationRequest = PaginationRequest - -@typing_extensions.final -class PaginationResponse(google.protobuf.message.Message): - """Pagination response""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NEXT_TOKEN_FIELD_NUMBER: builtins.int - RESULT_SIZE_FIELD_NUMBER: builtins.int - next_token: builtins.str - """next page token, when empty there are no more pages to fetch""" - result_size: builtins.int - """result size of the page returned""" - def __init__( - self, - *, - next_token: builtins.str = ..., - result_size: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["next_token", b"next_token", "result_size", b"result_size"]) -> None: ... - -global___PaginationResponse = PaginationResponse +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Flag(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + FLAG_UNKNOWN: _ClassVar[Flag] + FLAG_HIDDEN: _ClassVar[Flag] + FLAG_READONLY: _ClassVar[Flag] + FLAG_SYSTEM: _ClassVar[Flag] + FLAG_SHADOW: _ClassVar[Flag] +FLAG_UNKNOWN: Flag +FLAG_HIDDEN: Flag +FLAG_READONLY: Flag +FLAG_SYSTEM: Flag +FLAG_SHADOW: Flag + +class ObjectType(_message.Message): + __slots__ = ("name", "display_name", "is_subject", "ordinal", "status", "schema", "created_at", "updated_at", "hash") + NAME_FIELD_NUMBER: _ClassVar[int] + DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int] + IS_SUBJECT_FIELD_NUMBER: _ClassVar[int] + ORDINAL_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + SCHEMA_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + name: str + display_name: str + is_subject: bool + ordinal: int + status: int + schema: _struct_pb2.Struct + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + hash: str + def __init__(self, name: _Optional[str] = ..., display_name: _Optional[str] = ..., is_subject: bool = ..., ordinal: _Optional[int] = ..., status: _Optional[int] = ..., schema: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., hash: _Optional[str] = ...) -> None: ... + +class Permission(_message.Message): + __slots__ = ("name", "display_name", "created_at", "updated_at", "hash") + NAME_FIELD_NUMBER: _ClassVar[int] + DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + name: str + display_name: str + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + hash: str + def __init__(self, name: _Optional[str] = ..., display_name: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., hash: _Optional[str] = ...) -> None: ... + +class RelationType(_message.Message): + __slots__ = ("name", "object_type", "display_name", "ordinal", "status", "unions", "permissions", "created_at", "updated_at", "hash") + NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int] + ORDINAL_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + UNIONS_FIELD_NUMBER: _ClassVar[int] + PERMISSIONS_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + name: str + object_type: str + display_name: str + ordinal: int + status: int + unions: _containers.RepeatedScalarFieldContainer[str] + permissions: _containers.RepeatedScalarFieldContainer[str] + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + hash: str + def __init__(self, name: _Optional[str] = ..., object_type: _Optional[str] = ..., display_name: _Optional[str] = ..., ordinal: _Optional[int] = ..., status: _Optional[int] = ..., unions: _Optional[_Iterable[str]] = ..., permissions: _Optional[_Iterable[str]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., hash: _Optional[str] = ...) -> None: ... + +class Object(_message.Message): + __slots__ = ("key", "type", "display_name", "properties", "created_at", "updated_at", "hash") + KEY_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int] + PROPERTIES_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + key: str + type: str + display_name: str + properties: _struct_pb2.Struct + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + hash: str + def __init__(self, key: _Optional[str] = ..., type: _Optional[str] = ..., display_name: _Optional[str] = ..., properties: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., hash: _Optional[str] = ...) -> None: ... + +class Relation(_message.Message): + __slots__ = ("subject", "relation", "object", "created_at", "updated_at", "hash") + SUBJECT_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + OBJECT_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + subject: ObjectIdentifier + relation: str + object: ObjectIdentifier + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + hash: str + def __init__(self, subject: _Optional[_Union[ObjectIdentifier, _Mapping]] = ..., relation: _Optional[str] = ..., object: _Optional[_Union[ObjectIdentifier, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., hash: _Optional[str] = ...) -> None: ... + +class ObjectDependency(_message.Message): + __slots__ = ("object_type", "object_key", "relation", "subject_type", "subject_key", "depth", "is_cycle", "path") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_KEY_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_KEY_FIELD_NUMBER: _ClassVar[int] + DEPTH_FIELD_NUMBER: _ClassVar[int] + IS_CYCLE_FIELD_NUMBER: _ClassVar[int] + PATH_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_key: str + relation: str + subject_type: str + subject_key: str + depth: int + is_cycle: bool + path: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, object_type: _Optional[str] = ..., object_key: _Optional[str] = ..., relation: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_key: _Optional[str] = ..., depth: _Optional[int] = ..., is_cycle: bool = ..., path: _Optional[_Iterable[str]] = ...) -> None: ... + +class ObjectTypeIdentifier(_message.Message): + __slots__ = ("name",) + NAME_FIELD_NUMBER: _ClassVar[int] + name: str + def __init__(self, name: _Optional[str] = ...) -> None: ... + +class PermissionIdentifier(_message.Message): + __slots__ = ("name",) + NAME_FIELD_NUMBER: _ClassVar[int] + name: str + def __init__(self, name: _Optional[str] = ...) -> None: ... + +class RelationTypeIdentifier(_message.Message): + __slots__ = ("name", "object_type") + NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + name: str + object_type: str + def __init__(self, name: _Optional[str] = ..., object_type: _Optional[str] = ...) -> None: ... + +class ObjectIdentifier(_message.Message): + __slots__ = ("type", "key") + TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_FIELD_NUMBER: _ClassVar[int] + type: str + key: str + def __init__(self, type: _Optional[str] = ..., key: _Optional[str] = ...) -> None: ... + +class RelationIdentifier(_message.Message): + __slots__ = ("subject", "relation", "object") + SUBJECT_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + OBJECT_FIELD_NUMBER: _ClassVar[int] + subject: ObjectIdentifier + relation: RelationTypeIdentifier + object: ObjectIdentifier + def __init__(self, subject: _Optional[_Union[ObjectIdentifier, _Mapping]] = ..., relation: _Optional[_Union[RelationTypeIdentifier, _Mapping]] = ..., object: _Optional[_Union[ObjectIdentifier, _Mapping]] = ...) -> None: ... + +class PaginationRequest(_message.Message): + __slots__ = ("size", "token") + SIZE_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + size: int + token: str + def __init__(self, size: _Optional[int] = ..., token: _Optional[str] = ...) -> None: ... + +class PaginationResponse(_message.Message): + __slots__ = ("next_token", "result_size") + NEXT_TOKEN_FIELD_NUMBER: _ClassVar[int] + RESULT_SIZE_FIELD_NUMBER: _ClassVar[int] + next_token: str + result_size: int + def __init__(self, next_token: _Optional[str] = ..., result_size: _Optional[int] = ...) -> None: ... diff --git a/src/aserto/directory/common/v3/common_pb2.py b/src/aserto/directory/common/v3/common_pb2.py index 51804b3..0293e14 100644 --- a/src/aserto/directory/common/v3/common_pb2.py +++ b/src/aserto/directory/common/v3/common_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/common/v3/common.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/common/v3/common_pb2.pyi b/src/aserto/directory/common/v3/common_pb2.pyi index fae3155..9c1f6cb 100644 --- a/src/aserto/directory/common/v3/common_pb2.pyi +++ b/src/aserto/directory/common/v3/common_pb2.pyi @@ -1,253 +1,104 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 -import sys - -if sys.version_info >= (3, 8): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class Object(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - TYPE_FIELD_NUMBER: builtins.int - ID_FIELD_NUMBER: builtins.int - DISPLAY_NAME_FIELD_NUMBER: builtins.int - PROPERTIES_FIELD_NUMBER: builtins.int - CREATED_AT_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - ETAG_FIELD_NUMBER: builtins.int - type: builtins.str - """object type name""" - id: builtins.str - """external object identifier (cs-string, no spaces or tabs)""" - display_name: builtins.str - """display name object""" - @property - def properties(self) -> google.protobuf.struct_pb2.Struct: - """property bag""" - @property - def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """created at timestamp (UTC)""" - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """last updated timestamp (UTC)""" - etag: builtins.str - """object instance etag""" - def __init__( - self, - *, - type: builtins.str = ..., - id: builtins.str = ..., - display_name: builtins.str = ..., - properties: google.protobuf.struct_pb2.Struct | None = ..., - created_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - etag: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "properties", b"properties", "updated_at", b"updated_at"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "display_name", b"display_name", "etag", b"etag", "id", b"id", "properties", b"properties", "type", b"type", "updated_at", b"updated_at"]) -> None: ... - -global___Object = Object - -@typing_extensions.final -class Relation(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_ID_FIELD_NUMBER: builtins.int - SUBJECT_RELATION_FIELD_NUMBER: builtins.int - CREATED_AT_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - ETAG_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - relation: builtins.str - """object relation name""" - subject_type: builtins.str - """subject type""" - subject_id: builtins.str - """subject identifier""" - subject_relation: builtins.str - """optional subject relation name""" - @property - def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """created at timestamp (UTC)""" - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """last updated timestamp (UTC)""" - etag: builtins.str - """object instance etag""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - relation: builtins.str = ..., - subject_type: builtins.str = ..., - subject_id: builtins.str = ..., - subject_relation: builtins.str = ..., - created_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - etag: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "updated_at", b"updated_at"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "etag", b"etag", "object_id", b"object_id", "object_type", b"object_type", "relation", b"relation", "subject_id", b"subject_id", "subject_relation", b"subject_relation", "subject_type", b"subject_type", "updated_at", b"updated_at"]) -> None: ... - -global___Relation = Relation - -@typing_extensions.final -class ObjectDependency(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_ID_FIELD_NUMBER: builtins.int - SUBJECT_RELATION_FIELD_NUMBER: builtins.int - DEPTH_FIELD_NUMBER: builtins.int - IS_CYCLE_FIELD_NUMBER: builtins.int - PATH_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - relation: builtins.str - """object relation name""" - subject_type: builtins.str - """subject type""" - subject_id: builtins.str - """subject identifier""" - subject_relation: builtins.str - """optional subject relation name""" - depth: builtins.int - """dependency depth""" - is_cycle: builtins.bool - """dependency cycle""" - @property - def path(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """dependency path""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - relation: builtins.str = ..., - subject_type: builtins.str = ..., - subject_id: builtins.str = ..., - subject_relation: builtins.str = ..., - depth: builtins.int = ..., - is_cycle: builtins.bool = ..., - path: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["depth", b"depth", "is_cycle", b"is_cycle", "object_id", b"object_id", "object_type", b"object_type", "path", b"path", "relation", b"relation", "subject_id", b"subject_id", "subject_relation", b"subject_relation", "subject_type", b"subject_type"]) -> None: ... - -global___ObjectDependency = ObjectDependency - -@typing_extensions.final -class ObjectIdentifier(google.protobuf.message.Message): - """Object identifier""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type (lc-string)""" - object_id: builtins.str - """object identifier (cs-string)""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["object_id", b"object_id", "object_type", b"object_type"]) -> None: ... - -global___ObjectIdentifier = ObjectIdentifier - -@typing_extensions.final -class PaginationRequest(google.protobuf.message.Message): - """Pagination request""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SIZE_FIELD_NUMBER: builtins.int - TOKEN_FIELD_NUMBER: builtins.int - size: builtins.int - """requested page size, valid value between 1-100 rows (default 100)""" - token: builtins.str - """pagination start token, default "" """ - def __init__( - self, - *, - size: builtins.int = ..., - token: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["size", b"size", "token", b"token"]) -> None: ... - -global___PaginationRequest = PaginationRequest - -@typing_extensions.final -class PaginationResponse(google.protobuf.message.Message): - """Pagination response""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NEXT_TOKEN_FIELD_NUMBER: builtins.int - next_token: builtins.str - """next page token, when empty there are no more pages to fetch""" - def __init__( - self, - *, - next_token: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["next_token", b"next_token"]) -> None: ... - -global___PaginationResponse = PaginationResponse - -@typing_extensions.final -class ObjectType(google.protobuf.message.Message): - """Object type""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NAME_FIELD_NUMBER: builtins.int - RELATIONS_FIELD_NUMBER: builtins.int - PERMISSIONS_FIELD_NUMBER: builtins.int - name: builtins.str - """object type name (lc-string)""" - @property - def relations(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """relations associated to object type""" - @property - def permissions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """permissions associated to object type""" - def __init__( - self, - *, - name: builtins.str = ..., - relations: collections.abc.Iterable[builtins.str] | None = ..., - permissions: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "permissions", b"permissions", "relations", b"relations"]) -> None: ... - -global___ObjectType = ObjectType +from google.api import field_behavior_pb2 as _field_behavior_pb2 +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from buf.validate import validate_pb2 as _validate_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Object(_message.Message): + __slots__ = ("type", "id", "display_name", "properties", "created_at", "updated_at", "etag") + TYPE_FIELD_NUMBER: _ClassVar[int] + ID_FIELD_NUMBER: _ClassVar[int] + DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int] + PROPERTIES_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + ETAG_FIELD_NUMBER: _ClassVar[int] + type: str + id: str + display_name: str + properties: _struct_pb2.Struct + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + etag: str + def __init__(self, type: _Optional[str] = ..., id: _Optional[str] = ..., display_name: _Optional[str] = ..., properties: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., etag: _Optional[str] = ...) -> None: ... + +class Relation(_message.Message): + __slots__ = ("object_type", "object_id", "relation", "subject_type", "subject_id", "subject_relation", "created_at", "updated_at", "etag") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + SUBJECT_RELATION_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + ETAG_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + relation: str + subject_type: str + subject_id: str + subject_relation: str + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + etag: str + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., relation: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_id: _Optional[str] = ..., subject_relation: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., etag: _Optional[str] = ...) -> None: ... + +class ObjectDependency(_message.Message): + __slots__ = ("object_type", "object_id", "relation", "subject_type", "subject_id", "subject_relation", "depth", "is_cycle", "path") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + SUBJECT_RELATION_FIELD_NUMBER: _ClassVar[int] + DEPTH_FIELD_NUMBER: _ClassVar[int] + IS_CYCLE_FIELD_NUMBER: _ClassVar[int] + PATH_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + relation: str + subject_type: str + subject_id: str + subject_relation: str + depth: int + is_cycle: bool + path: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., relation: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_id: _Optional[str] = ..., subject_relation: _Optional[str] = ..., depth: _Optional[int] = ..., is_cycle: bool = ..., path: _Optional[_Iterable[str]] = ...) -> None: ... + +class ObjectIdentifier(_message.Message): + __slots__ = ("object_type", "object_id") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class PaginationRequest(_message.Message): + __slots__ = ("size", "token") + SIZE_FIELD_NUMBER: _ClassVar[int] + TOKEN_FIELD_NUMBER: _ClassVar[int] + size: int + token: str + def __init__(self, size: _Optional[int] = ..., token: _Optional[str] = ...) -> None: ... + +class PaginationResponse(_message.Message): + __slots__ = ("next_token",) + NEXT_TOKEN_FIELD_NUMBER: _ClassVar[int] + next_token: str + def __init__(self, next_token: _Optional[str] = ...) -> None: ... + +class ObjectType(_message.Message): + __slots__ = ("name", "relations", "permissions") + NAME_FIELD_NUMBER: _ClassVar[int] + RELATIONS_FIELD_NUMBER: _ClassVar[int] + PERMISSIONS_FIELD_NUMBER: _ClassVar[int] + name: str + relations: _containers.RepeatedScalarFieldContainer[str] + permissions: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, name: _Optional[str] = ..., relations: _Optional[_Iterable[str]] = ..., permissions: _Optional[_Iterable[str]] = ...) -> None: ... diff --git a/src/aserto/directory/exporter/v2/__init__.py b/src/aserto/directory/exporter/v2/__init__.py index d98f728..02517a3 100644 --- a/src/aserto/directory/exporter/v2/__init__.py +++ b/src/aserto/directory/exporter/v2/__init__.py @@ -2,7 +2,6 @@ from aserto.directory.exporter.v2.exporter_pb2_grpc import ( ExporterStub, - ExporterAsyncStub, ExporterServicer, ) @@ -14,7 +13,6 @@ __all__ = [ "ExporterStub", - "ExporterAsyncStub", "ExporterServicer", "Option", "ExportRequest", diff --git a/src/aserto/directory/exporter/v2/exporter_pb2.py b/src/aserto/directory/exporter/v2/exporter_pb2.py index f0117f9..4e1d60a 100644 --- a/src/aserto/directory/exporter/v2/exporter_pb2.py +++ b/src/aserto/directory/exporter/v2/exporter_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/exporter/v2/exporter.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/exporter/v2/exporter_pb2.pyi b/src/aserto/directory/exporter/v2/exporter_pb2.pyi index f32a9bf..abb03a0 100644 --- a/src/aserto/directory/exporter/v2/exporter_pb2.pyi +++ b/src/aserto/directory/exporter/v2/exporter_pb2.pyi @@ -1,139 +1,57 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import aserto.directory.common.v2.common_pb2 -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.timestamp_pb2 -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _Option: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _OptionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Option.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - OPTION_UNKNOWN: _Option.ValueType # 0 - """nothing selected (default initialization value)""" - OPTION_METADATA_OBJECT_TYPES: _Option.ValueType # 1 - """object type metadata""" - OPTION_METADATA_RELATION_TYPES: _Option.ValueType # 2 - """relation type metadata""" - OPTION_METADATA_PERMISSIONS: _Option.ValueType # 4 - """permission metadata""" - OPTION_METADATA: _Option.ValueType # 7 - """all metadata = OPTION_METADATA_OBJECT_TYPES | OPTION_METADATA_RELATION_TYPES | OPTION_METADATA_PERMISSIONS""" - OPTION_DATA_OBJECTS: _Option.ValueType # 8 - """object instances""" - OPTION_DATA_RELATIONS: _Option.ValueType # 16 - """relation instances""" - OPTION_DATA_RELATIONS_WITH_KEYS: _Option.ValueType # 32 - """relation instances with key values""" - OPTION_DATA: _Option.ValueType # 24 - """all data = OPTION_DATA_OBJECTS | OPTION_DATA_RELATIONS""" - OPTION_DATA_WITH_KEYS: _Option.ValueType # 40 - """all data with keys = OPTION_DATA_OBJECTS | OPTION_DATA_RELATIONS_WITH_KEYS""" - OPTION_ALL: _Option.ValueType # 31 - """all metadata and data = OPTION_METADATA | OPTION_DATA""" - OPTION_ALL_WITH_KEYS: _Option.ValueType # 47 - """all metadata and data with keys = OPTION_METADATA | OPTION_DATA_WITH_KEYS""" - -class Option(_Option, metaclass=_OptionEnumTypeWrapper): ... - -OPTION_UNKNOWN: Option.ValueType # 0 -"""nothing selected (default initialization value)""" -OPTION_METADATA_OBJECT_TYPES: Option.ValueType # 1 -"""object type metadata""" -OPTION_METADATA_RELATION_TYPES: Option.ValueType # 2 -"""relation type metadata""" -OPTION_METADATA_PERMISSIONS: Option.ValueType # 4 -"""permission metadata""" -OPTION_METADATA: Option.ValueType # 7 -"""all metadata = OPTION_METADATA_OBJECT_TYPES | OPTION_METADATA_RELATION_TYPES | OPTION_METADATA_PERMISSIONS""" -OPTION_DATA_OBJECTS: Option.ValueType # 8 -"""object instances""" -OPTION_DATA_RELATIONS: Option.ValueType # 16 -"""relation instances""" -OPTION_DATA_RELATIONS_WITH_KEYS: Option.ValueType # 32 -"""relation instances with key values""" -OPTION_DATA: Option.ValueType # 24 -"""all data = OPTION_DATA_OBJECTS | OPTION_DATA_RELATIONS""" -OPTION_DATA_WITH_KEYS: Option.ValueType # 40 -"""all data with keys = OPTION_DATA_OBJECTS | OPTION_DATA_RELATIONS_WITH_KEYS""" -OPTION_ALL: Option.ValueType # 31 -"""all metadata and data = OPTION_METADATA | OPTION_DATA""" -OPTION_ALL_WITH_KEYS: Option.ValueType # 47 -"""all metadata and data with keys = OPTION_METADATA | OPTION_DATA_WITH_KEYS""" -global___Option = Option - -@typing_extensions.final -class ExportRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OPTIONS_FIELD_NUMBER: builtins.int - START_FROM_FIELD_NUMBER: builtins.int - options: builtins.int - """data export options mask""" - @property - def start_from(self) -> google.protobuf.timestamp_pb2.Timestamp: - """start export from timestamp (UTC)""" - def __init__( - self, - *, - options: builtins.int = ..., - start_from: google.protobuf.timestamp_pb2.Timestamp | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["start_from", b"start_from"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["options", b"options", "start_from", b"start_from"]) -> None: ... - -global___ExportRequest = ExportRequest - -@typing_extensions.final -class ExportResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_FIELD_NUMBER: builtins.int - OBJECT_TYPE_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - RELATION_TYPE_FIELD_NUMBER: builtins.int - PERMISSION_FIELD_NUMBER: builtins.int - @property - def object(self) -> aserto.directory.common.v2.common_pb2.Object: - """object instance (data)""" - @property - def object_type(self) -> aserto.directory.common.v2.common_pb2.ObjectType: - """object type instance (metadata)""" - @property - def relation(self) -> aserto.directory.common.v2.common_pb2.Relation: - """relation instance (data)""" - @property - def relation_type(self) -> aserto.directory.common.v2.common_pb2.RelationType: - """relation type instance (metadata)""" - @property - def permission(self) -> aserto.directory.common.v2.common_pb2.Permission: - """permission instance (metadata)""" - def __init__( - self, - *, - object: aserto.directory.common.v2.common_pb2.Object | None = ..., - object_type: aserto.directory.common.v2.common_pb2.ObjectType | None = ..., - relation: aserto.directory.common.v2.common_pb2.Relation | None = ..., - relation_type: aserto.directory.common.v2.common_pb2.RelationType | None = ..., - permission: aserto.directory.common.v2.common_pb2.Permission | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["msg", b"msg", "object", b"object", "object_type", b"object_type", "permission", b"permission", "relation", b"relation", "relation_type", b"relation_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["msg", b"msg", "object", b"object", "object_type", b"object_type", "permission", b"permission", "relation", b"relation", "relation_type", b"relation_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["msg", b"msg"]) -> typing_extensions.Literal["object", "object_type", "relation", "relation_type", "permission"] | None: ... - -global___ExportResponse = ExportResponse +from aserto.directory.common.v2 import common_pb2 as _common_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Option(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + OPTION_UNKNOWN: _ClassVar[Option] + OPTION_METADATA_OBJECT_TYPES: _ClassVar[Option] + OPTION_METADATA_RELATION_TYPES: _ClassVar[Option] + OPTION_METADATA_PERMISSIONS: _ClassVar[Option] + OPTION_METADATA: _ClassVar[Option] + OPTION_DATA_OBJECTS: _ClassVar[Option] + OPTION_DATA_RELATIONS: _ClassVar[Option] + OPTION_DATA_RELATIONS_WITH_KEYS: _ClassVar[Option] + OPTION_DATA: _ClassVar[Option] + OPTION_DATA_WITH_KEYS: _ClassVar[Option] + OPTION_ALL: _ClassVar[Option] + OPTION_ALL_WITH_KEYS: _ClassVar[Option] +OPTION_UNKNOWN: Option +OPTION_METADATA_OBJECT_TYPES: Option +OPTION_METADATA_RELATION_TYPES: Option +OPTION_METADATA_PERMISSIONS: Option +OPTION_METADATA: Option +OPTION_DATA_OBJECTS: Option +OPTION_DATA_RELATIONS: Option +OPTION_DATA_RELATIONS_WITH_KEYS: Option +OPTION_DATA: Option +OPTION_DATA_WITH_KEYS: Option +OPTION_ALL: Option +OPTION_ALL_WITH_KEYS: Option + +class ExportRequest(_message.Message): + __slots__ = ("options", "start_from") + OPTIONS_FIELD_NUMBER: _ClassVar[int] + START_FROM_FIELD_NUMBER: _ClassVar[int] + options: int + start_from: _timestamp_pb2.Timestamp + def __init__(self, options: _Optional[int] = ..., start_from: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class ExportResponse(_message.Message): + __slots__ = ("object", "object_type", "relation", "relation_type", "permission") + OBJECT_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + RELATION_TYPE_FIELD_NUMBER: _ClassVar[int] + PERMISSION_FIELD_NUMBER: _ClassVar[int] + object: _common_pb2.Object + object_type: _common_pb2.ObjectType + relation: _common_pb2.Relation + relation_type: _common_pb2.RelationType + permission: _common_pb2.Permission + def __init__(self, object: _Optional[_Union[_common_pb2.Object, _Mapping]] = ..., object_type: _Optional[_Union[_common_pb2.ObjectType, _Mapping]] = ..., relation: _Optional[_Union[_common_pb2.Relation, _Mapping]] = ..., relation_type: _Optional[_Union[_common_pb2.RelationType, _Mapping]] = ..., permission: _Optional[_Union[_common_pb2.Permission, _Mapping]] = ...) -> None: ... diff --git a/src/aserto/directory/exporter/v3/__init__.py b/src/aserto/directory/exporter/v3/__init__.py index 2de7ab9..67e1cae 100644 --- a/src/aserto/directory/exporter/v3/__init__.py +++ b/src/aserto/directory/exporter/v3/__init__.py @@ -2,7 +2,6 @@ from aserto.directory.exporter.v3.exporter_pb2_grpc import ( ExporterStub, - ExporterAsyncStub, ExporterServicer, ) @@ -14,7 +13,6 @@ __all__ = [ "ExporterStub", - "ExporterAsyncStub", "ExporterServicer", "Option", "ExportRequest", diff --git a/src/aserto/directory/exporter/v3/exporter_pb2.py b/src/aserto/directory/exporter/v3/exporter_pb2.py index 051ab7d..feea292 100644 --- a/src/aserto/directory/exporter/v3/exporter_pb2.py +++ b/src/aserto/directory/exporter/v3/exporter_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/exporter/v3/exporter.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/exporter/v3/exporter_pb2.pyi b/src/aserto/directory/exporter/v3/exporter_pb2.pyi index 8e9b55c..c63f423 100644 --- a/src/aserto/directory/exporter/v3/exporter_pb2.pyi +++ b/src/aserto/directory/exporter/v3/exporter_pb2.pyi @@ -1,92 +1,35 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import aserto.directory.common.v3.common_pb2 -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.timestamp_pb2 -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _Option: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _OptionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Option.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - OPTION_UNKNOWN: _Option.ValueType # 0 - """nothing selected (default initialization value)""" - OPTION_DATA_OBJECTS: _Option.ValueType # 8 - """object instances""" - OPTION_DATA_RELATIONS: _Option.ValueType # 16 - """relation instances""" - OPTION_DATA: _Option.ValueType # 24 - """all data = OPTION_DATA_OBJECTS | OPTION_DATA_RELATIONS""" - -class Option(_Option, metaclass=_OptionEnumTypeWrapper): ... - -OPTION_UNKNOWN: Option.ValueType # 0 -"""nothing selected (default initialization value)""" -OPTION_DATA_OBJECTS: Option.ValueType # 8 -"""object instances""" -OPTION_DATA_RELATIONS: Option.ValueType # 16 -"""relation instances""" -OPTION_DATA: Option.ValueType # 24 -"""all data = OPTION_DATA_OBJECTS | OPTION_DATA_RELATIONS""" -global___Option = Option - -@typing_extensions.final -class ExportRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OPTIONS_FIELD_NUMBER: builtins.int - START_FROM_FIELD_NUMBER: builtins.int - options: builtins.int - """data export options mask""" - @property - def start_from(self) -> google.protobuf.timestamp_pb2.Timestamp: - """start export from timestamp (UTC)""" - def __init__( - self, - *, - options: builtins.int = ..., - start_from: google.protobuf.timestamp_pb2.Timestamp | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["start_from", b"start_from"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["options", b"options", "start_from", b"start_from"]) -> None: ... - -global___ExportRequest = ExportRequest - -@typing_extensions.final -class ExportResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - @property - def object(self) -> aserto.directory.common.v3.common_pb2.Object: - """object instance (data)""" - @property - def relation(self) -> aserto.directory.common.v3.common_pb2.Relation: - """relation instance (data)""" - def __init__( - self, - *, - object: aserto.directory.common.v3.common_pb2.Object | None = ..., - relation: aserto.directory.common.v3.common_pb2.Relation | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["msg", b"msg", "object", b"object", "relation", b"relation"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["msg", b"msg", "object", b"object", "relation", b"relation"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["msg", b"msg"]) -> typing_extensions.Literal["object", "relation"] | None: ... - -global___ExportResponse = ExportResponse +from aserto.directory.common.v3 import common_pb2 as _common_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Option(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + OPTION_UNKNOWN: _ClassVar[Option] + OPTION_DATA_OBJECTS: _ClassVar[Option] + OPTION_DATA_RELATIONS: _ClassVar[Option] + OPTION_DATA: _ClassVar[Option] +OPTION_UNKNOWN: Option +OPTION_DATA_OBJECTS: Option +OPTION_DATA_RELATIONS: Option +OPTION_DATA: Option + +class ExportRequest(_message.Message): + __slots__ = ("options", "start_from") + OPTIONS_FIELD_NUMBER: _ClassVar[int] + START_FROM_FIELD_NUMBER: _ClassVar[int] + options: int + start_from: _timestamp_pb2.Timestamp + def __init__(self, options: _Optional[int] = ..., start_from: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class ExportResponse(_message.Message): + __slots__ = ("object", "relation") + OBJECT_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + object: _common_pb2.Object + relation: _common_pb2.Relation + def __init__(self, object: _Optional[_Union[_common_pb2.Object, _Mapping]] = ..., relation: _Optional[_Union[_common_pb2.Relation, _Mapping]] = ...) -> None: ... diff --git a/src/aserto/directory/importer/v2/__init__.py b/src/aserto/directory/importer/v2/__init__.py index 31ba621..405269c 100644 --- a/src/aserto/directory/importer/v2/__init__.py +++ b/src/aserto/directory/importer/v2/__init__.py @@ -9,7 +9,6 @@ from aserto.directory.importer.v2.importer_pb2_grpc import ( ImporterStub, - ImporterAsyncStub, ImporterServicer, ) @@ -19,6 +18,5 @@ "ImportResponse", "ImportCounter", "ImporterStub", - "ImporterAsyncStub", "ImporterServicer", ] \ No newline at end of file diff --git a/src/aserto/directory/importer/v2/importer_pb2.py b/src/aserto/directory/importer/v2/importer_pb2.py index 4ba8cd3..f0c3b5a 100644 --- a/src/aserto/directory/importer/v2/importer_pb2.py +++ b/src/aserto/directory/importer/v2/importer_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/importer/v2/importer.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/importer/v2/importer_pb2.pyi b/src/aserto/directory/importer/v2/importer_pb2.pyi index b20ad0c..7156896 100644 --- a/src/aserto/directory/importer/v2/importer_pb2.pyi +++ b/src/aserto/directory/importer/v2/importer_pb2.pyi @@ -1,144 +1,58 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import aserto.directory.common.v2.common_pb2 -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _Opcode: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _OpcodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Opcode.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - OPCODE_UNKNOWN: _Opcode.ValueType # 0 - OPCODE_SET: _Opcode.ValueType # 1 - OPCODE_DELETE: _Opcode.ValueType # 2 - -class Opcode(_Opcode, metaclass=_OpcodeEnumTypeWrapper): ... - -OPCODE_UNKNOWN: Opcode.ValueType # 0 -OPCODE_SET: Opcode.ValueType # 1 -OPCODE_DELETE: Opcode.ValueType # 2 -global___Opcode = Opcode - -@typing_extensions.final -class ImportRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OP_CODE_FIELD_NUMBER: builtins.int - OBJECT_TYPE_FIELD_NUMBER: builtins.int - PERMISSION_FIELD_NUMBER: builtins.int - RELATION_TYPE_FIELD_NUMBER: builtins.int - OBJECT_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - op_code: global___Opcode.ValueType - """operation Opcode enum value""" - @property - def object_type(self) -> aserto.directory.common.v2.common_pb2.ObjectType: - """object_type import message""" - @property - def permission(self) -> aserto.directory.common.v2.common_pb2.Permission: - """permission import message""" - @property - def relation_type(self) -> aserto.directory.common.v2.common_pb2.RelationType: - """relation_type import message""" - @property - def object(self) -> aserto.directory.common.v2.common_pb2.Object: - """object import message""" - @property - def relation(self) -> aserto.directory.common.v2.common_pb2.Relation: - """relation import message""" - def __init__( - self, - *, - op_code: global___Opcode.ValueType = ..., - object_type: aserto.directory.common.v2.common_pb2.ObjectType | None = ..., - permission: aserto.directory.common.v2.common_pb2.Permission | None = ..., - relation_type: aserto.directory.common.v2.common_pb2.RelationType | None = ..., - object: aserto.directory.common.v2.common_pb2.Object | None = ..., - relation: aserto.directory.common.v2.common_pb2.Relation | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["msg", b"msg", "object", b"object", "object_type", b"object_type", "permission", b"permission", "relation", b"relation", "relation_type", b"relation_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["msg", b"msg", "object", b"object", "object_type", b"object_type", "op_code", b"op_code", "permission", b"permission", "relation", b"relation", "relation_type", b"relation_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["msg", b"msg"]) -> typing_extensions.Literal["object_type", "permission", "relation_type", "object", "relation"] | None: ... - -global___ImportRequest = ImportRequest - -@typing_extensions.final -class ImportResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - PERMISSION_FIELD_NUMBER: builtins.int - RELATION_TYPE_FIELD_NUMBER: builtins.int - OBJECT_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - @property - def object_type(self) -> global___ImportCounter: - """object_type import counter""" - @property - def permission(self) -> global___ImportCounter: - """object_type import counter""" - @property - def relation_type(self) -> global___ImportCounter: - """object_type import counter""" - @property - def object(self) -> global___ImportCounter: - """object import counter""" - @property - def relation(self) -> global___ImportCounter: - """object_type import counter""" - def __init__( - self, - *, - object_type: global___ImportCounter | None = ..., - permission: global___ImportCounter | None = ..., - relation_type: global___ImportCounter | None = ..., - object: global___ImportCounter | None = ..., - relation: global___ImportCounter | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["object", b"object", "object_type", b"object_type", "permission", b"permission", "relation", b"relation", "relation_type", b"relation_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object", b"object", "object_type", b"object_type", "permission", b"permission", "relation", b"relation", "relation_type", b"relation_type"]) -> None: ... - -global___ImportResponse = ImportResponse - -@typing_extensions.final -class ImportCounter(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RECV_FIELD_NUMBER: builtins.int - SET_FIELD_NUMBER: builtins.int - DELETE_FIELD_NUMBER: builtins.int - ERROR_FIELD_NUMBER: builtins.int - recv: builtins.int - """number of messages received""" - set: builtins.int - """number of messages with OPCODE_SET""" - delete: builtins.int - """number of messages with OPCODE_DELETE""" - error: builtins.int - """number of messages resulting in error""" - def __init__( - self, - *, - recv: builtins.int = ..., - set: builtins.int = ..., - delete: builtins.int = ..., - error: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["delete", b"delete", "error", b"error", "recv", b"recv", "set", b"set"]) -> None: ... - -global___ImportCounter = ImportCounter +from aserto.directory.common.v2 import common_pb2 as _common_pb2 +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Opcode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + OPCODE_UNKNOWN: _ClassVar[Opcode] + OPCODE_SET: _ClassVar[Opcode] + OPCODE_DELETE: _ClassVar[Opcode] +OPCODE_UNKNOWN: Opcode +OPCODE_SET: Opcode +OPCODE_DELETE: Opcode + +class ImportRequest(_message.Message): + __slots__ = ("op_code", "object_type", "permission", "relation_type", "object", "relation") + OP_CODE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + PERMISSION_FIELD_NUMBER: _ClassVar[int] + RELATION_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + op_code: Opcode + object_type: _common_pb2.ObjectType + permission: _common_pb2.Permission + relation_type: _common_pb2.RelationType + object: _common_pb2.Object + relation: _common_pb2.Relation + def __init__(self, op_code: _Optional[_Union[Opcode, str]] = ..., object_type: _Optional[_Union[_common_pb2.ObjectType, _Mapping]] = ..., permission: _Optional[_Union[_common_pb2.Permission, _Mapping]] = ..., relation_type: _Optional[_Union[_common_pb2.RelationType, _Mapping]] = ..., object: _Optional[_Union[_common_pb2.Object, _Mapping]] = ..., relation: _Optional[_Union[_common_pb2.Relation, _Mapping]] = ...) -> None: ... + +class ImportResponse(_message.Message): + __slots__ = ("object_type", "permission", "relation_type", "object", "relation") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + PERMISSION_FIELD_NUMBER: _ClassVar[int] + RELATION_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + object_type: ImportCounter + permission: ImportCounter + relation_type: ImportCounter + object: ImportCounter + relation: ImportCounter + def __init__(self, object_type: _Optional[_Union[ImportCounter, _Mapping]] = ..., permission: _Optional[_Union[ImportCounter, _Mapping]] = ..., relation_type: _Optional[_Union[ImportCounter, _Mapping]] = ..., object: _Optional[_Union[ImportCounter, _Mapping]] = ..., relation: _Optional[_Union[ImportCounter, _Mapping]] = ...) -> None: ... + +class ImportCounter(_message.Message): + __slots__ = ("recv", "set", "delete", "error") + RECV_FIELD_NUMBER: _ClassVar[int] + SET_FIELD_NUMBER: _ClassVar[int] + DELETE_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + recv: int + set: int + delete: int + error: int + def __init__(self, recv: _Optional[int] = ..., set: _Optional[int] = ..., delete: _Optional[int] = ..., error: _Optional[int] = ...) -> None: ... diff --git a/src/aserto/directory/importer/v3/__init__.py b/src/aserto/directory/importer/v3/__init__.py index 5d25dba..0ed78b8 100644 --- a/src/aserto/directory/importer/v3/__init__.py +++ b/src/aserto/directory/importer/v3/__init__.py @@ -9,7 +9,6 @@ from aserto.directory.importer.v3.importer_pb2_grpc import ( ImporterStub, - ImporterAsyncStub, ImporterServicer, ) @@ -19,6 +18,5 @@ "ImportResponse", "ImportCounter", "ImporterStub", - "ImporterAsyncStub", "ImporterServicer", ] \ No newline at end of file diff --git a/src/aserto/directory/importer/v3/importer_pb2.py b/src/aserto/directory/importer/v3/importer_pb2.py index fa4f7c6..be61580 100644 --- a/src/aserto/directory/importer/v3/importer_pb2.py +++ b/src/aserto/directory/importer/v3/importer_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/importer/v3/importer.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/importer/v3/importer_pb2.pyi b/src/aserto/directory/importer/v3/importer_pb2.pyi index 50b0c27..405f544 100644 --- a/src/aserto/directory/importer/v3/importer_pb2.pyi +++ b/src/aserto/directory/importer/v3/importer_pb2.pyi @@ -1,114 +1,46 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import aserto.directory.common.v3.common_pb2 -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _Opcode: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _OpcodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Opcode.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - OPCODE_UNKNOWN: _Opcode.ValueType # 0 - OPCODE_SET: _Opcode.ValueType # 1 - OPCODE_DELETE: _Opcode.ValueType # 2 - -class Opcode(_Opcode, metaclass=_OpcodeEnumTypeWrapper): ... - -OPCODE_UNKNOWN: Opcode.ValueType # 0 -OPCODE_SET: Opcode.ValueType # 1 -OPCODE_DELETE: Opcode.ValueType # 2 -global___Opcode = Opcode - -@typing_extensions.final -class ImportRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OP_CODE_FIELD_NUMBER: builtins.int - OBJECT_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - op_code: global___Opcode.ValueType - """operation Opcode enum value""" - @property - def object(self) -> aserto.directory.common.v3.common_pb2.Object: - """object import message""" - @property - def relation(self) -> aserto.directory.common.v3.common_pb2.Relation: - """relation import message""" - def __init__( - self, - *, - op_code: global___Opcode.ValueType = ..., - object: aserto.directory.common.v3.common_pb2.Object | None = ..., - relation: aserto.directory.common.v3.common_pb2.Relation | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["msg", b"msg", "object", b"object", "relation", b"relation"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["msg", b"msg", "object", b"object", "op_code", b"op_code", "relation", b"relation"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["msg", b"msg"]) -> typing_extensions.Literal["object", "relation"] | None: ... - -global___ImportRequest = ImportRequest - -@typing_extensions.final -class ImportResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - @property - def object(self) -> global___ImportCounter: - """object import counter""" - @property - def relation(self) -> global___ImportCounter: - """relation import counter""" - def __init__( - self, - *, - object: global___ImportCounter | None = ..., - relation: global___ImportCounter | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["object", b"object", "relation", b"relation"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object", b"object", "relation", b"relation"]) -> None: ... - -global___ImportResponse = ImportResponse - -@typing_extensions.final -class ImportCounter(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RECV_FIELD_NUMBER: builtins.int - SET_FIELD_NUMBER: builtins.int - DELETE_FIELD_NUMBER: builtins.int - ERROR_FIELD_NUMBER: builtins.int - recv: builtins.int - """number of messages received""" - set: builtins.int - """number of messages with OPCODE_SET""" - delete: builtins.int - """number of messages with OPCODE_DELETE""" - error: builtins.int - """number of messages resulting in error""" - def __init__( - self, - *, - recv: builtins.int = ..., - set: builtins.int = ..., - delete: builtins.int = ..., - error: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["delete", b"delete", "error", b"error", "recv", b"recv", "set", b"set"]) -> None: ... - -global___ImportCounter = ImportCounter +from aserto.directory.common.v3 import common_pb2 as _common_pb2 +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Opcode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + OPCODE_UNKNOWN: _ClassVar[Opcode] + OPCODE_SET: _ClassVar[Opcode] + OPCODE_DELETE: _ClassVar[Opcode] +OPCODE_UNKNOWN: Opcode +OPCODE_SET: Opcode +OPCODE_DELETE: Opcode + +class ImportRequest(_message.Message): + __slots__ = ("op_code", "object", "relation") + OP_CODE_FIELD_NUMBER: _ClassVar[int] + OBJECT_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + op_code: Opcode + object: _common_pb2.Object + relation: _common_pb2.Relation + def __init__(self, op_code: _Optional[_Union[Opcode, str]] = ..., object: _Optional[_Union[_common_pb2.Object, _Mapping]] = ..., relation: _Optional[_Union[_common_pb2.Relation, _Mapping]] = ...) -> None: ... + +class ImportResponse(_message.Message): + __slots__ = ("object", "relation") + OBJECT_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + object: ImportCounter + relation: ImportCounter + def __init__(self, object: _Optional[_Union[ImportCounter, _Mapping]] = ..., relation: _Optional[_Union[ImportCounter, _Mapping]] = ...) -> None: ... + +class ImportCounter(_message.Message): + __slots__ = ("recv", "set", "delete", "error") + RECV_FIELD_NUMBER: _ClassVar[int] + SET_FIELD_NUMBER: _ClassVar[int] + DELETE_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + recv: int + set: int + delete: int + error: int + def __init__(self, recv: _Optional[int] = ..., set: _Optional[int] = ..., delete: _Optional[int] = ..., error: _Optional[int] = ...) -> None: ... diff --git a/src/aserto/directory/model/v3/__init__.py b/src/aserto/directory/model/v3/__init__.py index db435ea..e1369e9 100644 --- a/src/aserto/directory/model/v3/__init__.py +++ b/src/aserto/directory/model/v3/__init__.py @@ -13,7 +13,6 @@ from aserto.directory.model.v3.model_pb2_grpc import ( ModelStub, - ModelAsyncStub, ModelServicer, ) @@ -27,6 +26,5 @@ "Metadata", "Body", "ModelStub", - "ModelAsyncStub", "ModelServicer", ] \ No newline at end of file diff --git a/src/aserto/directory/model/v3/model_pb2.py b/src/aserto/directory/model/v3/model_pb2.py index eb33171..0718d62 100644 --- a/src/aserto/directory/model/v3/model_pb2.py +++ b/src/aserto/directory/model/v3/model_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/model/v3/model.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/model/v3/model_pb2.pyi b/src/aserto/directory/model/v3/model_pb2.pyi index f114e74..ae55243 100644 --- a/src/aserto/directory/model/v3/model_pb2.pyi +++ b/src/aserto/directory/model/v3/model_pb2.pyi @@ -1,176 +1,66 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.empty_pb2 -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 -import sys - -if sys.version_info >= (3, 8): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class GetManifestRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - EMPTY_FIELD_NUMBER: builtins.int - @property - def empty(self) -> google.protobuf.empty_pb2.Empty: - """empty request""" - def __init__( - self, - *, - empty: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["empty", b"empty"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["empty", b"empty"]) -> None: ... - -global___GetManifestRequest = GetManifestRequest - -@typing_extensions.final -class GetManifestResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - METADATA_FIELD_NUMBER: builtins.int - BODY_FIELD_NUMBER: builtins.int - MODEL_FIELD_NUMBER: builtins.int - @property - def metadata(self) -> global___Metadata: - """Manifest metadata""" - @property - def body(self) -> global___Body: - """Manifest content""" - @property - def model(self) -> google.protobuf.struct_pb2.Struct: - """Model""" - def __init__( - self, - *, - metadata: global___Metadata | None = ..., - body: global___Body | None = ..., - model: google.protobuf.struct_pb2.Struct | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["body", b"body", "metadata", b"metadata", "model", b"model", "msg", b"msg"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["body", b"body", "metadata", b"metadata", "model", b"model", "msg", b"msg"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["msg", b"msg"]) -> typing_extensions.Literal["metadata", "body", "model"] | None: ... - -global___GetManifestResponse = GetManifestResponse - -@typing_extensions.final -class SetManifestRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - BODY_FIELD_NUMBER: builtins.int - @property - def body(self) -> global___Body: - """Manifest content""" - def __init__( - self, - *, - body: global___Body | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["body", b"body", "msg", b"msg"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["body", b"body", "msg", b"msg"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["msg", b"msg"]) -> typing_extensions.Literal["body"] | None: ... - -global___SetManifestRequest = SetManifestRequest - -@typing_extensions.final -class SetManifestResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> google.protobuf.empty_pb2.Empty: - """empty result""" - def __init__( - self, - *, - result: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___SetManifestResponse = SetManifestResponse - -@typing_extensions.final -class DeleteManifestRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - EMPTY_FIELD_NUMBER: builtins.int - @property - def empty(self) -> google.protobuf.empty_pb2.Empty: - """empty request""" - def __init__( - self, - *, - empty: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["empty", b"empty"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["empty", b"empty"]) -> None: ... - -global___DeleteManifestRequest = DeleteManifestRequest - -@typing_extensions.final -class DeleteManifestResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> google.protobuf.empty_pb2.Empty: - """empty result""" - def __init__( - self, - *, - result: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___DeleteManifestResponse = DeleteManifestResponse - -@typing_extensions.final -class Metadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - UPDATED_AT_FIELD_NUMBER: builtins.int - ETAG_FIELD_NUMBER: builtins.int - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: - """last updated timestamp (UTC)""" - etag: builtins.str - """object instance etag""" - def __init__( - self, - *, - updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ..., - etag: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["updated_at", b"updated_at"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["etag", b"etag", "updated_at", b"updated_at"]) -> None: ... - -global___Metadata = Metadata - -@typing_extensions.final -class Body(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - DATA_FIELD_NUMBER: builtins.int - data: builtins.bytes - """manifest content""" - def __init__( - self, - *, - data: builtins.bytes = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["data", b"data"]) -> None: ... - -global___Body = Body +from google.api import annotations_pb2 as _annotations_pb2 +from google.api import field_behavior_pb2 as _field_behavior_pb2 +from google.protobuf import empty_pb2 as _empty_pb2 +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from protoc_gen_openapiv2.options import annotations_pb2 as _annotations_pb2_1 +from buf.validate import validate_pb2 as _validate_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class GetManifestRequest(_message.Message): + __slots__ = ("empty",) + EMPTY_FIELD_NUMBER: _ClassVar[int] + empty: _empty_pb2.Empty + def __init__(self, empty: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... + +class GetManifestResponse(_message.Message): + __slots__ = ("metadata", "body", "model") + METADATA_FIELD_NUMBER: _ClassVar[int] + BODY_FIELD_NUMBER: _ClassVar[int] + MODEL_FIELD_NUMBER: _ClassVar[int] + metadata: Metadata + body: Body + model: _struct_pb2.Struct + def __init__(self, metadata: _Optional[_Union[Metadata, _Mapping]] = ..., body: _Optional[_Union[Body, _Mapping]] = ..., model: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... + +class SetManifestRequest(_message.Message): + __slots__ = ("body",) + BODY_FIELD_NUMBER: _ClassVar[int] + body: Body + def __init__(self, body: _Optional[_Union[Body, _Mapping]] = ...) -> None: ... + +class SetManifestResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _empty_pb2.Empty + def __init__(self, result: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... + +class DeleteManifestRequest(_message.Message): + __slots__ = ("empty",) + EMPTY_FIELD_NUMBER: _ClassVar[int] + empty: _empty_pb2.Empty + def __init__(self, empty: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... + +class DeleteManifestResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _empty_pb2.Empty + def __init__(self, result: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... + +class Metadata(_message.Message): + __slots__ = ("updated_at", "etag") + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + ETAG_FIELD_NUMBER: _ClassVar[int] + updated_at: _timestamp_pb2.Timestamp + etag: str + def __init__(self, updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., etag: _Optional[str] = ...) -> None: ... + +class Body(_message.Message): + __slots__ = ("data",) + DATA_FIELD_NUMBER: _ClassVar[int] + data: bytes + def __init__(self, data: _Optional[bytes] = ...) -> None: ... diff --git a/src/aserto/directory/openapi/v3/openapi_pb2.py b/src/aserto/directory/openapi/v3/openapi_pb2.py index abf21b6..7bd7fe2 100644 --- a/src/aserto/directory/openapi/v3/openapi_pb2.py +++ b/src/aserto/directory/openapi/v3/openapi_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/openapi/v3/openapi.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/openapi/v3/openapi_pb2.pyi b/src/aserto/directory/openapi/v3/openapi_pb2.pyi index e08fa11..ed40851 100644 --- a/src/aserto/directory/openapi/v3/openapi_pb2.pyi +++ b/src/aserto/directory/openapi/v3/openapi_pb2.pyi @@ -1,7 +1,5 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import google.protobuf.descriptor +from protoc_gen_openapiv2.options import annotations_pb2 as _annotations_pb2 +from google.protobuf import descriptor as _descriptor +from typing import ClassVar as _ClassVar -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +DESCRIPTOR: _descriptor.FileDescriptor diff --git a/src/aserto/directory/reader/v2/__init__.py b/src/aserto/directory/reader/v2/__init__.py index 9b87995..c45ada8 100644 --- a/src/aserto/directory/reader/v2/__init__.py +++ b/src/aserto/directory/reader/v2/__init__.py @@ -2,7 +2,6 @@ from aserto.directory.reader.v2.reader_pb2_grpc import ( ReaderStub, - ReaderAsyncStub, ReaderServicer, ) @@ -40,7 +39,6 @@ __all__ = [ "ReaderStub", - "ReaderAsyncStub", "ReaderServicer", "GetObjectTypeRequest", "GetObjectTypeResponse", diff --git a/src/aserto/directory/reader/v2/reader_pb2.py b/src/aserto/directory/reader/v2/reader_pb2.py index a721fef..7e4ae8f 100644 --- a/src/aserto/directory/reader/v2/reader_pb2.py +++ b/src/aserto/directory/reader/v2/reader_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/reader/v2/reader.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/reader/v2/reader_pb2.pyi b/src/aserto/directory/reader/v2/reader_pb2.pyi index 2903b70..86287e3 100644 --- a/src/aserto/directory/reader/v2/reader_pb2.pyi +++ b/src/aserto/directory/reader/v2/reader_pb2.pyi @@ -1,676 +1,240 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import aserto.directory.common.v2.common_pb2 -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import sys - -if sys.version_info >= (3, 8): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class GetObjectTypeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.ObjectTypeIdentifier: - """object type selector""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.ObjectTypeIdentifier | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["param", b"param"]) -> None: ... - -global___GetObjectTypeRequest = GetObjectTypeRequest - -@typing_extensions.final -class GetObjectTypeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v2.common_pb2.ObjectType: - """object type instance""" - def __init__( - self, - *, - result: aserto.directory.common.v2.common_pb2.ObjectType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___GetObjectTypeResponse = GetObjectTypeResponse - -@typing_extensions.final -class GetObjectTypesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PAGE_FIELD_NUMBER: builtins.int - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationRequest: - """pagination request""" - def __init__( - self, - *, - page: aserto.directory.common.v2.common_pb2.PaginationRequest | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page"]) -> None: ... - -global___GetObjectTypesRequest = GetObjectTypesRequest - -@typing_extensions.final -class GetObjectTypesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.ObjectType]: - """array of object types""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationResponse: - """pagination response""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.ObjectType] | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationResponse | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "results", b"results"]) -> None: ... - -global___GetObjectTypesResponse = GetObjectTypesResponse - -@typing_extensions.final -class GetRelationTypeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.RelationTypeIdentifier: - """relation type selector""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.RelationTypeIdentifier | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["param", b"param"]) -> None: ... - -global___GetRelationTypeRequest = GetRelationTypeRequest - -@typing_extensions.final -class GetRelationTypeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v2.common_pb2.RelationType: - """relation type instance""" - def __init__( - self, - *, - result: aserto.directory.common.v2.common_pb2.RelationType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___GetRelationTypeResponse = GetRelationTypeResponse - -@typing_extensions.final -class GetRelationTypesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.ObjectTypeIdentifier: - """object type selector""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationRequest: - """pagination request""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.ObjectTypeIdentifier | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationRequest | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page", "param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "param", b"param"]) -> None: ... - -global___GetRelationTypesRequest = GetRelationTypesRequest - -@typing_extensions.final -class GetRelationTypesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.RelationType]: - """array of relation types""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationResponse: - """pagination response""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.RelationType] | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationResponse | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "results", b"results"]) -> None: ... - -global___GetRelationTypesResponse = GetRelationTypesResponse - -@typing_extensions.final -class GetObjectRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - WITH_RELATIONS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.ObjectIdentifier: - """object selector""" - with_relations: builtins.bool - """materialize the object relations objects""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationRequest: - """pagination request""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.ObjectIdentifier | None = ..., - with_relations: builtins.bool | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationRequest | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_with_relations", b"_with_relations", "page", b"page", "param", b"param", "with_relations", b"with_relations"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_with_relations", b"_with_relations", "page", b"page", "param", b"param", "with_relations", b"with_relations"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_with_relations", b"_with_relations"]) -> typing_extensions.Literal["with_relations"] | None: ... - -global___GetObjectRequest = GetObjectRequest - -@typing_extensions.final -class GetObjectResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - RELATIONS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v2.common_pb2.Object: - """object instance""" - @property - def relations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.Relation]: - """object relations""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationResponse: - """pagination response""" - def __init__( - self, - *, - result: aserto.directory.common.v2.common_pb2.Object | None = ..., - relations: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.Relation] | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationResponse | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page", "result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "relations", b"relations", "result", b"result"]) -> None: ... - -global___GetObjectResponse = GetObjectResponse - -@typing_extensions.final -class GetObjectManyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - @property - def param(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.ObjectIdentifier]: - """object identifier list""" - def __init__( - self, - *, - param: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.ObjectIdentifier] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["param", b"param"]) -> None: ... - -global___GetObjectManyRequest = GetObjectManyRequest - -@typing_extensions.final -class GetObjectManyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.Object]: - """array of object instances""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.Object] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["results", b"results"]) -> None: ... - -global___GetObjectManyResponse = GetObjectManyResponse - -@typing_extensions.final -class GetObjectsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.ObjectTypeIdentifier: - """object type selector""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationRequest: - """pagination request""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.ObjectTypeIdentifier | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationRequest | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page", "param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "param", b"param"]) -> None: ... - -global___GetObjectsRequest = GetObjectsRequest - -@typing_extensions.final -class GetObjectsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.Object]: - """array of object instances""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationResponse: - """pagination response""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.Object] | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationResponse | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "results", b"results"]) -> None: ... - -global___GetObjectsResponse = GetObjectsResponse - -@typing_extensions.final -class GetRelationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - WITH_OBJECTS_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.RelationIdentifier: - """relation selector""" - with_objects: builtins.bool - """materialize relation objects""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.RelationIdentifier | None = ..., - with_objects: builtins.bool | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_with_objects", b"_with_objects", "param", b"param", "with_objects", b"with_objects"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_with_objects", b"_with_objects", "param", b"param", "with_objects", b"with_objects"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_with_objects", b"_with_objects"]) -> typing_extensions.Literal["with_objects"] | None: ... - -global___GetRelationRequest = GetRelationRequest - -@typing_extensions.final -class GetRelationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ObjectsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> aserto.directory.common.v2.common_pb2.Object: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: aserto.directory.common.v2.common_pb2.Object | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - RESULTS_FIELD_NUMBER: builtins.int - OBJECTS_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.Relation]: - """array of relation instances""" - @property - def objects(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, aserto.directory.common.v2.common_pb2.Object]: - """map of materialized relation objects""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.Relation] | None = ..., - objects: collections.abc.Mapping[builtins.str, aserto.directory.common.v2.common_pb2.Object] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["objects", b"objects", "results", b"results"]) -> None: ... - -global___GetRelationResponse = GetRelationResponse - -@typing_extensions.final -class GetRelationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.RelationIdentifier: - """relation selector""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationRequest: - """pagination request""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.RelationIdentifier | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationRequest | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page", "param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "param", b"param"]) -> None: ... - -global___GetRelationsRequest = GetRelationsRequest - -@typing_extensions.final -class GetRelationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.Relation]: - """array of relation instances""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationResponse: - """pagination response""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.Relation] | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationResponse | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "results", b"results"]) -> None: ... - -global___GetRelationsResponse = GetRelationsResponse - -@typing_extensions.final -class GetPermissionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.PermissionIdentifier: - """permission selector""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.PermissionIdentifier | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["param", b"param"]) -> None: ... - -global___GetPermissionRequest = GetPermissionRequest - -@typing_extensions.final -class GetPermissionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v2.common_pb2.Permission: - """permission instance""" - def __init__( - self, - *, - result: aserto.directory.common.v2.common_pb2.Permission | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___GetPermissionResponse = GetPermissionResponse - -@typing_extensions.final -class GetPermissionsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PAGE_FIELD_NUMBER: builtins.int - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationRequest: - """pagination request""" - def __init__( - self, - *, - page: aserto.directory.common.v2.common_pb2.PaginationRequest | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page"]) -> None: ... - -global___GetPermissionsRequest = GetPermissionsRequest - -@typing_extensions.final -class GetPermissionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.Permission]: - """array of permissions""" - @property - def page(self) -> aserto.directory.common.v2.common_pb2.PaginationResponse: - """pagination response""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.Permission] | None = ..., - page: aserto.directory.common.v2.common_pb2.PaginationResponse | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "results", b"results"]) -> None: ... - -global___GetPermissionsResponse = GetPermissionsResponse - -@typing_extensions.final -class CheckPermissionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SUBJECT_FIELD_NUMBER: builtins.int - PERMISSION_FIELD_NUMBER: builtins.int - OBJECT_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - @property - def subject(self) -> aserto.directory.common.v2.common_pb2.ObjectIdentifier: - """subject selector""" - @property - def permission(self) -> aserto.directory.common.v2.common_pb2.PermissionIdentifier: - """permission selector""" - @property - def object(self) -> aserto.directory.common.v2.common_pb2.ObjectIdentifier: - """object selector""" - trace: builtins.bool - """collect trace information""" - def __init__( - self, - *, - subject: aserto.directory.common.v2.common_pb2.ObjectIdentifier | None = ..., - permission: aserto.directory.common.v2.common_pb2.PermissionIdentifier | None = ..., - object: aserto.directory.common.v2.common_pb2.ObjectIdentifier | None = ..., - trace: builtins.bool = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["object", b"object", "permission", b"permission", "subject", b"subject"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object", b"object", "permission", b"permission", "subject", b"subject", "trace", b"trace"]) -> None: ... - -global___CheckPermissionRequest = CheckPermissionRequest - -@typing_extensions.final -class CheckPermissionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CHECK_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - check: builtins.bool - """check result""" - @property - def trace(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """trace information""" - def __init__( - self, - *, - check: builtins.bool = ..., - trace: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["check", b"check", "trace", b"trace"]) -> None: ... - -global___CheckPermissionResponse = CheckPermissionResponse - -@typing_extensions.final -class CheckRelationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SUBJECT_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - OBJECT_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - @property - def subject(self) -> aserto.directory.common.v2.common_pb2.ObjectIdentifier: - """subject selector""" - @property - def relation(self) -> aserto.directory.common.v2.common_pb2.RelationTypeIdentifier: - """relation selector""" - @property - def object(self) -> aserto.directory.common.v2.common_pb2.ObjectIdentifier: - """object selector""" - trace: builtins.bool - """collect trace information""" - def __init__( - self, - *, - subject: aserto.directory.common.v2.common_pb2.ObjectIdentifier | None = ..., - relation: aserto.directory.common.v2.common_pb2.RelationTypeIdentifier | None = ..., - object: aserto.directory.common.v2.common_pb2.ObjectIdentifier | None = ..., - trace: builtins.bool = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["object", b"object", "relation", b"relation", "subject", b"subject"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object", b"object", "relation", b"relation", "subject", b"subject", "trace", b"trace"]) -> None: ... - -global___CheckRelationRequest = CheckRelationRequest - -@typing_extensions.final -class CheckRelationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CHECK_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - check: builtins.bool - """check result""" - @property - def trace(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """trace information""" - def __init__( - self, - *, - check: builtins.bool = ..., - trace: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["check", b"check", "trace", b"trace"]) -> None: ... - -global___CheckRelationResponse = CheckRelationResponse - -@typing_extensions.final -class CheckResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CHECK_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - check: builtins.bool - """check result""" - @property - def trace(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """trace information""" - def __init__( - self, - *, - check: builtins.bool = ..., - trace: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["check", b"check", "trace", b"trace"]) -> None: ... - -global___CheckResponse = CheckResponse - -@typing_extensions.final -class GetGraphRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - ANCHOR_FIELD_NUMBER: builtins.int - SUBJECT_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - OBJECT_FIELD_NUMBER: builtins.int - @property - def anchor(self) -> aserto.directory.common.v2.common_pb2.ObjectIdentifier: - """anchor selector""" - @property - def subject(self) -> aserto.directory.common.v2.common_pb2.ObjectIdentifier: - """subject selector""" - @property - def relation(self) -> aserto.directory.common.v2.common_pb2.RelationTypeIdentifier: - """relation selector""" - @property - def object(self) -> aserto.directory.common.v2.common_pb2.ObjectIdentifier: - """object selector""" - def __init__( - self, - *, - anchor: aserto.directory.common.v2.common_pb2.ObjectIdentifier | None = ..., - subject: aserto.directory.common.v2.common_pb2.ObjectIdentifier | None = ..., - relation: aserto.directory.common.v2.common_pb2.RelationTypeIdentifier | None = ..., - object: aserto.directory.common.v2.common_pb2.ObjectIdentifier | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["anchor", b"anchor", "object", b"object", "relation", b"relation", "subject", b"subject"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["anchor", b"anchor", "object", b"object", "relation", b"relation", "subject", b"subject"]) -> None: ... - -global___GetGraphRequest = GetGraphRequest - -@typing_extensions.final -class GetGraphResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v2.common_pb2.ObjectDependency]: - """dependency graph""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v2.common_pb2.ObjectDependency] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["results", b"results"]) -> None: ... - -global___GetGraphResponse = GetGraphResponse +from aserto.directory.common.v2 import common_pb2 as _common_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class GetObjectTypeRequest(_message.Message): + __slots__ = ("param",) + PARAM_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.ObjectTypeIdentifier + def __init__(self, param: _Optional[_Union[_common_pb2.ObjectTypeIdentifier, _Mapping]] = ...) -> None: ... + +class GetObjectTypeResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.ObjectType + def __init__(self, result: _Optional[_Union[_common_pb2.ObjectType, _Mapping]] = ...) -> None: ... + +class GetObjectTypesRequest(_message.Message): + __slots__ = ("page",) + PAGE_FIELD_NUMBER: _ClassVar[int] + page: _common_pb2.PaginationRequest + def __init__(self, page: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ...) -> None: ... + +class GetObjectTypesResponse(_message.Message): + __slots__ = ("results", "page") + RESULTS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.ObjectType] + page: _common_pb2.PaginationResponse + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.ObjectType, _Mapping]]] = ..., page: _Optional[_Union[_common_pb2.PaginationResponse, _Mapping]] = ...) -> None: ... + +class GetRelationTypeRequest(_message.Message): + __slots__ = ("param",) + PARAM_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.RelationTypeIdentifier + def __init__(self, param: _Optional[_Union[_common_pb2.RelationTypeIdentifier, _Mapping]] = ...) -> None: ... + +class GetRelationTypeResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.RelationType + def __init__(self, result: _Optional[_Union[_common_pb2.RelationType, _Mapping]] = ...) -> None: ... + +class GetRelationTypesRequest(_message.Message): + __slots__ = ("param", "page") + PARAM_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.ObjectTypeIdentifier + page: _common_pb2.PaginationRequest + def __init__(self, param: _Optional[_Union[_common_pb2.ObjectTypeIdentifier, _Mapping]] = ..., page: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ...) -> None: ... + +class GetRelationTypesResponse(_message.Message): + __slots__ = ("results", "page") + RESULTS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.RelationType] + page: _common_pb2.PaginationResponse + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.RelationType, _Mapping]]] = ..., page: _Optional[_Union[_common_pb2.PaginationResponse, _Mapping]] = ...) -> None: ... + +class GetObjectRequest(_message.Message): + __slots__ = ("param", "with_relations", "page") + PARAM_FIELD_NUMBER: _ClassVar[int] + WITH_RELATIONS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.ObjectIdentifier + with_relations: bool + page: _common_pb2.PaginationRequest + def __init__(self, param: _Optional[_Union[_common_pb2.ObjectIdentifier, _Mapping]] = ..., with_relations: bool = ..., page: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ...) -> None: ... + +class GetObjectResponse(_message.Message): + __slots__ = ("result", "relations", "page") + RESULT_FIELD_NUMBER: _ClassVar[int] + RELATIONS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.Object + relations: _containers.RepeatedCompositeFieldContainer[_common_pb2.Relation] + page: _common_pb2.PaginationResponse + def __init__(self, result: _Optional[_Union[_common_pb2.Object, _Mapping]] = ..., relations: _Optional[_Iterable[_Union[_common_pb2.Relation, _Mapping]]] = ..., page: _Optional[_Union[_common_pb2.PaginationResponse, _Mapping]] = ...) -> None: ... + +class GetObjectManyRequest(_message.Message): + __slots__ = ("param",) + PARAM_FIELD_NUMBER: _ClassVar[int] + param: _containers.RepeatedCompositeFieldContainer[_common_pb2.ObjectIdentifier] + def __init__(self, param: _Optional[_Iterable[_Union[_common_pb2.ObjectIdentifier, _Mapping]]] = ...) -> None: ... + +class GetObjectManyResponse(_message.Message): + __slots__ = ("results",) + RESULTS_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.Object] + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.Object, _Mapping]]] = ...) -> None: ... + +class GetObjectsRequest(_message.Message): + __slots__ = ("param", "page") + PARAM_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.ObjectTypeIdentifier + page: _common_pb2.PaginationRequest + def __init__(self, param: _Optional[_Union[_common_pb2.ObjectTypeIdentifier, _Mapping]] = ..., page: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ...) -> None: ... + +class GetObjectsResponse(_message.Message): + __slots__ = ("results", "page") + RESULTS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.Object] + page: _common_pb2.PaginationResponse + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.Object, _Mapping]]] = ..., page: _Optional[_Union[_common_pb2.PaginationResponse, _Mapping]] = ...) -> None: ... + +class GetRelationRequest(_message.Message): + __slots__ = ("param", "with_objects") + PARAM_FIELD_NUMBER: _ClassVar[int] + WITH_OBJECTS_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.RelationIdentifier + with_objects: bool + def __init__(self, param: _Optional[_Union[_common_pb2.RelationIdentifier, _Mapping]] = ..., with_objects: bool = ...) -> None: ... + +class GetRelationResponse(_message.Message): + __slots__ = ("results", "objects") + class ObjectsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _common_pb2.Object + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_common_pb2.Object, _Mapping]] = ...) -> None: ... + RESULTS_FIELD_NUMBER: _ClassVar[int] + OBJECTS_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.Relation] + objects: _containers.MessageMap[str, _common_pb2.Object] + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.Relation, _Mapping]]] = ..., objects: _Optional[_Mapping[str, _common_pb2.Object]] = ...) -> None: ... + +class GetRelationsRequest(_message.Message): + __slots__ = ("param", "page") + PARAM_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.RelationIdentifier + page: _common_pb2.PaginationRequest + def __init__(self, param: _Optional[_Union[_common_pb2.RelationIdentifier, _Mapping]] = ..., page: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ...) -> None: ... + +class GetRelationsResponse(_message.Message): + __slots__ = ("results", "page") + RESULTS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.Relation] + page: _common_pb2.PaginationResponse + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.Relation, _Mapping]]] = ..., page: _Optional[_Union[_common_pb2.PaginationResponse, _Mapping]] = ...) -> None: ... + +class GetPermissionRequest(_message.Message): + __slots__ = ("param",) + PARAM_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.PermissionIdentifier + def __init__(self, param: _Optional[_Union[_common_pb2.PermissionIdentifier, _Mapping]] = ...) -> None: ... + +class GetPermissionResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.Permission + def __init__(self, result: _Optional[_Union[_common_pb2.Permission, _Mapping]] = ...) -> None: ... + +class GetPermissionsRequest(_message.Message): + __slots__ = ("page",) + PAGE_FIELD_NUMBER: _ClassVar[int] + page: _common_pb2.PaginationRequest + def __init__(self, page: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ...) -> None: ... + +class GetPermissionsResponse(_message.Message): + __slots__ = ("results", "page") + RESULTS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.Permission] + page: _common_pb2.PaginationResponse + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.Permission, _Mapping]]] = ..., page: _Optional[_Union[_common_pb2.PaginationResponse, _Mapping]] = ...) -> None: ... + +class CheckPermissionRequest(_message.Message): + __slots__ = ("subject", "permission", "object", "trace") + SUBJECT_FIELD_NUMBER: _ClassVar[int] + PERMISSION_FIELD_NUMBER: _ClassVar[int] + OBJECT_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + subject: _common_pb2.ObjectIdentifier + permission: _common_pb2.PermissionIdentifier + object: _common_pb2.ObjectIdentifier + trace: bool + def __init__(self, subject: _Optional[_Union[_common_pb2.ObjectIdentifier, _Mapping]] = ..., permission: _Optional[_Union[_common_pb2.PermissionIdentifier, _Mapping]] = ..., object: _Optional[_Union[_common_pb2.ObjectIdentifier, _Mapping]] = ..., trace: bool = ...) -> None: ... + +class CheckPermissionResponse(_message.Message): + __slots__ = ("check", "trace") + CHECK_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + check: bool + trace: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, check: bool = ..., trace: _Optional[_Iterable[str]] = ...) -> None: ... + +class CheckRelationRequest(_message.Message): + __slots__ = ("subject", "relation", "object", "trace") + SUBJECT_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + OBJECT_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + subject: _common_pb2.ObjectIdentifier + relation: _common_pb2.RelationTypeIdentifier + object: _common_pb2.ObjectIdentifier + trace: bool + def __init__(self, subject: _Optional[_Union[_common_pb2.ObjectIdentifier, _Mapping]] = ..., relation: _Optional[_Union[_common_pb2.RelationTypeIdentifier, _Mapping]] = ..., object: _Optional[_Union[_common_pb2.ObjectIdentifier, _Mapping]] = ..., trace: bool = ...) -> None: ... + +class CheckRelationResponse(_message.Message): + __slots__ = ("check", "trace") + CHECK_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + check: bool + trace: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, check: bool = ..., trace: _Optional[_Iterable[str]] = ...) -> None: ... + +class CheckResponse(_message.Message): + __slots__ = ("check", "trace") + CHECK_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + check: bool + trace: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, check: bool = ..., trace: _Optional[_Iterable[str]] = ...) -> None: ... + +class GetGraphRequest(_message.Message): + __slots__ = ("anchor", "subject", "relation", "object") + ANCHOR_FIELD_NUMBER: _ClassVar[int] + SUBJECT_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + OBJECT_FIELD_NUMBER: _ClassVar[int] + anchor: _common_pb2.ObjectIdentifier + subject: _common_pb2.ObjectIdentifier + relation: _common_pb2.RelationTypeIdentifier + object: _common_pb2.ObjectIdentifier + def __init__(self, anchor: _Optional[_Union[_common_pb2.ObjectIdentifier, _Mapping]] = ..., subject: _Optional[_Union[_common_pb2.ObjectIdentifier, _Mapping]] = ..., relation: _Optional[_Union[_common_pb2.RelationTypeIdentifier, _Mapping]] = ..., object: _Optional[_Union[_common_pb2.ObjectIdentifier, _Mapping]] = ...) -> None: ... + +class GetGraphResponse(_message.Message): + __slots__ = ("results",) + RESULTS_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.ObjectDependency] + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.ObjectDependency, _Mapping]]] = ...) -> None: ... diff --git a/src/aserto/directory/reader/v3/__init__.py b/src/aserto/directory/reader/v3/__init__.py index ff658d1..0831c10 100644 --- a/src/aserto/directory/reader/v3/__init__.py +++ b/src/aserto/directory/reader/v3/__init__.py @@ -2,7 +2,6 @@ from aserto.directory.reader.v3.reader_pb2_grpc import ( ReaderStub, - ReaderAsyncStub, ReaderServicer, ) @@ -29,7 +28,6 @@ __all__ = [ "ReaderStub", - "ReaderAsyncStub", "ReaderServicer", "GetObjectRequest", "GetObjectResponse", diff --git a/src/aserto/directory/reader/v3/reader_pb2.py b/src/aserto/directory/reader/v3/reader_pb2.py index 3fe6b8d..8dfcce1 100644 --- a/src/aserto/directory/reader/v3/reader_pb2.py +++ b/src/aserto/directory/reader/v3/reader_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/reader/v3/reader.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -19,7 +19,7 @@ from aserto.directory.common.v3 import common_pb2 as aserto_dot_directory_dot_common_dot_v3_dot_common__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'aserto/directory/reader/v3/reader.proto\x12\x1a\x61serto.directory.reader.v3\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\'aserto/directory/common/v3/common.proto\"\xb2\x04\n\x10GetObjectRequest\x12\x8f\x02\n\x0bobject_type\x18\x01 \x01(\tB\xed\x01\xe2\x41\x01\x02\xbaH\xe5\x01r\x02\x18@\xba\x01\xda\x01\n\x16get_object.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nobjectType\x12\x95\x01\n\tobject_id\x18\x02 \x01(\tBx\xbaHur\x03\x18\x80\x02\xba\x01j\n\x14get_object.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08objectId\x12+\n\x0ewith_relations\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\rwithRelations\x12G\n\x04page\x18\t \x01(\x0b\x32-.aserto.directory.common.v3.PaginationRequestB\x04\xe2\x41\x01\x01R\x04page\"\xdd\x01\n\x11GetObjectResponse\x12:\n\x06result\x18\x01 \x01(\x0b\x32\".aserto.directory.common.v3.ObjectR\x06result\x12\x42\n\trelations\x18\x04 \x03(\x0b\x32$.aserto.directory.common.v3.RelationR\trelations\x12H\n\x04page\x18\t \x01(\x0b\x32..aserto.directory.common.v3.PaginationResponseB\x04\xe2\x41\x01\x03R\x04page\"`\n\x14GetObjectManyRequest\x12H\n\x05param\x18\x01 \x03(\x0b\x32,.aserto.directory.common.v3.ObjectIdentifierB\x04\xe2\x41\x01\x02R\x05param\"U\n\x15GetObjectManyResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32\".aserto.directory.common.v3.ObjectR\x07results\"\xef\x02\n\x11GetObjectsRequest\x12\x90\x02\n\x0bobject_type\x18\x01 \x01(\tB\xee\x01\xe2\x41\x01\x01\xbaH\xe6\x01r\x02\x18@\xba\x01\xdb\x01\n\x17get_objects.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\nobjectType\x12G\n\x04page\x18\t \x01(\x0b\x32-.aserto.directory.common.v3.PaginationRequestB\x04\xe2\x41\x01\x01R\x04page\"\x9c\x01\n\x12GetObjectsResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32\".aserto.directory.common.v3.ObjectR\x07results\x12H\n\x04page\x18\t \x01(\x0b\x32..aserto.directory.common.v3.PaginationResponseB\x04\xe2\x41\x01\x03R\x04page\"\xc5\r\n\x12GetRelationRequest\x12\x91\x02\n\x0bobject_type\x18\x01 \x01(\tB\xef\x01\xe2\x41\x01\x02\xbaH\xe7\x01r\x02\x18@\xba\x01\xdc\x01\n\x18get_relation.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\nobjectType\x12\x9b\x01\n\tobject_id\x18\x02 \x01(\tB~\xe2\x41\x01\x02\xbaHwr\x03\x18\x80\x02\xba\x01l\n\x16get_relation.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\x08objectId\x12\x89\x02\n\x08relation\x18\x03 \x01(\tB\xec\x01\xe2\x41\x01\x02\xbaH\xe4\x01r\x02\x18@\xba\x01\xd9\x01\n\x15get_relation.relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x08relation\x12\x94\x02\n\x0csubject_type\x18\x04 \x01(\tB\xf0\x01\xe2\x41\x01\x02\xbaH\xe8\x01r\x02\x18@\xba\x01\xdd\x01\n\x19get_relation.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0bsubjectType\x12\x9e\x01\n\nsubject_id\x18\x05 \x01(\tB\x7f\xe2\x41\x01\x02\xbaHxr\x03\x18\x80\x02\xba\x01m\n\x17get_relation.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\tsubjectId\x12\xa0\x02\n\x10subject_relation\x18\x06 \x01(\tB\xf4\x01\xe2\x41\x01\x01\xbaH\xec\x01r\x02\x18@\xba\x01\xe1\x01\n\x1dget_relation.subject_relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0fsubjectRelation\x12\'\n\x0cwith_objects\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0bwithObjects:\xec\x01\xbaH\xe8\x01\x1a\xe5\x01\n\x1bget_relation.directionality\x12^either subject or object must be fully qualified (type + id) to determine graph directionality\x1a\x66(this.object_type != \'\' && this.object_id != \'\') || (this.subject_type != \'\' && this.subject_id != \'\')\"\x8b\x02\n\x13GetRelationResponse\x12<\n\x06result\x18\x01 \x01(\x0b\x32$.aserto.directory.common.v3.RelationR\x06result\x12V\n\x07objects\x18\x02 \x03(\x0b\x32<.aserto.directory.reader.v3.GetRelationResponse.ObjectsEntryR\x07objects\x1a^\n\x0cObjectsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32\".aserto.directory.common.v3.ObjectR\x05value:\x02\x38\x01\"\x97\x0e\n\x13GetRelationsRequest\x12\x92\x02\n\x0bobject_type\x18\x01 \x01(\tB\xf0\x01\xe2\x41\x01\x01\xbaH\xe8\x01r\x02\x18@\xba\x01\xdd\x01\n\x19get_relations.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\nobjectType\x12\x9c\x01\n\tobject_id\x18\x02 \x01(\tB\x7f\xe2\x41\x01\x01\xbaHxr\x03\x18\x80\x02\xba\x01m\n\x17get_relations.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\x08objectId\x12\x8a\x02\n\x08relation\x18\x03 \x01(\tB\xed\x01\xe2\x41\x01\x01\xbaH\xe5\x01r\x02\x18@\xba\x01\xda\x01\n\x16get_relations.relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x08relation\x12\x95\x02\n\x0csubject_type\x18\x04 \x01(\tB\xf1\x01\xe2\x41\x01\x01\xbaH\xe9\x01r\x02\x18@\xba\x01\xde\x01\n\x1aget_relations.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0bsubjectType\x12\xa0\x01\n\nsubject_id\x18\x05 \x01(\tB\x80\x01\xe2\x41\x01\x01\xbaHyr\x03\x18\x80\x02\xba\x01n\n\x18get_relations.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\tsubjectId\x12\xa1\x02\n\x10subject_relation\x18\x06 \x01(\tB\xf5\x01\xe2\x41\x01\x01\xbaH\xed\x01r\x02\x18@\xba\x01\xe2\x01\n\x1eget_relations.subject_relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0fsubjectRelation\x12\'\n\x0cwith_objects\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0bwithObjects\x12G\n\x04page\x18\t \x01(\x0b\x32-.aserto.directory.common.v3.PaginationRequestB\x04\xe2\x41\x01\x01R\x04page:\xed\x01\xbaH\xe9\x01\x1a\xe6\x01\n\x1cget_relations.directionality\x12^either subject or object must be fully qualified (type + id) to determine graph directionality\x1a\x66(this.object_type != \'\' && this.object_id != \'\') || (this.subject_type != \'\' && this.subject_id != \'\')\"\xd9\x02\n\x14GetRelationsResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32$.aserto.directory.common.v3.RelationR\x07results\x12W\n\x07objects\x18\x02 \x03(\x0b\x32=.aserto.directory.reader.v3.GetRelationsResponse.ObjectsEntryR\x07objects\x12H\n\x04page\x18\t \x01(\x0b\x32..aserto.directory.common.v3.PaginationResponseB\x04\xe2\x41\x01\x03R\x04page\x1a^\n\x0cObjectsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32\".aserto.directory.common.v3.ObjectR\x05value:\x02\x38\x01\"\x8d\x08\n\x0c\x43heckRequest\x12\x8a\x02\n\x0bobject_type\x18\x01 \x01(\tB\xe8\x01\xe2\x41\x01\x02\xbaH\xe0\x01r\x02\x18@\xba\x01\xd5\x01\n\x11\x63heck.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nobjectType\x12\x94\x01\n\tobject_id\x18\x02 \x01(\tBw\xe2\x41\x01\x02\xbaHpr\x03\x18\x80\x02\xba\x01\x65\n\x0f\x63heck.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08objectId\x12\x92\x01\n\x08relation\x18\x03 \x01(\tBv\xe2\x41\x01\x02\xbaHor\x03\x18\x80\x02\xba\x01\x64\n\x0e\x63heck.relation\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08relation\x12\x8d\x02\n\x0csubject_type\x18\x04 \x01(\tB\xe9\x01\xe2\x41\x01\x02\xbaH\xe1\x01r\x02\x18@\xba\x01\xd6\x01\n\x12\x63heck.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\x0bsubjectType\x12\x97\x01\n\nsubject_id\x18\x05 \x01(\tBx\xe2\x41\x01\x02\xbaHqr\x03\x18\x80\x02\xba\x01\x66\n\x10\x63heck.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\tsubjectId\x12\x1a\n\x05trace\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x05trace\";\n\rCheckResponse\x12\x14\n\x05\x63heck\x18\x01 \x01(\x08R\x05\x63heck\x12\x14\n\x05trace\x18\x02 \x03(\tR\x05trace\"\xd7\x08\n\x16\x43heckPermissionRequest\x12\x95\x02\n\x0bobject_type\x18\x01 \x01(\tB\xf3\x01\xe2\x41\x01\x02\xbaH\xeb\x01r\x02\x18@\xba\x01\xe0\x01\n\x1c\x63heck_permission.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nobjectType\x12\xa0\x01\n\tobject_id\x18\x02 \x01(\tB\x82\x01\xe2\x41\x01\x02\xbaH{r\x03\x18\x80\x02\xba\x01p\n\x1a\x63heck_permission.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08objectId\x12\xa4\x01\n\npermission\x18\x03 \x01(\tB\x83\x01\xe2\x41\x01\x02\xbaH|r\x03\x18\x80\x02\xba\x01q\n\x1b\x63heck_permission.permission\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\npermission\x12\x98\x02\n\x0csubject_type\x18\x04 \x01(\tB\xf4\x01\xe2\x41\x01\x02\xbaH\xec\x01r\x02\x18@\xba\x01\xe1\x01\n\x1d\x63heck_permission.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\x0bsubjectType\x12\xa3\x01\n\nsubject_id\x18\x05 \x01(\tB\x83\x01\xe2\x41\x01\x02\xbaH|r\x03\x18\x80\x02\xba\x01q\n\x1b\x63heck_permission.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\tsubjectId\x12\x1a\n\x05trace\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x05trace\"E\n\x17\x43heckPermissionResponse\x12\x14\n\x05\x63heck\x18\x01 \x01(\x08R\x05\x63heck\x12\x14\n\x05trace\x18\x02 \x03(\tR\x05trace\"\xb4\t\n\x14\x43heckRelationRequest\x12\x93\x02\n\x0bobject_type\x18\x01 \x01(\tB\xf1\x01\xe2\x41\x01\x02\xbaH\xe9\x01r\x02\x18@\xba\x01\xde\x01\n\x1a\x63heck_relation.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nobjectType\x12\x9e\x01\n\tobject_id\x18\x02 \x01(\tB\x80\x01\xe2\x41\x01\x02\xbaHyr\x03\x18\x80\x02\xba\x01n\n\x18\x63heck_relation.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08objectId\x12\x8b\x02\n\x08relation\x18\x03 \x01(\tB\xee\x01\xe2\x41\x01\x02\xbaH\xe6\x01r\x02\x18@\xba\x01\xdb\x01\n\x17\x63heck_relation.relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\x08relation\x12\x96\x02\n\x0csubject_type\x18\x04 \x01(\tB\xf2\x01\xe2\x41\x01\x02\xbaH\xea\x01r\x02\x18@\xba\x01\xdf\x01\n\x1b\x63heck_relation.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\x0bsubjectType\x12\xa1\x01\n\nsubject_id\x18\x05 \x01(\tB\x81\x01\xe2\x41\x01\x02\xbaHzr\x03\x18\x80\x02\xba\x01o\n\x19\x63heck_relation.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\tsubjectId\x12\x1a\n\x05trace\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x05trace\"C\n\x15\x43heckRelationResponse\x12\x14\n\x05\x63heck\x18\x01 \x01(\x08R\x05\x63heck\x12\x14\n\x05trace\x18\x02 \x03(\tR\x05trace\"\xed\x10\n\x0fGetGraphRequest\x12\x8e\x02\n\x0b\x61nchor_type\x18\x01 \x01(\tB\xec\x01\xe2\x41\x01\x02\xbaH\xe4\x01r\x02\x18@\xba\x01\xd9\x01\n\x15get_graph.anchor_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nanchorType\x12\x98\x01\n\tanchor_id\x18\x02 \x01(\tB{\xe2\x41\x01\x02\xbaHtr\x03\x18\x80\x02\xba\x01i\n\x13get_graph.anchor_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08\x61nchorId\x12\x8e\x02\n\x0bobject_type\x18\x03 \x01(\tB\xec\x01\xe2\x41\x01\x01\xbaH\xe4\x01r\x02\x18@\xba\x01\xd9\x01\n\x15get_graph.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\nobjectType\x12\x98\x01\n\tobject_id\x18\x04 \x01(\tB{\xe2\x41\x01\x01\xbaHtr\x03\x18\x80\x02\xba\x01i\n\x13get_graph.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\x08objectId\x12\x86\x02\n\x08relation\x18\x05 \x01(\tB\xe9\x01\xe2\x41\x01\x01\xbaH\xe1\x01r\x02\x18@\xba\x01\xd6\x01\n\x12get_graph.relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x08relation\x12\x91\x02\n\x0csubject_type\x18\x06 \x01(\tB\xed\x01\xe2\x41\x01\x01\xbaH\xe5\x01r\x02\x18@\xba\x01\xda\x01\n\x16get_graph.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0bsubjectType\x12\x9b\x01\n\nsubject_id\x18\x07 \x01(\tB|\xe2\x41\x01\x01\xbaHur\x03\x18\x80\x02\xba\x01j\n\x14get_graph.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\tsubjectId\x12\x9d\x02\n\x10subject_relation\x18\x08 \x01(\tB\xf1\x01\xe2\x41\x01\x01\xbaH\xe9\x01r\x02\x18@\xba\x01\xde\x01\n\x1aget_graph.subject_relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0fsubjectRelation:\xa6\x02\xbaH\xa2\x02\x1a\x9f\x02\n\x14graph.directionality\x12janchor.(type+id) must match either subject.(type+id) or object.(type+id) to determine graph directionality\x1a\x9a\x01(this.anchor_type == this.object_type && this.anchor_id == this.object_id) || (this.anchor_type == this.subject_type && this.anchor_id == this.subject_id)\"Z\n\x10GetGraphResponse\x12\x46\n\x07results\x18\x01 \x03(\x0b\x32,.aserto.directory.common.v3.ObjectDependencyR\x07results2\xb7\x13\n\x06Reader\x12\xc3\x02\n\tGetObject\x12,.aserto.directory.reader.v3.GetObjectRequest\x1a-.aserto.directory.reader.v3.GetObjectResponse\"\xd8\x01\x92\x41\x9a\x01\n\tdirectory\x12\x13Get object instance\x1a:Returns single object instance, optionally with relations.*\x17\x64irectory.v3.object.getb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x34\x12\x32/api/v3/directory/object/{object_type}/{object_id}\x12v\n\rGetObjectMany\x12\x30.aserto.directory.reader.v3.GetObjectManyRequest\x1a\x31.aserto.directory.reader.v3.GetObjectManyResponse\"\x00\x12\x98\x02\n\nGetObjects\x12-.aserto.directory.reader.v3.GetObjectsRequest\x1a..aserto.directory.reader.v3.GetObjectsResponse\"\xaa\x01\x92\x41\x85\x01\n\tdirectory\x12\x15List object instances\x1a!Returns list of object instances.*\x19\x64irectory.v3.objects.listb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/v3/directory/objects\x12\xb5\x02\n\x0bGetRelation\x12..aserto.directory.reader.v3.GetRelationRequest\x1a/.aserto.directory.reader.v3.GetRelationResponse\"\xc4\x01\x92\x41\x9e\x01\n\tdirectory\x12\x15Get relation instance\x1a:Returns single relation instance, optionally with objects.*\x19\x64irectory.v3.relation.getb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v3/directory/relation\x12\xa7\x02\n\x0cGetRelations\x12/.aserto.directory.reader.v3.GetRelationsRequest\x1a\x30.aserto.directory.reader.v3.GetRelationsResponse\"\xb3\x01\x92\x41\x8c\x01\n\tdirectory\x12\x18List relations instances\x1a#Returns list of relation instances.*\x1b\x64irectory.v3.relations.listb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v3/directory/relations\x12\xe7\x01\n\x05\x43heck\x12(.aserto.directory.reader.v3.CheckRequest\x1a).aserto.directory.reader.v3.CheckResponse\"\x88\x01\x92\x41\x63\n\tdirectory\x12\x05\x43heck\x1a\x16Returns check outcome.*\x12\x64irectory.v3.checkb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x1c\"\x17/api/v3/directory/check:\x01*\x12\xb2\x02\n\x0f\x43heckPermission\x12\x32.aserto.directory.reader.v3.CheckPermissionRequest\x1a\x33.aserto.directory.reader.v3.CheckPermissionResponse\"\xb5\x01\x92\x41\x84\x01\n\tdirectory\x12\x10\x43heck permission\x1a!Returns check permission outcome.*\x1d\x64irectory.v3.check.permissionb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\'\"\"/api/v3/directory/check/permission:\x01*\x12\xa3\x02\n\rCheckRelation\x12\x30.aserto.directory.reader.v3.CheckRelationRequest\x1a\x31.aserto.directory.reader.v3.CheckRelationResponse\"\xac\x01\x92\x41~\n\tdirectory\x12\x0e\x43heck relation\x1a\x1fReturns check relation outcome.*\x1b\x64irectory.v3.check.relationb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02%\" /api/v3/directory/check/relation:\x01*\x12\xac\x02\n\x08GetGraph\x12+.aserto.directory.reader.v3.GetGraphRequest\x1a,.aserto.directory.reader.v3.GetGraphResponse\"\xc4\x01\x92\x41\x87\x01\n\tdirectory\x12\tGet graph\x1a\x36Returns object graph from anchor to subject or object.*\x12\x64irectory.v3.graphb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x33\x12\x31/api/v3/directory/graph/{anchor_type}/{anchor_id}B\x80\x02\n\x1e\x63om.aserto.directory.reader.v3B\x0bReaderProtoP\x01ZDgithub.com/aserto-dev/go-directory/aserto/directory/reader/v3;reader\xa2\x02\x03\x41\x44R\xaa\x02\x1a\x41serto.Directory.Reader.V3\xca\x02\x1b\x41serto\\Directory_\\Reader\\V3\xe2\x02\'Aserto\\Directory_\\Reader\\V3\\GPBMetadata\xea\x02\x1d\x41serto::Directory::Reader::V3b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'aserto/directory/reader/v3/reader.proto\x12\x1a\x61serto.directory.reader.v3\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\'aserto/directory/common/v3/common.proto\"\xb2\x04\n\x10GetObjectRequest\x12\x8f\x02\n\x0bobject_type\x18\x01 \x01(\tB\xed\x01\xe2\x41\x01\x02\xbaH\xe5\x01r\x02\x18@\xba\x01\xda\x01\n\x16get_object.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nobjectType\x12\x95\x01\n\tobject_id\x18\x02 \x01(\tBx\xbaHur\x03\x18\x80\x02\xba\x01j\n\x14get_object.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08objectId\x12+\n\x0ewith_relations\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\rwithRelations\x12G\n\x04page\x18\t \x01(\x0b\x32-.aserto.directory.common.v3.PaginationRequestB\x04\xe2\x41\x01\x01R\x04page\"\xdd\x01\n\x11GetObjectResponse\x12:\n\x06result\x18\x01 \x01(\x0b\x32\".aserto.directory.common.v3.ObjectR\x06result\x12\x42\n\trelations\x18\x04 \x03(\x0b\x32$.aserto.directory.common.v3.RelationR\trelations\x12H\n\x04page\x18\t \x01(\x0b\x32..aserto.directory.common.v3.PaginationResponseB\x04\xe2\x41\x01\x03R\x04page\"`\n\x14GetObjectManyRequest\x12H\n\x05param\x18\x01 \x03(\x0b\x32,.aserto.directory.common.v3.ObjectIdentifierB\x04\xe2\x41\x01\x02R\x05param\"U\n\x15GetObjectManyResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32\".aserto.directory.common.v3.ObjectR\x07results\"\xef\x02\n\x11GetObjectsRequest\x12\x90\x02\n\x0bobject_type\x18\x01 \x01(\tB\xee\x01\xe2\x41\x01\x01\xbaH\xe6\x01r\x02\x18@\xba\x01\xdb\x01\n\x17get_objects.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\nobjectType\x12G\n\x04page\x18\t \x01(\x0b\x32-.aserto.directory.common.v3.PaginationRequestB\x04\xe2\x41\x01\x01R\x04page\"\x9c\x01\n\x12GetObjectsResponse\x12<\n\x07results\x18\x01 \x03(\x0b\x32\".aserto.directory.common.v3.ObjectR\x07results\x12H\n\x04page\x18\t \x01(\x0b\x32..aserto.directory.common.v3.PaginationResponseB\x04\xe2\x41\x01\x03R\x04page\"\x84\x10\n\x12GetRelationRequest\x12\x91\x02\n\x0bobject_type\x18\x01 \x01(\tB\xef\x01\xe2\x41\x01\x02\xbaH\xe7\x01r\x02\x18@\xba\x01\xdc\x01\n\x18get_relation.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\nobjectType\x12\x9b\x01\n\tobject_id\x18\x02 \x01(\tB~\xe2\x41\x01\x02\xbaHwr\x03\x18\x80\x02\xba\x01l\n\x16get_relation.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\x08objectId\x12\x89\x02\n\x08relation\x18\x03 \x01(\tB\xec\x01\xe2\x41\x01\x02\xbaH\xe4\x01r\x02\x18@\xba\x01\xd9\x01\n\x15get_relation.relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x08relation\x12\x94\x02\n\x0csubject_type\x18\x04 \x01(\tB\xf0\x01\xe2\x41\x01\x02\xbaH\xe8\x01r\x02\x18@\xba\x01\xdd\x01\n\x19get_relation.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0bsubjectType\x12\x9e\x01\n\nsubject_id\x18\x05 \x01(\tB\x7f\xe2\x41\x01\x02\xbaHxr\x03\x18\x80\x02\xba\x01m\n\x17get_relation.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\tsubjectId\x12\xa0\x02\n\x10subject_relation\x18\x06 \x01(\tB\xf4\x01\xe2\x41\x01\x01\xbaH\xec\x01r\x02\x18@\xba\x01\xe1\x01\n\x1dget_relation.subject_relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0fsubjectRelation\x12\'\n\x0cwith_objects\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0bwithObjects:\xab\x04\xbaH\xa7\x04\x1a\x8c\x02\n get_relation.object_id_with_type\x12Mwhen an object_id is specified, the accompanying object_type must be provided\x1a\x98\x01(this.object_type == \'\' && this.object_id == \'\') || (this.object_type != \'\' && this.object_id == \'\') || (this.object_type != \'\' && this.object_id != \'\')\x1a\x95\x02\n!get_relation.subject_id_with_type\x12Owhen an subject_id is specified, the accompanying subject_type must be provided\x1a\x9e\x01(this.subject_type == \'\' && this.subject_id == \'\') || (this.subject_type != \'\' && this.subject_id == \'\') || (this.subject_type != \'\' && this.subject_id != \'\')\"\x8b\x02\n\x13GetRelationResponse\x12<\n\x06result\x18\x01 \x01(\x0b\x32$.aserto.directory.common.v3.RelationR\x06result\x12V\n\x07objects\x18\x02 \x03(\x0b\x32<.aserto.directory.reader.v3.GetRelationResponse.ObjectsEntryR\x07objects\x1a^\n\x0cObjectsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32\".aserto.directory.common.v3.ObjectR\x05value:\x02\x38\x01\"\xd7\x10\n\x13GetRelationsRequest\x12\x92\x02\n\x0bobject_type\x18\x01 \x01(\tB\xf0\x01\xe2\x41\x01\x01\xbaH\xe8\x01r\x02\x18@\xba\x01\xdd\x01\n\x19get_relations.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\nobjectType\x12\x9c\x01\n\tobject_id\x18\x02 \x01(\tB\x7f\xe2\x41\x01\x01\xbaHxr\x03\x18\x80\x02\xba\x01m\n\x17get_relations.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\x08objectId\x12\x8a\x02\n\x08relation\x18\x03 \x01(\tB\xed\x01\xe2\x41\x01\x01\xbaH\xe5\x01r\x02\x18@\xba\x01\xda\x01\n\x16get_relations.relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x08relation\x12\x95\x02\n\x0csubject_type\x18\x04 \x01(\tB\xf1\x01\xe2\x41\x01\x01\xbaH\xe9\x01r\x02\x18@\xba\x01\xde\x01\n\x1aget_relations.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0bsubjectType\x12\xa0\x01\n\nsubject_id\x18\x05 \x01(\tB\x80\x01\xe2\x41\x01\x01\xbaHyr\x03\x18\x80\x02\xba\x01n\n\x18get_relations.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\tsubjectId\x12\xa1\x02\n\x10subject_relation\x18\x06 \x01(\tB\xf5\x01\xe2\x41\x01\x01\xbaH\xed\x01r\x02\x18@\xba\x01\xe2\x01\n\x1eget_relations.subject_relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0fsubjectRelation\x12\'\n\x0cwith_objects\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0bwithObjects\x12G\n\x04page\x18\t \x01(\x0b\x32-.aserto.directory.common.v3.PaginationRequestB\x04\xe2\x41\x01\x01R\x04page:\xad\x04\xbaH\xa9\x04\x1a\x8d\x02\n!get_relations.object_id_with_type\x12Mwhen an object_id is specified, the accompanying object_type must be provided\x1a\x98\x01(this.object_type == \'\' && this.object_id == \'\') || (this.object_type != \'\' && this.object_id == \'\') || (this.object_type != \'\' && this.object_id != \'\')\x1a\x96\x02\n\"get_relations.subject_id_with_type\x12Owhen an subject_id is specified, the accompanying subject_type must be provided\x1a\x9e\x01(this.subject_type == \'\' && this.subject_id == \'\') || (this.subject_type != \'\' && this.subject_id == \'\') || (this.subject_type != \'\' && this.subject_id != \'\')\"\xd9\x02\n\x14GetRelationsResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32$.aserto.directory.common.v3.RelationR\x07results\x12W\n\x07objects\x18\x02 \x03(\x0b\x32=.aserto.directory.reader.v3.GetRelationsResponse.ObjectsEntryR\x07objects\x12H\n\x04page\x18\t \x01(\x0b\x32..aserto.directory.common.v3.PaginationResponseB\x04\xe2\x41\x01\x03R\x04page\x1a^\n\x0cObjectsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32\".aserto.directory.common.v3.ObjectR\x05value:\x02\x38\x01\"\x8d\x08\n\x0c\x43heckRequest\x12\x8a\x02\n\x0bobject_type\x18\x01 \x01(\tB\xe8\x01\xe2\x41\x01\x02\xbaH\xe0\x01r\x02\x18@\xba\x01\xd5\x01\n\x11\x63heck.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nobjectType\x12\x94\x01\n\tobject_id\x18\x02 \x01(\tBw\xe2\x41\x01\x02\xbaHpr\x03\x18\x80\x02\xba\x01\x65\n\x0f\x63heck.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08objectId\x12\x92\x01\n\x08relation\x18\x03 \x01(\tBv\xe2\x41\x01\x02\xbaHor\x03\x18\x80\x02\xba\x01\x64\n\x0e\x63heck.relation\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08relation\x12\x8d\x02\n\x0csubject_type\x18\x04 \x01(\tB\xe9\x01\xe2\x41\x01\x02\xbaH\xe1\x01r\x02\x18@\xba\x01\xd6\x01\n\x12\x63heck.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\x0bsubjectType\x12\x97\x01\n\nsubject_id\x18\x05 \x01(\tBx\xe2\x41\x01\x02\xbaHqr\x03\x18\x80\x02\xba\x01\x66\n\x10\x63heck.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\tsubjectId\x12\x1a\n\x05trace\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x05trace\";\n\rCheckResponse\x12\x14\n\x05\x63heck\x18\x01 \x01(\x08R\x05\x63heck\x12\x14\n\x05trace\x18\x02 \x03(\tR\x05trace\"\xd7\x08\n\x16\x43heckPermissionRequest\x12\x95\x02\n\x0bobject_type\x18\x01 \x01(\tB\xf3\x01\xe2\x41\x01\x02\xbaH\xeb\x01r\x02\x18@\xba\x01\xe0\x01\n\x1c\x63heck_permission.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nobjectType\x12\xa0\x01\n\tobject_id\x18\x02 \x01(\tB\x82\x01\xe2\x41\x01\x02\xbaH{r\x03\x18\x80\x02\xba\x01p\n\x1a\x63heck_permission.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08objectId\x12\xa4\x01\n\npermission\x18\x03 \x01(\tB\x83\x01\xe2\x41\x01\x02\xbaH|r\x03\x18\x80\x02\xba\x01q\n\x1b\x63heck_permission.permission\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\npermission\x12\x98\x02\n\x0csubject_type\x18\x04 \x01(\tB\xf4\x01\xe2\x41\x01\x02\xbaH\xec\x01r\x02\x18@\xba\x01\xe1\x01\n\x1d\x63heck_permission.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\x0bsubjectType\x12\xa3\x01\n\nsubject_id\x18\x05 \x01(\tB\x83\x01\xe2\x41\x01\x02\xbaH|r\x03\x18\x80\x02\xba\x01q\n\x1b\x63heck_permission.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\tsubjectId\x12\x1a\n\x05trace\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x05trace\"E\n\x17\x43heckPermissionResponse\x12\x14\n\x05\x63heck\x18\x01 \x01(\x08R\x05\x63heck\x12\x14\n\x05trace\x18\x02 \x03(\tR\x05trace\"\xb4\t\n\x14\x43heckRelationRequest\x12\x93\x02\n\x0bobject_type\x18\x01 \x01(\tB\xf1\x01\xe2\x41\x01\x02\xbaH\xe9\x01r\x02\x18@\xba\x01\xde\x01\n\x1a\x63heck_relation.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nobjectType\x12\x9e\x01\n\tobject_id\x18\x02 \x01(\tB\x80\x01\xe2\x41\x01\x02\xbaHyr\x03\x18\x80\x02\xba\x01n\n\x18\x63heck_relation.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08objectId\x12\x8b\x02\n\x08relation\x18\x03 \x01(\tB\xee\x01\xe2\x41\x01\x02\xbaH\xe6\x01r\x02\x18@\xba\x01\xdb\x01\n\x17\x63heck_relation.relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\x08relation\x12\x96\x02\n\x0csubject_type\x18\x04 \x01(\tB\xf2\x01\xe2\x41\x01\x02\xbaH\xea\x01r\x02\x18@\xba\x01\xdf\x01\n\x1b\x63heck_relation.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\x0bsubjectType\x12\xa1\x01\n\nsubject_id\x18\x05 \x01(\tB\x81\x01\xe2\x41\x01\x02\xbaHzr\x03\x18\x80\x02\xba\x01o\n\x19\x63heck_relation.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\tsubjectId\x12\x1a\n\x05trace\x18\x07 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x05trace\"C\n\x15\x43heckRelationResponse\x12\x14\n\x05\x63heck\x18\x01 \x01(\x08R\x05\x63heck\x12\x14\n\x05trace\x18\x02 \x03(\tR\x05trace\"\xed\x10\n\x0fGetGraphRequest\x12\x8e\x02\n\x0b\x61nchor_type\x18\x01 \x01(\tB\xec\x01\xe2\x41\x01\x02\xbaH\xe4\x01r\x02\x18@\xba\x01\xd9\x01\n\x15get_graph.anchor_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xc8\x01\x01R\nanchorType\x12\x98\x01\n\tanchor_id\x18\x02 \x01(\tB{\xe2\x41\x01\x02\xbaHtr\x03\x18\x80\x02\xba\x01i\n\x13get_graph.anchor_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xc8\x01\x01R\x08\x61nchorId\x12\x8e\x02\n\x0bobject_type\x18\x03 \x01(\tB\xec\x01\xe2\x41\x01\x01\xbaH\xe4\x01r\x02\x18@\xba\x01\xd9\x01\n\x15get_graph.object_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\nobjectType\x12\x98\x01\n\tobject_id\x18\x04 \x01(\tB{\xe2\x41\x01\x01\xbaHtr\x03\x18\x80\x02\xba\x01i\n\x13get_graph.object_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\x08objectId\x12\x86\x02\n\x08relation\x18\x05 \x01(\tB\xe9\x01\xe2\x41\x01\x01\xbaH\xe1\x01r\x02\x18@\xba\x01\xd6\x01\n\x12get_graph.relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x08relation\x12\x91\x02\n\x0csubject_type\x18\x06 \x01(\tB\xed\x01\xe2\x41\x01\x01\xbaH\xe5\x01r\x02\x18@\xba\x01\xda\x01\n\x16get_graph.subject_type\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0bsubjectType\x12\x9b\x01\n\nsubject_id\x18\x07 \x01(\tB|\xe2\x41\x01\x01\xbaHur\x03\x18\x80\x02\xba\x01j\n\x14get_graph.subject_id\x12\x38\x63\x61nnot contain any spaces or other whitespace characters\x1a\x18this.matches(\'^[\\\\S]+$\')\xd0\x01\x01R\tsubjectId\x12\x9d\x02\n\x10subject_relation\x18\x08 \x01(\tB\xf1\x01\xe2\x41\x01\x01\xbaH\xe9\x01r\x02\x18@\xba\x01\xde\x01\n\x1aget_graph.subject_relation\x12\x8b\x01must be all lowercase, start with a letter, can contain letters, digits, dots, underscores, and dashes, and must end with a letter or digit\x1a\x32this.matches(\'^[a-z][a-z0-9\\\\._-]{1,62}[a-z0-9]$\')\xd0\x01\x01R\x0fsubjectRelation:\xa6\x02\xbaH\xa2\x02\x1a\x9f\x02\n\x14graph.directionality\x12janchor.(type+id) must match either subject.(type+id) or object.(type+id) to determine graph directionality\x1a\x9a\x01(this.anchor_type == this.object_type && this.anchor_id == this.object_id) || (this.anchor_type == this.subject_type && this.anchor_id == this.subject_id)\"Z\n\x10GetGraphResponse\x12\x46\n\x07results\x18\x01 \x03(\x0b\x32,.aserto.directory.common.v3.ObjectDependencyR\x07results2\xb7\x13\n\x06Reader\x12\xc3\x02\n\tGetObject\x12,.aserto.directory.reader.v3.GetObjectRequest\x1a-.aserto.directory.reader.v3.GetObjectResponse\"\xd8\x01\x92\x41\x9a\x01\n\tdirectory\x12\x13Get object instance\x1a:Returns single object instance, optionally with relations.*\x17\x64irectory.v3.object.getb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x34\x12\x32/api/v3/directory/object/{object_type}/{object_id}\x12v\n\rGetObjectMany\x12\x30.aserto.directory.reader.v3.GetObjectManyRequest\x1a\x31.aserto.directory.reader.v3.GetObjectManyResponse\"\x00\x12\x98\x02\n\nGetObjects\x12-.aserto.directory.reader.v3.GetObjectsRequest\x1a..aserto.directory.reader.v3.GetObjectsResponse\"\xaa\x01\x92\x41\x85\x01\n\tdirectory\x12\x15List object instances\x1a!Returns list of object instances.*\x19\x64irectory.v3.objects.listb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/v3/directory/objects\x12\xb5\x02\n\x0bGetRelation\x12..aserto.directory.reader.v3.GetRelationRequest\x1a/.aserto.directory.reader.v3.GetRelationResponse\"\xc4\x01\x92\x41\x9e\x01\n\tdirectory\x12\x15Get relation instance\x1a:Returns single relation instance, optionally with objects.*\x19\x64irectory.v3.relation.getb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v3/directory/relation\x12\xa7\x02\n\x0cGetRelations\x12/.aserto.directory.reader.v3.GetRelationsRequest\x1a\x30.aserto.directory.reader.v3.GetRelationsResponse\"\xb3\x01\x92\x41\x8c\x01\n\tdirectory\x12\x18List relations instances\x1a#Returns list of relation instances.*\x1b\x64irectory.v3.relations.listb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v3/directory/relations\x12\xe7\x01\n\x05\x43heck\x12(.aserto.directory.reader.v3.CheckRequest\x1a).aserto.directory.reader.v3.CheckResponse\"\x88\x01\x92\x41\x63\n\tdirectory\x12\x05\x43heck\x1a\x16Returns check outcome.*\x12\x64irectory.v3.checkb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x1c\"\x17/api/v3/directory/check:\x01*\x12\xb2\x02\n\x0f\x43heckPermission\x12\x32.aserto.directory.reader.v3.CheckPermissionRequest\x1a\x33.aserto.directory.reader.v3.CheckPermissionResponse\"\xb5\x01\x92\x41\x84\x01\n\tdirectory\x12\x10\x43heck permission\x1a!Returns check permission outcome.*\x1d\x64irectory.v3.check.permissionb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\'\"\"/api/v3/directory/check/permission:\x01*\x12\xa3\x02\n\rCheckRelation\x12\x30.aserto.directory.reader.v3.CheckRelationRequest\x1a\x31.aserto.directory.reader.v3.CheckRelationResponse\"\xac\x01\x92\x41~\n\tdirectory\x12\x0e\x43heck relation\x1a\x1fReturns check relation outcome.*\x1b\x64irectory.v3.check.relationb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02%\" /api/v3/directory/check/relation:\x01*\x12\xac\x02\n\x08GetGraph\x12+.aserto.directory.reader.v3.GetGraphRequest\x1a,.aserto.directory.reader.v3.GetGraphResponse\"\xc4\x01\x92\x41\x87\x01\n\tdirectory\x12\tGet graph\x1a\x36Returns object graph from anchor to subject or object.*\x12\x64irectory.v3.graphb#\n\x13\n\x0f\x44irectoryAPIKey\x12\x00\n\x0c\n\x08TenantID\x12\x00\x82\xd3\xe4\x93\x02\x33\x12\x31/api/v3/directory/graph/{anchor_type}/{anchor_id}B\x80\x02\n\x1e\x63om.aserto.directory.reader.v3B\x0bReaderProtoP\x01ZDgithub.com/aserto-dev/go-directory/aserto/directory/reader/v3;reader\xa2\x02\x03\x41\x44R\xaa\x02\x1a\x41serto.Directory.Reader.V3\xca\x02\x1b\x41serto\\Directory_\\Reader\\V3\xe2\x02\'Aserto\\Directory_\\Reader\\V3\\GPBMetadata\xea\x02\x1d\x41serto::Directory::Reader::V3b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -60,7 +60,7 @@ _globals['_GETRELATIONREQUEST'].fields_by_name['with_objects']._options = None _globals['_GETRELATIONREQUEST'].fields_by_name['with_objects']._serialized_options = b'\342A\001\001' _globals['_GETRELATIONREQUEST']._options = None - _globals['_GETRELATIONREQUEST']._serialized_options = b'\272H\350\001\032\345\001\n\033get_relation.directionality\022^either subject or object must be fully qualified (type + id) to determine graph directionality\032f(this.object_type != \'\' && this.object_id != \'\') || (this.subject_type != \'\' && this.subject_id != \'\')' + _globals['_GETRELATIONREQUEST']._serialized_options = b'\272H\247\004\032\214\002\n get_relation.object_id_with_type\022Mwhen an object_id is specified, the accompanying object_type must be provided\032\230\001(this.object_type == \'\' && this.object_id == \'\') || (this.object_type != \'\' && this.object_id == \'\') || (this.object_type != \'\' && this.object_id != \'\')\032\225\002\n!get_relation.subject_id_with_type\022Owhen an subject_id is specified, the accompanying subject_type must be provided\032\236\001(this.subject_type == \'\' && this.subject_id == \'\') || (this.subject_type != \'\' && this.subject_id == \'\') || (this.subject_type != \'\' && this.subject_id != \'\')' _globals['_GETRELATIONRESPONSE_OBJECTSENTRY']._options = None _globals['_GETRELATIONRESPONSE_OBJECTSENTRY']._serialized_options = b'8\001' _globals['_GETRELATIONSREQUEST'].fields_by_name['object_type']._options = None @@ -80,7 +80,7 @@ _globals['_GETRELATIONSREQUEST'].fields_by_name['page']._options = None _globals['_GETRELATIONSREQUEST'].fields_by_name['page']._serialized_options = b'\342A\001\001' _globals['_GETRELATIONSREQUEST']._options = None - _globals['_GETRELATIONSREQUEST']._serialized_options = b'\272H\351\001\032\346\001\n\034get_relations.directionality\022^either subject or object must be fully qualified (type + id) to determine graph directionality\032f(this.object_type != \'\' && this.object_id != \'\') || (this.subject_type != \'\' && this.subject_id != \'\')' + _globals['_GETRELATIONSREQUEST']._serialized_options = b'\272H\251\004\032\215\002\n!get_relations.object_id_with_type\022Mwhen an object_id is specified, the accompanying object_type must be provided\032\230\001(this.object_type == \'\' && this.object_id == \'\') || (this.object_type != \'\' && this.object_id == \'\') || (this.object_type != \'\' && this.object_id != \'\')\032\226\002\n\"get_relations.subject_id_with_type\022Owhen an subject_id is specified, the accompanying subject_type must be provided\032\236\001(this.subject_type == \'\' && this.subject_id == \'\') || (this.subject_type != \'\' && this.subject_id == \'\') || (this.subject_type != \'\' && this.subject_id != \'\')' _globals['_GETRELATIONSRESPONSE_OBJECTSENTRY']._options = None _globals['_GETRELATIONSRESPONSE_OBJECTSENTRY']._serialized_options = b'8\001' _globals['_GETRELATIONSRESPONSE'].fields_by_name['page']._options = None @@ -168,33 +168,33 @@ _globals['_GETOBJECTSRESPONSE']._serialized_start=1597 _globals['_GETOBJECTSRESPONSE']._serialized_end=1753 _globals['_GETRELATIONREQUEST']._serialized_start=1756 - _globals['_GETRELATIONREQUEST']._serialized_end=3489 - _globals['_GETRELATIONRESPONSE']._serialized_start=3492 - _globals['_GETRELATIONRESPONSE']._serialized_end=3759 - _globals['_GETRELATIONRESPONSE_OBJECTSENTRY']._serialized_start=3665 - _globals['_GETRELATIONRESPONSE_OBJECTSENTRY']._serialized_end=3759 - _globals['_GETRELATIONSREQUEST']._serialized_start=3762 - _globals['_GETRELATIONSREQUEST']._serialized_end=5577 - _globals['_GETRELATIONSRESPONSE']._serialized_start=5580 - _globals['_GETRELATIONSRESPONSE']._serialized_end=5925 - _globals['_GETRELATIONSRESPONSE_OBJECTSENTRY']._serialized_start=3665 - _globals['_GETRELATIONSRESPONSE_OBJECTSENTRY']._serialized_end=3759 - _globals['_CHECKREQUEST']._serialized_start=5928 - _globals['_CHECKREQUEST']._serialized_end=6965 - _globals['_CHECKRESPONSE']._serialized_start=6967 - _globals['_CHECKRESPONSE']._serialized_end=7026 - _globals['_CHECKPERMISSIONREQUEST']._serialized_start=7029 - _globals['_CHECKPERMISSIONREQUEST']._serialized_end=8140 - _globals['_CHECKPERMISSIONRESPONSE']._serialized_start=8142 - _globals['_CHECKPERMISSIONRESPONSE']._serialized_end=8211 - _globals['_CHECKRELATIONREQUEST']._serialized_start=8214 - _globals['_CHECKRELATIONREQUEST']._serialized_end=9418 - _globals['_CHECKRELATIONRESPONSE']._serialized_start=9420 - _globals['_CHECKRELATIONRESPONSE']._serialized_end=9487 - _globals['_GETGRAPHREQUEST']._serialized_start=9490 - _globals['_GETGRAPHREQUEST']._serialized_end=11647 - _globals['_GETGRAPHRESPONSE']._serialized_start=11649 - _globals['_GETGRAPHRESPONSE']._serialized_end=11739 - _globals['_READER']._serialized_start=11742 - _globals['_READER']._serialized_end=14229 + _globals['_GETRELATIONREQUEST']._serialized_end=3808 + _globals['_GETRELATIONRESPONSE']._serialized_start=3811 + _globals['_GETRELATIONRESPONSE']._serialized_end=4078 + _globals['_GETRELATIONRESPONSE_OBJECTSENTRY']._serialized_start=3984 + _globals['_GETRELATIONRESPONSE_OBJECTSENTRY']._serialized_end=4078 + _globals['_GETRELATIONSREQUEST']._serialized_start=4081 + _globals['_GETRELATIONSREQUEST']._serialized_end=6216 + _globals['_GETRELATIONSRESPONSE']._serialized_start=6219 + _globals['_GETRELATIONSRESPONSE']._serialized_end=6564 + _globals['_GETRELATIONSRESPONSE_OBJECTSENTRY']._serialized_start=3984 + _globals['_GETRELATIONSRESPONSE_OBJECTSENTRY']._serialized_end=4078 + _globals['_CHECKREQUEST']._serialized_start=6567 + _globals['_CHECKREQUEST']._serialized_end=7604 + _globals['_CHECKRESPONSE']._serialized_start=7606 + _globals['_CHECKRESPONSE']._serialized_end=7665 + _globals['_CHECKPERMISSIONREQUEST']._serialized_start=7668 + _globals['_CHECKPERMISSIONREQUEST']._serialized_end=8779 + _globals['_CHECKPERMISSIONRESPONSE']._serialized_start=8781 + _globals['_CHECKPERMISSIONRESPONSE']._serialized_end=8850 + _globals['_CHECKRELATIONREQUEST']._serialized_start=8853 + _globals['_CHECKRELATIONREQUEST']._serialized_end=10057 + _globals['_CHECKRELATIONRESPONSE']._serialized_start=10059 + _globals['_CHECKRELATIONRESPONSE']._serialized_end=10126 + _globals['_GETGRAPHREQUEST']._serialized_start=10129 + _globals['_GETGRAPHREQUEST']._serialized_end=12286 + _globals['_GETGRAPHRESPONSE']._serialized_start=12288 + _globals['_GETGRAPHRESPONSE']._serialized_end=12378 + _globals['_READER']._serialized_start=12381 + _globals['_READER']._serialized_end=14868 # @@protoc_insertion_point(module_scope) diff --git a/src/aserto/directory/reader/v3/reader_pb2.pyi b/src/aserto/directory/reader/v3/reader_pb2.pyi index 3344094..0240a12 100644 --- a/src/aserto/directory/reader/v3/reader_pb2.pyi +++ b/src/aserto/directory/reader/v3/reader_pb2.pyi @@ -1,560 +1,229 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import aserto.directory.common.v3.common_pb2 -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import sys - -if sys.version_info >= (3, 8): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class GetObjectRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - WITH_RELATIONS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type name (lc-string)""" - object_id: builtins.str - """object identifier (cs-string)""" - with_relations: builtins.bool - """materialize the object relations objects""" - @property - def page(self) -> aserto.directory.common.v3.common_pb2.PaginationRequest: - """pagination request""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - with_relations: builtins.bool = ..., - page: aserto.directory.common.v3.common_pb2.PaginationRequest | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object_id", b"object_id", "object_type", b"object_type", "page", b"page", "with_relations", b"with_relations"]) -> None: ... - -global___GetObjectRequest = GetObjectRequest - -@typing_extensions.final -class GetObjectResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - RELATIONS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v3.common_pb2.Object: - """object instance""" - @property - def relations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v3.common_pb2.Relation]: - """object relations""" - @property - def page(self) -> aserto.directory.common.v3.common_pb2.PaginationResponse: - """pagination response""" - def __init__( - self, - *, - result: aserto.directory.common.v3.common_pb2.Object | None = ..., - relations: collections.abc.Iterable[aserto.directory.common.v3.common_pb2.Relation] | None = ..., - page: aserto.directory.common.v3.common_pb2.PaginationResponse | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page", "result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "relations", b"relations", "result", b"result"]) -> None: ... - -global___GetObjectResponse = GetObjectResponse - -@typing_extensions.final -class GetObjectManyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - @property - def param(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v3.common_pb2.ObjectIdentifier]: - """object identifier list""" - def __init__( - self, - *, - param: collections.abc.Iterable[aserto.directory.common.v3.common_pb2.ObjectIdentifier] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["param", b"param"]) -> None: ... - -global___GetObjectManyRequest = GetObjectManyRequest - -@typing_extensions.final -class GetObjectManyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v3.common_pb2.Object]: - """array of object instances""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v3.common_pb2.Object] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["results", b"results"]) -> None: ... - -global___GetObjectManyResponse = GetObjectManyResponse - -@typing_extensions.final -class GetObjectsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type name (lc-string)""" - @property - def page(self) -> aserto.directory.common.v3.common_pb2.PaginationRequest: - """pagination request""" - def __init__( - self, - *, - object_type: builtins.str = ..., - page: aserto.directory.common.v3.common_pb2.PaginationRequest | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object_type", b"object_type", "page", b"page"]) -> None: ... - -global___GetObjectsRequest = GetObjectsRequest - -@typing_extensions.final -class GetObjectsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v3.common_pb2.Object]: - """array of object instances""" - @property - def page(self) -> aserto.directory.common.v3.common_pb2.PaginationResponse: - """pagination response""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v3.common_pb2.Object] | None = ..., - page: aserto.directory.common.v3.common_pb2.PaginationResponse | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["page", b"page", "results", b"results"]) -> None: ... - -global___GetObjectsResponse = GetObjectsResponse - -@typing_extensions.final -class GetRelationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_ID_FIELD_NUMBER: builtins.int - SUBJECT_RELATION_FIELD_NUMBER: builtins.int - WITH_OBJECTS_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - relation: builtins.str - """relation name""" - subject_type: builtins.str - """subject type""" - subject_id: builtins.str - """subject identifier""" - subject_relation: builtins.str - """optional subject relation name""" - with_objects: builtins.bool - """materialize relation objects""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - relation: builtins.str = ..., - subject_type: builtins.str = ..., - subject_id: builtins.str = ..., - subject_relation: builtins.str = ..., - with_objects: builtins.bool = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["object_id", b"object_id", "object_type", b"object_type", "relation", b"relation", "subject_id", b"subject_id", "subject_relation", b"subject_relation", "subject_type", b"subject_type", "with_objects", b"with_objects"]) -> None: ... - -global___GetRelationRequest = GetRelationRequest - -@typing_extensions.final -class GetRelationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ObjectsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> aserto.directory.common.v3.common_pb2.Object: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: aserto.directory.common.v3.common_pb2.Object | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - RESULT_FIELD_NUMBER: builtins.int - OBJECTS_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v3.common_pb2.Relation: - """relation instance""" - @property - def objects(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, aserto.directory.common.v3.common_pb2.Object]: - """map of materialized relation objects""" - def __init__( - self, - *, - result: aserto.directory.common.v3.common_pb2.Relation | None = ..., - objects: collections.abc.Mapping[builtins.str, aserto.directory.common.v3.common_pb2.Object] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["objects", b"objects", "result", b"result"]) -> None: ... - -global___GetRelationResponse = GetRelationResponse - -@typing_extensions.final -class GetRelationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_ID_FIELD_NUMBER: builtins.int - SUBJECT_RELATION_FIELD_NUMBER: builtins.int - WITH_OBJECTS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - relation: builtins.str - """relation name""" - subject_type: builtins.str - """subject type""" - subject_id: builtins.str - """subject identifier""" - subject_relation: builtins.str - """optional subject relation name""" - with_objects: builtins.bool - """materialize relation objects""" - @property - def page(self) -> aserto.directory.common.v3.common_pb2.PaginationRequest: - """pagination request""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - relation: builtins.str = ..., - subject_type: builtins.str = ..., - subject_id: builtins.str = ..., - subject_relation: builtins.str = ..., - with_objects: builtins.bool = ..., - page: aserto.directory.common.v3.common_pb2.PaginationRequest | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object_id", b"object_id", "object_type", b"object_type", "page", b"page", "relation", b"relation", "subject_id", b"subject_id", "subject_relation", b"subject_relation", "subject_type", b"subject_type", "with_objects", b"with_objects"]) -> None: ... - -global___GetRelationsRequest = GetRelationsRequest - -@typing_extensions.final -class GetRelationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ObjectsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> aserto.directory.common.v3.common_pb2.Object: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: aserto.directory.common.v3.common_pb2.Object | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - RESULTS_FIELD_NUMBER: builtins.int - OBJECTS_FIELD_NUMBER: builtins.int - PAGE_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v3.common_pb2.Relation]: - """array of relation instances""" - @property - def objects(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, aserto.directory.common.v3.common_pb2.Object]: - """map of materialized relation objects""" - @property - def page(self) -> aserto.directory.common.v3.common_pb2.PaginationResponse: - """pagination response""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v3.common_pb2.Relation] | None = ..., - objects: collections.abc.Mapping[builtins.str, aserto.directory.common.v3.common_pb2.Object] | None = ..., - page: aserto.directory.common.v3.common_pb2.PaginationResponse | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["page", b"page"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["objects", b"objects", "page", b"page", "results", b"results"]) -> None: ... - -global___GetRelationsResponse = GetRelationsResponse - -@typing_extensions.final -class CheckRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_ID_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - relation: builtins.str - """relation name""" - subject_type: builtins.str - """subject type""" - subject_id: builtins.str - """subject identifier""" - trace: builtins.bool - """collect trace information""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - relation: builtins.str = ..., - subject_type: builtins.str = ..., - subject_id: builtins.str = ..., - trace: builtins.bool = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["object_id", b"object_id", "object_type", b"object_type", "relation", b"relation", "subject_id", b"subject_id", "subject_type", b"subject_type", "trace", b"trace"]) -> None: ... - -global___CheckRequest = CheckRequest - -@typing_extensions.final -class CheckResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CHECK_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - check: builtins.bool - """check result""" - @property - def trace(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """trace information""" - def __init__( - self, - *, - check: builtins.bool = ..., - trace: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["check", b"check", "trace", b"trace"]) -> None: ... - -global___CheckResponse = CheckResponse - -@typing_extensions.final -class CheckPermissionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - PERMISSION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_ID_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - permission: builtins.str - """permission name""" - subject_type: builtins.str - """subject type""" - subject_id: builtins.str - """subject identifier""" - trace: builtins.bool - """collect trace information""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - permission: builtins.str = ..., - subject_type: builtins.str = ..., - subject_id: builtins.str = ..., - trace: builtins.bool = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["object_id", b"object_id", "object_type", b"object_type", "permission", b"permission", "subject_id", b"subject_id", "subject_type", b"subject_type", "trace", b"trace"]) -> None: ... - -global___CheckPermissionRequest = CheckPermissionRequest - -@typing_extensions.final -class CheckPermissionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CHECK_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - check: builtins.bool - """check result""" - @property - def trace(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """trace information""" - def __init__( - self, - *, - check: builtins.bool = ..., - trace: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["check", b"check", "trace", b"trace"]) -> None: ... - -global___CheckPermissionResponse = CheckPermissionResponse - -@typing_extensions.final -class CheckRelationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_ID_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - relation: builtins.str - """relation name""" - subject_type: builtins.str - """subject type""" - subject_id: builtins.str - """subject identifier""" - trace: builtins.bool - """collect trace information""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - relation: builtins.str = ..., - subject_type: builtins.str = ..., - subject_id: builtins.str = ..., - trace: builtins.bool = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["object_id", b"object_id", "object_type", b"object_type", "relation", b"relation", "subject_id", b"subject_id", "subject_type", b"subject_type", "trace", b"trace"]) -> None: ... - -global___CheckRelationRequest = CheckRelationRequest - -@typing_extensions.final -class CheckRelationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CHECK_FIELD_NUMBER: builtins.int - TRACE_FIELD_NUMBER: builtins.int - check: builtins.bool - """check result""" - @property - def trace(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """trace information""" - def __init__( - self, - *, - check: builtins.bool = ..., - trace: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["check", b"check", "trace", b"trace"]) -> None: ... - -global___CheckRelationResponse = CheckRelationResponse - -@typing_extensions.final -class GetGraphRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - ANCHOR_TYPE_FIELD_NUMBER: builtins.int - ANCHOR_ID_FIELD_NUMBER: builtins.int - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_ID_FIELD_NUMBER: builtins.int - SUBJECT_RELATION_FIELD_NUMBER: builtins.int - anchor_type: builtins.str - """anchor type""" - anchor_id: builtins.str - """anchor identifier""" - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - relation: builtins.str - """relation name""" - subject_type: builtins.str - """subject type""" - subject_id: builtins.str - """subject identifier""" - subject_relation: builtins.str - """subject relation""" - def __init__( - self, - *, - anchor_type: builtins.str = ..., - anchor_id: builtins.str = ..., - object_type: builtins.str = ..., - object_id: builtins.str = ..., - relation: builtins.str = ..., - subject_type: builtins.str = ..., - subject_id: builtins.str = ..., - subject_relation: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["anchor_id", b"anchor_id", "anchor_type", b"anchor_type", "object_id", b"object_id", "object_type", b"object_type", "relation", b"relation", "subject_id", b"subject_id", "subject_relation", b"subject_relation", "subject_type", b"subject_type"]) -> None: ... - -global___GetGraphRequest = GetGraphRequest - -@typing_extensions.final -class GetGraphResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULTS_FIELD_NUMBER: builtins.int - @property - def results(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[aserto.directory.common.v3.common_pb2.ObjectDependency]: - """dependency graph""" - def __init__( - self, - *, - results: collections.abc.Iterable[aserto.directory.common.v3.common_pb2.ObjectDependency] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["results", b"results"]) -> None: ... - -global___GetGraphResponse = GetGraphResponse +from google.api import annotations_pb2 as _annotations_pb2 +from google.api import field_behavior_pb2 as _field_behavior_pb2 +from protoc_gen_openapiv2.options import annotations_pb2 as _annotations_pb2_1 +from buf.validate import validate_pb2 as _validate_pb2 +from aserto.directory.common.v3 import common_pb2 as _common_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class GetObjectRequest(_message.Message): + __slots__ = ("object_type", "object_id", "with_relations", "page") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + WITH_RELATIONS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + with_relations: bool + page: _common_pb2.PaginationRequest + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., with_relations: bool = ..., page: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ...) -> None: ... + +class GetObjectResponse(_message.Message): + __slots__ = ("result", "relations", "page") + RESULT_FIELD_NUMBER: _ClassVar[int] + RELATIONS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.Object + relations: _containers.RepeatedCompositeFieldContainer[_common_pb2.Relation] + page: _common_pb2.PaginationResponse + def __init__(self, result: _Optional[_Union[_common_pb2.Object, _Mapping]] = ..., relations: _Optional[_Iterable[_Union[_common_pb2.Relation, _Mapping]]] = ..., page: _Optional[_Union[_common_pb2.PaginationResponse, _Mapping]] = ...) -> None: ... + +class GetObjectManyRequest(_message.Message): + __slots__ = ("param",) + PARAM_FIELD_NUMBER: _ClassVar[int] + param: _containers.RepeatedCompositeFieldContainer[_common_pb2.ObjectIdentifier] + def __init__(self, param: _Optional[_Iterable[_Union[_common_pb2.ObjectIdentifier, _Mapping]]] = ...) -> None: ... + +class GetObjectManyResponse(_message.Message): + __slots__ = ("results",) + RESULTS_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.Object] + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.Object, _Mapping]]] = ...) -> None: ... + +class GetObjectsRequest(_message.Message): + __slots__ = ("object_type", "page") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + object_type: str + page: _common_pb2.PaginationRequest + def __init__(self, object_type: _Optional[str] = ..., page: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ...) -> None: ... + +class GetObjectsResponse(_message.Message): + __slots__ = ("results", "page") + RESULTS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.Object] + page: _common_pb2.PaginationResponse + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.Object, _Mapping]]] = ..., page: _Optional[_Union[_common_pb2.PaginationResponse, _Mapping]] = ...) -> None: ... + +class GetRelationRequest(_message.Message): + __slots__ = ("object_type", "object_id", "relation", "subject_type", "subject_id", "subject_relation", "with_objects") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + SUBJECT_RELATION_FIELD_NUMBER: _ClassVar[int] + WITH_OBJECTS_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + relation: str + subject_type: str + subject_id: str + subject_relation: str + with_objects: bool + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., relation: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_id: _Optional[str] = ..., subject_relation: _Optional[str] = ..., with_objects: bool = ...) -> None: ... + +class GetRelationResponse(_message.Message): + __slots__ = ("result", "objects") + class ObjectsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _common_pb2.Object + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_common_pb2.Object, _Mapping]] = ...) -> None: ... + RESULT_FIELD_NUMBER: _ClassVar[int] + OBJECTS_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.Relation + objects: _containers.MessageMap[str, _common_pb2.Object] + def __init__(self, result: _Optional[_Union[_common_pb2.Relation, _Mapping]] = ..., objects: _Optional[_Mapping[str, _common_pb2.Object]] = ...) -> None: ... + +class GetRelationsRequest(_message.Message): + __slots__ = ("object_type", "object_id", "relation", "subject_type", "subject_id", "subject_relation", "with_objects", "page") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + SUBJECT_RELATION_FIELD_NUMBER: _ClassVar[int] + WITH_OBJECTS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + relation: str + subject_type: str + subject_id: str + subject_relation: str + with_objects: bool + page: _common_pb2.PaginationRequest + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., relation: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_id: _Optional[str] = ..., subject_relation: _Optional[str] = ..., with_objects: bool = ..., page: _Optional[_Union[_common_pb2.PaginationRequest, _Mapping]] = ...) -> None: ... + +class GetRelationsResponse(_message.Message): + __slots__ = ("results", "objects", "page") + class ObjectsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _common_pb2.Object + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_common_pb2.Object, _Mapping]] = ...) -> None: ... + RESULTS_FIELD_NUMBER: _ClassVar[int] + OBJECTS_FIELD_NUMBER: _ClassVar[int] + PAGE_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.Relation] + objects: _containers.MessageMap[str, _common_pb2.Object] + page: _common_pb2.PaginationResponse + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.Relation, _Mapping]]] = ..., objects: _Optional[_Mapping[str, _common_pb2.Object]] = ..., page: _Optional[_Union[_common_pb2.PaginationResponse, _Mapping]] = ...) -> None: ... + +class CheckRequest(_message.Message): + __slots__ = ("object_type", "object_id", "relation", "subject_type", "subject_id", "trace") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + relation: str + subject_type: str + subject_id: str + trace: bool + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., relation: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_id: _Optional[str] = ..., trace: bool = ...) -> None: ... + +class CheckResponse(_message.Message): + __slots__ = ("check", "trace") + CHECK_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + check: bool + trace: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, check: bool = ..., trace: _Optional[_Iterable[str]] = ...) -> None: ... + +class CheckPermissionRequest(_message.Message): + __slots__ = ("object_type", "object_id", "permission", "subject_type", "subject_id", "trace") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + PERMISSION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + permission: str + subject_type: str + subject_id: str + trace: bool + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., permission: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_id: _Optional[str] = ..., trace: bool = ...) -> None: ... + +class CheckPermissionResponse(_message.Message): + __slots__ = ("check", "trace") + CHECK_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + check: bool + trace: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, check: bool = ..., trace: _Optional[_Iterable[str]] = ...) -> None: ... + +class CheckRelationRequest(_message.Message): + __slots__ = ("object_type", "object_id", "relation", "subject_type", "subject_id", "trace") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + relation: str + subject_type: str + subject_id: str + trace: bool + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., relation: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_id: _Optional[str] = ..., trace: bool = ...) -> None: ... + +class CheckRelationResponse(_message.Message): + __slots__ = ("check", "trace") + CHECK_FIELD_NUMBER: _ClassVar[int] + TRACE_FIELD_NUMBER: _ClassVar[int] + check: bool + trace: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, check: bool = ..., trace: _Optional[_Iterable[str]] = ...) -> None: ... + +class GetGraphRequest(_message.Message): + __slots__ = ("anchor_type", "anchor_id", "object_type", "object_id", "relation", "subject_type", "subject_id", "subject_relation") + ANCHOR_TYPE_FIELD_NUMBER: _ClassVar[int] + ANCHOR_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + SUBJECT_RELATION_FIELD_NUMBER: _ClassVar[int] + anchor_type: str + anchor_id: str + object_type: str + object_id: str + relation: str + subject_type: str + subject_id: str + subject_relation: str + def __init__(self, anchor_type: _Optional[str] = ..., anchor_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., relation: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_id: _Optional[str] = ..., subject_relation: _Optional[str] = ...) -> None: ... + +class GetGraphResponse(_message.Message): + __slots__ = ("results",) + RESULTS_FIELD_NUMBER: _ClassVar[int] + results: _containers.RepeatedCompositeFieldContainer[_common_pb2.ObjectDependency] + def __init__(self, results: _Optional[_Iterable[_Union[_common_pb2.ObjectDependency, _Mapping]]] = ...) -> None: ... diff --git a/src/aserto/directory/schema/v2/group_pb2.py b/src/aserto/directory/schema/v2/group_pb2.py index a4107ea..dd17696 100644 --- a/src/aserto/directory/schema/v2/group_pb2.py +++ b/src/aserto/directory/schema/v2/group_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/schema/v2/group.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/schema/v2/group_pb2.pyi b/src/aserto/directory/schema/v2/group_pb2.pyi index 47b8601..c4fa81f 100644 --- a/src/aserto/directory/schema/v2/group_pb2.pyi +++ b/src/aserto/directory/schema/v2/group_pb2.pyi @@ -1,33 +1,11 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional -if sys.version_info >= (3, 8): - import typing as typing_extensions -else: - import typing_extensions +DESCRIPTOR: _descriptor.FileDescriptor -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class GroupProperties(google.protobuf.message.Message): - """Properties of "group" objects.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONNECTION_ID_FIELD_NUMBER: builtins.int - connection_id: builtins.str - """ID of the IDP connection the group instance is associated with.""" - def __init__( - self, - *, - connection_id: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["connection_id", b"connection_id"]) -> None: ... - -global___GroupProperties = GroupProperties +class GroupProperties(_message.Message): + __slots__ = ("connection_id",) + CONNECTION_ID_FIELD_NUMBER: _ClassVar[int] + connection_id: str + def __init__(self, connection_id: _Optional[str] = ...) -> None: ... diff --git a/src/aserto/directory/schema/v2/identity_pb2.py b/src/aserto/directory/schema/v2/identity_pb2.py index 9e3844f..9842975 100644 --- a/src/aserto/directory/schema/v2/identity_pb2.py +++ b/src/aserto/directory/schema/v2/identity_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/schema/v2/identity.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/schema/v2/identity_pb2.pyi b/src/aserto/directory/schema/v2/identity_pb2.pyi index d49a36e..c3bebf8 100644 --- a/src/aserto/directory/schema/v2/identity_pb2.pyi +++ b/src/aserto/directory/schema/v2/identity_pb2.pyi @@ -1,88 +1,35 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _IdentityKind: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _IdentityKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_IdentityKind.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - IDENTITY_KIND_UNKNOWN: _IdentityKind.ValueType # 0 - """undefined state""" - IDENTITY_KIND_PID: _IdentityKind.ValueType # 1 - """provider unique identifier""" - IDENTITY_KIND_EMAIL: _IdentityKind.ValueType # 2 - """email address""" - IDENTITY_KIND_USERNAME: _IdentityKind.ValueType # 3 - """username""" - IDENTITY_KIND_DN: _IdentityKind.ValueType # 4 - """distinguished name format RFC1779""" - IDENTITY_KIND_PHONE: _IdentityKind.ValueType # 5 - """phone number using the format described in RFC3966, using the E.164 recommendation""" - IDENTITY_KIND_EMPID: _IdentityKind.ValueType # 6 - """employee identifier""" - -class IdentityKind(_IdentityKind, metaclass=_IdentityKindEnumTypeWrapper): ... - -IDENTITY_KIND_UNKNOWN: IdentityKind.ValueType # 0 -"""undefined state""" -IDENTITY_KIND_PID: IdentityKind.ValueType # 1 -"""provider unique identifier""" -IDENTITY_KIND_EMAIL: IdentityKind.ValueType # 2 -"""email address""" -IDENTITY_KIND_USERNAME: IdentityKind.ValueType # 3 -"""username""" -IDENTITY_KIND_DN: IdentityKind.ValueType # 4 -"""distinguished name format RFC1779""" -IDENTITY_KIND_PHONE: IdentityKind.ValueType # 5 -"""phone number using the format described in RFC3966, using the E.164 recommendation""" -IDENTITY_KIND_EMPID: IdentityKind.ValueType # 6 -"""employee identifier""" -global___IdentityKind = IdentityKind - -@typing_extensions.final -class IdentityProperties(google.protobuf.message.Message): - """Properties of "identity" objects.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KIND_FIELD_NUMBER: builtins.int - PROVIDER_FIELD_NUMBER: builtins.int - VERIFIED_FIELD_NUMBER: builtins.int - CONNECTION_ID_FIELD_NUMBER: builtins.int - kind: global___IdentityKind.ValueType - """identity kind [email|username|uid|pid|dn|phone]""" - provider: builtins.str - """identity provider name""" - verified: builtins.bool - """identity has been verified (false when not explicitly specified)""" - connection_id: builtins.str - """IDP connection id which owns the object instance""" - def __init__( - self, - *, - kind: global___IdentityKind.ValueType = ..., - provider: builtins.str = ..., - verified: builtins.bool = ..., - connection_id: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_connection_id", b"_connection_id", "connection_id", b"connection_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_connection_id", b"_connection_id", "connection_id", b"connection_id", "kind", b"kind", "provider", b"provider", "verified", b"verified"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_connection_id", b"_connection_id"]) -> typing_extensions.Literal["connection_id"] | None: ... - -global___IdentityProperties = IdentityProperties +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class IdentityKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + IDENTITY_KIND_UNKNOWN: _ClassVar[IdentityKind] + IDENTITY_KIND_PID: _ClassVar[IdentityKind] + IDENTITY_KIND_EMAIL: _ClassVar[IdentityKind] + IDENTITY_KIND_USERNAME: _ClassVar[IdentityKind] + IDENTITY_KIND_DN: _ClassVar[IdentityKind] + IDENTITY_KIND_PHONE: _ClassVar[IdentityKind] + IDENTITY_KIND_EMPID: _ClassVar[IdentityKind] +IDENTITY_KIND_UNKNOWN: IdentityKind +IDENTITY_KIND_PID: IdentityKind +IDENTITY_KIND_EMAIL: IdentityKind +IDENTITY_KIND_USERNAME: IdentityKind +IDENTITY_KIND_DN: IdentityKind +IDENTITY_KIND_PHONE: IdentityKind +IDENTITY_KIND_EMPID: IdentityKind + +class IdentityProperties(_message.Message): + __slots__ = ("kind", "provider", "verified", "connection_id") + KIND_FIELD_NUMBER: _ClassVar[int] + PROVIDER_FIELD_NUMBER: _ClassVar[int] + VERIFIED_FIELD_NUMBER: _ClassVar[int] + CONNECTION_ID_FIELD_NUMBER: _ClassVar[int] + kind: IdentityKind + provider: str + verified: bool + connection_id: str + def __init__(self, kind: _Optional[_Union[IdentityKind, str]] = ..., provider: _Optional[str] = ..., verified: bool = ..., connection_id: _Optional[str] = ...) -> None: ... diff --git a/src/aserto/directory/schema/v2/tenant_pb2.py b/src/aserto/directory/schema/v2/tenant_pb2.py index f6fc81a..5028761 100644 --- a/src/aserto/directory/schema/v2/tenant_pb2.py +++ b/src/aserto/directory/schema/v2/tenant_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/schema/v2/tenant.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/schema/v2/tenant_pb2.pyi b/src/aserto/directory/schema/v2/tenant_pb2.pyi index 5b792c3..a9e7a6b 100644 --- a/src/aserto/directory/schema/v2/tenant_pb2.pyi +++ b/src/aserto/directory/schema/v2/tenant_pb2.pyi @@ -1,123 +1,46 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _TenantKind: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _TenantKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TenantKind.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - TENANT_KIND_UNKNOWN: _TenantKind.ValueType # 0 - TENANT_KIND_ORGANIZATION: _TenantKind.ValueType # 1 - TENANT_KIND_ACCOUNT: _TenantKind.ValueType # 2 - """personal tenant""" - -class TenantKind(_TenantKind, metaclass=_TenantKindEnumTypeWrapper): ... - -TENANT_KIND_UNKNOWN: TenantKind.ValueType # 0 -TENANT_KIND_ORGANIZATION: TenantKind.ValueType # 1 -TENANT_KIND_ACCOUNT: TenantKind.ValueType # 2 -"""personal tenant""" -global___TenantKind = TenantKind - -@typing_extensions.final -class TenantProperties(google.protobuf.message.Message): - """Properties of a tenant object""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KIND_FIELD_NUMBER: builtins.int - DIRECTORY_V2_FIELD_NUMBER: builtins.int - DIRECTORY_V2_ONLY_FIELD_NUMBER: builtins.int - ACCOUNT_FIELD_NUMBER: builtins.int - kind: global___TenantKind.ValueType - """The kind of tenant.""" - directory_v2: builtins.bool - """Whether or not the v2 directory experience enabled for this tenant.""" - directory_v2_only: builtins.bool - """If true, the tenant cannot be reverted to the v1 directory experience.""" - @property - def account(self) -> global___AccountProperties: - """Additional properties that are only set accounts (personal tenant).""" - def __init__( - self, - *, - kind: global___TenantKind.ValueType = ..., - directory_v2: builtins.bool = ..., - directory_v2_only: builtins.bool = ..., - account: global___AccountProperties | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_account", b"_account", "account", b"account"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_account", b"_account", "account", b"account", "directory_v2", b"directory_v2", "directory_v2_only", b"directory_v2_only", "kind", b"kind"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_account", b"_account"]) -> typing_extensions.Literal["account"] | None: ... - -global___TenantProperties = TenantProperties - -@typing_extensions.final -class AccountProperties(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - MAX_ORGS_FIELD_NUMBER: builtins.int - GETTING_STARTED_FIELD_NUMBER: builtins.int - DEFAULT_TENANT_ID_FIELD_NUMBER: builtins.int - max_orgs: builtins.int - """Maximum number of organizations that can be created in this account. - If -1, there is no limit. - """ - @property - def getting_started(self) -> global___GuideState: - """Tracks the account owner's progress through the getting-started guide.""" - default_tenant_id: builtins.str - """The default organization for the account""" - def __init__( - self, - *, - max_orgs: builtins.int = ..., - getting_started: global___GuideState | None = ..., - default_tenant_id: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_getting_started", b"_getting_started", "getting_started", b"getting_started"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_getting_started", b"_getting_started", "default_tenant_id", b"default_tenant_id", "getting_started", b"getting_started", "max_orgs", b"max_orgs"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_getting_started", b"_getting_started"]) -> typing_extensions.Literal["getting_started"] | None: ... - -global___AccountProperties = AccountProperties - -@typing_extensions.final -class GuideState(google.protobuf.message.Message): - """The state of a user's progress through the console's getting started guide.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SHOW_FIELD_NUMBER: builtins.int - STEPS_FIELD_NUMBER: builtins.int - show: builtins.bool - """Whether or not to display the getting started guide.""" - @property - def steps(self) -> google.protobuf.struct_pb2.Struct: - """Progress information about individual steps in the guide.""" - def __init__( - self, - *, - show: builtins.bool = ..., - steps: google.protobuf.struct_pb2.Struct | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["steps", b"steps"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["show", b"show", "steps", b"steps"]) -> None: ... - -global___GuideState = GuideState +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class TenantKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + TENANT_KIND_UNKNOWN: _ClassVar[TenantKind] + TENANT_KIND_ORGANIZATION: _ClassVar[TenantKind] + TENANT_KIND_ACCOUNT: _ClassVar[TenantKind] +TENANT_KIND_UNKNOWN: TenantKind +TENANT_KIND_ORGANIZATION: TenantKind +TENANT_KIND_ACCOUNT: TenantKind + +class TenantProperties(_message.Message): + __slots__ = ("kind", "directory_v2", "directory_v2_only", "account") + KIND_FIELD_NUMBER: _ClassVar[int] + DIRECTORY_V2_FIELD_NUMBER: _ClassVar[int] + DIRECTORY_V2_ONLY_FIELD_NUMBER: _ClassVar[int] + ACCOUNT_FIELD_NUMBER: _ClassVar[int] + kind: TenantKind + directory_v2: bool + directory_v2_only: bool + account: AccountProperties + def __init__(self, kind: _Optional[_Union[TenantKind, str]] = ..., directory_v2: bool = ..., directory_v2_only: bool = ..., account: _Optional[_Union[AccountProperties, _Mapping]] = ...) -> None: ... + +class AccountProperties(_message.Message): + __slots__ = ("max_orgs", "getting_started", "default_tenant_id") + MAX_ORGS_FIELD_NUMBER: _ClassVar[int] + GETTING_STARTED_FIELD_NUMBER: _ClassVar[int] + DEFAULT_TENANT_ID_FIELD_NUMBER: _ClassVar[int] + max_orgs: int + getting_started: GuideState + default_tenant_id: str + def __init__(self, max_orgs: _Optional[int] = ..., getting_started: _Optional[_Union[GuideState, _Mapping]] = ..., default_tenant_id: _Optional[str] = ...) -> None: ... + +class GuideState(_message.Message): + __slots__ = ("show", "steps") + SHOW_FIELD_NUMBER: _ClassVar[int] + STEPS_FIELD_NUMBER: _ClassVar[int] + show: bool + steps: _struct_pb2.Struct + def __init__(self, show: bool = ..., steps: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... diff --git a/src/aserto/directory/schema/v2/user_pb2.py b/src/aserto/directory/schema/v2/user_pb2.py index c4ff18a..c38b6a5 100644 --- a/src/aserto/directory/schema/v2/user_pb2.py +++ b/src/aserto/directory/schema/v2/user_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/schema/v2/user.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/schema/v2/user_pb2.pyi b/src/aserto/directory/schema/v2/user_pb2.pyi index e7c8cb1..b0ef011 100644 --- a/src/aserto/directory/schema/v2/user_pb2.pyi +++ b/src/aserto/directory/schema/v2/user_pb2.pyi @@ -1,108 +1,41 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _UserStatus: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _UserStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_UserStatus.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - USER_STATUS_UNKNOWN: _UserStatus.ValueType # 0 - """User status undefined""" - USER_STATUS_STAGED: _UserStatus.ValueType # 1 - """Staged status, is when the user object is first created, before the activation flow is initiated, or if there is a pending admin action.""" - USER_STATUS_PROVISIONED: _UserStatus.ValueType # 2 - """Provisioned status, is when the user object is provisioned, but the user has not provided verification by clicking through the activation email or provided a password.""" - USER_STATUS_ACTIVE: _UserStatus.ValueType # 3 - """Active status, is when: - * An admin adds a user and sets the user password without requiring email verification. - * An admin adds a user, sets the user password, and requires the user to set their password when they first sign-in. - * A user self-registers into a custom app or IDP and email verification is not required. - * An admin explicitly activates the user. - """ - USER_STATUS_RECOVERY: _UserStatus.ValueType # 4 - """Recovery status, when the user requests a password reset or an admin initiates one on their behalf.""" - USER_STATUS_PASSWORD_EXPIRED: _UserStatus.ValueType # 5 - """Password expired, status when the users' password has expired and the account requires an update to the password before a user is granted access.""" - USER_STATUS_LOCKED_OUT: _UserStatus.ValueType # 6 - """Locked out status, is when the user exceeds the number of login attempts defined in the login policy.""" - USER_STATUS_SUSPENDED: _UserStatus.ValueType # 7 - """Suspended status, when an admin explicitly suspends the user account.""" - USER_STATUS_DEPROVISIONED: _UserStatus.ValueType # 8 - """Deprovisioned status, is when an administrator explicitly deactivates or deprovisions/deletes the account.""" - -class UserStatus(_UserStatus, metaclass=_UserStatusEnumTypeWrapper): ... - -USER_STATUS_UNKNOWN: UserStatus.ValueType # 0 -"""User status undefined""" -USER_STATUS_STAGED: UserStatus.ValueType # 1 -"""Staged status, is when the user object is first created, before the activation flow is initiated, or if there is a pending admin action.""" -USER_STATUS_PROVISIONED: UserStatus.ValueType # 2 -"""Provisioned status, is when the user object is provisioned, but the user has not provided verification by clicking through the activation email or provided a password.""" -USER_STATUS_ACTIVE: UserStatus.ValueType # 3 -"""Active status, is when: - * An admin adds a user and sets the user password without requiring email verification. - * An admin adds a user, sets the user password, and requires the user to set their password when they first sign-in. - * A user self-registers into a custom app or IDP and email verification is not required. - * An admin explicitly activates the user. -""" -USER_STATUS_RECOVERY: UserStatus.ValueType # 4 -"""Recovery status, when the user requests a password reset or an admin initiates one on their behalf.""" -USER_STATUS_PASSWORD_EXPIRED: UserStatus.ValueType # 5 -"""Password expired, status when the users' password has expired and the account requires an update to the password before a user is granted access.""" -USER_STATUS_LOCKED_OUT: UserStatus.ValueType # 6 -"""Locked out status, is when the user exceeds the number of login attempts defined in the login policy.""" -USER_STATUS_SUSPENDED: UserStatus.ValueType # 7 -"""Suspended status, when an admin explicitly suspends the user account.""" -USER_STATUS_DEPROVISIONED: UserStatus.ValueType # 8 -"""Deprovisioned status, is when an administrator explicitly deactivates or deprovisions/deletes the account.""" -global___UserStatus = UserStatus - -@typing_extensions.final -class UserProperties(google.protobuf.message.Message): - """Properties of "user" objects.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - EMAIL_FIELD_NUMBER: builtins.int - PICTURE_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - ENABLED_FIELD_NUMBER: builtins.int - CONNECTION_ID_FIELD_NUMBER: builtins.int - email: builtins.str - """main email address of user""" - picture: builtins.str - """URL to user's picture""" - status: global___UserStatus.ValueType - """user lifecycle status""" - enabled: builtins.bool - """enabled (false prevents the user from accessing anything)""" - connection_id: builtins.str - """ID of the IDP connection the user instance is associated with.""" - def __init__( - self, - *, - email: builtins.str = ..., - picture: builtins.str = ..., - status: global___UserStatus.ValueType = ..., - enabled: builtins.bool = ..., - connection_id: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["connection_id", b"connection_id", "email", b"email", "enabled", b"enabled", "picture", b"picture", "status", b"status"]) -> None: ... - -global___UserProperties = UserProperties +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class UserStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + USER_STATUS_UNKNOWN: _ClassVar[UserStatus] + USER_STATUS_STAGED: _ClassVar[UserStatus] + USER_STATUS_PROVISIONED: _ClassVar[UserStatus] + USER_STATUS_ACTIVE: _ClassVar[UserStatus] + USER_STATUS_RECOVERY: _ClassVar[UserStatus] + USER_STATUS_PASSWORD_EXPIRED: _ClassVar[UserStatus] + USER_STATUS_LOCKED_OUT: _ClassVar[UserStatus] + USER_STATUS_SUSPENDED: _ClassVar[UserStatus] + USER_STATUS_DEPROVISIONED: _ClassVar[UserStatus] +USER_STATUS_UNKNOWN: UserStatus +USER_STATUS_STAGED: UserStatus +USER_STATUS_PROVISIONED: UserStatus +USER_STATUS_ACTIVE: UserStatus +USER_STATUS_RECOVERY: UserStatus +USER_STATUS_PASSWORD_EXPIRED: UserStatus +USER_STATUS_LOCKED_OUT: UserStatus +USER_STATUS_SUSPENDED: UserStatus +USER_STATUS_DEPROVISIONED: UserStatus + +class UserProperties(_message.Message): + __slots__ = ("email", "picture", "status", "enabled", "connection_id") + EMAIL_FIELD_NUMBER: _ClassVar[int] + PICTURE_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + ENABLED_FIELD_NUMBER: _ClassVar[int] + CONNECTION_ID_FIELD_NUMBER: _ClassVar[int] + email: str + picture: str + status: UserStatus + enabled: bool + connection_id: str + def __init__(self, email: _Optional[str] = ..., picture: _Optional[str] = ..., status: _Optional[_Union[UserStatus, str]] = ..., enabled: bool = ..., connection_id: _Optional[str] = ...) -> None: ... diff --git a/src/aserto/directory/schema/v3/group_pb2.py b/src/aserto/directory/schema/v3/group_pb2.py index 6813fe2..b343b46 100644 --- a/src/aserto/directory/schema/v3/group_pb2.py +++ b/src/aserto/directory/schema/v3/group_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/schema/v3/group.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/schema/v3/group_pb2.pyi b/src/aserto/directory/schema/v3/group_pb2.pyi index 47b8601..c4fa81f 100644 --- a/src/aserto/directory/schema/v3/group_pb2.pyi +++ b/src/aserto/directory/schema/v3/group_pb2.pyi @@ -1,33 +1,11 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional -if sys.version_info >= (3, 8): - import typing as typing_extensions -else: - import typing_extensions +DESCRIPTOR: _descriptor.FileDescriptor -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class GroupProperties(google.protobuf.message.Message): - """Properties of "group" objects.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONNECTION_ID_FIELD_NUMBER: builtins.int - connection_id: builtins.str - """ID of the IDP connection the group instance is associated with.""" - def __init__( - self, - *, - connection_id: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["connection_id", b"connection_id"]) -> None: ... - -global___GroupProperties = GroupProperties +class GroupProperties(_message.Message): + __slots__ = ("connection_id",) + CONNECTION_ID_FIELD_NUMBER: _ClassVar[int] + connection_id: str + def __init__(self, connection_id: _Optional[str] = ...) -> None: ... diff --git a/src/aserto/directory/schema/v3/identity_pb2.py b/src/aserto/directory/schema/v3/identity_pb2.py index 9f071b2..45dcb18 100644 --- a/src/aserto/directory/schema/v3/identity_pb2.py +++ b/src/aserto/directory/schema/v3/identity_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/schema/v3/identity.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/schema/v3/identity_pb2.pyi b/src/aserto/directory/schema/v3/identity_pb2.pyi index d49a36e..c3bebf8 100644 --- a/src/aserto/directory/schema/v3/identity_pb2.pyi +++ b/src/aserto/directory/schema/v3/identity_pb2.pyi @@ -1,88 +1,35 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _IdentityKind: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _IdentityKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_IdentityKind.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - IDENTITY_KIND_UNKNOWN: _IdentityKind.ValueType # 0 - """undefined state""" - IDENTITY_KIND_PID: _IdentityKind.ValueType # 1 - """provider unique identifier""" - IDENTITY_KIND_EMAIL: _IdentityKind.ValueType # 2 - """email address""" - IDENTITY_KIND_USERNAME: _IdentityKind.ValueType # 3 - """username""" - IDENTITY_KIND_DN: _IdentityKind.ValueType # 4 - """distinguished name format RFC1779""" - IDENTITY_KIND_PHONE: _IdentityKind.ValueType # 5 - """phone number using the format described in RFC3966, using the E.164 recommendation""" - IDENTITY_KIND_EMPID: _IdentityKind.ValueType # 6 - """employee identifier""" - -class IdentityKind(_IdentityKind, metaclass=_IdentityKindEnumTypeWrapper): ... - -IDENTITY_KIND_UNKNOWN: IdentityKind.ValueType # 0 -"""undefined state""" -IDENTITY_KIND_PID: IdentityKind.ValueType # 1 -"""provider unique identifier""" -IDENTITY_KIND_EMAIL: IdentityKind.ValueType # 2 -"""email address""" -IDENTITY_KIND_USERNAME: IdentityKind.ValueType # 3 -"""username""" -IDENTITY_KIND_DN: IdentityKind.ValueType # 4 -"""distinguished name format RFC1779""" -IDENTITY_KIND_PHONE: IdentityKind.ValueType # 5 -"""phone number using the format described in RFC3966, using the E.164 recommendation""" -IDENTITY_KIND_EMPID: IdentityKind.ValueType # 6 -"""employee identifier""" -global___IdentityKind = IdentityKind - -@typing_extensions.final -class IdentityProperties(google.protobuf.message.Message): - """Properties of "identity" objects.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KIND_FIELD_NUMBER: builtins.int - PROVIDER_FIELD_NUMBER: builtins.int - VERIFIED_FIELD_NUMBER: builtins.int - CONNECTION_ID_FIELD_NUMBER: builtins.int - kind: global___IdentityKind.ValueType - """identity kind [email|username|uid|pid|dn|phone]""" - provider: builtins.str - """identity provider name""" - verified: builtins.bool - """identity has been verified (false when not explicitly specified)""" - connection_id: builtins.str - """IDP connection id which owns the object instance""" - def __init__( - self, - *, - kind: global___IdentityKind.ValueType = ..., - provider: builtins.str = ..., - verified: builtins.bool = ..., - connection_id: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_connection_id", b"_connection_id", "connection_id", b"connection_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_connection_id", b"_connection_id", "connection_id", b"connection_id", "kind", b"kind", "provider", b"provider", "verified", b"verified"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_connection_id", b"_connection_id"]) -> typing_extensions.Literal["connection_id"] | None: ... - -global___IdentityProperties = IdentityProperties +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class IdentityKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + IDENTITY_KIND_UNKNOWN: _ClassVar[IdentityKind] + IDENTITY_KIND_PID: _ClassVar[IdentityKind] + IDENTITY_KIND_EMAIL: _ClassVar[IdentityKind] + IDENTITY_KIND_USERNAME: _ClassVar[IdentityKind] + IDENTITY_KIND_DN: _ClassVar[IdentityKind] + IDENTITY_KIND_PHONE: _ClassVar[IdentityKind] + IDENTITY_KIND_EMPID: _ClassVar[IdentityKind] +IDENTITY_KIND_UNKNOWN: IdentityKind +IDENTITY_KIND_PID: IdentityKind +IDENTITY_KIND_EMAIL: IdentityKind +IDENTITY_KIND_USERNAME: IdentityKind +IDENTITY_KIND_DN: IdentityKind +IDENTITY_KIND_PHONE: IdentityKind +IDENTITY_KIND_EMPID: IdentityKind + +class IdentityProperties(_message.Message): + __slots__ = ("kind", "provider", "verified", "connection_id") + KIND_FIELD_NUMBER: _ClassVar[int] + PROVIDER_FIELD_NUMBER: _ClassVar[int] + VERIFIED_FIELD_NUMBER: _ClassVar[int] + CONNECTION_ID_FIELD_NUMBER: _ClassVar[int] + kind: IdentityKind + provider: str + verified: bool + connection_id: str + def __init__(self, kind: _Optional[_Union[IdentityKind, str]] = ..., provider: _Optional[str] = ..., verified: bool = ..., connection_id: _Optional[str] = ...) -> None: ... diff --git a/src/aserto/directory/schema/v3/tenant_pb2.py b/src/aserto/directory/schema/v3/tenant_pb2.py index 710b73f..43aca12 100644 --- a/src/aserto/directory/schema/v3/tenant_pb2.py +++ b/src/aserto/directory/schema/v3/tenant_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/schema/v3/tenant.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/schema/v3/tenant_pb2.pyi b/src/aserto/directory/schema/v3/tenant_pb2.pyi index 5b792c3..a9e7a6b 100644 --- a/src/aserto/directory/schema/v3/tenant_pb2.pyi +++ b/src/aserto/directory/schema/v3/tenant_pb2.pyi @@ -1,123 +1,46 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _TenantKind: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _TenantKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TenantKind.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - TENANT_KIND_UNKNOWN: _TenantKind.ValueType # 0 - TENANT_KIND_ORGANIZATION: _TenantKind.ValueType # 1 - TENANT_KIND_ACCOUNT: _TenantKind.ValueType # 2 - """personal tenant""" - -class TenantKind(_TenantKind, metaclass=_TenantKindEnumTypeWrapper): ... - -TENANT_KIND_UNKNOWN: TenantKind.ValueType # 0 -TENANT_KIND_ORGANIZATION: TenantKind.ValueType # 1 -TENANT_KIND_ACCOUNT: TenantKind.ValueType # 2 -"""personal tenant""" -global___TenantKind = TenantKind - -@typing_extensions.final -class TenantProperties(google.protobuf.message.Message): - """Properties of a tenant object""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KIND_FIELD_NUMBER: builtins.int - DIRECTORY_V2_FIELD_NUMBER: builtins.int - DIRECTORY_V2_ONLY_FIELD_NUMBER: builtins.int - ACCOUNT_FIELD_NUMBER: builtins.int - kind: global___TenantKind.ValueType - """The kind of tenant.""" - directory_v2: builtins.bool - """Whether or not the v2 directory experience enabled for this tenant.""" - directory_v2_only: builtins.bool - """If true, the tenant cannot be reverted to the v1 directory experience.""" - @property - def account(self) -> global___AccountProperties: - """Additional properties that are only set accounts (personal tenant).""" - def __init__( - self, - *, - kind: global___TenantKind.ValueType = ..., - directory_v2: builtins.bool = ..., - directory_v2_only: builtins.bool = ..., - account: global___AccountProperties | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_account", b"_account", "account", b"account"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_account", b"_account", "account", b"account", "directory_v2", b"directory_v2", "directory_v2_only", b"directory_v2_only", "kind", b"kind"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_account", b"_account"]) -> typing_extensions.Literal["account"] | None: ... - -global___TenantProperties = TenantProperties - -@typing_extensions.final -class AccountProperties(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - MAX_ORGS_FIELD_NUMBER: builtins.int - GETTING_STARTED_FIELD_NUMBER: builtins.int - DEFAULT_TENANT_ID_FIELD_NUMBER: builtins.int - max_orgs: builtins.int - """Maximum number of organizations that can be created in this account. - If -1, there is no limit. - """ - @property - def getting_started(self) -> global___GuideState: - """Tracks the account owner's progress through the getting-started guide.""" - default_tenant_id: builtins.str - """The default organization for the account""" - def __init__( - self, - *, - max_orgs: builtins.int = ..., - getting_started: global___GuideState | None = ..., - default_tenant_id: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_getting_started", b"_getting_started", "getting_started", b"getting_started"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_getting_started", b"_getting_started", "default_tenant_id", b"default_tenant_id", "getting_started", b"getting_started", "max_orgs", b"max_orgs"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_getting_started", b"_getting_started"]) -> typing_extensions.Literal["getting_started"] | None: ... - -global___AccountProperties = AccountProperties - -@typing_extensions.final -class GuideState(google.protobuf.message.Message): - """The state of a user's progress through the console's getting started guide.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SHOW_FIELD_NUMBER: builtins.int - STEPS_FIELD_NUMBER: builtins.int - show: builtins.bool - """Whether or not to display the getting started guide.""" - @property - def steps(self) -> google.protobuf.struct_pb2.Struct: - """Progress information about individual steps in the guide.""" - def __init__( - self, - *, - show: builtins.bool = ..., - steps: google.protobuf.struct_pb2.Struct | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["steps", b"steps"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["show", b"show", "steps", b"steps"]) -> None: ... - -global___GuideState = GuideState +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class TenantKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + TENANT_KIND_UNKNOWN: _ClassVar[TenantKind] + TENANT_KIND_ORGANIZATION: _ClassVar[TenantKind] + TENANT_KIND_ACCOUNT: _ClassVar[TenantKind] +TENANT_KIND_UNKNOWN: TenantKind +TENANT_KIND_ORGANIZATION: TenantKind +TENANT_KIND_ACCOUNT: TenantKind + +class TenantProperties(_message.Message): + __slots__ = ("kind", "directory_v2", "directory_v2_only", "account") + KIND_FIELD_NUMBER: _ClassVar[int] + DIRECTORY_V2_FIELD_NUMBER: _ClassVar[int] + DIRECTORY_V2_ONLY_FIELD_NUMBER: _ClassVar[int] + ACCOUNT_FIELD_NUMBER: _ClassVar[int] + kind: TenantKind + directory_v2: bool + directory_v2_only: bool + account: AccountProperties + def __init__(self, kind: _Optional[_Union[TenantKind, str]] = ..., directory_v2: bool = ..., directory_v2_only: bool = ..., account: _Optional[_Union[AccountProperties, _Mapping]] = ...) -> None: ... + +class AccountProperties(_message.Message): + __slots__ = ("max_orgs", "getting_started", "default_tenant_id") + MAX_ORGS_FIELD_NUMBER: _ClassVar[int] + GETTING_STARTED_FIELD_NUMBER: _ClassVar[int] + DEFAULT_TENANT_ID_FIELD_NUMBER: _ClassVar[int] + max_orgs: int + getting_started: GuideState + default_tenant_id: str + def __init__(self, max_orgs: _Optional[int] = ..., getting_started: _Optional[_Union[GuideState, _Mapping]] = ..., default_tenant_id: _Optional[str] = ...) -> None: ... + +class GuideState(_message.Message): + __slots__ = ("show", "steps") + SHOW_FIELD_NUMBER: _ClassVar[int] + STEPS_FIELD_NUMBER: _ClassVar[int] + show: bool + steps: _struct_pb2.Struct + def __init__(self, show: bool = ..., steps: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... diff --git a/src/aserto/directory/schema/v3/user_pb2.py b/src/aserto/directory/schema/v3/user_pb2.py index 198362c..2bae37b 100644 --- a/src/aserto/directory/schema/v3/user_pb2.py +++ b/src/aserto/directory/schema/v3/user_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/schema/v3/user.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/schema/v3/user_pb2.pyi b/src/aserto/directory/schema/v3/user_pb2.pyi index e7c8cb1..b0ef011 100644 --- a/src/aserto/directory/schema/v3/user_pb2.pyi +++ b/src/aserto/directory/schema/v3/user_pb2.pyi @@ -1,108 +1,41 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _UserStatus: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _UserStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_UserStatus.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - USER_STATUS_UNKNOWN: _UserStatus.ValueType # 0 - """User status undefined""" - USER_STATUS_STAGED: _UserStatus.ValueType # 1 - """Staged status, is when the user object is first created, before the activation flow is initiated, or if there is a pending admin action.""" - USER_STATUS_PROVISIONED: _UserStatus.ValueType # 2 - """Provisioned status, is when the user object is provisioned, but the user has not provided verification by clicking through the activation email or provided a password.""" - USER_STATUS_ACTIVE: _UserStatus.ValueType # 3 - """Active status, is when: - * An admin adds a user and sets the user password without requiring email verification. - * An admin adds a user, sets the user password, and requires the user to set their password when they first sign-in. - * A user self-registers into a custom app or IDP and email verification is not required. - * An admin explicitly activates the user. - """ - USER_STATUS_RECOVERY: _UserStatus.ValueType # 4 - """Recovery status, when the user requests a password reset or an admin initiates one on their behalf.""" - USER_STATUS_PASSWORD_EXPIRED: _UserStatus.ValueType # 5 - """Password expired, status when the users' password has expired and the account requires an update to the password before a user is granted access.""" - USER_STATUS_LOCKED_OUT: _UserStatus.ValueType # 6 - """Locked out status, is when the user exceeds the number of login attempts defined in the login policy.""" - USER_STATUS_SUSPENDED: _UserStatus.ValueType # 7 - """Suspended status, when an admin explicitly suspends the user account.""" - USER_STATUS_DEPROVISIONED: _UserStatus.ValueType # 8 - """Deprovisioned status, is when an administrator explicitly deactivates or deprovisions/deletes the account.""" - -class UserStatus(_UserStatus, metaclass=_UserStatusEnumTypeWrapper): ... - -USER_STATUS_UNKNOWN: UserStatus.ValueType # 0 -"""User status undefined""" -USER_STATUS_STAGED: UserStatus.ValueType # 1 -"""Staged status, is when the user object is first created, before the activation flow is initiated, or if there is a pending admin action.""" -USER_STATUS_PROVISIONED: UserStatus.ValueType # 2 -"""Provisioned status, is when the user object is provisioned, but the user has not provided verification by clicking through the activation email or provided a password.""" -USER_STATUS_ACTIVE: UserStatus.ValueType # 3 -"""Active status, is when: - * An admin adds a user and sets the user password without requiring email verification. - * An admin adds a user, sets the user password, and requires the user to set their password when they first sign-in. - * A user self-registers into a custom app or IDP and email verification is not required. - * An admin explicitly activates the user. -""" -USER_STATUS_RECOVERY: UserStatus.ValueType # 4 -"""Recovery status, when the user requests a password reset or an admin initiates one on their behalf.""" -USER_STATUS_PASSWORD_EXPIRED: UserStatus.ValueType # 5 -"""Password expired, status when the users' password has expired and the account requires an update to the password before a user is granted access.""" -USER_STATUS_LOCKED_OUT: UserStatus.ValueType # 6 -"""Locked out status, is when the user exceeds the number of login attempts defined in the login policy.""" -USER_STATUS_SUSPENDED: UserStatus.ValueType # 7 -"""Suspended status, when an admin explicitly suspends the user account.""" -USER_STATUS_DEPROVISIONED: UserStatus.ValueType # 8 -"""Deprovisioned status, is when an administrator explicitly deactivates or deprovisions/deletes the account.""" -global___UserStatus = UserStatus - -@typing_extensions.final -class UserProperties(google.protobuf.message.Message): - """Properties of "user" objects.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - EMAIL_FIELD_NUMBER: builtins.int - PICTURE_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - ENABLED_FIELD_NUMBER: builtins.int - CONNECTION_ID_FIELD_NUMBER: builtins.int - email: builtins.str - """main email address of user""" - picture: builtins.str - """URL to user's picture""" - status: global___UserStatus.ValueType - """user lifecycle status""" - enabled: builtins.bool - """enabled (false prevents the user from accessing anything)""" - connection_id: builtins.str - """ID of the IDP connection the user instance is associated with.""" - def __init__( - self, - *, - email: builtins.str = ..., - picture: builtins.str = ..., - status: global___UserStatus.ValueType = ..., - enabled: builtins.bool = ..., - connection_id: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["connection_id", b"connection_id", "email", b"email", "enabled", b"enabled", "picture", b"picture", "status", b"status"]) -> None: ... - -global___UserProperties = UserProperties +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class UserStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + USER_STATUS_UNKNOWN: _ClassVar[UserStatus] + USER_STATUS_STAGED: _ClassVar[UserStatus] + USER_STATUS_PROVISIONED: _ClassVar[UserStatus] + USER_STATUS_ACTIVE: _ClassVar[UserStatus] + USER_STATUS_RECOVERY: _ClassVar[UserStatus] + USER_STATUS_PASSWORD_EXPIRED: _ClassVar[UserStatus] + USER_STATUS_LOCKED_OUT: _ClassVar[UserStatus] + USER_STATUS_SUSPENDED: _ClassVar[UserStatus] + USER_STATUS_DEPROVISIONED: _ClassVar[UserStatus] +USER_STATUS_UNKNOWN: UserStatus +USER_STATUS_STAGED: UserStatus +USER_STATUS_PROVISIONED: UserStatus +USER_STATUS_ACTIVE: UserStatus +USER_STATUS_RECOVERY: UserStatus +USER_STATUS_PASSWORD_EXPIRED: UserStatus +USER_STATUS_LOCKED_OUT: UserStatus +USER_STATUS_SUSPENDED: UserStatus +USER_STATUS_DEPROVISIONED: UserStatus + +class UserProperties(_message.Message): + __slots__ = ("email", "picture", "status", "enabled", "connection_id") + EMAIL_FIELD_NUMBER: _ClassVar[int] + PICTURE_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + ENABLED_FIELD_NUMBER: _ClassVar[int] + CONNECTION_ID_FIELD_NUMBER: _ClassVar[int] + email: str + picture: str + status: UserStatus + enabled: bool + connection_id: str + def __init__(self, email: _Optional[str] = ..., picture: _Optional[str] = ..., status: _Optional[_Union[UserStatus, str]] = ..., enabled: bool = ..., connection_id: _Optional[str] = ...) -> None: ... diff --git a/src/aserto/directory/writer/v2/__init__.py b/src/aserto/directory/writer/v2/__init__.py index 7168b84..c919609 100644 --- a/src/aserto/directory/writer/v2/__init__.py +++ b/src/aserto/directory/writer/v2/__init__.py @@ -2,7 +2,6 @@ from aserto.directory.writer.v2.writer_pb2_grpc import ( WriterStub, - WriterAsyncStub, WriterServicer, ) @@ -31,7 +30,6 @@ __all__ = [ "WriterStub", - "WriterAsyncStub", "WriterServicer", "SetObjectTypeRequest", "SetObjectTypeResponse", diff --git a/src/aserto/directory/writer/v2/writer_pb2.py b/src/aserto/directory/writer/v2/writer_pb2.py index d57355c..de3b661 100644 --- a/src/aserto/directory/writer/v2/writer_pb2.py +++ b/src/aserto/directory/writer/v2/writer_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/writer/v2/writer.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/writer/v2/writer_pb2.pyi b/src/aserto/directory/writer/v2/writer_pb2.pyi index 99d44b7..5693ebe 100644 --- a/src/aserto/directory/writer/v2/writer_pb2.pyi +++ b/src/aserto/directory/writer/v2/writer_pb2.pyi @@ -1,382 +1,129 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import aserto.directory.common.v2.common_pb2 -import builtins -import google.protobuf.descriptor -import google.protobuf.empty_pb2 -import google.protobuf.message -import sys - -if sys.version_info >= (3, 8): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class SetObjectTypeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - @property - def object_type(self) -> aserto.directory.common.v2.common_pb2.ObjectType: - """object type instance""" - def __init__( - self, - *, - object_type: aserto.directory.common.v2.common_pb2.ObjectType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["object_type", b"object_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object_type", b"object_type"]) -> None: ... - -global___SetObjectTypeRequest = SetObjectTypeRequest - -@typing_extensions.final -class SetObjectTypeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v2.common_pb2.ObjectType: - """object type instance""" - def __init__( - self, - *, - result: aserto.directory.common.v2.common_pb2.ObjectType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___SetObjectTypeResponse = SetObjectTypeResponse - -@typing_extensions.final -class DeleteObjectTypeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.ObjectTypeIdentifier: - """object type identifier""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.ObjectTypeIdentifier | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["param", b"param"]) -> None: ... - -global___DeleteObjectTypeRequest = DeleteObjectTypeRequest - -@typing_extensions.final -class DeleteObjectTypeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> google.protobuf.empty_pb2.Empty: - """empty result""" - def __init__( - self, - *, - result: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___DeleteObjectTypeResponse = DeleteObjectTypeResponse - -@typing_extensions.final -class SetRelationTypeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RELATION_TYPE_FIELD_NUMBER: builtins.int - @property - def relation_type(self) -> aserto.directory.common.v2.common_pb2.RelationType: - """relation type instance""" - def __init__( - self, - *, - relation_type: aserto.directory.common.v2.common_pb2.RelationType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["relation_type", b"relation_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["relation_type", b"relation_type"]) -> None: ... - -global___SetRelationTypeRequest = SetRelationTypeRequest - -@typing_extensions.final -class SetRelationTypeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v2.common_pb2.RelationType: - """relation types instance""" - def __init__( - self, - *, - result: aserto.directory.common.v2.common_pb2.RelationType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___SetRelationTypeResponse = SetRelationTypeResponse - -@typing_extensions.final -class DeleteRelationTypeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.RelationTypeIdentifier: - """relation type identifier""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.RelationTypeIdentifier | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["param", b"param"]) -> None: ... - -global___DeleteRelationTypeRequest = DeleteRelationTypeRequest - -@typing_extensions.final -class DeleteRelationTypeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> google.protobuf.empty_pb2.Empty: - """empty result""" - def __init__( - self, - *, - result: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___DeleteRelationTypeResponse = DeleteRelationTypeResponse - -@typing_extensions.final -class SetPermissionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PERMISSION_FIELD_NUMBER: builtins.int - @property - def permission(self) -> aserto.directory.common.v2.common_pb2.Permission: - """permission instance""" - def __init__( - self, - *, - permission: aserto.directory.common.v2.common_pb2.Permission | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["permission", b"permission"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["permission", b"permission"]) -> None: ... - -global___SetPermissionRequest = SetPermissionRequest - -@typing_extensions.final -class SetPermissionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v2.common_pb2.Permission: - """permission instance""" - def __init__( - self, - *, - result: aserto.directory.common.v2.common_pb2.Permission | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___SetPermissionResponse = SetPermissionResponse - -@typing_extensions.final -class DeletePermissionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.PermissionIdentifier: - """permission identifier""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.PermissionIdentifier | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["param", b"param"]) -> None: ... - -global___DeletePermissionRequest = DeletePermissionRequest - -@typing_extensions.final -class DeletePermissionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> google.protobuf.empty_pb2.Empty: - """empty result""" - def __init__( - self, - *, - result: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___DeletePermissionResponse = DeletePermissionResponse - -@typing_extensions.final -class SetObjectRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_FIELD_NUMBER: builtins.int - @property - def object(self) -> aserto.directory.common.v2.common_pb2.Object: - """object instance""" - def __init__( - self, - *, - object: aserto.directory.common.v2.common_pb2.Object | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["object", b"object"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object", b"object"]) -> None: ... - -global___SetObjectRequest = SetObjectRequest - -@typing_extensions.final -class SetObjectResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v2.common_pb2.Object: - """object instance""" - def __init__( - self, - *, - result: aserto.directory.common.v2.common_pb2.Object | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___SetObjectResponse = SetObjectResponse - -@typing_extensions.final -class DeleteObjectRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - WITH_RELATIONS_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.ObjectIdentifier: - """object identifier""" - with_relations: builtins.bool - """delete object relations, both object and subject relations.""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.ObjectIdentifier | None = ..., - with_relations: builtins.bool | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_with_relations", b"_with_relations", "param", b"param", "with_relations", b"with_relations"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_with_relations", b"_with_relations", "param", b"param", "with_relations", b"with_relations"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["_with_relations", b"_with_relations"]) -> typing_extensions.Literal["with_relations"] | None: ... - -global___DeleteObjectRequest = DeleteObjectRequest - -@typing_extensions.final -class DeleteObjectResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> google.protobuf.empty_pb2.Empty: - """empty result""" - def __init__( - self, - *, - result: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___DeleteObjectResponse = DeleteObjectResponse - -@typing_extensions.final -class SetRelationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RELATION_FIELD_NUMBER: builtins.int - @property - def relation(self) -> aserto.directory.common.v2.common_pb2.Relation: - """relation instance""" - def __init__( - self, - *, - relation: aserto.directory.common.v2.common_pb2.Relation | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["relation", b"relation"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["relation", b"relation"]) -> None: ... - -global___SetRelationRequest = SetRelationRequest - -@typing_extensions.final -class SetRelationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v2.common_pb2.Relation: - """relation instance""" - def __init__( - self, - *, - result: aserto.directory.common.v2.common_pb2.Relation | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___SetRelationResponse = SetRelationResponse - -@typing_extensions.final -class DeleteRelationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PARAM_FIELD_NUMBER: builtins.int - @property - def param(self) -> aserto.directory.common.v2.common_pb2.RelationIdentifier: - """relation identifier""" - def __init__( - self, - *, - param: aserto.directory.common.v2.common_pb2.RelationIdentifier | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["param", b"param"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["param", b"param"]) -> None: ... - -global___DeleteRelationRequest = DeleteRelationRequest - -@typing_extensions.final -class DeleteRelationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> google.protobuf.empty_pb2.Empty: - """empty result""" - def __init__( - self, - *, - result: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___DeleteRelationResponse = DeleteRelationResponse +from google.protobuf import empty_pb2 as _empty_pb2 +from aserto.directory.common.v2 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class SetObjectTypeRequest(_message.Message): + __slots__ = ("object_type",) + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + object_type: _common_pb2.ObjectType + def __init__(self, object_type: _Optional[_Union[_common_pb2.ObjectType, _Mapping]] = ...) -> None: ... + +class SetObjectTypeResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.ObjectType + def __init__(self, result: _Optional[_Union[_common_pb2.ObjectType, _Mapping]] = ...) -> None: ... + +class DeleteObjectTypeRequest(_message.Message): + __slots__ = ("param",) + PARAM_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.ObjectTypeIdentifier + def __init__(self, param: _Optional[_Union[_common_pb2.ObjectTypeIdentifier, _Mapping]] = ...) -> None: ... + +class DeleteObjectTypeResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _empty_pb2.Empty + def __init__(self, result: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... + +class SetRelationTypeRequest(_message.Message): + __slots__ = ("relation_type",) + RELATION_TYPE_FIELD_NUMBER: _ClassVar[int] + relation_type: _common_pb2.RelationType + def __init__(self, relation_type: _Optional[_Union[_common_pb2.RelationType, _Mapping]] = ...) -> None: ... + +class SetRelationTypeResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.RelationType + def __init__(self, result: _Optional[_Union[_common_pb2.RelationType, _Mapping]] = ...) -> None: ... + +class DeleteRelationTypeRequest(_message.Message): + __slots__ = ("param",) + PARAM_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.RelationTypeIdentifier + def __init__(self, param: _Optional[_Union[_common_pb2.RelationTypeIdentifier, _Mapping]] = ...) -> None: ... + +class DeleteRelationTypeResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _empty_pb2.Empty + def __init__(self, result: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... + +class SetPermissionRequest(_message.Message): + __slots__ = ("permission",) + PERMISSION_FIELD_NUMBER: _ClassVar[int] + permission: _common_pb2.Permission + def __init__(self, permission: _Optional[_Union[_common_pb2.Permission, _Mapping]] = ...) -> None: ... + +class SetPermissionResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.Permission + def __init__(self, result: _Optional[_Union[_common_pb2.Permission, _Mapping]] = ...) -> None: ... + +class DeletePermissionRequest(_message.Message): + __slots__ = ("param",) + PARAM_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.PermissionIdentifier + def __init__(self, param: _Optional[_Union[_common_pb2.PermissionIdentifier, _Mapping]] = ...) -> None: ... + +class DeletePermissionResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _empty_pb2.Empty + def __init__(self, result: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... + +class SetObjectRequest(_message.Message): + __slots__ = ("object",) + OBJECT_FIELD_NUMBER: _ClassVar[int] + object: _common_pb2.Object + def __init__(self, object: _Optional[_Union[_common_pb2.Object, _Mapping]] = ...) -> None: ... + +class SetObjectResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.Object + def __init__(self, result: _Optional[_Union[_common_pb2.Object, _Mapping]] = ...) -> None: ... + +class DeleteObjectRequest(_message.Message): + __slots__ = ("param", "with_relations") + PARAM_FIELD_NUMBER: _ClassVar[int] + WITH_RELATIONS_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.ObjectIdentifier + with_relations: bool + def __init__(self, param: _Optional[_Union[_common_pb2.ObjectIdentifier, _Mapping]] = ..., with_relations: bool = ...) -> None: ... + +class DeleteObjectResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _empty_pb2.Empty + def __init__(self, result: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... + +class SetRelationRequest(_message.Message): + __slots__ = ("relation",) + RELATION_FIELD_NUMBER: _ClassVar[int] + relation: _common_pb2.Relation + def __init__(self, relation: _Optional[_Union[_common_pb2.Relation, _Mapping]] = ...) -> None: ... + +class SetRelationResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.Relation + def __init__(self, result: _Optional[_Union[_common_pb2.Relation, _Mapping]] = ...) -> None: ... + +class DeleteRelationRequest(_message.Message): + __slots__ = ("param",) + PARAM_FIELD_NUMBER: _ClassVar[int] + param: _common_pb2.RelationIdentifier + def __init__(self, param: _Optional[_Union[_common_pb2.RelationIdentifier, _Mapping]] = ...) -> None: ... + +class DeleteRelationResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _empty_pb2.Empty + def __init__(self, result: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... diff --git a/src/aserto/directory/writer/v3/__init__.py b/src/aserto/directory/writer/v3/__init__.py index ba0d9cc..d9635cc 100644 --- a/src/aserto/directory/writer/v3/__init__.py +++ b/src/aserto/directory/writer/v3/__init__.py @@ -2,7 +2,6 @@ from aserto.directory.writer.v3.writer_pb2_grpc import ( WriterStub, - WriterAsyncStub, WriterServicer, ) @@ -19,7 +18,6 @@ __all__ = [ "WriterStub", - "WriterAsyncStub", "WriterServicer", "SetObjectRequest", "SetObjectResponse", diff --git a/src/aserto/directory/writer/v3/writer_pb2.py b/src/aserto/directory/writer/v3/writer_pb2.py index 3c70c04..dadd6b6 100644 --- a/src/aserto/directory/writer/v3/writer_pb2.py +++ b/src/aserto/directory/writer/v3/writer_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: aserto/directory/writer/v3/writer.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/aserto/directory/writer/v3/writer_pb2.pyi b/src/aserto/directory/writer/v3/writer_pb2.pyi index 7495c10..5381e20 100644 --- a/src/aserto/directory/writer/v3/writer_pb2.pyi +++ b/src/aserto/directory/writer/v3/writer_pb2.pyi @@ -1,185 +1,73 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import aserto.directory.common.v3.common_pb2 -import builtins -import google.protobuf.descriptor -import google.protobuf.empty_pb2 -import google.protobuf.message -import sys - -if sys.version_info >= (3, 8): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class SetObjectRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_FIELD_NUMBER: builtins.int - @property - def object(self) -> aserto.directory.common.v3.common_pb2.Object: - """object instance""" - def __init__( - self, - *, - object: aserto.directory.common.v3.common_pb2.Object | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["object", b"object"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["object", b"object"]) -> None: ... - -global___SetObjectRequest = SetObjectRequest - -@typing_extensions.final -class SetObjectResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v3.common_pb2.Object: - """object instance""" - def __init__( - self, - *, - result: aserto.directory.common.v3.common_pb2.Object | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___SetObjectResponse = SetObjectResponse - -@typing_extensions.final -class DeleteObjectRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - WITH_RELATIONS_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - with_relations: builtins.bool - """delete object relations, both object and subject relations.""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - with_relations: builtins.bool = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["object_id", b"object_id", "object_type", b"object_type", "with_relations", b"with_relations"]) -> None: ... - -global___DeleteObjectRequest = DeleteObjectRequest - -@typing_extensions.final -class DeleteObjectResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> google.protobuf.empty_pb2.Empty: - """empty result""" - def __init__( - self, - *, - result: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___DeleteObjectResponse = DeleteObjectResponse - -@typing_extensions.final -class SetRelationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RELATION_FIELD_NUMBER: builtins.int - @property - def relation(self) -> aserto.directory.common.v3.common_pb2.Relation: - """relation instance""" - def __init__( - self, - *, - relation: aserto.directory.common.v3.common_pb2.Relation | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["relation", b"relation"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["relation", b"relation"]) -> None: ... - -global___SetRelationRequest = SetRelationRequest - -@typing_extensions.final -class SetRelationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> aserto.directory.common.v3.common_pb2.Relation: - """relation instance""" - def __init__( - self, - *, - result: aserto.directory.common.v3.common_pb2.Relation | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___SetRelationResponse = SetRelationResponse - -@typing_extensions.final -class DeleteRelationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OBJECT_TYPE_FIELD_NUMBER: builtins.int - OBJECT_ID_FIELD_NUMBER: builtins.int - RELATION_FIELD_NUMBER: builtins.int - SUBJECT_TYPE_FIELD_NUMBER: builtins.int - SUBJECT_ID_FIELD_NUMBER: builtins.int - SUBJECT_RELATION_FIELD_NUMBER: builtins.int - object_type: builtins.str - """object type""" - object_id: builtins.str - """object identifier""" - relation: builtins.str - """object relation name""" - subject_type: builtins.str - """subject type""" - subject_id: builtins.str - """subject identifier""" - subject_relation: builtins.str - """optional subject relation name""" - def __init__( - self, - *, - object_type: builtins.str = ..., - object_id: builtins.str = ..., - relation: builtins.str = ..., - subject_type: builtins.str = ..., - subject_id: builtins.str = ..., - subject_relation: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["object_id", b"object_id", "object_type", b"object_type", "relation", b"relation", "subject_id", b"subject_id", "subject_relation", b"subject_relation", "subject_type", b"subject_type"]) -> None: ... - -global___DeleteRelationRequest = DeleteRelationRequest - -@typing_extensions.final -class DeleteRelationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RESULT_FIELD_NUMBER: builtins.int - @property - def result(self) -> google.protobuf.empty_pb2.Empty: - """empty result""" - def __init__( - self, - *, - result: google.protobuf.empty_pb2.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["result", b"result"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["result", b"result"]) -> None: ... - -global___DeleteRelationResponse = DeleteRelationResponse +from google.protobuf import empty_pb2 as _empty_pb2 +from google.api import annotations_pb2 as _annotations_pb2 +from google.api import field_behavior_pb2 as _field_behavior_pb2 +from protoc_gen_openapiv2.options import annotations_pb2 as _annotations_pb2_1 +from buf.validate import validate_pb2 as _validate_pb2 +from aserto.directory.common.v3 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class SetObjectRequest(_message.Message): + __slots__ = ("object",) + OBJECT_FIELD_NUMBER: _ClassVar[int] + object: _common_pb2.Object + def __init__(self, object: _Optional[_Union[_common_pb2.Object, _Mapping]] = ...) -> None: ... + +class SetObjectResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.Object + def __init__(self, result: _Optional[_Union[_common_pb2.Object, _Mapping]] = ...) -> None: ... + +class DeleteObjectRequest(_message.Message): + __slots__ = ("object_type", "object_id", "with_relations") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + WITH_RELATIONS_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + with_relations: bool + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., with_relations: bool = ...) -> None: ... + +class DeleteObjectResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _empty_pb2.Empty + def __init__(self, result: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... + +class SetRelationRequest(_message.Message): + __slots__ = ("relation",) + RELATION_FIELD_NUMBER: _ClassVar[int] + relation: _common_pb2.Relation + def __init__(self, relation: _Optional[_Union[_common_pb2.Relation, _Mapping]] = ...) -> None: ... + +class SetRelationResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _common_pb2.Relation + def __init__(self, result: _Optional[_Union[_common_pb2.Relation, _Mapping]] = ...) -> None: ... + +class DeleteRelationRequest(_message.Message): + __slots__ = ("object_type", "object_id", "relation", "subject_type", "subject_id", "subject_relation") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + RELATION_FIELD_NUMBER: _ClassVar[int] + SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + SUBJECT_RELATION_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + relation: str + subject_type: str + subject_id: str + subject_relation: str + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., relation: _Optional[str] = ..., subject_type: _Optional[str] = ..., subject_id: _Optional[str] = ..., subject_relation: _Optional[str] = ...) -> None: ... + +class DeleteRelationResponse(_message.Message): + __slots__ = ("result",) + RESULT_FIELD_NUMBER: _ClassVar[int] + result: _empty_pb2.Empty + def __init__(self, result: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ...) -> None: ... diff --git a/src/buf/validate/expression_pb2.py b/src/buf/validate/expression_pb2.py new file mode 100644 index 0000000..d07b718 --- /dev/null +++ b/src/buf/validate/expression_pb2.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: buf/validate/expression.proto +# Protobuf Python Version: 4.25.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x62uf/validate/expression.proto\x12\x0c\x62uf.validate\"V\n\nConstraint\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1e\n\nexpression\x18\x03 \x01(\tR\nexpression\"E\n\nViolations\x12\x37\n\nviolations\x18\x01 \x03(\x0b\x32\x17.buf.validate.ViolationR\nviolations\"\x82\x01\n\tViolation\x12\x1d\n\nfield_path\x18\x01 \x01(\tR\tfieldPath\x12#\n\rconstraint_id\x18\x02 \x01(\tR\x0c\x63onstraintId\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\x12\x17\n\x07\x66or_key\x18\x04 \x01(\x08R\x06\x66orKeyB\xbd\x01\n\x10\x63om.buf.validateB\x0f\x45xpressionProtoP\x01ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate\xa2\x02\x03\x42VX\xaa\x02\x0c\x42uf.Validate\xca\x02\x0c\x42uf\\Validate\xe2\x02\x18\x42uf\\Validate\\GPBMetadata\xea\x02\rBuf::Validateb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'buf.validate.expression_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\020com.buf.validateB\017ExpressionProtoP\001ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate\242\002\003BVX\252\002\014Buf.Validate\312\002\014Buf\\Validate\342\002\030Buf\\Validate\\GPBMetadata\352\002\rBuf::Validate' + _globals['_CONSTRAINT']._serialized_start=47 + _globals['_CONSTRAINT']._serialized_end=133 + _globals['_VIOLATIONS']._serialized_start=135 + _globals['_VIOLATIONS']._serialized_end=204 + _globals['_VIOLATION']._serialized_start=207 + _globals['_VIOLATION']._serialized_end=337 +# @@protoc_insertion_point(module_scope) diff --git a/src/buf/validate/expression_pb2.pyi b/src/buf/validate/expression_pb2.pyi new file mode 100644 index 0000000..747c650 --- /dev/null +++ b/src/buf/validate/expression_pb2.pyi @@ -0,0 +1,34 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Constraint(_message.Message): + __slots__ = ("id", "message", "expression") + ID_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + EXPRESSION_FIELD_NUMBER: _ClassVar[int] + id: str + message: str + expression: str + def __init__(self, id: _Optional[str] = ..., message: _Optional[str] = ..., expression: _Optional[str] = ...) -> None: ... + +class Violations(_message.Message): + __slots__ = ("violations",) + VIOLATIONS_FIELD_NUMBER: _ClassVar[int] + violations: _containers.RepeatedCompositeFieldContainer[Violation] + def __init__(self, violations: _Optional[_Iterable[_Union[Violation, _Mapping]]] = ...) -> None: ... + +class Violation(_message.Message): + __slots__ = ("field_path", "constraint_id", "message", "for_key") + FIELD_PATH_FIELD_NUMBER: _ClassVar[int] + CONSTRAINT_ID_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + FOR_KEY_FIELD_NUMBER: _ClassVar[int] + field_path: str + constraint_id: str + message: str + for_key: bool + def __init__(self, field_path: _Optional[str] = ..., constraint_id: _Optional[str] = ..., message: _Optional[str] = ..., for_key: bool = ...) -> None: ... diff --git a/src/buf/validate/expression_pb2_grpc.py b/src/buf/validate/expression_pb2_grpc.py new file mode 100644 index 0000000..2daafff --- /dev/null +++ b/src/buf/validate/expression_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/src/buf/validate/expression_pb2_grpc.pyi b/src/buf/validate/expression_pb2_grpc.pyi new file mode 100644 index 0000000..f109cf1 --- /dev/null +++ b/src/buf/validate/expression_pb2_grpc.pyi @@ -0,0 +1,30 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Copyright 2023 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. +""" +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar('_T') + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): + ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore + ... diff --git a/src/buf/validate/priv/private_pb2.py b/src/buf/validate/priv/private_pb2.py new file mode 100644 index 0000000..1666ecd --- /dev/null +++ b/src/buf/validate/priv/private_pb2.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: buf/validate/priv/private.proto +# Protobuf Python Version: 4.25.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x62uf/validate/priv/private.proto\x12\x11\x62uf.validate.priv\x1a google/protobuf/descriptor.proto\"C\n\x10\x46ieldConstraints\x12/\n\x03\x63\x65l\x18\x01 \x03(\x0b\x32\x1d.buf.validate.priv.ConstraintR\x03\x63\x65l\"V\n\nConstraint\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1e\n\nexpression\x18\x03 \x01(\tR\nexpression:\\\n\x05\x66ield\x12\x1d.google.protobuf.FieldOptions\x18\x88\t \x01(\x0b\x32#.buf.validate.priv.FieldConstraintsR\x05\x66ield\x88\x01\x01\x42\xd9\x01\n\x15\x63om.buf.validate.privB\x0cPrivateProtoP\x01ZLbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate/priv\xa2\x02\x03\x42VP\xaa\x02\x11\x42uf.Validate.Priv\xca\x02\x11\x42uf\\Validate\\Priv\xe2\x02\x1d\x42uf\\Validate\\Priv\\GPBMetadata\xea\x02\x13\x42uf::Validate::Privb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'buf.validate.priv.private_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\025com.buf.validate.privB\014PrivateProtoP\001ZLbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate/priv\242\002\003BVP\252\002\021Buf.Validate.Priv\312\002\021Buf\\Validate\\Priv\342\002\035Buf\\Validate\\Priv\\GPBMetadata\352\002\023Buf::Validate::Priv' + _globals['_FIELDCONSTRAINTS']._serialized_start=88 + _globals['_FIELDCONSTRAINTS']._serialized_end=155 + _globals['_CONSTRAINT']._serialized_start=157 + _globals['_CONSTRAINT']._serialized_end=243 +# @@protoc_insertion_point(module_scope) diff --git a/src/buf/validate/priv/private_pb2.pyi b/src/buf/validate/priv/private_pb2.pyi new file mode 100644 index 0000000..f42ef5a --- /dev/null +++ b/src/buf/validate/priv/private_pb2.pyi @@ -0,0 +1,25 @@ +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor +FIELD_FIELD_NUMBER: _ClassVar[int] +field: _descriptor.FieldDescriptor + +class FieldConstraints(_message.Message): + __slots__ = ("cel",) + CEL_FIELD_NUMBER: _ClassVar[int] + cel: _containers.RepeatedCompositeFieldContainer[Constraint] + def __init__(self, cel: _Optional[_Iterable[_Union[Constraint, _Mapping]]] = ...) -> None: ... + +class Constraint(_message.Message): + __slots__ = ("id", "message", "expression") + ID_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + EXPRESSION_FIELD_NUMBER: _ClassVar[int] + id: str + message: str + expression: str + def __init__(self, id: _Optional[str] = ..., message: _Optional[str] = ..., expression: _Optional[str] = ...) -> None: ... diff --git a/src/buf/validate/priv/private_pb2_grpc.py b/src/buf/validate/priv/private_pb2_grpc.py new file mode 100644 index 0000000..2daafff --- /dev/null +++ b/src/buf/validate/priv/private_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/src/buf/validate/priv/private_pb2_grpc.pyi b/src/buf/validate/priv/private_pb2_grpc.pyi new file mode 100644 index 0000000..f109cf1 --- /dev/null +++ b/src/buf/validate/priv/private_pb2_grpc.pyi @@ -0,0 +1,30 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Copyright 2023 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. +""" +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar('_T') + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): + ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore + ... diff --git a/src/buf/validate/validate_pb2.py b/src/buf/validate/validate_pb2.py new file mode 100644 index 0000000..a58ec43 --- /dev/null +++ b/src/buf/validate/validate_pb2.py @@ -0,0 +1,386 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: buf/validate/validate.proto +# Protobuf Python Version: 4.25.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from buf.validate import expression_pb2 as buf_dot_validate_dot_expression__pb2 +from buf.validate.priv import private_pb2 as buf_dot_validate_dot_priv_dot_private__pb2 +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x62uf/validate/validate.proto\x12\x0c\x62uf.validate\x1a\x1d\x62uf/validate/expression.proto\x1a\x1f\x62uf/validate/priv/private.proto\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"n\n\x12MessageConstraints\x12\x1f\n\x08\x64isabled\x18\x01 \x01(\x08H\x00R\x08\x64isabled\x88\x01\x01\x12*\n\x03\x63\x65l\x18\x03 \x03(\x0b\x32\x18.buf.validate.ConstraintR\x03\x63\x65lB\x0b\n\t_disabled\"@\n\x10OneofConstraints\x12\x1f\n\x08required\x18\x01 \x01(\x08H\x00R\x08required\x88\x01\x01\x42\x0b\n\t_required\"\xf5\t\n\x10\x46ieldConstraints\x12*\n\x03\x63\x65l\x18\x17 \x03(\x0b\x32\x18.buf.validate.ConstraintR\x03\x63\x65l\x12\x18\n\x07skipped\x18\x18 \x01(\x08R\x07skipped\x12\x1a\n\x08required\x18\x19 \x01(\x08R\x08required\x12!\n\x0cignore_empty\x18\x1a \x01(\x08R\x0bignoreEmpty\x12\x30\n\x05\x66loat\x18\x01 \x01(\x0b\x32\x18.buf.validate.FloatRulesH\x00R\x05\x66loat\x12\x33\n\x06\x64ouble\x18\x02 \x01(\x0b\x32\x19.buf.validate.DoubleRulesH\x00R\x06\x64ouble\x12\x30\n\x05int32\x18\x03 \x01(\x0b\x32\x18.buf.validate.Int32RulesH\x00R\x05int32\x12\x30\n\x05int64\x18\x04 \x01(\x0b\x32\x18.buf.validate.Int64RulesH\x00R\x05int64\x12\x33\n\x06uint32\x18\x05 \x01(\x0b\x32\x19.buf.validate.UInt32RulesH\x00R\x06uint32\x12\x33\n\x06uint64\x18\x06 \x01(\x0b\x32\x19.buf.validate.UInt64RulesH\x00R\x06uint64\x12\x33\n\x06sint32\x18\x07 \x01(\x0b\x32\x19.buf.validate.SInt32RulesH\x00R\x06sint32\x12\x33\n\x06sint64\x18\x08 \x01(\x0b\x32\x19.buf.validate.SInt64RulesH\x00R\x06sint64\x12\x36\n\x07\x66ixed32\x18\t \x01(\x0b\x32\x1a.buf.validate.Fixed32RulesH\x00R\x07\x66ixed32\x12\x36\n\x07\x66ixed64\x18\n \x01(\x0b\x32\x1a.buf.validate.Fixed64RulesH\x00R\x07\x66ixed64\x12\x39\n\x08sfixed32\x18\x0b \x01(\x0b\x32\x1b.buf.validate.SFixed32RulesH\x00R\x08sfixed32\x12\x39\n\x08sfixed64\x18\x0c \x01(\x0b\x32\x1b.buf.validate.SFixed64RulesH\x00R\x08sfixed64\x12-\n\x04\x62ool\x18\r \x01(\x0b\x32\x17.buf.validate.BoolRulesH\x00R\x04\x62ool\x12\x33\n\x06string\x18\x0e \x01(\x0b\x32\x19.buf.validate.StringRulesH\x00R\x06string\x12\x30\n\x05\x62ytes\x18\x0f \x01(\x0b\x32\x18.buf.validate.BytesRulesH\x00R\x05\x62ytes\x12-\n\x04\x65num\x18\x10 \x01(\x0b\x32\x17.buf.validate.EnumRulesH\x00R\x04\x65num\x12\x39\n\x08repeated\x18\x12 \x01(\x0b\x32\x1b.buf.validate.RepeatedRulesH\x00R\x08repeated\x12*\n\x03map\x18\x13 \x01(\x0b\x32\x16.buf.validate.MapRulesH\x00R\x03map\x12*\n\x03\x61ny\x18\x14 \x01(\x0b\x32\x16.buf.validate.AnyRulesH\x00R\x03\x61ny\x12\x39\n\x08\x64uration\x18\x15 \x01(\x0b\x32\x1b.buf.validate.DurationRulesH\x00R\x08\x64uration\x12<\n\ttimestamp\x18\x16 \x01(\x0b\x32\x1c.buf.validate.TimestampRulesH\x00R\ttimestampB\x06\n\x04type\"\xa2\x17\n\nFloatRules\x12u\n\x05\x63onst\x18\x01 \x01(\x02\x42Z\xc2HW\nU\n\x0b\x66loat.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\xa3\x01\n\x02lt\x18\x02 \x01(\x02\x42\x90\x01\xc2H\x8c\x01\n\x89\x01\n\x08\x66loat.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb4\x01\n\x03lte\x18\x03 \x01(\x02\x42\x9f\x01\xc2H\x9b\x01\n\x98\x01\n\tfloat.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf3\x07\n\x02gt\x18\x04 \x01(\x02\x42\xe0\x07\xc2H\xdc\x07\n\x8d\x01\n\x08\x66loat.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc3\x01\n\x0b\x66loat.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xcd\x01\n\x15\x66loat.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd3\x01\n\x0c\x66loat.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xdd\x01\n\x16\x66loat.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xbf\x08\n\x03gte\x18\x05 \x01(\x02\x42\xaa\x08\xc2H\xa6\x08\n\x9b\x01\n\tfloat.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd2\x01\n\x0c\x66loat.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdc\x01\n\x16\x66loat.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe2\x01\n\rfloat.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xec\x01\n\x17\x66loat.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12y\n\x02in\x18\x06 \x03(\x02\x42i\xc2Hf\nd\n\x08\x66loat.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x02\x42\x66\xc2Hc\na\n\x0c\x66loat.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12g\n\x06\x66inite\x18\x08 \x01(\x08\x42O\xc2HL\nJ\n\x0c\x66loat.finite\x1a:this.isNan() || this.isInf() ? \'value must be finite\' : \'\'R\x06\x66initeB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\xb3\x17\n\x0b\x44oubleRules\x12v\n\x05\x63onst\x18\x01 \x01(\x01\x42[\xc2HX\nV\n\x0c\x64ouble.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\xa4\x01\n\x02lt\x18\x02 \x01(\x01\x42\x91\x01\xc2H\x8d\x01\n\x8a\x01\n\tdouble.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb5\x01\n\x03lte\x18\x03 \x01(\x01\x42\xa0\x01\xc2H\x9c\x01\n\x99\x01\n\ndouble.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf8\x07\n\x02gt\x18\x04 \x01(\x01\x42\xe5\x07\xc2H\xe1\x07\n\x8e\x01\n\tdouble.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc4\x01\n\x0c\x64ouble.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xce\x01\n\x16\x64ouble.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd4\x01\n\rdouble.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xde\x01\n\x17\x64ouble.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xc4\x08\n\x03gte\x18\x05 \x01(\x01\x42\xaf\x08\xc2H\xab\x08\n\x9c\x01\n\ndouble.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd3\x01\n\rdouble.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdd\x01\n\x17\x64ouble.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe3\x01\n\x0e\x64ouble.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xed\x01\n\x18\x64ouble.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12z\n\x02in\x18\x06 \x03(\x01\x42j\xc2Hg\ne\n\tdouble.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x01\x42g\xc2Hd\nb\n\rdouble.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12h\n\x06\x66inite\x18\x08 \x01(\x08\x42P\xc2HM\nK\n\rdouble.finite\x1a:this.isNan() || this.isInf() ? \'value must be finite\' : \'\'R\x06\x66initeB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\xe2\x14\n\nInt32Rules\x12u\n\x05\x63onst\x18\x01 \x01(\x05\x42Z\xc2HW\nU\n\x0bint32.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x05\x42|\xc2Hy\nw\n\x08int32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x05\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x05\x42\x88\x07\xc2H\x84\x07\nz\n\x08int32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x05\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12y\n\x02in\x18\x06 \x03(\x05\x42i\xc2Hf\nd\n\x08int32.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x05\x42\x66\xc2Hc\na\n\x0cint32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\xe2\x14\n\nInt64Rules\x12u\n\x05\x63onst\x18\x01 \x01(\x03\x42Z\xc2HW\nU\n\x0bint64.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x03\x42|\xc2Hy\nw\n\x08int64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x03\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x03\x42\x88\x07\xc2H\x84\x07\nz\n\x08int64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x03\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12y\n\x02in\x18\x06 \x03(\x03\x42i\xc2Hf\nd\n\x08int64.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x03\x42\x66\xc2Hc\na\n\x0cint64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\xf2\x14\n\x0bUInt32Rules\x12v\n\x05\x63onst\x18\x01 \x01(\rB[\xc2HX\nV\n\x0cuint32.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x8f\x01\n\x02lt\x18\x02 \x01(\rB}\xc2Hz\nx\n\tuint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\rB\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\rB\x8d\x07\xc2H\x89\x07\n{\n\tuint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\rB\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12z\n\x02in\x18\x06 \x03(\rBj\xc2Hg\ne\n\tuint32.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\rBg\xc2Hd\nb\n\ruint32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\xf2\x14\n\x0bUInt64Rules\x12v\n\x05\x63onst\x18\x01 \x01(\x04\x42[\xc2HX\nV\n\x0cuint64.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x04\x42}\xc2Hz\nx\n\tuint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x04\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x04\x42\x8d\x07\xc2H\x89\x07\n{\n\tuint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x04\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12z\n\x02in\x18\x06 \x03(\x04\x42j\xc2Hg\ne\n\tuint64.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x04\x42g\xc2Hd\nb\n\ruint64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\xf2\x14\n\x0bSInt32Rules\x12v\n\x05\x63onst\x18\x01 \x01(\x11\x42[\xc2HX\nV\n\x0csint32.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x11\x42}\xc2Hz\nx\n\tsint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x11\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x11\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x11\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12z\n\x02in\x18\x06 \x03(\x11\x42j\xc2Hg\ne\n\tsint32.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x11\x42g\xc2Hd\nb\n\rsint32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\xf2\x14\n\x0bSInt64Rules\x12v\n\x05\x63onst\x18\x01 \x01(\x12\x42[\xc2HX\nV\n\x0csint64.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x12\x42}\xc2Hz\nx\n\tsint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x12\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x12\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x12\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12z\n\x02in\x18\x06 \x03(\x12\x42j\xc2Hg\ne\n\tsint64.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x12\x42g\xc2Hd\nb\n\rsint64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\x82\x15\n\x0c\x46ixed32Rules\x12w\n\x05\x63onst\x18\x01 \x01(\x07\x42\\\xc2HY\nW\n\rfixed32.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x90\x01\n\x02lt\x18\x02 \x01(\x07\x42~\xc2H{\ny\n\nfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x07\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x07\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x07\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12{\n\x02in\x18\x06 \x03(\x07\x42k\xc2Hh\nf\n\nfixed32.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x07\x42h\xc2He\nc\n\x0e\x66ixed32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\x82\x15\n\x0c\x46ixed64Rules\x12w\n\x05\x63onst\x18\x01 \x01(\x06\x42\\\xc2HY\nW\n\rfixed64.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x90\x01\n\x02lt\x18\x02 \x01(\x06\x42~\xc2H{\ny\n\nfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x06\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x06\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x06\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12{\n\x02in\x18\x06 \x03(\x06\x42k\xc2Hh\nf\n\nfixed64.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x06\x42h\xc2He\nc\n\x0e\x66ixed64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\x93\x15\n\rSFixed32Rules\x12x\n\x05\x63onst\x18\x01 \x01(\x0f\x42]\xc2HZ\nX\n\x0esfixed32.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x91\x01\n\x02lt\x18\x02 \x01(\x0f\x42\x7f\xc2H|\nz\n\x0bsfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x0f\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x0f\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x0f\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12|\n\x02in\x18\x06 \x03(\x0f\x42l\xc2Hi\ng\n\x0bsfixed32.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x0f\x42i\xc2Hf\nd\n\x0fsfixed32.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\x93\x15\n\rSFixed64Rules\x12x\n\x05\x63onst\x18\x01 \x01(\x10\x42]\xc2HZ\nX\n\x0esfixed64.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\x91\x01\n\x02lt\x18\x02 \x01(\x10\x42\x7f\xc2H|\nz\n\x0bsfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x10\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x10\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x10\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12|\n\x02in\x18\x06 \x03(\x10\x42l\xc2Hi\ng\n\x0bsfixed64.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x10\x42i\xc2Hf\nd\n\x0fsfixed64.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\x8b\x01\n\tBoolRules\x12t\n\x05\x63onst\x18\x01 \x01(\x08\x42Y\xc2HV\nT\n\nbool.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x00R\x05\x63onst\x88\x01\x01\x42\x08\n\x06_const\"\xe8$\n\x0bStringRules\x12x\n\x05\x63onst\x18\x01 \x01(\tB]\xc2HZ\nX\n\x0cstring.const\x1aHthis != rules.const ? \'value must equal `%s`\'.format([rules.const]) : \'\'H\x01R\x05\x63onst\x88\x01\x01\x12\x88\x01\n\x03len\x18\x13 \x01(\x04\x42q\xc2Hn\nl\n\nstring.len\x1a^uint(this.size()) != rules.len ? \'value length must be %s characters\'.format([rules.len]) : \'\'H\x02R\x03len\x88\x01\x01\x12\xa6\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x0estring.min_len\x1anuint(this.size()) < rules.min_len ? \'value length must be at least %s characters\'.format([rules.min_len]) : \'\'H\x03R\x06minLen\x88\x01\x01\x12\xa4\x01\n\x07max_len\x18\x03 \x01(\x04\x42\x85\x01\xc2H\x81\x01\n\x7f\n\x0estring.max_len\x1amuint(this.size()) > rules.max_len ? \'value length must be at most %s characters\'.format([rules.max_len]) : \'\'H\x04R\x06maxLen\x88\x01\x01\x12\xaa\x01\n\tlen_bytes\x18\x14 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x10string.len_bytes\x1aluint(bytes(this).size()) != rules.len_bytes ? \'value length must be %s bytes\'.format([rules.len_bytes]) : \'\'H\x05R\x08lenBytes\x88\x01\x01\x12\xb2\x01\n\tmin_bytes\x18\x04 \x01(\x04\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x10string.min_bytes\x1atuint(bytes(this).size()) < rules.min_bytes ? \'value length must be at least %s bytes\'.format([rules.min_bytes]) : \'\'H\x06R\x08minBytes\x88\x01\x01\x12\xb1\x01\n\tmax_bytes\x18\x05 \x01(\x04\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x10string.max_bytes\x1asuint(bytes(this).size()) > rules.max_bytes ? \'value length must be at most %s bytes\'.format([rules.max_bytes]) : \'\'H\x07R\x08maxBytes\x88\x01\x01\x12\x9b\x01\n\x07pattern\x18\x06 \x01(\tB|\xc2Hy\nw\n\x0estring.pattern\x1a\x65!this.matches(rules.pattern) ? \'value does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'H\x08R\x07pattern\x88\x01\x01\x12\x91\x01\n\x06prefix\x18\x07 \x01(\tBt\xc2Hq\no\n\rstring.prefix\x1a^!this.startsWith(rules.prefix) ? \'value does not have prefix `%s`\'.format([rules.prefix]) : \'\'H\tR\x06prefix\x88\x01\x01\x12\x8f\x01\n\x06suffix\x18\x08 \x01(\tBr\xc2Ho\nm\n\rstring.suffix\x1a\\!this.endsWith(rules.suffix) ? \'value does not have suffix `%s`\'.format([rules.suffix]) : \'\'H\nR\x06suffix\x88\x01\x01\x12\x9f\x01\n\x08\x63ontains\x18\t \x01(\tB~\xc2H{\ny\n\x0fstring.contains\x1a\x66!this.contains(rules.contains) ? \'value does not contain substring `%s`\'.format([rules.contains]) : \'\'H\x0bR\x08\x63ontains\x88\x01\x01\x12\xaa\x01\n\x0cnot_contains\x18\x17 \x01(\tB\x81\x01\xc2H~\n|\n\x13string.not_contains\x1a\x65this.contains(rules.not_contains) ? \'value contains substring `%s`\'.format([rules.not_contains]) : \'\'H\x0cR\x0bnotContains\x88\x01\x01\x12z\n\x02in\x18\n \x03(\tBj\xc2Hg\ne\n\tstring.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12~\n\x06not_in\x18\x0b \x03(\tBg\xc2Hd\nb\n\rstring.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12`\n\x05\x65mail\x18\x0c \x01(\x08\x42H\xc2HE\nC\n\x0cstring.email\x12#value must be a valid email address\x1a\x0ethis.isEmail()H\x00R\x05\x65mail\x12g\n\x08hostname\x18\r \x01(\x08\x42I\xc2HF\nD\n\x0fstring.hostname\x12\x1evalue must be a valid hostname\x1a\x11this.isHostname()H\x00R\x08hostname\x12Q\n\x02ip\x18\x0e \x01(\x08\x42?\xc2H<\n:\n\tstring.ip\x12 value must be a valid IP address\x1a\x0bthis.isIp()H\x00R\x02ip\x12Z\n\x04ipv4\x18\x0f \x01(\x08\x42\x44\xc2HA\n?\n\x0bstring.ipv4\x12\"value must be a valid IPv4 address\x1a\x0cthis.isIp(4)H\x00R\x04ipv4\x12Z\n\x04ipv6\x18\x10 \x01(\x08\x42\x44\xc2HA\n?\n\x0bstring.ipv6\x12\"value must be a valid IPv6 address\x1a\x0cthis.isIp(6)H\x00R\x04ipv6\x12N\n\x03uri\x18\x11 \x01(\x08\x42:\xc2H7\n5\n\nstring.uri\x12\x19value must be a valid URI\x1a\x0cthis.isUri()H\x00R\x03uri\x12\\\n\x07uri_ref\x18\x12 \x01(\x08\x42\x41\xc2H>\n<\n\x0estring.uri_ref\x12\x19value must be a valid URI\x1a\x0fthis.isUriRef()H\x00R\x06uriRef\x12\x82\x01\n\x07\x61\x64\x64ress\x18\x15 \x01(\x08\x42\x66\xc2Hc\na\n\x0estring.address\x12-value must be a valid hostname, or ip address\x1a this.isHostname() || this.isIp()H\x00R\x07\x61\x64\x64ress\x12\xb0\x01\n\x04uuid\x18\x16 \x01(\x08\x42\x99\x01\xc2H\x95\x01\n\x92\x01\n\x0bstring.uuid\x1a\x82\x01!this.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\') ? \'value must be a valid UUID\' : \'\'H\x00R\x04uuid\x12\x81\x01\n\x11ip_with_prefixlen\x18\x1a \x01(\x08\x42S\xc2HP\nN\n\x18string.ip_with_prefixlen\x12\x1fvalue must be a valid IP prefix\x1a\x11this.isIpPrefix()H\x00R\x0fipWithPrefixlen\x12\x9e\x01\n\x13ipv4_with_prefixlen\x18\x1b \x01(\x08\x42l\xc2Hi\ng\n\x1astring.ipv4_with_prefixlen\x12\x35value must be a valid IPv4 address with prefix length\x1a\x12this.isIpPrefix(4)H\x00R\x11ipv4WithPrefixlen\x12\x9e\x01\n\x13ipv6_with_prefixlen\x18\x1c \x01(\x08\x42l\xc2Hi\ng\n\x1astring.ipv6_with_prefixlen\x12\x35value must be a valid IPv6 address with prefix length\x1a\x12this.isIpPrefix(6)H\x00R\x11ipv6WithPrefixlen\x12n\n\tip_prefix\x18\x1d \x01(\x08\x42O\xc2HL\nJ\n\x10string.ip_prefix\x12\x1fvalue must be a valid IP prefix\x1a\x15this.isIpPrefix(true)H\x00R\x08ipPrefix\x12y\n\x0bipv4_prefix\x18\x1e \x01(\x08\x42V\xc2HS\nQ\n\x12string.ipv4_prefix\x12!value must be a valid IPv4 prefix\x1a\x18this.isIpPrefix(4, true)H\x00R\nipv4Prefix\x12y\n\x0bipv6_prefix\x18\x1f \x01(\x08\x42V\xc2HS\nQ\n\x12string.ipv6_prefix\x12!value must be a valid IPv6 prefix\x1a\x18this.isIpPrefix(6, true)H\x00R\nipv6Prefix\x12\xac\x04\n\x10well_known_regex\x18\x18 \x01(\x0e\x32\x18.buf.validate.KnownRegexB\xe5\x03\xc2H\xe1\x03\n\xeb\x01\n#string.well_known_regex.header_name\x1a\xc3\x01rules.well_known_regex == 1 && !this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\') ? \'value must be a valid HTTP header name\' : \'\'\n\xf0\x01\n$string.well_known_regex.header_value\x1a\xc7\x01rules.well_known_regex == 2 && !this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\') ? \'value must be a valid HTTP header value\' : \'\'H\x00R\x0ewellKnownRegex\x12\x1b\n\x06strict\x18\x19 \x01(\x08H\rR\x06strict\x88\x01\x01\x42\x0c\n\nwell_knownB\x08\n\x06_constB\x06\n\x04_lenB\n\n\x08_min_lenB\n\n\x08_max_lenB\x0c\n\n_len_bytesB\x0c\n\n_min_bytesB\x0c\n\n_max_bytesB\n\n\x08_patternB\t\n\x07_prefixB\t\n\x07_suffixB\x0b\n\t_containsB\x0f\n\r_not_containsB\t\n\x07_strict\"\xda\x0e\n\nBytesRules\x12r\n\x05\x63onst\x18\x01 \x01(\x0c\x42W\xc2HT\nR\n\x0b\x62ytes.const\x1a\x43this != rules.const ? \'value must be %x\'.format([rules.const]) : \'\'H\x01R\x05\x63onst\x88\x01\x01\x12\x82\x01\n\x03len\x18\r \x01(\x04\x42k\xc2Hh\nf\n\tbytes.len\x1aYuint(this.size()) != rules.len ? \'value length must be %s bytes\'.format([rules.len]) : \'\'H\x02R\x03len\x88\x01\x01\x12\x9d\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x7f\xc2H|\nz\n\rbytes.min_len\x1aiuint(this.size()) < rules.min_len ? \'value length must be at least %s bytes\'.format([rules.min_len]) : \'\'H\x03R\x06minLen\x88\x01\x01\x12\x95\x01\n\x07max_len\x18\x03 \x01(\x04\x42w\xc2Ht\nr\n\rbytes.max_len\x1a\x61uint(this.size()) > rules.max_len ? \'value must be at most %s bytes\'.format([rules.max_len]) : \'\'H\x04R\x06maxLen\x88\x01\x01\x12\x9e\x01\n\x07pattern\x18\x04 \x01(\tB\x7f\xc2H|\nz\n\rbytes.pattern\x1ai!string(this).matches(rules.pattern) ? \'value must match regex pattern `%s`\'.format([rules.pattern]) : \'\'H\x05R\x07pattern\x88\x01\x01\x12\x8e\x01\n\x06prefix\x18\x05 \x01(\x0c\x42q\xc2Hn\nl\n\x0c\x62ytes.prefix\x1a\\!this.startsWith(rules.prefix) ? \'value does not have prefix %x\'.format([rules.prefix]) : \'\'H\x06R\x06prefix\x88\x01\x01\x12\x8c\x01\n\x06suffix\x18\x06 \x01(\x0c\x42o\xc2Hl\nj\n\x0c\x62ytes.suffix\x1aZ!this.endsWith(rules.suffix) ? \'value does not have suffix %x\'.format([rules.suffix]) : \'\'H\x07R\x06suffix\x88\x01\x01\x12\x92\x01\n\x08\x63ontains\x18\x07 \x01(\x0c\x42q\xc2Hn\nl\n\x0e\x62ytes.contains\x1aZ!this.contains(rules.contains) ? \'value does not contain %x\'.format([rules.contains]) : \'\'H\x08R\x08\x63ontains\x88\x01\x01\x12\x9b\x01\n\x02in\x18\x08 \x03(\x0c\x42\x8a\x01\xc2H\x86\x01\n\x83\x01\n\x08\x62ytes.in\x1awdyn(rules)[\'in\'].size() > 0 && !(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12}\n\x06not_in\x18\t \x03(\x0c\x42\x66\xc2Hc\na\n\x0c\x62ytes.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12r\n\x02ip\x18\n \x01(\x08\x42`\xc2H]\n[\n\x08\x62ytes.ip\x1aOthis.size() != 4 && this.size() != 16 ? \'value must be a valid IP address\' : \'\'H\x00R\x02ip\x12\x65\n\x04ipv4\x18\x0b \x01(\x08\x42O\xc2HL\nJ\n\nbytes.ipv4\x1a rules.max_items ? \'value must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'H\x01R\x08maxItems\x88\x01\x01\x12l\n\x06unique\x18\x03 \x01(\x08\x42O\xc2HL\nJ\n\x0frepeated.unique\x12(repeated value must contain unique items\x1a\rthis.unique()H\x02R\x06unique\x88\x01\x01\x12\x39\n\x05items\x18\x04 \x01(\x0b\x32\x1e.buf.validate.FieldConstraintsH\x03R\x05items\x88\x01\x01\x42\x0c\n\n_min_itemsB\x0c\n\n_max_itemsB\t\n\x07_uniqueB\x08\n\x06_items\"\xf1\x03\n\x08MapRules\x12\x9e\x01\n\tmin_pairs\x18\x01 \x01(\x04\x42|\xc2Hy\nw\n\rmap.min_pairs\x1a\x66uint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'H\x00R\x08minPairs\x88\x01\x01\x12\x9d\x01\n\tmax_pairs\x18\x02 \x01(\x04\x42{\xc2Hx\nv\n\rmap.max_pairs\x1a\x65uint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'H\x01R\x08maxPairs\x88\x01\x01\x12\x37\n\x04keys\x18\x04 \x01(\x0b\x32\x1e.buf.validate.FieldConstraintsH\x02R\x04keys\x88\x01\x01\x12;\n\x06values\x18\x05 \x01(\x0b\x32\x1e.buf.validate.FieldConstraintsH\x03R\x06values\x88\x01\x01\x42\x0c\n\n_min_pairsB\x0c\n\n_max_pairsB\x07\n\x05_keysB\t\n\x07_values\"1\n\x08\x41nyRules\x12\x0e\n\x02in\x18\x02 \x03(\tR\x02in\x12\x15\n\x06not_in\x18\x03 \x03(\tR\x05notIn\"\xd2\x16\n\rDurationRules\x12\x93\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB]\xc2HZ\nX\n\x0e\x64uration.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\xac\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x7f\xc2H|\nz\n\x0b\x64uration.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xbf\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0c\x64uration.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xc5\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\x97\x07\xc2H\x93\x07\n}\n\x0b\x64uration.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0e\x64uration.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18\x64uration.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0f\x64uration.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19\x64uration.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x92\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0c\x64uration.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0f\x64uration.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19\x64uration.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10\x64uration.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1a\x64uration.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x97\x01\n\x02in\x18\x07 \x03(\x0b\x32\x19.google.protobuf.DurationBl\xc2Hi\ng\n\x0b\x64uration.in\x1aX!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'R\x02in\x12\x9b\x01\n\x06not_in\x18\x08 \x03(\x0b\x32\x19.google.protobuf.DurationBi\xc2Hf\nd\n\x0f\x64uration.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notInB\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_const\"\xca\x17\n\x0eTimestampRules\x12\x95\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB^\xc2H[\nY\n\x0ftimestamp.const\x1a\x46this != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'H\x02R\x05\x63onst\x88\x01\x01\x12\xaf\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x80\x01\xc2H}\n{\n\x0ctimestamp.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xc1\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x90\x01\xc2H\x8c\x01\n\x89\x01\n\rtimestamp.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x61\n\x06lt_now\x18\x07 \x01(\x08\x42H\xc2HE\nC\n\x10timestamp.lt_now\x1a/this > now ? \'value must be less than now\' : \'\'H\x00R\x05ltNow\x12\xcb\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x9c\x07\xc2H\x98\x07\n~\n\x0ctimestamp.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb7\x01\n\x0ftimestamp.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x19timestamp.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc7\x01\n\x10timestamp.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcf\x01\n\x1atimestamp.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x98\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xe7\x07\xc2H\xe3\x07\n\x8c\x01\n\rtimestamp.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc6\x01\n\x10timestamp.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x1atimestamp.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd6\x01\n\x11timestamp.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xde\x01\n\x1btimestamp.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x64\n\x06gt_now\x18\x08 \x01(\x08\x42K\xc2HH\nF\n\x10timestamp.gt_now\x1a\x32this < now ? \'value must be greater than now\' : \'\'H\x01R\x05gtNow\x12\xc5\x01\n\x06within\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x8c\x01\xc2H\x88\x01\n\x85\x01\n\x10timestamp.within\x1aqthis < now-rules.within || this > now+rules.within ? \'value must be within %s of now\'.format([rules.within]) : \'\'H\x03R\x06within\x88\x01\x01\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_thanB\x08\n\x06_constB\t\n\x07_within*n\n\nKnownRegex\x12\x1b\n\x17KNOWN_REGEX_UNSPECIFIED\x10\x00\x12 \n\x1cKNOWN_REGEX_HTTP_HEADER_NAME\x10\x01\x12!\n\x1dKNOWN_REGEX_HTTP_HEADER_VALUE\x10\x02:_\n\x07message\x12\x1f.google.protobuf.MessageOptions\x18\x87\t \x01(\x0b\x32 .buf.validate.MessageConstraintsR\x07message\x88\x01\x01:W\n\x05oneof\x12\x1d.google.protobuf.OneofOptions\x18\x87\t \x01(\x0b\x32\x1e.buf.validate.OneofConstraintsR\x05oneof\x88\x01\x01:W\n\x05\x66ield\x12\x1d.google.protobuf.FieldOptions\x18\x87\t \x01(\x0b\x32\x1e.buf.validate.FieldConstraintsR\x05\x66ield\x88\x01\x01\x42\xbb\x01\n\x10\x63om.buf.validateB\rValidateProtoP\x01ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate\xa2\x02\x03\x42VX\xaa\x02\x0c\x42uf.Validate\xca\x02\x0c\x42uf\\Validate\xe2\x02\x18\x42uf\\Validate\\GPBMetadata\xea\x02\rBuf::Validateb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'buf.validate.validate_pb2', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\020com.buf.validateB\rValidateProtoP\001ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate\242\002\003BVX\252\002\014Buf.Validate\312\002\014Buf\\Validate\342\002\030Buf\\Validate\\GPBMetadata\352\002\rBuf::Validate' + _globals['_FLOATRULES'].fields_by_name['const']._options = None + _globals['_FLOATRULES'].fields_by_name['const']._serialized_options = b'\302HW\nU\n\013float.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['lt']._options = None + _globals['_FLOATRULES'].fields_by_name['lt']._serialized_options = b'\302H\214\001\n\211\001\n\010float.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['lte']._options = None + _globals['_FLOATRULES'].fields_by_name['lte']._serialized_options = b'\302H\233\001\n\230\001\n\tfloat.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['gt']._options = None + _globals['_FLOATRULES'].fields_by_name['gt']._serialized_options = b'\302H\334\007\n\215\001\n\010float.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\303\001\n\013float.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\315\001\n\025float.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\323\001\n\014float.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\335\001\n\026float.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['gte']._options = None + _globals['_FLOATRULES'].fields_by_name['gte']._serialized_options = b'\302H\246\010\n\233\001\n\tfloat.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\322\001\n\014float.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\334\001\n\026float.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\342\001\n\rfloat.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\354\001\n\027float.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['in']._options = None + _globals['_FLOATRULES'].fields_by_name['in']._serialized_options = b'\302Hf\nd\n\010float.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['not_in']._options = None + _globals['_FLOATRULES'].fields_by_name['not_in']._serialized_options = b'\302Hc\na\n\014float.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['finite']._options = None + _globals['_FLOATRULES'].fields_by_name['finite']._serialized_options = b'\302HL\nJ\n\014float.finite\032:this.isNan() || this.isInf() ? \'value must be finite\' : \'\'' + _globals['_DOUBLERULES'].fields_by_name['const']._options = None + _globals['_DOUBLERULES'].fields_by_name['const']._serialized_options = b'\302HX\nV\n\014double.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['lt']._options = None + _globals['_DOUBLERULES'].fields_by_name['lt']._serialized_options = b'\302H\215\001\n\212\001\n\tdouble.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['lte']._options = None + _globals['_DOUBLERULES'].fields_by_name['lte']._serialized_options = b'\302H\234\001\n\231\001\n\ndouble.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['gt']._options = None + _globals['_DOUBLERULES'].fields_by_name['gt']._serialized_options = b'\302H\341\007\n\216\001\n\tdouble.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\304\001\n\014double.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\316\001\n\026double.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\324\001\n\rdouble.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\336\001\n\027double.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['gte']._options = None + _globals['_DOUBLERULES'].fields_by_name['gte']._serialized_options = b'\302H\253\010\n\234\001\n\ndouble.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\323\001\n\rdouble.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\335\001\n\027double.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\343\001\n\016double.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\355\001\n\030double.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['in']._options = None + _globals['_DOUBLERULES'].fields_by_name['in']._serialized_options = b'\302Hg\ne\n\tdouble.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['not_in']._options = None + _globals['_DOUBLERULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\rdouble.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['finite']._options = None + _globals['_DOUBLERULES'].fields_by_name['finite']._serialized_options = b'\302HM\nK\n\rdouble.finite\032:this.isNan() || this.isInf() ? \'value must be finite\' : \'\'' + _globals['_INT32RULES'].fields_by_name['const']._options = None + _globals['_INT32RULES'].fields_by_name['const']._serialized_options = b'\302HW\nU\n\013int32.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_INT32RULES'].fields_by_name['lt']._options = None + _globals['_INT32RULES'].fields_by_name['lt']._serialized_options = b'\302Hy\nw\n\010int32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_INT32RULES'].fields_by_name['lte']._options = None + _globals['_INT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\210\001\n\205\001\n\tint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_INT32RULES'].fields_by_name['gt']._options = None + _globals['_INT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\204\007\nz\n\010int32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_INT32RULES'].fields_by_name['gte']._options = None + _globals['_INT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\317\007\n\210\001\n\tint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_INT32RULES'].fields_by_name['in']._options = None + _globals['_INT32RULES'].fields_by_name['in']._serialized_options = b'\302Hf\nd\n\010int32.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_INT32RULES'].fields_by_name['not_in']._options = None + _globals['_INT32RULES'].fields_by_name['not_in']._serialized_options = b'\302Hc\na\n\014int32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_INT64RULES'].fields_by_name['const']._options = None + _globals['_INT64RULES'].fields_by_name['const']._serialized_options = b'\302HW\nU\n\013int64.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_INT64RULES'].fields_by_name['lt']._options = None + _globals['_INT64RULES'].fields_by_name['lt']._serialized_options = b'\302Hy\nw\n\010int64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_INT64RULES'].fields_by_name['lte']._options = None + _globals['_INT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\210\001\n\205\001\n\tint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_INT64RULES'].fields_by_name['gt']._options = None + _globals['_INT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\204\007\nz\n\010int64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_INT64RULES'].fields_by_name['gte']._options = None + _globals['_INT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\317\007\n\210\001\n\tint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_INT64RULES'].fields_by_name['in']._options = None + _globals['_INT64RULES'].fields_by_name['in']._serialized_options = b'\302Hf\nd\n\010int64.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_INT64RULES'].fields_by_name['not_in']._options = None + _globals['_INT64RULES'].fields_by_name['not_in']._serialized_options = b'\302Hc\na\n\014int64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['const']._options = None + _globals['_UINT32RULES'].fields_by_name['const']._serialized_options = b'\302HX\nV\n\014uint32.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['lt']._options = None + _globals['_UINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Hz\nx\n\tuint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['lte']._options = None + _globals['_UINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\211\001\n\206\001\n\nuint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['gt']._options = None + _globals['_UINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\211\007\n{\n\tuint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['gte']._options = None + _globals['_UINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\324\007\n\211\001\n\nuint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['in']._options = None + _globals['_UINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hg\ne\n\tuint32.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['not_in']._options = None + _globals['_UINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\ruint32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['const']._options = None + _globals['_UINT64RULES'].fields_by_name['const']._serialized_options = b'\302HX\nV\n\014uint64.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['lt']._options = None + _globals['_UINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Hz\nx\n\tuint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['lte']._options = None + _globals['_UINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\211\001\n\206\001\n\nuint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['gt']._options = None + _globals['_UINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\211\007\n{\n\tuint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['gte']._options = None + _globals['_UINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\324\007\n\211\001\n\nuint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['in']._options = None + _globals['_UINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hg\ne\n\tuint64.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['not_in']._options = None + _globals['_UINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\ruint64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['const']._options = None + _globals['_SINT32RULES'].fields_by_name['const']._serialized_options = b'\302HX\nV\n\014sint32.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['lt']._options = None + _globals['_SINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Hz\nx\n\tsint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['lte']._options = None + _globals['_SINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\211\001\n\206\001\n\nsint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['gt']._options = None + _globals['_SINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\211\007\n{\n\tsint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['gte']._options = None + _globals['_SINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\324\007\n\211\001\n\nsint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['in']._options = None + _globals['_SINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hg\ne\n\tsint32.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['not_in']._options = None + _globals['_SINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\rsint32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['const']._options = None + _globals['_SINT64RULES'].fields_by_name['const']._serialized_options = b'\302HX\nV\n\014sint64.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['lt']._options = None + _globals['_SINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Hz\nx\n\tsint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['lte']._options = None + _globals['_SINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\211\001\n\206\001\n\nsint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['gt']._options = None + _globals['_SINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\211\007\n{\n\tsint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['gte']._options = None + _globals['_SINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\324\007\n\211\001\n\nsint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['in']._options = None + _globals['_SINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hg\ne\n\tsint64.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['not_in']._options = None + _globals['_SINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\rsint64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['const']._options = None + _globals['_FIXED32RULES'].fields_by_name['const']._serialized_options = b'\302HY\nW\n\rfixed32.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['lt']._options = None + _globals['_FIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302H{\ny\n\nfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['lte']._options = None + _globals['_FIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\212\001\n\207\001\n\013fixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['gt']._options = None + _globals['_FIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\216\007\n|\n\nfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['gte']._options = None + _globals['_FIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\331\007\n\212\001\n\013fixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['in']._options = None + _globals['_FIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hh\nf\n\nfixed32.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['not_in']._options = None + _globals['_FIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302He\nc\n\016fixed32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['const']._options = None + _globals['_FIXED64RULES'].fields_by_name['const']._serialized_options = b'\302HY\nW\n\rfixed64.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['lt']._options = None + _globals['_FIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302H{\ny\n\nfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['lte']._options = None + _globals['_FIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\212\001\n\207\001\n\013fixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['gt']._options = None + _globals['_FIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\216\007\n|\n\nfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['gte']._options = None + _globals['_FIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\331\007\n\212\001\n\013fixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['in']._options = None + _globals['_FIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hh\nf\n\nfixed64.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['not_in']._options = None + _globals['_FIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302He\nc\n\016fixed64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['const']._options = None + _globals['_SFIXED32RULES'].fields_by_name['const']._serialized_options = b'\302HZ\nX\n\016sfixed32.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['lt']._options = None + _globals['_SFIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302H|\nz\n\013sfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['lte']._options = None + _globals['_SFIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\213\001\n\210\001\n\014sfixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['gt']._options = None + _globals['_SFIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\223\007\n}\n\013sfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['gte']._options = None + _globals['_SFIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\336\007\n\213\001\n\014sfixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['in']._options = None + _globals['_SFIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hi\ng\n\013sfixed32.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['not_in']._options = None + _globals['_SFIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302Hf\nd\n\017sfixed32.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['const']._options = None + _globals['_SFIXED64RULES'].fields_by_name['const']._serialized_options = b'\302HZ\nX\n\016sfixed64.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['lt']._options = None + _globals['_SFIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302H|\nz\n\013sfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['lte']._options = None + _globals['_SFIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\213\001\n\210\001\n\014sfixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['gt']._options = None + _globals['_SFIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\223\007\n}\n\013sfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['gte']._options = None + _globals['_SFIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\336\007\n\213\001\n\014sfixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['in']._options = None + _globals['_SFIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hi\ng\n\013sfixed64.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['not_in']._options = None + _globals['_SFIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302Hf\nd\n\017sfixed64.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_BOOLRULES'].fields_by_name['const']._options = None + _globals['_BOOLRULES'].fields_by_name['const']._serialized_options = b'\302HV\nT\n\nbool.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['const']._options = None + _globals['_STRINGRULES'].fields_by_name['const']._serialized_options = b'\302HZ\nX\n\014string.const\032Hthis != rules.const ? \'value must equal `%s`\'.format([rules.const]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['len']._options = None + _globals['_STRINGRULES'].fields_by_name['len']._serialized_options = b'\302Hn\nl\n\nstring.len\032^uint(this.size()) != rules.len ? \'value length must be %s characters\'.format([rules.len]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['min_len']._options = None + _globals['_STRINGRULES'].fields_by_name['min_len']._serialized_options = b'\302H\203\001\n\200\001\n\016string.min_len\032nuint(this.size()) < rules.min_len ? \'value length must be at least %s characters\'.format([rules.min_len]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['max_len']._options = None + _globals['_STRINGRULES'].fields_by_name['max_len']._serialized_options = b'\302H\201\001\n\177\n\016string.max_len\032muint(this.size()) > rules.max_len ? \'value length must be at most %s characters\'.format([rules.max_len]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['len_bytes']._options = None + _globals['_STRINGRULES'].fields_by_name['len_bytes']._serialized_options = b'\302H\203\001\n\200\001\n\020string.len_bytes\032luint(bytes(this).size()) != rules.len_bytes ? \'value length must be %s bytes\'.format([rules.len_bytes]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['min_bytes']._options = None + _globals['_STRINGRULES'].fields_by_name['min_bytes']._serialized_options = b'\302H\213\001\n\210\001\n\020string.min_bytes\032tuint(bytes(this).size()) < rules.min_bytes ? \'value length must be at least %s bytes\'.format([rules.min_bytes]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['max_bytes']._options = None + _globals['_STRINGRULES'].fields_by_name['max_bytes']._serialized_options = b'\302H\212\001\n\207\001\n\020string.max_bytes\032suint(bytes(this).size()) > rules.max_bytes ? \'value length must be at most %s bytes\'.format([rules.max_bytes]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['pattern']._options = None + _globals['_STRINGRULES'].fields_by_name['pattern']._serialized_options = b'\302Hy\nw\n\016string.pattern\032e!this.matches(rules.pattern) ? \'value does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['prefix']._options = None + _globals['_STRINGRULES'].fields_by_name['prefix']._serialized_options = b'\302Hq\no\n\rstring.prefix\032^!this.startsWith(rules.prefix) ? \'value does not have prefix `%s`\'.format([rules.prefix]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['suffix']._options = None + _globals['_STRINGRULES'].fields_by_name['suffix']._serialized_options = b'\302Ho\nm\n\rstring.suffix\032\\!this.endsWith(rules.suffix) ? \'value does not have suffix `%s`\'.format([rules.suffix]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['contains']._options = None + _globals['_STRINGRULES'].fields_by_name['contains']._serialized_options = b'\302H{\ny\n\017string.contains\032f!this.contains(rules.contains) ? \'value does not contain substring `%s`\'.format([rules.contains]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['not_contains']._options = None + _globals['_STRINGRULES'].fields_by_name['not_contains']._serialized_options = b'\302H~\n|\n\023string.not_contains\032ethis.contains(rules.not_contains) ? \'value contains substring `%s`\'.format([rules.not_contains]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['in']._options = None + _globals['_STRINGRULES'].fields_by_name['in']._serialized_options = b'\302Hg\ne\n\tstring.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['not_in']._options = None + _globals['_STRINGRULES'].fields_by_name['not_in']._serialized_options = b'\302Hd\nb\n\rstring.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['email']._options = None + _globals['_STRINGRULES'].fields_by_name['email']._serialized_options = b'\302HE\nC\n\014string.email\022#value must be a valid email address\032\016this.isEmail()' + _globals['_STRINGRULES'].fields_by_name['hostname']._options = None + _globals['_STRINGRULES'].fields_by_name['hostname']._serialized_options = b'\302HF\nD\n\017string.hostname\022\036value must be a valid hostname\032\021this.isHostname()' + _globals['_STRINGRULES'].fields_by_name['ip']._options = None + _globals['_STRINGRULES'].fields_by_name['ip']._serialized_options = b'\302H<\n:\n\tstring.ip\022 value must be a valid IP address\032\013this.isIp()' + _globals['_STRINGRULES'].fields_by_name['ipv4']._options = None + _globals['_STRINGRULES'].fields_by_name['ipv4']._serialized_options = b'\302HA\n?\n\013string.ipv4\022\"value must be a valid IPv4 address\032\014this.isIp(4)' + _globals['_STRINGRULES'].fields_by_name['ipv6']._options = None + _globals['_STRINGRULES'].fields_by_name['ipv6']._serialized_options = b'\302HA\n?\n\013string.ipv6\022\"value must be a valid IPv6 address\032\014this.isIp(6)' + _globals['_STRINGRULES'].fields_by_name['uri']._options = None + _globals['_STRINGRULES'].fields_by_name['uri']._serialized_options = b'\302H7\n5\n\nstring.uri\022\031value must be a valid URI\032\014this.isUri()' + _globals['_STRINGRULES'].fields_by_name['uri_ref']._options = None + _globals['_STRINGRULES'].fields_by_name['uri_ref']._serialized_options = b'\302H>\n<\n\016string.uri_ref\022\031value must be a valid URI\032\017this.isUriRef()' + _globals['_STRINGRULES'].fields_by_name['address']._options = None + _globals['_STRINGRULES'].fields_by_name['address']._serialized_options = b'\302Hc\na\n\016string.address\022-value must be a valid hostname, or ip address\032 this.isHostname() || this.isIp()' + _globals['_STRINGRULES'].fields_by_name['uuid']._options = None + _globals['_STRINGRULES'].fields_by_name['uuid']._serialized_options = b'\302H\225\001\n\222\001\n\013string.uuid\032\202\001!this.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\') ? \'value must be a valid UUID\' : \'\'' + _globals['_STRINGRULES'].fields_by_name['ip_with_prefixlen']._options = None + _globals['_STRINGRULES'].fields_by_name['ip_with_prefixlen']._serialized_options = b'\302HP\nN\n\030string.ip_with_prefixlen\022\037value must be a valid IP prefix\032\021this.isIpPrefix()' + _globals['_STRINGRULES'].fields_by_name['ipv4_with_prefixlen']._options = None + _globals['_STRINGRULES'].fields_by_name['ipv4_with_prefixlen']._serialized_options = b'\302Hi\ng\n\032string.ipv4_with_prefixlen\0225value must be a valid IPv4 address with prefix length\032\022this.isIpPrefix(4)' + _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._options = None + _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._serialized_options = b'\302Hi\ng\n\032string.ipv6_with_prefixlen\0225value must be a valid IPv6 address with prefix length\032\022this.isIpPrefix(6)' + _globals['_STRINGRULES'].fields_by_name['ip_prefix']._options = None + _globals['_STRINGRULES'].fields_by_name['ip_prefix']._serialized_options = b'\302HL\nJ\n\020string.ip_prefix\022\037value must be a valid IP prefix\032\025this.isIpPrefix(true)' + _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._options = None + _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._serialized_options = b'\302HS\nQ\n\022string.ipv4_prefix\022!value must be a valid IPv4 prefix\032\030this.isIpPrefix(4, true)' + _globals['_STRINGRULES'].fields_by_name['ipv6_prefix']._options = None + _globals['_STRINGRULES'].fields_by_name['ipv6_prefix']._serialized_options = b'\302HS\nQ\n\022string.ipv6_prefix\022!value must be a valid IPv6 prefix\032\030this.isIpPrefix(6, true)' + _globals['_STRINGRULES'].fields_by_name['well_known_regex']._options = None + _globals['_STRINGRULES'].fields_by_name['well_known_regex']._serialized_options = b'\302H\341\003\n\353\001\n#string.well_known_regex.header_name\032\303\001rules.well_known_regex == 1 && !this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\') ? \'value must be a valid HTTP header name\' : \'\'\n\360\001\n$string.well_known_regex.header_value\032\307\001rules.well_known_regex == 2 && !this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\') ? \'value must be a valid HTTP header value\' : \'\'' + _globals['_BYTESRULES'].fields_by_name['const']._options = None + _globals['_BYTESRULES'].fields_by_name['const']._serialized_options = b'\302HT\nR\n\013bytes.const\032Cthis != rules.const ? \'value must be %x\'.format([rules.const]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['len']._options = None + _globals['_BYTESRULES'].fields_by_name['len']._serialized_options = b'\302Hh\nf\n\tbytes.len\032Yuint(this.size()) != rules.len ? \'value length must be %s bytes\'.format([rules.len]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['min_len']._options = None + _globals['_BYTESRULES'].fields_by_name['min_len']._serialized_options = b'\302H|\nz\n\rbytes.min_len\032iuint(this.size()) < rules.min_len ? \'value length must be at least %s bytes\'.format([rules.min_len]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['max_len']._options = None + _globals['_BYTESRULES'].fields_by_name['max_len']._serialized_options = b'\302Ht\nr\n\rbytes.max_len\032auint(this.size()) > rules.max_len ? \'value must be at most %s bytes\'.format([rules.max_len]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['pattern']._options = None + _globals['_BYTESRULES'].fields_by_name['pattern']._serialized_options = b'\302H|\nz\n\rbytes.pattern\032i!string(this).matches(rules.pattern) ? \'value must match regex pattern `%s`\'.format([rules.pattern]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['prefix']._options = None + _globals['_BYTESRULES'].fields_by_name['prefix']._serialized_options = b'\302Hn\nl\n\014bytes.prefix\032\\!this.startsWith(rules.prefix) ? \'value does not have prefix %x\'.format([rules.prefix]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['suffix']._options = None + _globals['_BYTESRULES'].fields_by_name['suffix']._serialized_options = b'\302Hl\nj\n\014bytes.suffix\032Z!this.endsWith(rules.suffix) ? \'value does not have suffix %x\'.format([rules.suffix]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['contains']._options = None + _globals['_BYTESRULES'].fields_by_name['contains']._serialized_options = b'\302Hn\nl\n\016bytes.contains\032Z!this.contains(rules.contains) ? \'value does not contain %x\'.format([rules.contains]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['in']._options = None + _globals['_BYTESRULES'].fields_by_name['in']._serialized_options = b'\302H\206\001\n\203\001\n\010bytes.in\032wdyn(rules)[\'in\'].size() > 0 && !(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['not_in']._options = None + _globals['_BYTESRULES'].fields_by_name['not_in']._serialized_options = b'\302Hc\na\n\014bytes.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['ip']._options = None + _globals['_BYTESRULES'].fields_by_name['ip']._serialized_options = b'\302H]\n[\n\010bytes.ip\032Othis.size() != 4 && this.size() != 16 ? \'value must be a valid IP address\' : \'\'' + _globals['_BYTESRULES'].fields_by_name['ipv4']._options = None + _globals['_BYTESRULES'].fields_by_name['ipv4']._serialized_options = b'\302HL\nJ\n\nbytes.ipv4\032 rules.max_items ? \'value must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'' + _globals['_REPEATEDRULES'].fields_by_name['unique']._options = None + _globals['_REPEATEDRULES'].fields_by_name['unique']._serialized_options = b'\302HL\nJ\n\017repeated.unique\022(repeated value must contain unique items\032\rthis.unique()' + _globals['_MAPRULES'].fields_by_name['min_pairs']._options = None + _globals['_MAPRULES'].fields_by_name['min_pairs']._serialized_options = b'\302Hy\nw\n\rmap.min_pairs\032fuint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'' + _globals['_MAPRULES'].fields_by_name['max_pairs']._options = None + _globals['_MAPRULES'].fields_by_name['max_pairs']._serialized_options = b'\302Hx\nv\n\rmap.max_pairs\032euint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['const']._options = None + _globals['_DURATIONRULES'].fields_by_name['const']._serialized_options = b'\302HZ\nX\n\016duration.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['lt']._options = None + _globals['_DURATIONRULES'].fields_by_name['lt']._serialized_options = b'\302H|\nz\n\013duration.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['lte']._options = None + _globals['_DURATIONRULES'].fields_by_name['lte']._serialized_options = b'\302H\213\001\n\210\001\n\014duration.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['gt']._options = None + _globals['_DURATIONRULES'].fields_by_name['gt']._serialized_options = b'\302H\223\007\n}\n\013duration.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016duration.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030duration.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017duration.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031duration.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['gte']._options = None + _globals['_DURATIONRULES'].fields_by_name['gte']._serialized_options = b'\302H\336\007\n\213\001\n\014duration.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017duration.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031duration.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020duration.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032duration.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['in']._options = None + _globals['_DURATIONRULES'].fields_by_name['in']._serialized_options = b'\302Hi\ng\n\013duration.in\032X!(this in dyn(rules)[\'in\']) ? \'value must be in list %s\'.format([dyn(rules)[\'in\']]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['not_in']._options = None + _globals['_DURATIONRULES'].fields_by_name['not_in']._serialized_options = b'\302Hf\nd\n\017duration.not_in\032Qthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['const']._options = None + _globals['_TIMESTAMPRULES'].fields_by_name['const']._serialized_options = b'\302H[\nY\n\017timestamp.const\032Fthis != rules.const ? \'value must equal %s\'.format([rules.const]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['lt']._options = None + _globals['_TIMESTAMPRULES'].fields_by_name['lt']._serialized_options = b'\302H}\n{\n\014timestamp.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['lte']._options = None + _globals['_TIMESTAMPRULES'].fields_by_name['lte']._serialized_options = b'\302H\214\001\n\211\001\n\rtimestamp.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._options = None + _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._serialized_options = b'\302HE\nC\n\020timestamp.lt_now\032/this > now ? \'value must be less than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._serialized_options = b'\302H\230\007\n~\n\014timestamp.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\267\001\n\017timestamp.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\031timestamp.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\307\001\n\020timestamp.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\317\001\n\032timestamp.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gte']._options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gte']._serialized_options = b'\302H\343\007\n\214\001\n\rtimestamp.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\306\001\n\020timestamp.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\032timestamp.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\326\001\n\021timestamp.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\336\001\n\033timestamp.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._serialized_options = b'\302HH\nF\n\020timestamp.gt_now\0322this < now ? \'value must be greater than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['within']._options = None + _globals['_TIMESTAMPRULES'].fields_by_name['within']._serialized_options = b'\302H\210\001\n\205\001\n\020timestamp.within\032qthis < now-rules.within || this > now+rules.within ? \'value must be within %s of now\'.format([rules.within]) : \'\'' + _globals['_KNOWNREGEX']._serialized_start=48727 + _globals['_KNOWNREGEX']._serialized_end=48837 + _globals['_MESSAGECONSTRAINTS']._serialized_start=208 + _globals['_MESSAGECONSTRAINTS']._serialized_end=318 + _globals['_ONEOFCONSTRAINTS']._serialized_start=320 + _globals['_ONEOFCONSTRAINTS']._serialized_end=384 + _globals['_FIELDCONSTRAINTS']._serialized_start=387 + _globals['_FIELDCONSTRAINTS']._serialized_end=1656 + _globals['_FLOATRULES']._serialized_start=1659 + _globals['_FLOATRULES']._serialized_end=4637 + _globals['_DOUBLERULES']._serialized_start=4640 + _globals['_DOUBLERULES']._serialized_end=7635 + _globals['_INT32RULES']._serialized_start=7638 + _globals['_INT32RULES']._serialized_end=10296 + _globals['_INT64RULES']._serialized_start=10299 + _globals['_INT64RULES']._serialized_end=12957 + _globals['_UINT32RULES']._serialized_start=12960 + _globals['_UINT32RULES']._serialized_end=15634 + _globals['_UINT64RULES']._serialized_start=15637 + _globals['_UINT64RULES']._serialized_end=18311 + _globals['_SINT32RULES']._serialized_start=18314 + _globals['_SINT32RULES']._serialized_end=20988 + _globals['_SINT64RULES']._serialized_start=20991 + _globals['_SINT64RULES']._serialized_end=23665 + _globals['_FIXED32RULES']._serialized_start=23668 + _globals['_FIXED32RULES']._serialized_end=26358 + _globals['_FIXED64RULES']._serialized_start=26361 + _globals['_FIXED64RULES']._serialized_end=29051 + _globals['_SFIXED32RULES']._serialized_start=29054 + _globals['_SFIXED32RULES']._serialized_end=31761 + _globals['_SFIXED64RULES']._serialized_start=31764 + _globals['_SFIXED64RULES']._serialized_end=34471 + _globals['_BOOLRULES']._serialized_start=34474 + _globals['_BOOLRULES']._serialized_end=34613 + _globals['_STRINGRULES']._serialized_start=34616 + _globals['_STRINGRULES']._serialized_end=39328 + _globals['_BYTESRULES']._serialized_start=39331 + _globals['_BYTESRULES']._serialized_end=41213 + _globals['_ENUMRULES']._serialized_start=41216 + _globals['_ENUMRULES']._serialized_end=41660 + _globals['_REPEATEDRULES']._serialized_start=41663 + _globals['_REPEATEDRULES']._serialized_end=42252 + _globals['_MAPRULES']._serialized_start=42255 + _globals['_MAPRULES']._serialized_end=42752 + _globals['_ANYRULES']._serialized_start=42754 + _globals['_ANYRULES']._serialized_end=42803 + _globals['_DURATIONRULES']._serialized_start=42806 + _globals['_DURATIONRULES']._serialized_end=45704 + _globals['_TIMESTAMPRULES']._serialized_start=45707 + _globals['_TIMESTAMPRULES']._serialized_end=48725 +# @@protoc_insertion_point(module_scope) diff --git a/src/buf/validate/validate_pb2.pyi b/src/buf/validate/validate_pb2.pyi new file mode 100644 index 0000000..d49fe1e --- /dev/null +++ b/src/buf/validate/validate_pb2.pyi @@ -0,0 +1,482 @@ +from buf.validate import expression_pb2 as _expression_pb2 +from buf.validate.priv import private_pb2 as _private_pb2 +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class KnownRegex(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + KNOWN_REGEX_UNSPECIFIED: _ClassVar[KnownRegex] + KNOWN_REGEX_HTTP_HEADER_NAME: _ClassVar[KnownRegex] + KNOWN_REGEX_HTTP_HEADER_VALUE: _ClassVar[KnownRegex] +KNOWN_REGEX_UNSPECIFIED: KnownRegex +KNOWN_REGEX_HTTP_HEADER_NAME: KnownRegex +KNOWN_REGEX_HTTP_HEADER_VALUE: KnownRegex +MESSAGE_FIELD_NUMBER: _ClassVar[int] +message: _descriptor.FieldDescriptor +ONEOF_FIELD_NUMBER: _ClassVar[int] +oneof: _descriptor.FieldDescriptor +FIELD_FIELD_NUMBER: _ClassVar[int] +field: _descriptor.FieldDescriptor + +class MessageConstraints(_message.Message): + __slots__ = ("disabled", "cel") + DISABLED_FIELD_NUMBER: _ClassVar[int] + CEL_FIELD_NUMBER: _ClassVar[int] + disabled: bool + cel: _containers.RepeatedCompositeFieldContainer[_expression_pb2.Constraint] + def __init__(self, disabled: bool = ..., cel: _Optional[_Iterable[_Union[_expression_pb2.Constraint, _Mapping]]] = ...) -> None: ... + +class OneofConstraints(_message.Message): + __slots__ = ("required",) + REQUIRED_FIELD_NUMBER: _ClassVar[int] + required: bool + def __init__(self, required: bool = ...) -> None: ... + +class FieldConstraints(_message.Message): + __slots__ = ("cel", "skipped", "required", "ignore_empty", "float", "double", "int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64", "bool", "string", "bytes", "enum", "repeated", "map", "any", "duration", "timestamp") + CEL_FIELD_NUMBER: _ClassVar[int] + SKIPPED_FIELD_NUMBER: _ClassVar[int] + REQUIRED_FIELD_NUMBER: _ClassVar[int] + IGNORE_EMPTY_FIELD_NUMBER: _ClassVar[int] + FLOAT_FIELD_NUMBER: _ClassVar[int] + DOUBLE_FIELD_NUMBER: _ClassVar[int] + INT32_FIELD_NUMBER: _ClassVar[int] + INT64_FIELD_NUMBER: _ClassVar[int] + UINT32_FIELD_NUMBER: _ClassVar[int] + UINT64_FIELD_NUMBER: _ClassVar[int] + SINT32_FIELD_NUMBER: _ClassVar[int] + SINT64_FIELD_NUMBER: _ClassVar[int] + FIXED32_FIELD_NUMBER: _ClassVar[int] + FIXED64_FIELD_NUMBER: _ClassVar[int] + SFIXED32_FIELD_NUMBER: _ClassVar[int] + SFIXED64_FIELD_NUMBER: _ClassVar[int] + BOOL_FIELD_NUMBER: _ClassVar[int] + STRING_FIELD_NUMBER: _ClassVar[int] + BYTES_FIELD_NUMBER: _ClassVar[int] + ENUM_FIELD_NUMBER: _ClassVar[int] + REPEATED_FIELD_NUMBER: _ClassVar[int] + MAP_FIELD_NUMBER: _ClassVar[int] + ANY_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + cel: _containers.RepeatedCompositeFieldContainer[_expression_pb2.Constraint] + skipped: bool + required: bool + ignore_empty: bool + float: FloatRules + double: DoubleRules + int32: Int32Rules + int64: Int64Rules + uint32: UInt32Rules + uint64: UInt64Rules + sint32: SInt32Rules + sint64: SInt64Rules + fixed32: Fixed32Rules + fixed64: Fixed64Rules + sfixed32: SFixed32Rules + sfixed64: SFixed64Rules + bool: BoolRules + string: StringRules + bytes: BytesRules + enum: EnumRules + repeated: RepeatedRules + map: MapRules + any: AnyRules + duration: DurationRules + timestamp: TimestampRules + def __init__(self, cel: _Optional[_Iterable[_Union[_expression_pb2.Constraint, _Mapping]]] = ..., skipped: bool = ..., required: bool = ..., ignore_empty: bool = ..., float: _Optional[_Union[FloatRules, _Mapping]] = ..., double: _Optional[_Union[DoubleRules, _Mapping]] = ..., int32: _Optional[_Union[Int32Rules, _Mapping]] = ..., int64: _Optional[_Union[Int64Rules, _Mapping]] = ..., uint32: _Optional[_Union[UInt32Rules, _Mapping]] = ..., uint64: _Optional[_Union[UInt64Rules, _Mapping]] = ..., sint32: _Optional[_Union[SInt32Rules, _Mapping]] = ..., sint64: _Optional[_Union[SInt64Rules, _Mapping]] = ..., fixed32: _Optional[_Union[Fixed32Rules, _Mapping]] = ..., fixed64: _Optional[_Union[Fixed64Rules, _Mapping]] = ..., sfixed32: _Optional[_Union[SFixed32Rules, _Mapping]] = ..., sfixed64: _Optional[_Union[SFixed64Rules, _Mapping]] = ..., bool: _Optional[_Union[BoolRules, _Mapping]] = ..., string: _Optional[_Union[StringRules, _Mapping]] = ..., bytes: _Optional[_Union[BytesRules, _Mapping]] = ..., enum: _Optional[_Union[EnumRules, _Mapping]] = ..., repeated: _Optional[_Union[RepeatedRules, _Mapping]] = ..., map: _Optional[_Union[MapRules, _Mapping]] = ..., any: _Optional[_Union[AnyRules, _Mapping]] = ..., duration: _Optional[_Union[DurationRules, _Mapping]] = ..., timestamp: _Optional[_Union[TimestampRules, _Mapping]] = ...) -> None: ... + +class FloatRules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "finite") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + FINITE_FIELD_NUMBER: _ClassVar[int] + const: float + lt: float + lte: float + gt: float + gte: float + not_in: _containers.RepeatedScalarFieldContainer[float] + finite: bool + def __init__(self, const: _Optional[float] = ..., lt: _Optional[float] = ..., lte: _Optional[float] = ..., gt: _Optional[float] = ..., gte: _Optional[float] = ..., not_in: _Optional[_Iterable[float]] = ..., finite: bool = ..., **kwargs) -> None: ... + +class DoubleRules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "finite") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + FINITE_FIELD_NUMBER: _ClassVar[int] + const: float + lt: float + lte: float + gt: float + gte: float + not_in: _containers.RepeatedScalarFieldContainer[float] + finite: bool + def __init__(self, const: _Optional[float] = ..., lt: _Optional[float] = ..., lte: _Optional[float] = ..., gt: _Optional[float] = ..., gte: _Optional[float] = ..., not_in: _Optional[_Iterable[float]] = ..., finite: bool = ..., **kwargs) -> None: ... + +class Int32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class Int64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class UInt32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class UInt64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class SInt32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class SInt64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class Fixed32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class Fixed64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class SFixed32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class SFixed64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class BoolRules(_message.Message): + __slots__ = ("const",) + CONST_FIELD_NUMBER: _ClassVar[int] + const: bool + def __init__(self, const: bool = ...) -> None: ... + +class StringRules(_message.Message): + __slots__ = ("const", "len", "min_len", "max_len", "len_bytes", "min_bytes", "max_bytes", "pattern", "prefix", "suffix", "contains", "not_contains", "not_in", "email", "hostname", "ip", "ipv4", "ipv6", "uri", "uri_ref", "address", "uuid", "ip_with_prefixlen", "ipv4_with_prefixlen", "ipv6_with_prefixlen", "ip_prefix", "ipv4_prefix", "ipv6_prefix", "well_known_regex", "strict") + CONST_FIELD_NUMBER: _ClassVar[int] + LEN_FIELD_NUMBER: _ClassVar[int] + MIN_LEN_FIELD_NUMBER: _ClassVar[int] + MAX_LEN_FIELD_NUMBER: _ClassVar[int] + LEN_BYTES_FIELD_NUMBER: _ClassVar[int] + MIN_BYTES_FIELD_NUMBER: _ClassVar[int] + MAX_BYTES_FIELD_NUMBER: _ClassVar[int] + PATTERN_FIELD_NUMBER: _ClassVar[int] + PREFIX_FIELD_NUMBER: _ClassVar[int] + SUFFIX_FIELD_NUMBER: _ClassVar[int] + CONTAINS_FIELD_NUMBER: _ClassVar[int] + NOT_CONTAINS_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EMAIL_FIELD_NUMBER: _ClassVar[int] + HOSTNAME_FIELD_NUMBER: _ClassVar[int] + IP_FIELD_NUMBER: _ClassVar[int] + IPV4_FIELD_NUMBER: _ClassVar[int] + IPV6_FIELD_NUMBER: _ClassVar[int] + URI_FIELD_NUMBER: _ClassVar[int] + URI_REF_FIELD_NUMBER: _ClassVar[int] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + UUID_FIELD_NUMBER: _ClassVar[int] + IP_WITH_PREFIXLEN_FIELD_NUMBER: _ClassVar[int] + IPV4_WITH_PREFIXLEN_FIELD_NUMBER: _ClassVar[int] + IPV6_WITH_PREFIXLEN_FIELD_NUMBER: _ClassVar[int] + IP_PREFIX_FIELD_NUMBER: _ClassVar[int] + IPV4_PREFIX_FIELD_NUMBER: _ClassVar[int] + IPV6_PREFIX_FIELD_NUMBER: _ClassVar[int] + WELL_KNOWN_REGEX_FIELD_NUMBER: _ClassVar[int] + STRICT_FIELD_NUMBER: _ClassVar[int] + const: str + len: int + min_len: int + max_len: int + len_bytes: int + min_bytes: int + max_bytes: int + pattern: str + prefix: str + suffix: str + contains: str + not_contains: str + not_in: _containers.RepeatedScalarFieldContainer[str] + email: bool + hostname: bool + ip: bool + ipv4: bool + ipv6: bool + uri: bool + uri_ref: bool + address: bool + uuid: bool + ip_with_prefixlen: bool + ipv4_with_prefixlen: bool + ipv6_with_prefixlen: bool + ip_prefix: bool + ipv4_prefix: bool + ipv6_prefix: bool + well_known_regex: KnownRegex + strict: bool + def __init__(self, const: _Optional[str] = ..., len: _Optional[int] = ..., min_len: _Optional[int] = ..., max_len: _Optional[int] = ..., len_bytes: _Optional[int] = ..., min_bytes: _Optional[int] = ..., max_bytes: _Optional[int] = ..., pattern: _Optional[str] = ..., prefix: _Optional[str] = ..., suffix: _Optional[str] = ..., contains: _Optional[str] = ..., not_contains: _Optional[str] = ..., not_in: _Optional[_Iterable[str]] = ..., email: bool = ..., hostname: bool = ..., ip: bool = ..., ipv4: bool = ..., ipv6: bool = ..., uri: bool = ..., uri_ref: bool = ..., address: bool = ..., uuid: bool = ..., ip_with_prefixlen: bool = ..., ipv4_with_prefixlen: bool = ..., ipv6_with_prefixlen: bool = ..., ip_prefix: bool = ..., ipv4_prefix: bool = ..., ipv6_prefix: bool = ..., well_known_regex: _Optional[_Union[KnownRegex, str]] = ..., strict: bool = ..., **kwargs) -> None: ... + +class BytesRules(_message.Message): + __slots__ = ("const", "len", "min_len", "max_len", "pattern", "prefix", "suffix", "contains", "not_in", "ip", "ipv4", "ipv6") + CONST_FIELD_NUMBER: _ClassVar[int] + LEN_FIELD_NUMBER: _ClassVar[int] + MIN_LEN_FIELD_NUMBER: _ClassVar[int] + MAX_LEN_FIELD_NUMBER: _ClassVar[int] + PATTERN_FIELD_NUMBER: _ClassVar[int] + PREFIX_FIELD_NUMBER: _ClassVar[int] + SUFFIX_FIELD_NUMBER: _ClassVar[int] + CONTAINS_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + IP_FIELD_NUMBER: _ClassVar[int] + IPV4_FIELD_NUMBER: _ClassVar[int] + IPV6_FIELD_NUMBER: _ClassVar[int] + const: bytes + len: int + min_len: int + max_len: int + pattern: str + prefix: bytes + suffix: bytes + contains: bytes + not_in: _containers.RepeatedScalarFieldContainer[bytes] + ip: bool + ipv4: bool + ipv6: bool + def __init__(self, const: _Optional[bytes] = ..., len: _Optional[int] = ..., min_len: _Optional[int] = ..., max_len: _Optional[int] = ..., pattern: _Optional[str] = ..., prefix: _Optional[bytes] = ..., suffix: _Optional[bytes] = ..., contains: _Optional[bytes] = ..., not_in: _Optional[_Iterable[bytes]] = ..., ip: bool = ..., ipv4: bool = ..., ipv6: bool = ..., **kwargs) -> None: ... + +class EnumRules(_message.Message): + __slots__ = ("const", "defined_only", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + DEFINED_ONLY_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: int + defined_only: bool + not_in: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., defined_only: bool = ..., not_in: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class RepeatedRules(_message.Message): + __slots__ = ("min_items", "max_items", "unique", "items") + MIN_ITEMS_FIELD_NUMBER: _ClassVar[int] + MAX_ITEMS_FIELD_NUMBER: _ClassVar[int] + UNIQUE_FIELD_NUMBER: _ClassVar[int] + ITEMS_FIELD_NUMBER: _ClassVar[int] + min_items: int + max_items: int + unique: bool + items: FieldConstraints + def __init__(self, min_items: _Optional[int] = ..., max_items: _Optional[int] = ..., unique: bool = ..., items: _Optional[_Union[FieldConstraints, _Mapping]] = ...) -> None: ... + +class MapRules(_message.Message): + __slots__ = ("min_pairs", "max_pairs", "keys", "values") + MIN_PAIRS_FIELD_NUMBER: _ClassVar[int] + MAX_PAIRS_FIELD_NUMBER: _ClassVar[int] + KEYS_FIELD_NUMBER: _ClassVar[int] + VALUES_FIELD_NUMBER: _ClassVar[int] + min_pairs: int + max_pairs: int + keys: FieldConstraints + values: FieldConstraints + def __init__(self, min_pairs: _Optional[int] = ..., max_pairs: _Optional[int] = ..., keys: _Optional[_Union[FieldConstraints, _Mapping]] = ..., values: _Optional[_Union[FieldConstraints, _Mapping]] = ...) -> None: ... + +class AnyRules(_message.Message): + __slots__ = ("not_in",) + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + not_in: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, not_in: _Optional[_Iterable[str]] = ..., **kwargs) -> None: ... + +class DurationRules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + const: _duration_pb2.Duration + lt: _duration_pb2.Duration + lte: _duration_pb2.Duration + gt: _duration_pb2.Duration + gte: _duration_pb2.Duration + not_in: _containers.RepeatedCompositeFieldContainer[_duration_pb2.Duration] + def __init__(self, const: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., lt: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., lte: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., gt: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., gte: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., not_in: _Optional[_Iterable[_Union[_duration_pb2.Duration, _Mapping]]] = ..., **kwargs) -> None: ... + +class TimestampRules(_message.Message): + __slots__ = ("const", "lt", "lte", "lt_now", "gt", "gte", "gt_now", "within") + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + LT_NOW_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + GT_NOW_FIELD_NUMBER: _ClassVar[int] + WITHIN_FIELD_NUMBER: _ClassVar[int] + const: _timestamp_pb2.Timestamp + lt: _timestamp_pb2.Timestamp + lte: _timestamp_pb2.Timestamp + lt_now: bool + gt: _timestamp_pb2.Timestamp + gte: _timestamp_pb2.Timestamp + gt_now: bool + within: _duration_pb2.Duration + def __init__(self, const: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., lt: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., lte: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., lt_now: bool = ..., gt: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., gte: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., gt_now: bool = ..., within: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... diff --git a/src/buf/validate/validate_pb2_grpc.py b/src/buf/validate/validate_pb2_grpc.py new file mode 100644 index 0000000..2daafff --- /dev/null +++ b/src/buf/validate/validate_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + diff --git a/src/buf/validate/validate_pb2_grpc.pyi b/src/buf/validate/validate_pb2_grpc.pyi new file mode 100644 index 0000000..f109cf1 --- /dev/null +++ b/src/buf/validate/validate_pb2_grpc.pyi @@ -0,0 +1,30 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Copyright 2023 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. +""" +import abc +import collections.abc +import grpc +import grpc.aio +import typing + +_T = typing.TypeVar('_T') + +class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): + ... + +class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: ignore + ... diff --git a/src/google/api/annotations_pb2.py b/src/google/api/annotations_pb2.py index 2ee2a21..f7d5045 100644 --- a/src/google/api/annotations_pb2.py +++ b/src/google/api/annotations_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: google/api/annotations.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/google/api/annotations_pb2.pyi b/src/google/api/annotations_pb2.pyi index dffbc29..b818f18 100644 --- a/src/google/api/annotations_pb2.pyi +++ b/src/google/api/annotations_pb2.pyi @@ -1,28 +1,8 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -Copyright 2015 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. -""" -import builtins -import google.api.http_pb2 -import google.protobuf.descriptor -import google.protobuf.descriptor_pb2 -import google.protobuf.internal.extension_dict - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -HTTP_FIELD_NUMBER: builtins.int -http: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MethodOptions, google.api.http_pb2.HttpRule] -"""See `HttpRule`.""" +from google.api import http_pb2 as _http_pb2 +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from google.protobuf import descriptor as _descriptor +from typing import ClassVar as _ClassVar + +DESCRIPTOR: _descriptor.FileDescriptor +HTTP_FIELD_NUMBER: _ClassVar[int] +http: _descriptor.FieldDescriptor diff --git a/src/google/api/field_behavior_pb2.py b/src/google/api/field_behavior_pb2.py index 7b60694..a247a96 100644 --- a/src/google/api/field_behavior_pb2.py +++ b/src/google/api/field_behavior_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: google/api/field_behavior.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/google/api/field_behavior_pb2.pyi b/src/google/api/field_behavior_pb2.pyi index 996c1dc..c090c5d 100644 --- a/src/google/api/field_behavior_pb2.pyi +++ b/src/google/api/field_behavior_pb2.pyi @@ -1,174 +1,29 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -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 - - 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. -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.descriptor_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.internal.extension_dict -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _FieldBehavior: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _FieldBehaviorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FieldBehavior.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - FIELD_BEHAVIOR_UNSPECIFIED: _FieldBehavior.ValueType # 0 - """Conventional default for enums. Do not use this.""" - OPTIONAL: _FieldBehavior.ValueType # 1 - """Specifically denotes a field as optional. - While all fields in protocol buffers are optional, this may be specified - for emphasis if appropriate. - """ - REQUIRED: _FieldBehavior.ValueType # 2 - """Denotes a field as required. - This indicates that the field **must** be provided as part of the request, - and failure to do so will cause an error (usually `INVALID_ARGUMENT`). - """ - OUTPUT_ONLY: _FieldBehavior.ValueType # 3 - """Denotes a field as output only. - This indicates that the field is provided in responses, but including the - field in a request does nothing (the server *must* ignore it and - *must not* throw an error as a result of the field's presence). - """ - INPUT_ONLY: _FieldBehavior.ValueType # 4 - """Denotes a field as input only. - This indicates that the field is provided in requests, and the - corresponding field is not included in output. - """ - IMMUTABLE: _FieldBehavior.ValueType # 5 - """Denotes a field as immutable. - This indicates that the field may be set once in a request to create a - resource, but may not be changed thereafter. - """ - UNORDERED_LIST: _FieldBehavior.ValueType # 6 - """Denotes that a (repeated) field is an unordered list. - This indicates that the service may provide the elements of the list - in any arbitrary order, rather than the order the user originally - provided. Additionally, the list's order may or may not be stable. - """ - NON_EMPTY_DEFAULT: _FieldBehavior.ValueType # 7 - """Denotes that this field returns a non-empty default value if not set. - This indicates that if the user provides the empty value in a request, - a non-empty value will be returned. The user will not be aware of what - non-empty value to expect. - """ - IDENTIFIER: _FieldBehavior.ValueType # 8 - """Denotes that the field in a resource (a message annotated with - google.api.resource) is used in the resource name to uniquely identify the - resource. For AIP-compliant APIs, this should only be applied to the - `name` field on the resource. - - This behavior should not be applied to references to other resources within - the message. - - The identifier field of resources often have different field behavior - depending on the request it is embedded in (e.g. for Create methods name - is optional and unused, while for Update methods it is required). Instead - of method-specific annotations, only `IDENTIFIER` is required. - """ - -class FieldBehavior(_FieldBehavior, metaclass=_FieldBehaviorEnumTypeWrapper): - """An indicator of the behavior of a given field (for example, that a field - is required in requests, or given as output but ignored as input). - This **does not** change the behavior in protocol buffers itself; it only - denotes the behavior and may affect how API tooling handles the field. - - Note: This enum **may** receive new values in the future. - """ - -FIELD_BEHAVIOR_UNSPECIFIED: FieldBehavior.ValueType # 0 -"""Conventional default for enums. Do not use this.""" -OPTIONAL: FieldBehavior.ValueType # 1 -"""Specifically denotes a field as optional. -While all fields in protocol buffers are optional, this may be specified -for emphasis if appropriate. -""" -REQUIRED: FieldBehavior.ValueType # 2 -"""Denotes a field as required. -This indicates that the field **must** be provided as part of the request, -and failure to do so will cause an error (usually `INVALID_ARGUMENT`). -""" -OUTPUT_ONLY: FieldBehavior.ValueType # 3 -"""Denotes a field as output only. -This indicates that the field is provided in responses, but including the -field in a request does nothing (the server *must* ignore it and -*must not* throw an error as a result of the field's presence). -""" -INPUT_ONLY: FieldBehavior.ValueType # 4 -"""Denotes a field as input only. -This indicates that the field is provided in requests, and the -corresponding field is not included in output. -""" -IMMUTABLE: FieldBehavior.ValueType # 5 -"""Denotes a field as immutable. -This indicates that the field may be set once in a request to create a -resource, but may not be changed thereafter. -""" -UNORDERED_LIST: FieldBehavior.ValueType # 6 -"""Denotes that a (repeated) field is an unordered list. -This indicates that the service may provide the elements of the list -in any arbitrary order, rather than the order the user originally -provided. Additionally, the list's order may or may not be stable. -""" -NON_EMPTY_DEFAULT: FieldBehavior.ValueType # 7 -"""Denotes that this field returns a non-empty default value if not set. -This indicates that if the user provides the empty value in a request, -a non-empty value will be returned. The user will not be aware of what -non-empty value to expect. -""" -IDENTIFIER: FieldBehavior.ValueType # 8 -"""Denotes that the field in a resource (a message annotated with -google.api.resource) is used in the resource name to uniquely identify the -resource. For AIP-compliant APIs, this should only be applied to the -`name` field on the resource. - -This behavior should not be applied to references to other resources within -the message. - -The identifier field of resources often have different field behavior -depending on the request it is embedded in (e.g. for Create methods name -is optional and unused, while for Update methods it is required). Instead -of method-specific annotations, only `IDENTIFIER` is required. -""" -global___FieldBehavior = FieldBehavior - -FIELD_BEHAVIOR_FIELD_NUMBER: builtins.int -field_behavior: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___FieldBehavior.ValueType]] -"""A designation of a specific field behavior (required, output only, etc.) -in protobuf messages. - -Examples: - - string name = 1 [(google.api.field_behavior) = REQUIRED]; - State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - google.protobuf.Duration ttl = 1 - [(google.api.field_behavior) = INPUT_ONLY]; - google.protobuf.Timestamp expire_time = 1 - [(google.api.field_behavior) = OUTPUT_ONLY, - (google.api.field_behavior) = IMMUTABLE]; -""" +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from typing import ClassVar as _ClassVar + +DESCRIPTOR: _descriptor.FileDescriptor + +class FieldBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + FIELD_BEHAVIOR_UNSPECIFIED: _ClassVar[FieldBehavior] + OPTIONAL: _ClassVar[FieldBehavior] + REQUIRED: _ClassVar[FieldBehavior] + OUTPUT_ONLY: _ClassVar[FieldBehavior] + INPUT_ONLY: _ClassVar[FieldBehavior] + IMMUTABLE: _ClassVar[FieldBehavior] + UNORDERED_LIST: _ClassVar[FieldBehavior] + NON_EMPTY_DEFAULT: _ClassVar[FieldBehavior] + IDENTIFIER: _ClassVar[FieldBehavior] +FIELD_BEHAVIOR_UNSPECIFIED: FieldBehavior +OPTIONAL: FieldBehavior +REQUIRED: FieldBehavior +OUTPUT_ONLY: FieldBehavior +INPUT_ONLY: FieldBehavior +IMMUTABLE: FieldBehavior +UNORDERED_LIST: FieldBehavior +NON_EMPTY_DEFAULT: FieldBehavior +IDENTIFIER: FieldBehavior +FIELD_BEHAVIOR_FIELD_NUMBER: _ClassVar[int] +field_behavior: _descriptor.FieldDescriptor diff --git a/src/google/api/http_pb2.py b/src/google/api/http_pb2.py index f81b5ec..d577105 100644 --- a/src/google/api/http_pb2.py +++ b/src/google/api/http_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: google/api/http.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/google/api/http_pb2.pyi b/src/google/api/http_pb2.pyi index 1922b0a..902f96e 100644 --- a/src/google/api/http_pb2.pyi +++ b/src/google/api/http_pb2.pyi @@ -1,442 +1,46 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -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 - - 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. -""" -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import sys - -if sys.version_info >= (3, 8): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class Http(google.protobuf.message.Message): - """Defines the HTTP configuration for an API service. It contains a list of - [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method - to one or more HTTP REST API methods. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - RULES_FIELD_NUMBER: builtins.int - FULLY_DECODE_RESERVED_EXPANSION_FIELD_NUMBER: builtins.int - @property - def rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HttpRule]: - """A list of HTTP configuration rules that apply to individual API methods. - - **NOTE:** All service configuration rules follow "last one wins" order. - """ - fully_decode_reserved_expansion: builtins.bool - """When set to true, URL path parameters will be fully URI-decoded except in - cases of single segment matches in reserved expansion, where "%2F" will be - left encoded. - - The default behavior is to not decode RFC 6570 reserved characters in multi - segment matches. - """ - def __init__( - self, - *, - rules: collections.abc.Iterable[global___HttpRule] | None = ..., - fully_decode_reserved_expansion: builtins.bool = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["fully_decode_reserved_expansion", b"fully_decode_reserved_expansion", "rules", b"rules"]) -> None: ... - -global___Http = Http - -@typing_extensions.final -class HttpRule(google.protobuf.message.Message): - """# gRPC Transcoding - - gRPC Transcoding is a feature for mapping between a gRPC method and one or - more HTTP REST endpoints. It allows developers to build a single API service - that supports both gRPC APIs and REST APIs. Many systems, including [Google - APIs](https://github.com/googleapis/googleapis), - [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC - Gateway](https://github.com/grpc-ecosystem/grpc-gateway), - and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature - and use it for large scale production services. - - `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies - how different portions of the gRPC request message are mapped to the URL - path, URL query parameters, and HTTP request body. It also controls how the - gRPC response message is mapped to the HTTP response body. `HttpRule` is - typically specified as an `google.api.http` annotation on the gRPC method. - - Each mapping specifies a URL path template and an HTTP method. The path - template may refer to one or more fields in the gRPC request message, as long - as each field is a non-repeated field with a primitive (non-message) type. - The path template controls how fields of the request message are mapped to - the URL path. - - Example: - - service Messaging { - rpc GetMessage(GetMessageRequest) returns (Message) { - option (google.api.http) = { - get: "/v1/{name=messages/*}" - }; - } - } - message GetMessageRequest { - string name = 1; // Mapped to URL path. - } - message Message { - string text = 1; // The resource content. - } - - This enables an HTTP REST to gRPC mapping as below: - - HTTP | gRPC - -----|----- - `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` - - Any fields in the request message which are not bound by the path template - automatically become HTTP query parameters if there is no HTTP request body. - For example: - - service Messaging { - rpc GetMessage(GetMessageRequest) returns (Message) { - option (google.api.http) = { - get:"/v1/messages/{message_id}" - }; - } - } - message GetMessageRequest { - message SubMessage { - string subfield = 1; - } - string message_id = 1; // Mapped to URL path. - int64 revision = 2; // Mapped to URL query parameter `revision`. - SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. - } - - This enables a HTTP JSON to RPC mapping as below: - - HTTP | gRPC - -----|----- - `GET /v1/messages/123456?revision=2&sub.subfield=foo` | - `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: - "foo"))` - - Note that fields which are mapped to URL query parameters must have a - primitive type or a repeated primitive type or a non-repeated message type. - In the case of a repeated type, the parameter can be repeated in the URL - as `...?param=A¶m=B`. In the case of a message type, each field of the - message is mapped to a separate parameter, such as - `...?foo.a=A&foo.b=B&foo.c=C`. - - For HTTP methods that allow a request body, the `body` field - specifies the mapping. Consider a REST update method on the - message resource collection: - - service Messaging { - rpc UpdateMessage(UpdateMessageRequest) returns (Message) { - option (google.api.http) = { - patch: "/v1/messages/{message_id}" - body: "message" - }; - } - } - message UpdateMessageRequest { - string message_id = 1; // mapped to the URL - Message message = 2; // mapped to the body - } - - The following HTTP JSON to RPC mapping is enabled, where the - representation of the JSON in the request body is determined by - protos JSON encoding: - - HTTP | gRPC - -----|----- - `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: - "123456" message { text: "Hi!" })` - - The special name `*` can be used in the body mapping to define that - every field not bound by the path template should be mapped to the - request body. This enables the following alternative definition of - the update method: - - service Messaging { - rpc UpdateMessage(Message) returns (Message) { - option (google.api.http) = { - patch: "/v1/messages/{message_id}" - body: "*" - }; - } - } - message Message { - string message_id = 1; - string text = 2; - } - - - The following HTTP JSON to RPC mapping is enabled: - - HTTP | gRPC - -----|----- - `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: - "123456" text: "Hi!")` - - Note that when using `*` in the body mapping, it is not possible to - have HTTP parameters, as all fields not bound by the path end in - the body. This makes this option more rarely used in practice when - defining REST APIs. The common usage of `*` is in custom methods - which don't use the URL at all for transferring data. - - It is possible to define multiple HTTP methods for one RPC by using - the `additional_bindings` option. Example: - - service Messaging { - rpc GetMessage(GetMessageRequest) returns (Message) { - option (google.api.http) = { - get: "/v1/messages/{message_id}" - additional_bindings { - get: "/v1/users/{user_id}/messages/{message_id}" - } - }; - } - } - message GetMessageRequest { - string message_id = 1; - string user_id = 2; - } - - This enables the following two alternative HTTP JSON to RPC mappings: - - HTTP | gRPC - -----|----- - `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` - `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: - "123456")` - - ## Rules for HTTP mapping - - 1. Leaf request fields (recursive expansion nested messages in the request - message) are classified into three categories: - - Fields referred by the path template. They are passed via the URL path. - - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They - are passed via the HTTP - request body. - - All other fields are passed via the URL query parameters, and the - parameter name is the field path in the request message. A repeated - field can be represented as multiple query parameters under the same - name. - 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL - query parameter, all fields - are passed via URL path and HTTP request body. - 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP - request body, all - fields are passed via URL path and URL query parameters. - - ### Path template syntax - - Template = "/" Segments [ Verb ] ; - Segments = Segment { "/" Segment } ; - Segment = "*" | "**" | LITERAL | Variable ; - Variable = "{" FieldPath [ "=" Segments ] "}" ; - FieldPath = IDENT { "." IDENT } ; - Verb = ":" LITERAL ; - - The syntax `*` matches a single URL path segment. The syntax `**` matches - zero or more URL path segments, which must be the last part of the URL path - except the `Verb`. - - The syntax `Variable` matches part of the URL path as specified by its - template. A variable template must not contain other variables. If a variable - matches a single path segment, its template may be omitted, e.g. `{var}` - is equivalent to `{var=*}`. - - The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` - contains any reserved character, such characters should be percent-encoded - before the matching. - - If a variable contains exactly one path segment, such as `"{var}"` or - `"{var=*}"`, when such a variable is expanded into a URL path on the client - side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The - server side does the reverse decoding. Such variables show up in the - [Discovery - Document](https://developers.google.com/discovery/v1/reference/apis) as - `{var}`. - - If a variable contains multiple path segments, such as `"{var=foo/*}"` - or `"{var=**}"`, when such a variable is expanded into a URL path on the - client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. - The server side does the reverse decoding, except "%2F" and "%2f" are left - unchanged. Such variables show up in the - [Discovery - Document](https://developers.google.com/discovery/v1/reference/apis) as - `{+var}`. - - ## Using gRPC API Service Configuration - - gRPC API Service Configuration (service config) is a configuration language - for configuring a gRPC service to become a user-facing product. The - service config is simply the YAML representation of the `google.api.Service` - proto message. - - As an alternative to annotating your proto file, you can configure gRPC - transcoding in your service config YAML files. You do this by specifying a - `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same - effect as the proto annotation. This can be particularly useful if you - have a proto that is reused in multiple services. Note that any transcoding - specified in the service config will override any matching transcoding - configuration in the proto. - - Example: - - http: - rules: - # Selects a gRPC method and applies HttpRule to it. - - selector: example.v1.Messaging.GetMessage - get: /v1/messages/{message_id}/{sub.subfield} - - ## Special notes - - When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the - proto to JSON conversion must follow the [proto3 - specification](https://developers.google.com/protocol-buffers/docs/proto3#json). - - While the single segment variable follows the semantics of - [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String - Expansion, the multi segment variable **does not** follow RFC 6570 Section - 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion - does not expand special characters like `?` and `#`, which would lead - to invalid URLs. As the result, gRPC Transcoding uses a custom encoding - for multi segment variables. - - The path variables **must not** refer to any repeated or mapped field, - because client libraries are not capable of handling such variable expansion. - - The path variables **must not** capture the leading "/" character. The reason - is that the most common use case "{var}" does not capture the leading "/" - character. For consistency, all path variables must share the same behavior. - - Repeated message fields must not be mapped to URL query parameters, because - no client library can support such complicated mapping. - - If an API needs to use a JSON array for request or response body, it can map - the request or response body to a repeated field. However, some gRPC - Transcoding implementations may not support this feature. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SELECTOR_FIELD_NUMBER: builtins.int - GET_FIELD_NUMBER: builtins.int - PUT_FIELD_NUMBER: builtins.int - POST_FIELD_NUMBER: builtins.int - DELETE_FIELD_NUMBER: builtins.int - PATCH_FIELD_NUMBER: builtins.int - CUSTOM_FIELD_NUMBER: builtins.int - BODY_FIELD_NUMBER: builtins.int - RESPONSE_BODY_FIELD_NUMBER: builtins.int - ADDITIONAL_BINDINGS_FIELD_NUMBER: builtins.int - selector: builtins.str - """Selects a method to which this rule applies. - - Refer to [selector][google.api.DocumentationRule.selector] for syntax - details. - """ - get: builtins.str - """Maps to HTTP GET. Used for listing and getting information about - resources. - """ - put: builtins.str - """Maps to HTTP PUT. Used for replacing a resource.""" - post: builtins.str - """Maps to HTTP POST. Used for creating a resource or performing an action.""" - delete: builtins.str - """Maps to HTTP DELETE. Used for deleting a resource.""" - patch: builtins.str - """Maps to HTTP PATCH. Used for updating a resource.""" - @property - def custom(self) -> global___CustomHttpPattern: - """The custom pattern is used for specifying an HTTP method that is not - included in the `pattern` field, such as HEAD, or "*" to leave the - HTTP method unspecified for this rule. The wild-card rule is useful - for services that provide content to Web (HTML) clients. - """ - body: builtins.str - """The name of the request field whose value is mapped to the HTTP request - body, or `*` for mapping all request fields not captured by the path - pattern to the HTTP body, or omitted for not having any HTTP request body. - - NOTE: the referred field must be present at the top-level of the request - message type. - """ - response_body: builtins.str - """Optional. The name of the response field whose value is mapped to the HTTP - response body. When omitted, the entire response message will be used - as the HTTP response body. - - NOTE: The referred field must be present at the top-level of the response - message type. - """ - @property - def additional_bindings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HttpRule]: - """Additional HTTP bindings for the selector. Nested bindings must - not contain an `additional_bindings` field themselves (that is, - the nesting may only be one level deep). - """ - def __init__( - self, - *, - selector: builtins.str = ..., - get: builtins.str = ..., - put: builtins.str = ..., - post: builtins.str = ..., - delete: builtins.str = ..., - patch: builtins.str = ..., - custom: global___CustomHttpPattern | None = ..., - body: builtins.str = ..., - response_body: builtins.str = ..., - additional_bindings: collections.abc.Iterable[global___HttpRule] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["custom", b"custom", "delete", b"delete", "get", b"get", "patch", b"patch", "pattern", b"pattern", "post", b"post", "put", b"put"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["additional_bindings", b"additional_bindings", "body", b"body", "custom", b"custom", "delete", b"delete", "get", b"get", "patch", b"patch", "pattern", b"pattern", "post", b"post", "put", b"put", "response_body", b"response_body", "selector", b"selector"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["pattern", b"pattern"]) -> typing_extensions.Literal["get", "put", "post", "delete", "patch", "custom"] | None: ... - -global___HttpRule = HttpRule - -@typing_extensions.final -class CustomHttpPattern(google.protobuf.message.Message): - """A custom pattern is used for defining custom HTTP verb.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KIND_FIELD_NUMBER: builtins.int - PATH_FIELD_NUMBER: builtins.int - kind: builtins.str - """The name of this custom HTTP verb.""" - path: builtins.str - """The path matched by this custom verb.""" - def __init__( - self, - *, - kind: builtins.str = ..., - path: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["kind", b"kind", "path", b"path"]) -> None: ... - -global___CustomHttpPattern = CustomHttpPattern +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Http(_message.Message): + __slots__ = ("rules", "fully_decode_reserved_expansion") + RULES_FIELD_NUMBER: _ClassVar[int] + FULLY_DECODE_RESERVED_EXPANSION_FIELD_NUMBER: _ClassVar[int] + rules: _containers.RepeatedCompositeFieldContainer[HttpRule] + fully_decode_reserved_expansion: bool + def __init__(self, rules: _Optional[_Iterable[_Union[HttpRule, _Mapping]]] = ..., fully_decode_reserved_expansion: bool = ...) -> None: ... + +class HttpRule(_message.Message): + __slots__ = ("selector", "get", "put", "post", "delete", "patch", "custom", "body", "response_body", "additional_bindings") + SELECTOR_FIELD_NUMBER: _ClassVar[int] + GET_FIELD_NUMBER: _ClassVar[int] + PUT_FIELD_NUMBER: _ClassVar[int] + POST_FIELD_NUMBER: _ClassVar[int] + DELETE_FIELD_NUMBER: _ClassVar[int] + PATCH_FIELD_NUMBER: _ClassVar[int] + CUSTOM_FIELD_NUMBER: _ClassVar[int] + BODY_FIELD_NUMBER: _ClassVar[int] + RESPONSE_BODY_FIELD_NUMBER: _ClassVar[int] + ADDITIONAL_BINDINGS_FIELD_NUMBER: _ClassVar[int] + selector: str + get: str + put: str + post: str + delete: str + patch: str + custom: CustomHttpPattern + body: str + response_body: str + additional_bindings: _containers.RepeatedCompositeFieldContainer[HttpRule] + def __init__(self, selector: _Optional[str] = ..., get: _Optional[str] = ..., put: _Optional[str] = ..., post: _Optional[str] = ..., delete: _Optional[str] = ..., patch: _Optional[str] = ..., custom: _Optional[_Union[CustomHttpPattern, _Mapping]] = ..., body: _Optional[str] = ..., response_body: _Optional[str] = ..., additional_bindings: _Optional[_Iterable[_Union[HttpRule, _Mapping]]] = ...) -> None: ... + +class CustomHttpPattern(_message.Message): + __slots__ = ("kind", "path") + KIND_FIELD_NUMBER: _ClassVar[int] + PATH_FIELD_NUMBER: _ClassVar[int] + kind: str + path: str + def __init__(self, kind: _Optional[str] = ..., path: _Optional[str] = ...) -> None: ... diff --git a/src/protoc_gen_openapiv2/options/annotations_pb2.py b/src/protoc_gen_openapiv2/options/annotations_pb2.py index cafaceb..e2c3522 100644 --- a/src/protoc_gen_openapiv2/options/annotations_pb2.py +++ b/src/protoc_gen_openapiv2/options/annotations_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: protoc-gen-openapiv2/options/annotations.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/protoc_gen_openapiv2/options/annotations_pb2.pyi b/src/protoc_gen_openapiv2/options/annotations_pb2.pyi index 85f029f..912afe8 100644 --- a/src/protoc_gen_openapiv2/options/annotations_pb2.pyi +++ b/src/protoc_gen_openapiv2/options/annotations_pb2.pyi @@ -1,47 +1,16 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import google.protobuf.descriptor -import google.protobuf.descriptor_pb2 -import google.protobuf.internal.extension_dict -import protoc_gen_openapiv2.options.openapiv2_pb2 +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from protoc_gen_openapiv2.options import openapiv2_pb2 as _openapiv2_pb2 +from google.protobuf import descriptor as _descriptor +from typing import ClassVar as _ClassVar -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -OPENAPIV2_SWAGGER_FIELD_NUMBER: builtins.int -OPENAPIV2_OPERATION_FIELD_NUMBER: builtins.int -OPENAPIV2_SCHEMA_FIELD_NUMBER: builtins.int -OPENAPIV2_TAG_FIELD_NUMBER: builtins.int -OPENAPIV2_FIELD_FIELD_NUMBER: builtins.int -openapiv2_swagger: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FileOptions, protoc_gen_openapiv2.options.openapiv2_pb2.Swagger] -"""ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - -All IDs are the same, as assigned. It is okay that they are the same, as they extend -different descriptor messages. -""" -openapiv2_operation: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MethodOptions, protoc_gen_openapiv2.options.openapiv2_pb2.Operation] -"""ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - -All IDs are the same, as assigned. It is okay that they are the same, as they extend -different descriptor messages. -""" -openapiv2_schema: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, protoc_gen_openapiv2.options.openapiv2_pb2.Schema] -"""ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - -All IDs are the same, as assigned. It is okay that they are the same, as they extend -different descriptor messages. -""" -openapiv2_tag: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.ServiceOptions, protoc_gen_openapiv2.options.openapiv2_pb2.Tag] -"""ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - -All IDs are the same, as assigned. It is okay that they are the same, as they extend -different descriptor messages. -""" -openapiv2_field: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, protoc_gen_openapiv2.options.openapiv2_pb2.JSONSchema] -"""ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - -All IDs are the same, as assigned. It is okay that they are the same, as they extend -different descriptor messages. -""" +DESCRIPTOR: _descriptor.FileDescriptor +OPENAPIV2_SWAGGER_FIELD_NUMBER: _ClassVar[int] +openapiv2_swagger: _descriptor.FieldDescriptor +OPENAPIV2_OPERATION_FIELD_NUMBER: _ClassVar[int] +openapiv2_operation: _descriptor.FieldDescriptor +OPENAPIV2_SCHEMA_FIELD_NUMBER: _ClassVar[int] +openapiv2_schema: _descriptor.FieldDescriptor +OPENAPIV2_TAG_FIELD_NUMBER: _ClassVar[int] +openapiv2_tag: _descriptor.FieldDescriptor +OPENAPIV2_FIELD_FIELD_NUMBER: _ClassVar[int] +openapiv2_field: _descriptor.FieldDescriptor diff --git a/src/protoc_gen_openapiv2/options/openapiv2_pb2.py b/src/protoc_gen_openapiv2/options/openapiv2_pb2.py index aa927d6..bcdaca0 100644 --- a/src/protoc_gen_openapiv2/options/openapiv2_pb2.py +++ b/src/protoc_gen_openapiv2/options/openapiv2_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: protoc-gen-openapiv2/options/openapiv2.proto -# Protobuf Python Version: 4.25.0 +# Protobuf Python Version: 4.25.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool diff --git a/src/protoc_gen_openapiv2/options/openapiv2_pb2.pyi b/src/protoc_gen_openapiv2/options/openapiv2_pb2.pyi index 4657416..f6b4adf 100644 --- a/src/protoc_gen_openapiv2/options/openapiv2_pb2.pyi +++ b/src/protoc_gen_openapiv2/options/openapiv2_pb2.pyi @@ -1,1493 +1,462 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _Scheme: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _SchemeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Scheme.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNKNOWN: _Scheme.ValueType # 0 - HTTP: _Scheme.ValueType # 1 - HTTPS: _Scheme.ValueType # 2 - WS: _Scheme.ValueType # 3 - WSS: _Scheme.ValueType # 4 - -class Scheme(_Scheme, metaclass=_SchemeEnumTypeWrapper): - """Scheme describes the schemes supported by the OpenAPI Swagger - and Operation objects. - """ - -UNKNOWN: Scheme.ValueType # 0 -HTTP: Scheme.ValueType # 1 -HTTPS: Scheme.ValueType # 2 -WS: Scheme.ValueType # 3 -WSS: Scheme.ValueType # 4 -global___Scheme = Scheme - -@typing_extensions.final -class Swagger(google.protobuf.message.Message): - """`Swagger` is a representation of OpenAPI v2 specification's Swagger object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#swaggerObject - - Example: - - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { - info: { - title: "Echo API"; - version: "1.0"; - description: ""; - contact: { - name: "gRPC-Gateway project"; - url: "https://github.com/grpc-ecosystem/grpc-gateway"; - email: "none@example.com"; - }; - license: { - name: "BSD 3-Clause License"; - url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE"; - }; - }; - schemes: HTTPS; - consumes: "application/json"; - produces: "application/json"; - }; - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ResponsesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> global___Response: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: global___Response | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - @typing_extensions.final - class ExtensionsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> google.protobuf.struct_pb2.Value: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: google.protobuf.struct_pb2.Value | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - SWAGGER_FIELD_NUMBER: builtins.int - INFO_FIELD_NUMBER: builtins.int - HOST_FIELD_NUMBER: builtins.int - BASE_PATH_FIELD_NUMBER: builtins.int - SCHEMES_FIELD_NUMBER: builtins.int - CONSUMES_FIELD_NUMBER: builtins.int - PRODUCES_FIELD_NUMBER: builtins.int - RESPONSES_FIELD_NUMBER: builtins.int - SECURITY_DEFINITIONS_FIELD_NUMBER: builtins.int - SECURITY_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - EXTERNAL_DOCS_FIELD_NUMBER: builtins.int - EXTENSIONS_FIELD_NUMBER: builtins.int - swagger: builtins.str - """Specifies the OpenAPI Specification version being used. It can be - used by the OpenAPI UI and other clients to interpret the API listing. The - value MUST be "2.0". - """ - @property - def info(self) -> global___Info: - """Provides metadata about the API. The metadata can be used by the - clients if needed. - """ - host: builtins.str - """The host (name or ip) serving the API. This MUST be the host only and does - not include the scheme nor sub-paths. It MAY include a port. If the host is - not included, the host serving the documentation is to be used (including - the port). The host does not support path templating. - """ - base_path: builtins.str - """The base path on which the API is served, which is relative to the host. If - it is not included, the API is served directly under the host. The value - MUST start with a leading slash (/). The basePath does not support path - templating. - Note that using `base_path` does not change the endpoint paths that are - generated in the resulting OpenAPI file. If you wish to use `base_path` - with relatively generated OpenAPI paths, the `base_path` prefix must be - manually removed from your `google.api.http` paths and your code changed to - serve the API from the `base_path`. - """ - @property - def schemes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___Scheme.ValueType]: - """The transfer protocol of the API. Values MUST be from the list: "http", - "https", "ws", "wss". If the schemes is not included, the default scheme to - be used is the one used to access the OpenAPI definition itself. - """ - @property - def consumes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """A list of MIME types the APIs can consume. This is global to all APIs but - can be overridden on specific API calls. Value MUST be as described under - Mime Types. - """ - @property - def produces(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """A list of MIME types the APIs can produce. This is global to all APIs but - can be overridden on specific API calls. Value MUST be as described under - Mime Types. - """ - @property - def responses(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Response]: - """An object to hold responses that can be used across operations. This - property does not define global responses for all operations. - """ - @property - def security_definitions(self) -> global___SecurityDefinitions: - """Security scheme definitions that can be used across the specification.""" - @property - def security(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SecurityRequirement]: - """A declaration of which security schemes are applied for the API as a whole. - The list of values describes alternative security schemes that can be used - (that is, there is a logical OR between the security requirements). - Individual operations can override this definition. - """ - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Tag]: - """A list of tags for API documentation control. Tags can be used for logical - grouping of operations by resources or any other qualifier. - """ - @property - def external_docs(self) -> global___ExternalDocumentation: - """Additional external documentation.""" - @property - def extensions(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: - """Custom properties that start with "x-" such as "x-foo" used to describe - extra functionality that is not covered by the standard OpenAPI Specification. - See: https://swagger.io/docs/specification/2-0/swagger-extensions/ - """ - def __init__( - self, - *, - swagger: builtins.str = ..., - info: global___Info | None = ..., - host: builtins.str = ..., - base_path: builtins.str = ..., - schemes: collections.abc.Iterable[global___Scheme.ValueType] | None = ..., - consumes: collections.abc.Iterable[builtins.str] | None = ..., - produces: collections.abc.Iterable[builtins.str] | None = ..., - responses: collections.abc.Mapping[builtins.str, global___Response] | None = ..., - security_definitions: global___SecurityDefinitions | None = ..., - security: collections.abc.Iterable[global___SecurityRequirement] | None = ..., - tags: collections.abc.Iterable[global___Tag] | None = ..., - external_docs: global___ExternalDocumentation | None = ..., - extensions: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["external_docs", b"external_docs", "info", b"info", "security_definitions", b"security_definitions"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["base_path", b"base_path", "consumes", b"consumes", "extensions", b"extensions", "external_docs", b"external_docs", "host", b"host", "info", b"info", "produces", b"produces", "responses", b"responses", "schemes", b"schemes", "security", b"security", "security_definitions", b"security_definitions", "swagger", b"swagger", "tags", b"tags"]) -> None: ... - -global___Swagger = Swagger - -@typing_extensions.final -class Operation(google.protobuf.message.Message): - """`Operation` is a representation of OpenAPI v2 specification's Operation object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#operationObject - - Example: - - service EchoService { - rpc Echo(SimpleMessage) returns (SimpleMessage) { - option (google.api.http) = { - get: "/v1/example/echo/{id}" - }; - - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - summary: "Get a message."; - operation_id: "getMessage"; - tags: "echo"; - responses: { - key: "200" - value: { - description: "OK"; - } - } - }; - } - } - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ResponsesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> global___Response: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: global___Response | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - @typing_extensions.final - class ExtensionsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> google.protobuf.struct_pb2.Value: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: google.protobuf.struct_pb2.Value | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - TAGS_FIELD_NUMBER: builtins.int - SUMMARY_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - EXTERNAL_DOCS_FIELD_NUMBER: builtins.int - OPERATION_ID_FIELD_NUMBER: builtins.int - CONSUMES_FIELD_NUMBER: builtins.int - PRODUCES_FIELD_NUMBER: builtins.int - RESPONSES_FIELD_NUMBER: builtins.int - SCHEMES_FIELD_NUMBER: builtins.int - DEPRECATED_FIELD_NUMBER: builtins.int - SECURITY_FIELD_NUMBER: builtins.int - EXTENSIONS_FIELD_NUMBER: builtins.int - PARAMETERS_FIELD_NUMBER: builtins.int - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """A list of tags for API documentation control. Tags can be used for logical - grouping of operations by resources or any other qualifier. - """ - summary: builtins.str - """A short summary of what the operation does. For maximum readability in the - swagger-ui, this field SHOULD be less than 120 characters. - """ - description: builtins.str - """A verbose explanation of the operation behavior. GFM syntax can be used for - rich text representation. - """ - @property - def external_docs(self) -> global___ExternalDocumentation: - """Additional external documentation for this operation.""" - operation_id: builtins.str - """Unique string used to identify the operation. The id MUST be unique among - all operations described in the API. Tools and libraries MAY use the - operationId to uniquely identify an operation, therefore, it is recommended - to follow common programming naming conventions. - """ - @property - def consumes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """A list of MIME types the operation can consume. This overrides the consumes - definition at the OpenAPI Object. An empty value MAY be used to clear the - global definition. Value MUST be as described under Mime Types. - """ - @property - def produces(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """A list of MIME types the operation can produce. This overrides the produces - definition at the OpenAPI Object. An empty value MAY be used to clear the - global definition. Value MUST be as described under Mime Types. - """ - @property - def responses(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Response]: - """The list of possible responses as they are returned from executing this - operation. - """ - @property - def schemes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___Scheme.ValueType]: - """The transfer protocol for the operation. Values MUST be from the list: - "http", "https", "ws", "wss". The value overrides the OpenAPI Object - schemes definition. - """ - deprecated: builtins.bool - """Declares this operation to be deprecated. Usage of the declared operation - should be refrained. Default value is false. - """ - @property - def security(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SecurityRequirement]: - """A declaration of which security schemes are applied for this operation. The - list of values describes alternative security schemes that can be used - (that is, there is a logical OR between the security requirements). This - definition overrides any declared top-level security. To remove a top-level - security declaration, an empty array can be used. - """ - @property - def extensions(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: - """Custom properties that start with "x-" such as "x-foo" used to describe - extra functionality that is not covered by the standard OpenAPI Specification. - See: https://swagger.io/docs/specification/2-0/swagger-extensions/ - """ - @property - def parameters(self) -> global___Parameters: - """Custom parameters such as HTTP request headers. - See: https://swagger.io/docs/specification/2-0/describing-parameters/ - and https://swagger.io/specification/v2/#parameter-object. - """ - def __init__( - self, - *, - tags: collections.abc.Iterable[builtins.str] | None = ..., - summary: builtins.str = ..., - description: builtins.str = ..., - external_docs: global___ExternalDocumentation | None = ..., - operation_id: builtins.str = ..., - consumes: collections.abc.Iterable[builtins.str] | None = ..., - produces: collections.abc.Iterable[builtins.str] | None = ..., - responses: collections.abc.Mapping[builtins.str, global___Response] | None = ..., - schemes: collections.abc.Iterable[global___Scheme.ValueType] | None = ..., - deprecated: builtins.bool = ..., - security: collections.abc.Iterable[global___SecurityRequirement] | None = ..., - extensions: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., - parameters: global___Parameters | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["external_docs", b"external_docs", "parameters", b"parameters"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["consumes", b"consumes", "deprecated", b"deprecated", "description", b"description", "extensions", b"extensions", "external_docs", b"external_docs", "operation_id", b"operation_id", "parameters", b"parameters", "produces", b"produces", "responses", b"responses", "schemes", b"schemes", "security", b"security", "summary", b"summary", "tags", b"tags"]) -> None: ... - -global___Operation = Operation - -@typing_extensions.final -class Parameters(google.protobuf.message.Message): - """`Parameters` is a representation of OpenAPI v2 specification's parameters object. - Note: This technically breaks compatibility with the OpenAPI 2 definition structure as we only - allow header parameters to be set here since we do not want users specifying custom non-header - parameters beyond those inferred from the Protobuf schema. - See: https://swagger.io/specification/v2/#parameter-object - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - HEADERS_FIELD_NUMBER: builtins.int - @property - def headers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HeaderParameter]: - """`Headers` is one or more HTTP header parameter. - See: https://swagger.io/docs/specification/2-0/describing-parameters/#header-parameters - """ - def __init__( - self, - *, - headers: collections.abc.Iterable[global___HeaderParameter] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["headers", b"headers"]) -> None: ... - -global___Parameters = Parameters - -@typing_extensions.final -class HeaderParameter(google.protobuf.message.Message): - """`HeaderParameter` a HTTP header parameter. - See: https://swagger.io/specification/v2/#parameter-object - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _Type: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[HeaderParameter._Type.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNKNOWN: HeaderParameter._Type.ValueType # 0 - STRING: HeaderParameter._Type.ValueType # 1 - NUMBER: HeaderParameter._Type.ValueType # 2 - INTEGER: HeaderParameter._Type.ValueType # 3 - BOOLEAN: HeaderParameter._Type.ValueType # 4 - - class Type(_Type, metaclass=_TypeEnumTypeWrapper): - """`Type` is a a supported HTTP header type. - See https://swagger.io/specification/v2/#parameterType. - """ - - UNKNOWN: HeaderParameter.Type.ValueType # 0 - STRING: HeaderParameter.Type.ValueType # 1 - NUMBER: HeaderParameter.Type.ValueType # 2 - INTEGER: HeaderParameter.Type.ValueType # 3 - BOOLEAN: HeaderParameter.Type.ValueType # 4 - - NAME_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - FORMAT_FIELD_NUMBER: builtins.int - REQUIRED_FIELD_NUMBER: builtins.int - name: builtins.str - """`Name` is the header name.""" - description: builtins.str - """`Description` is a short description of the header.""" - type: global___HeaderParameter.Type.ValueType - """`Type` is the type of the object. The value MUST be one of "string", "number", "integer", or "boolean". The "array" type is not supported. - See: https://swagger.io/specification/v2/#parameterType. - """ - format: builtins.str - """`Format` The extending format for the previously mentioned type.""" - required: builtins.bool - """`Required` indicates if the header is optional""" - def __init__( - self, - *, - name: builtins.str = ..., - description: builtins.str = ..., - type: global___HeaderParameter.Type.ValueType = ..., - format: builtins.str = ..., - required: builtins.bool = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "format", b"format", "name", b"name", "required", b"required", "type", b"type"]) -> None: ... - -global___HeaderParameter = HeaderParameter - -@typing_extensions.final -class Header(google.protobuf.message.Message): - """`Header` is a representation of OpenAPI v2 specification's Header object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#headerObject - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - DESCRIPTION_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - FORMAT_FIELD_NUMBER: builtins.int - DEFAULT_FIELD_NUMBER: builtins.int - PATTERN_FIELD_NUMBER: builtins.int - description: builtins.str - """`Description` is a short description of the header.""" - type: builtins.str - """The type of the object. The value MUST be one of "string", "number", "integer", or "boolean". The "array" type is not supported.""" - format: builtins.str - """`Format` The extending format for the previously mentioned type.""" - default: builtins.str - """`Default` Declares the value of the header that the server will use if none is provided. - See: https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2. - Unlike JSON Schema this value MUST conform to the defined type for the header. - """ - pattern: builtins.str - """'Pattern' See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3.""" - def __init__( - self, - *, - description: builtins.str = ..., - type: builtins.str = ..., - format: builtins.str = ..., - default: builtins.str = ..., - pattern: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["default", b"default", "description", b"description", "format", b"format", "pattern", b"pattern", "type", b"type"]) -> None: ... - -global___Header = Header - -@typing_extensions.final -class Response(google.protobuf.message.Message): - """`Response` is a representation of OpenAPI v2 specification's Response object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#responseObject - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class HeadersEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> global___Header: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: global___Header | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - @typing_extensions.final - class ExamplesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str - def __init__( - self, - *, - key: builtins.str = ..., - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - @typing_extensions.final - class ExtensionsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> google.protobuf.struct_pb2.Value: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: google.protobuf.struct_pb2.Value | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - DESCRIPTION_FIELD_NUMBER: builtins.int - SCHEMA_FIELD_NUMBER: builtins.int - HEADERS_FIELD_NUMBER: builtins.int - EXAMPLES_FIELD_NUMBER: builtins.int - EXTENSIONS_FIELD_NUMBER: builtins.int - description: builtins.str - """`Description` is a short description of the response. - GFM syntax can be used for rich text representation. - """ - @property - def schema(self) -> global___Schema: - """`Schema` optionally defines the structure of the response. - If `Schema` is not provided, it means there is no content to the response. - """ - @property - def headers(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Header]: - """`Headers` A list of headers that are sent with the response. - `Header` name is expected to be a string in the canonical format of the MIME header key - See: https://golang.org/pkg/net/textproto/#CanonicalMIMEHeaderKey - """ - @property - def examples(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: - """`Examples` gives per-mimetype response examples. - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#example-object - """ - @property - def extensions(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: - """Custom properties that start with "x-" such as "x-foo" used to describe - extra functionality that is not covered by the standard OpenAPI Specification. - See: https://swagger.io/docs/specification/2-0/swagger-extensions/ - """ - def __init__( - self, - *, - description: builtins.str = ..., - schema: global___Schema | None = ..., - headers: collections.abc.Mapping[builtins.str, global___Header] | None = ..., - examples: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - extensions: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["schema", b"schema"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "examples", b"examples", "extensions", b"extensions", "headers", b"headers", "schema", b"schema"]) -> None: ... - -global___Response = Response - -@typing_extensions.final -class Info(google.protobuf.message.Message): - """`Info` is a representation of OpenAPI v2 specification's Info object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#infoObject - - Example: - - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { - info: { - title: "Echo API"; - version: "1.0"; - description: ""; - contact: { - name: "gRPC-Gateway project"; - url: "https://github.com/grpc-ecosystem/grpc-gateway"; - email: "none@example.com"; - }; - license: { - name: "BSD 3-Clause License"; - url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE"; - }; - }; - ... - }; - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ExtensionsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> google.protobuf.struct_pb2.Value: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: google.protobuf.struct_pb2.Value | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - TITLE_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - TERMS_OF_SERVICE_FIELD_NUMBER: builtins.int - CONTACT_FIELD_NUMBER: builtins.int - LICENSE_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - EXTENSIONS_FIELD_NUMBER: builtins.int - title: builtins.str - """The title of the application.""" - description: builtins.str - """A short description of the application. GFM syntax can be used for rich - text representation. - """ - terms_of_service: builtins.str - """The Terms of Service for the API.""" - @property - def contact(self) -> global___Contact: - """The contact information for the exposed API.""" - @property - def license(self) -> global___License: - """The license information for the exposed API.""" - version: builtins.str - """Provides the version of the application API (not to be confused - with the specification version). - """ - @property - def extensions(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: - """Custom properties that start with "x-" such as "x-foo" used to describe - extra functionality that is not covered by the standard OpenAPI Specification. - See: https://swagger.io/docs/specification/2-0/swagger-extensions/ - """ - def __init__( - self, - *, - title: builtins.str = ..., - description: builtins.str = ..., - terms_of_service: builtins.str = ..., - contact: global___Contact | None = ..., - license: global___License | None = ..., - version: builtins.str = ..., - extensions: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["contact", b"contact", "license", b"license"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["contact", b"contact", "description", b"description", "extensions", b"extensions", "license", b"license", "terms_of_service", b"terms_of_service", "title", b"title", "version", b"version"]) -> None: ... - -global___Info = Info - -@typing_extensions.final -class Contact(google.protobuf.message.Message): - """`Contact` is a representation of OpenAPI v2 specification's Contact object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#contactObject - - Example: - - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { - info: { - ... - contact: { - name: "gRPC-Gateway project"; - url: "https://github.com/grpc-ecosystem/grpc-gateway"; - email: "none@example.com"; - }; - ... - }; - ... - }; - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NAME_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - name: builtins.str - """The identifying name of the contact person/organization.""" - url: builtins.str - """The URL pointing to the contact information. MUST be in the format of a - URL. - """ - email: builtins.str - """The email address of the contact person/organization. MUST be in the format - of an email address. - """ - def __init__( - self, - *, - name: builtins.str = ..., - url: builtins.str = ..., - email: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["email", b"email", "name", b"name", "url", b"url"]) -> None: ... - -global___Contact = Contact - -@typing_extensions.final -class License(google.protobuf.message.Message): - """`License` is a representation of OpenAPI v2 specification's License object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#licenseObject - - Example: - - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { - info: { - ... - license: { - name: "BSD 3-Clause License"; - url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/LICENSE"; - }; - ... - }; - ... - }; - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NAME_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - name: builtins.str - """The license name used for the API.""" - url: builtins.str - """A URL to the license used for the API. MUST be in the format of a URL.""" - def __init__( - self, - *, - name: builtins.str = ..., - url: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "url", b"url"]) -> None: ... - -global___License = License - -@typing_extensions.final -class ExternalDocumentation(google.protobuf.message.Message): - """`ExternalDocumentation` is a representation of OpenAPI v2 specification's - ExternalDocumentation object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#externalDocumentationObject - - Example: - - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { - ... - external_docs: { - description: "More about gRPC-Gateway"; - url: "https://github.com/grpc-ecosystem/grpc-gateway"; - } - ... - }; - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - DESCRIPTION_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - description: builtins.str - """A short description of the target documentation. GFM syntax can be used for - rich text representation. - """ - url: builtins.str - """The URL for the target documentation. Value MUST be in the format - of a URL. - """ - def __init__( - self, - *, - description: builtins.str = ..., - url: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "url", b"url"]) -> None: ... - -global___ExternalDocumentation = ExternalDocumentation - -@typing_extensions.final -class Schema(google.protobuf.message.Message): - """`Schema` is a representation of OpenAPI v2 specification's Schema object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - JSON_SCHEMA_FIELD_NUMBER: builtins.int - DISCRIMINATOR_FIELD_NUMBER: builtins.int - READ_ONLY_FIELD_NUMBER: builtins.int - EXTERNAL_DOCS_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - @property - def json_schema(self) -> global___JSONSchema: ... - discriminator: builtins.str - """Adds support for polymorphism. The discriminator is the schema property - name that is used to differentiate between other schema that inherit this - schema. The property name used MUST be defined at this schema and it MUST - be in the required property list. When used, the value MUST be the name of - this schema or any schema that inherits it. - """ - read_only: builtins.bool - """Relevant only for Schema "properties" definitions. Declares the property as - "read only". This means that it MAY be sent as part of a response but MUST - NOT be sent as part of the request. Properties marked as readOnly being - true SHOULD NOT be in the required list of the defined schema. Default - value is false. - """ - @property - def external_docs(self) -> global___ExternalDocumentation: - """Additional external documentation for this schema.""" - example: builtins.str - """A free-form property to include an example of an instance for this schema in JSON. - This is copied verbatim to the output. - """ - def __init__( - self, - *, - json_schema: global___JSONSchema | None = ..., - discriminator: builtins.str = ..., - read_only: builtins.bool = ..., - external_docs: global___ExternalDocumentation | None = ..., - example: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["external_docs", b"external_docs", "json_schema", b"json_schema"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["discriminator", b"discriminator", "example", b"example", "external_docs", b"external_docs", "json_schema", b"json_schema", "read_only", b"read_only"]) -> None: ... - -global___Schema = Schema - -@typing_extensions.final -class JSONSchema(google.protobuf.message.Message): - """`JSONSchema` represents properties from JSON Schema taken, and as used, in - the OpenAPI v2 spec. - - This includes changes made by OpenAPI v2. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject - - See also: https://cswr.github.io/JsonSchema/spec/basic_types/, - https://github.com/json-schema-org/json-schema-spec/blob/master/schema.json - - Example: - - message SimpleMessage { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - json_schema: { - title: "SimpleMessage" - description: "A simple message." - required: ["id"] - } - }; - - // Id represents the message identifier. - string id = 1; [ - (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { - description: "The unique identifier of the simple message." - }]; - } - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _JSONSchemaSimpleTypes: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _JSONSchemaSimpleTypesEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[JSONSchema._JSONSchemaSimpleTypes.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNKNOWN: JSONSchema._JSONSchemaSimpleTypes.ValueType # 0 - ARRAY: JSONSchema._JSONSchemaSimpleTypes.ValueType # 1 - BOOLEAN: JSONSchema._JSONSchemaSimpleTypes.ValueType # 2 - INTEGER: JSONSchema._JSONSchemaSimpleTypes.ValueType # 3 - NULL: JSONSchema._JSONSchemaSimpleTypes.ValueType # 4 - NUMBER: JSONSchema._JSONSchemaSimpleTypes.ValueType # 5 - OBJECT: JSONSchema._JSONSchemaSimpleTypes.ValueType # 6 - STRING: JSONSchema._JSONSchemaSimpleTypes.ValueType # 7 - - class JSONSchemaSimpleTypes(_JSONSchemaSimpleTypes, metaclass=_JSONSchemaSimpleTypesEnumTypeWrapper): ... - UNKNOWN: JSONSchema.JSONSchemaSimpleTypes.ValueType # 0 - ARRAY: JSONSchema.JSONSchemaSimpleTypes.ValueType # 1 - BOOLEAN: JSONSchema.JSONSchemaSimpleTypes.ValueType # 2 - INTEGER: JSONSchema.JSONSchemaSimpleTypes.ValueType # 3 - NULL: JSONSchema.JSONSchemaSimpleTypes.ValueType # 4 - NUMBER: JSONSchema.JSONSchemaSimpleTypes.ValueType # 5 - OBJECT: JSONSchema.JSONSchemaSimpleTypes.ValueType # 6 - STRING: JSONSchema.JSONSchemaSimpleTypes.ValueType # 7 - - @typing_extensions.final - class FieldConfiguration(google.protobuf.message.Message): - """'FieldConfiguration' provides additional field level properties used when generating the OpenAPI v2 file. - These properties are not defined by OpenAPIv2, but they are used to control the generation. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - PATH_PARAM_NAME_FIELD_NUMBER: builtins.int - path_param_name: builtins.str - """Alternative parameter name when used as path parameter. If set, this will - be used as the complete parameter name when this field is used as a path - parameter. Use this to avoid having auto generated path parameter names - for overlapping paths. - """ - def __init__( - self, - *, - path_param_name: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["path_param_name", b"path_param_name"]) -> None: ... - - @typing_extensions.final - class ExtensionsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> google.protobuf.struct_pb2.Value: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: google.protobuf.struct_pb2.Value | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - REF_FIELD_NUMBER: builtins.int - TITLE_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - DEFAULT_FIELD_NUMBER: builtins.int - READ_ONLY_FIELD_NUMBER: builtins.int - EXAMPLE_FIELD_NUMBER: builtins.int - MULTIPLE_OF_FIELD_NUMBER: builtins.int - MAXIMUM_FIELD_NUMBER: builtins.int - EXCLUSIVE_MAXIMUM_FIELD_NUMBER: builtins.int - MINIMUM_FIELD_NUMBER: builtins.int - EXCLUSIVE_MINIMUM_FIELD_NUMBER: builtins.int - MAX_LENGTH_FIELD_NUMBER: builtins.int - MIN_LENGTH_FIELD_NUMBER: builtins.int - PATTERN_FIELD_NUMBER: builtins.int - MAX_ITEMS_FIELD_NUMBER: builtins.int - MIN_ITEMS_FIELD_NUMBER: builtins.int - UNIQUE_ITEMS_FIELD_NUMBER: builtins.int - MAX_PROPERTIES_FIELD_NUMBER: builtins.int - MIN_PROPERTIES_FIELD_NUMBER: builtins.int - REQUIRED_FIELD_NUMBER: builtins.int - ARRAY_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - FORMAT_FIELD_NUMBER: builtins.int - ENUM_FIELD_NUMBER: builtins.int - FIELD_CONFIGURATION_FIELD_NUMBER: builtins.int - EXTENSIONS_FIELD_NUMBER: builtins.int - ref: builtins.str - """Ref is used to define an external reference to include in the message. - This could be a fully qualified proto message reference, and that type must - be imported into the protofile. If no message is identified, the Ref will - be used verbatim in the output. - For example: - `ref: ".google.protobuf.Timestamp"`. - """ - title: builtins.str - """The title of the schema.""" - description: builtins.str - """A short description of the schema.""" - default: builtins.str - read_only: builtins.bool - example: builtins.str - """A free-form property to include a JSON example of this field. This is copied - verbatim to the output swagger.json. Quotes must be escaped. - This property is the same for 2.0 and 3.0.0 https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/3.0.0.md#schemaObject https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject - """ - multiple_of: builtins.float - maximum: builtins.float - """Maximum represents an inclusive upper limit for a numeric instance. The - value of MUST be a number, - """ - exclusive_maximum: builtins.bool - minimum: builtins.float - """minimum represents an inclusive lower limit for a numeric instance. The - value of MUST be a number, - """ - exclusive_minimum: builtins.bool - max_length: builtins.int - min_length: builtins.int - pattern: builtins.str - max_items: builtins.int - min_items: builtins.int - unique_items: builtins.bool - max_properties: builtins.int - min_properties: builtins.int - @property - def required(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - @property - def array(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """Items in 'array' must be unique.""" - @property - def type(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___JSONSchema.JSONSchemaSimpleTypes.ValueType]: ... - format: builtins.str - """`Format`""" - @property - def enum(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """Items in `enum` must be unique https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.1""" - @property - def field_configuration(self) -> global___JSONSchema.FieldConfiguration: - """Additional field level properties used when generating the OpenAPI v2 file.""" - @property - def extensions(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: - """Custom properties that start with "x-" such as "x-foo" used to describe - extra functionality that is not covered by the standard OpenAPI Specification. - See: https://swagger.io/docs/specification/2-0/swagger-extensions/ - """ - def __init__( - self, - *, - ref: builtins.str = ..., - title: builtins.str = ..., - description: builtins.str = ..., - default: builtins.str = ..., - read_only: builtins.bool = ..., - example: builtins.str = ..., - multiple_of: builtins.float = ..., - maximum: builtins.float = ..., - exclusive_maximum: builtins.bool = ..., - minimum: builtins.float = ..., - exclusive_minimum: builtins.bool = ..., - max_length: builtins.int = ..., - min_length: builtins.int = ..., - pattern: builtins.str = ..., - max_items: builtins.int = ..., - min_items: builtins.int = ..., - unique_items: builtins.bool = ..., - max_properties: builtins.int = ..., - min_properties: builtins.int = ..., - required: collections.abc.Iterable[builtins.str] | None = ..., - array: collections.abc.Iterable[builtins.str] | None = ..., - type: collections.abc.Iterable[global___JSONSchema.JSONSchemaSimpleTypes.ValueType] | None = ..., - format: builtins.str = ..., - enum: collections.abc.Iterable[builtins.str] | None = ..., - field_configuration: global___JSONSchema.FieldConfiguration | None = ..., - extensions: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["field_configuration", b"field_configuration"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["array", b"array", "default", b"default", "description", b"description", "enum", b"enum", "example", b"example", "exclusive_maximum", b"exclusive_maximum", "exclusive_minimum", b"exclusive_minimum", "extensions", b"extensions", "field_configuration", b"field_configuration", "format", b"format", "max_items", b"max_items", "max_length", b"max_length", "max_properties", b"max_properties", "maximum", b"maximum", "min_items", b"min_items", "min_length", b"min_length", "min_properties", b"min_properties", "minimum", b"minimum", "multiple_of", b"multiple_of", "pattern", b"pattern", "read_only", b"read_only", "ref", b"ref", "required", b"required", "title", b"title", "type", b"type", "unique_items", b"unique_items"]) -> None: ... - -global___JSONSchema = JSONSchema - -@typing_extensions.final -class Tag(google.protobuf.message.Message): - """`Tag` is a representation of OpenAPI v2 specification's Tag object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#tagObject - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ExtensionsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> google.protobuf.struct_pb2.Value: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: google.protobuf.struct_pb2.Value | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NAME_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - EXTERNAL_DOCS_FIELD_NUMBER: builtins.int - EXTENSIONS_FIELD_NUMBER: builtins.int - name: builtins.str - """The name of the tag. Use it to allow override of the name of a - global Tag object, then use that name to reference the tag throughout the - OpenAPI file. - """ - description: builtins.str - """A short description for the tag. GFM syntax can be used for rich text - representation. - """ - @property - def external_docs(self) -> global___ExternalDocumentation: - """Additional external documentation for this tag.""" - @property - def extensions(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: - """Custom properties that start with "x-" such as "x-foo" used to describe - extra functionality that is not covered by the standard OpenAPI Specification. - See: https://swagger.io/docs/specification/2-0/swagger-extensions/ - """ - def __init__( - self, - *, - name: builtins.str = ..., - description: builtins.str = ..., - external_docs: global___ExternalDocumentation | None = ..., - extensions: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["external_docs", b"external_docs"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "extensions", b"extensions", "external_docs", b"external_docs", "name", b"name"]) -> None: ... - -global___Tag = Tag - -@typing_extensions.final -class SecurityDefinitions(google.protobuf.message.Message): - """`SecurityDefinitions` is a representation of OpenAPI v2 specification's - Security Definitions object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securityDefinitionsObject - - A declaration of the security schemes available to be used in the - specification. This does not enforce the security schemes on the operations - and only serves to provide the relevant details for each scheme. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class SecurityEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> global___SecurityScheme: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: global___SecurityScheme | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - SECURITY_FIELD_NUMBER: builtins.int - @property - def security(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___SecurityScheme]: - """A single security scheme definition, mapping a "name" to the scheme it - defines. - """ - def __init__( - self, - *, - security: collections.abc.Mapping[builtins.str, global___SecurityScheme] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["security", b"security"]) -> None: ... - -global___SecurityDefinitions = SecurityDefinitions - -@typing_extensions.final -class SecurityScheme(google.protobuf.message.Message): - """`SecurityScheme` is a representation of OpenAPI v2 specification's - Security Scheme object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securitySchemeObject - - Allows the definition of a security scheme that can be used by the - operations. Supported schemes are basic authentication, an API key (either as - a header or as a query parameter) and OAuth2's common flows (implicit, - password, application and access code). - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _Type: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SecurityScheme._Type.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - TYPE_INVALID: SecurityScheme._Type.ValueType # 0 - TYPE_BASIC: SecurityScheme._Type.ValueType # 1 - TYPE_API_KEY: SecurityScheme._Type.ValueType # 2 - TYPE_OAUTH2: SecurityScheme._Type.ValueType # 3 - - class Type(_Type, metaclass=_TypeEnumTypeWrapper): - """The type of the security scheme. Valid values are "basic", - "apiKey" or "oauth2". - """ - - TYPE_INVALID: SecurityScheme.Type.ValueType # 0 - TYPE_BASIC: SecurityScheme.Type.ValueType # 1 - TYPE_API_KEY: SecurityScheme.Type.ValueType # 2 - TYPE_OAUTH2: SecurityScheme.Type.ValueType # 3 - - class _In: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _InEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SecurityScheme._In.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - IN_INVALID: SecurityScheme._In.ValueType # 0 - IN_QUERY: SecurityScheme._In.ValueType # 1 - IN_HEADER: SecurityScheme._In.ValueType # 2 - - class In(_In, metaclass=_InEnumTypeWrapper): - """The location of the API key. Valid values are "query" or "header".""" - - IN_INVALID: SecurityScheme.In.ValueType # 0 - IN_QUERY: SecurityScheme.In.ValueType # 1 - IN_HEADER: SecurityScheme.In.ValueType # 2 - - class _Flow: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _FlowEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SecurityScheme._Flow.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - FLOW_INVALID: SecurityScheme._Flow.ValueType # 0 - FLOW_IMPLICIT: SecurityScheme._Flow.ValueType # 1 - FLOW_PASSWORD: SecurityScheme._Flow.ValueType # 2 - FLOW_APPLICATION: SecurityScheme._Flow.ValueType # 3 - FLOW_ACCESS_CODE: SecurityScheme._Flow.ValueType # 4 - - class Flow(_Flow, metaclass=_FlowEnumTypeWrapper): - """The flow used by the OAuth2 security scheme. Valid values are - "implicit", "password", "application" or "accessCode". - """ - - FLOW_INVALID: SecurityScheme.Flow.ValueType # 0 - FLOW_IMPLICIT: SecurityScheme.Flow.ValueType # 1 - FLOW_PASSWORD: SecurityScheme.Flow.ValueType # 2 - FLOW_APPLICATION: SecurityScheme.Flow.ValueType # 3 - FLOW_ACCESS_CODE: SecurityScheme.Flow.ValueType # 4 - - @typing_extensions.final - class ExtensionsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> google.protobuf.struct_pb2.Value: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: google.protobuf.struct_pb2.Value | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - TYPE_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - FLOW_FIELD_NUMBER: builtins.int - AUTHORIZATION_URL_FIELD_NUMBER: builtins.int - TOKEN_URL_FIELD_NUMBER: builtins.int - SCOPES_FIELD_NUMBER: builtins.int - EXTENSIONS_FIELD_NUMBER: builtins.int - type: global___SecurityScheme.Type.ValueType - """The type of the security scheme. Valid values are "basic", - "apiKey" or "oauth2". - """ - description: builtins.str - """A short description for security scheme.""" - name: builtins.str - """The name of the header or query parameter to be used. - Valid for apiKey. - """ - flow: global___SecurityScheme.Flow.ValueType - """The flow used by the OAuth2 security scheme. Valid values are - "implicit", "password", "application" or "accessCode". - Valid for oauth2. - """ - authorization_url: builtins.str - """The authorization URL to be used for this flow. This SHOULD be in - the form of a URL. - Valid for oauth2/implicit and oauth2/accessCode. - """ - token_url: builtins.str - """The token URL to be used for this flow. This SHOULD be in the - form of a URL. - Valid for oauth2/password, oauth2/application and oauth2/accessCode. - """ - @property - def scopes(self) -> global___Scopes: - """The available scopes for the OAuth2 security scheme. - Valid for oauth2. - """ - @property - def extensions(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: - """Custom properties that start with "x-" such as "x-foo" used to describe - extra functionality that is not covered by the standard OpenAPI Specification. - See: https://swagger.io/docs/specification/2-0/swagger-extensions/ - """ - def __init__( - self, - *, - type: global___SecurityScheme.Type.ValueType = ..., - description: builtins.str = ..., - name: builtins.str = ..., - flow: global___SecurityScheme.Flow.ValueType = ..., - authorization_url: builtins.str = ..., - token_url: builtins.str = ..., - scopes: global___Scopes | None = ..., - extensions: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["scopes", b"scopes"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["authorization_url", b"authorization_url", "description", b"description", "extensions", b"extensions", "flow", b"flow", "in", b"in", "name", b"name", "scopes", b"scopes", "token_url", b"token_url", "type", b"type"]) -> None: ... - -global___SecurityScheme = SecurityScheme - -@typing_extensions.final -class SecurityRequirement(google.protobuf.message.Message): - """`SecurityRequirement` is a representation of OpenAPI v2 specification's - Security Requirement object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securityRequirementObject - - Lists the required security schemes to execute this operation. The object can - have multiple security schemes declared in it which are all required (that - is, there is a logical AND between the schemes). - - The name used for each property MUST correspond to a security scheme - declared in the Security Definitions. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class SecurityRequirementValue(google.protobuf.message.Message): - """If the security scheme is of type "oauth2", then the value is a list of - scope names required for the execution. For other security scheme types, - the array MUST be empty. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SCOPE_FIELD_NUMBER: builtins.int - @property - def scope(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - def __init__( - self, - *, - scope: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["scope", b"scope"]) -> None: ... - - @typing_extensions.final - class SecurityRequirementEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - @property - def value(self) -> global___SecurityRequirement.SecurityRequirementValue: ... - def __init__( - self, - *, - key: builtins.str = ..., - value: global___SecurityRequirement.SecurityRequirementValue | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - SECURITY_REQUIREMENT_FIELD_NUMBER: builtins.int - @property - def security_requirement(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___SecurityRequirement.SecurityRequirementValue]: - """Each name must correspond to a security scheme which is declared in - the Security Definitions. If the security scheme is of type "oauth2", - then the value is a list of scope names required for the execution. - For other security scheme types, the array MUST be empty. - """ - def __init__( - self, - *, - security_requirement: collections.abc.Mapping[builtins.str, global___SecurityRequirement.SecurityRequirementValue] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["security_requirement", b"security_requirement"]) -> None: ... - -global___SecurityRequirement = SecurityRequirement - -@typing_extensions.final -class Scopes(google.protobuf.message.Message): - """`Scopes` is a representation of OpenAPI v2 specification's Scopes object. - - See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#scopesObject - - Lists the available scopes for an OAuth2 security scheme. - """ - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ScopeEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str - def __init__( - self, - *, - key: builtins.str = ..., - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - SCOPE_FIELD_NUMBER: builtins.int - @property - def scope(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: - """Maps between a name of a scope to a short description of it (as the value - of the property). - """ - def __init__( - self, - *, - scope: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["scope", b"scope"]) -> None: ... - -global___Scopes = Scopes +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Scheme(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UNKNOWN: _ClassVar[Scheme] + HTTP: _ClassVar[Scheme] + HTTPS: _ClassVar[Scheme] + WS: _ClassVar[Scheme] + WSS: _ClassVar[Scheme] +UNKNOWN: Scheme +HTTP: Scheme +HTTPS: Scheme +WS: Scheme +WSS: Scheme + +class Swagger(_message.Message): + __slots__ = ("swagger", "info", "host", "base_path", "schemes", "consumes", "produces", "responses", "security_definitions", "security", "tags", "external_docs", "extensions") + class ResponsesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: Response + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[Response, _Mapping]] = ...) -> None: ... + class ExtensionsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _struct_pb2.Value + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + SWAGGER_FIELD_NUMBER: _ClassVar[int] + INFO_FIELD_NUMBER: _ClassVar[int] + HOST_FIELD_NUMBER: _ClassVar[int] + BASE_PATH_FIELD_NUMBER: _ClassVar[int] + SCHEMES_FIELD_NUMBER: _ClassVar[int] + CONSUMES_FIELD_NUMBER: _ClassVar[int] + PRODUCES_FIELD_NUMBER: _ClassVar[int] + RESPONSES_FIELD_NUMBER: _ClassVar[int] + SECURITY_DEFINITIONS_FIELD_NUMBER: _ClassVar[int] + SECURITY_FIELD_NUMBER: _ClassVar[int] + TAGS_FIELD_NUMBER: _ClassVar[int] + EXTERNAL_DOCS_FIELD_NUMBER: _ClassVar[int] + EXTENSIONS_FIELD_NUMBER: _ClassVar[int] + swagger: str + info: Info + host: str + base_path: str + schemes: _containers.RepeatedScalarFieldContainer[Scheme] + consumes: _containers.RepeatedScalarFieldContainer[str] + produces: _containers.RepeatedScalarFieldContainer[str] + responses: _containers.MessageMap[str, Response] + security_definitions: SecurityDefinitions + security: _containers.RepeatedCompositeFieldContainer[SecurityRequirement] + tags: _containers.RepeatedCompositeFieldContainer[Tag] + external_docs: ExternalDocumentation + extensions: _containers.MessageMap[str, _struct_pb2.Value] + def __init__(self, swagger: _Optional[str] = ..., info: _Optional[_Union[Info, _Mapping]] = ..., host: _Optional[str] = ..., base_path: _Optional[str] = ..., schemes: _Optional[_Iterable[_Union[Scheme, str]]] = ..., consumes: _Optional[_Iterable[str]] = ..., produces: _Optional[_Iterable[str]] = ..., responses: _Optional[_Mapping[str, Response]] = ..., security_definitions: _Optional[_Union[SecurityDefinitions, _Mapping]] = ..., security: _Optional[_Iterable[_Union[SecurityRequirement, _Mapping]]] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., external_docs: _Optional[_Union[ExternalDocumentation, _Mapping]] = ..., extensions: _Optional[_Mapping[str, _struct_pb2.Value]] = ...) -> None: ... + +class Operation(_message.Message): + __slots__ = ("tags", "summary", "description", "external_docs", "operation_id", "consumes", "produces", "responses", "schemes", "deprecated", "security", "extensions", "parameters") + class ResponsesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: Response + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[Response, _Mapping]] = ...) -> None: ... + class ExtensionsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _struct_pb2.Value + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + TAGS_FIELD_NUMBER: _ClassVar[int] + SUMMARY_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + EXTERNAL_DOCS_FIELD_NUMBER: _ClassVar[int] + OPERATION_ID_FIELD_NUMBER: _ClassVar[int] + CONSUMES_FIELD_NUMBER: _ClassVar[int] + PRODUCES_FIELD_NUMBER: _ClassVar[int] + RESPONSES_FIELD_NUMBER: _ClassVar[int] + SCHEMES_FIELD_NUMBER: _ClassVar[int] + DEPRECATED_FIELD_NUMBER: _ClassVar[int] + SECURITY_FIELD_NUMBER: _ClassVar[int] + EXTENSIONS_FIELD_NUMBER: _ClassVar[int] + PARAMETERS_FIELD_NUMBER: _ClassVar[int] + tags: _containers.RepeatedScalarFieldContainer[str] + summary: str + description: str + external_docs: ExternalDocumentation + operation_id: str + consumes: _containers.RepeatedScalarFieldContainer[str] + produces: _containers.RepeatedScalarFieldContainer[str] + responses: _containers.MessageMap[str, Response] + schemes: _containers.RepeatedScalarFieldContainer[Scheme] + deprecated: bool + security: _containers.RepeatedCompositeFieldContainer[SecurityRequirement] + extensions: _containers.MessageMap[str, _struct_pb2.Value] + parameters: Parameters + def __init__(self, tags: _Optional[_Iterable[str]] = ..., summary: _Optional[str] = ..., description: _Optional[str] = ..., external_docs: _Optional[_Union[ExternalDocumentation, _Mapping]] = ..., operation_id: _Optional[str] = ..., consumes: _Optional[_Iterable[str]] = ..., produces: _Optional[_Iterable[str]] = ..., responses: _Optional[_Mapping[str, Response]] = ..., schemes: _Optional[_Iterable[_Union[Scheme, str]]] = ..., deprecated: bool = ..., security: _Optional[_Iterable[_Union[SecurityRequirement, _Mapping]]] = ..., extensions: _Optional[_Mapping[str, _struct_pb2.Value]] = ..., parameters: _Optional[_Union[Parameters, _Mapping]] = ...) -> None: ... + +class Parameters(_message.Message): + __slots__ = ("headers",) + HEADERS_FIELD_NUMBER: _ClassVar[int] + headers: _containers.RepeatedCompositeFieldContainer[HeaderParameter] + def __init__(self, headers: _Optional[_Iterable[_Union[HeaderParameter, _Mapping]]] = ...) -> None: ... + +class HeaderParameter(_message.Message): + __slots__ = ("name", "description", "type", "format", "required") + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UNKNOWN: _ClassVar[HeaderParameter.Type] + STRING: _ClassVar[HeaderParameter.Type] + NUMBER: _ClassVar[HeaderParameter.Type] + INTEGER: _ClassVar[HeaderParameter.Type] + BOOLEAN: _ClassVar[HeaderParameter.Type] + UNKNOWN: HeaderParameter.Type + STRING: HeaderParameter.Type + NUMBER: HeaderParameter.Type + INTEGER: HeaderParameter.Type + BOOLEAN: HeaderParameter.Type + NAME_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + FORMAT_FIELD_NUMBER: _ClassVar[int] + REQUIRED_FIELD_NUMBER: _ClassVar[int] + name: str + description: str + type: HeaderParameter.Type + format: str + required: bool + def __init__(self, name: _Optional[str] = ..., description: _Optional[str] = ..., type: _Optional[_Union[HeaderParameter.Type, str]] = ..., format: _Optional[str] = ..., required: bool = ...) -> None: ... + +class Header(_message.Message): + __slots__ = ("description", "type", "format", "default", "pattern") + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + FORMAT_FIELD_NUMBER: _ClassVar[int] + DEFAULT_FIELD_NUMBER: _ClassVar[int] + PATTERN_FIELD_NUMBER: _ClassVar[int] + description: str + type: str + format: str + default: str + pattern: str + def __init__(self, description: _Optional[str] = ..., type: _Optional[str] = ..., format: _Optional[str] = ..., default: _Optional[str] = ..., pattern: _Optional[str] = ...) -> None: ... + +class Response(_message.Message): + __slots__ = ("description", "schema", "headers", "examples", "extensions") + class HeadersEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: Header + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[Header, _Mapping]] = ...) -> None: ... + class ExamplesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + class ExtensionsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _struct_pb2.Value + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + SCHEMA_FIELD_NUMBER: _ClassVar[int] + HEADERS_FIELD_NUMBER: _ClassVar[int] + EXAMPLES_FIELD_NUMBER: _ClassVar[int] + EXTENSIONS_FIELD_NUMBER: _ClassVar[int] + description: str + schema: Schema + headers: _containers.MessageMap[str, Header] + examples: _containers.ScalarMap[str, str] + extensions: _containers.MessageMap[str, _struct_pb2.Value] + def __init__(self, description: _Optional[str] = ..., schema: _Optional[_Union[Schema, _Mapping]] = ..., headers: _Optional[_Mapping[str, Header]] = ..., examples: _Optional[_Mapping[str, str]] = ..., extensions: _Optional[_Mapping[str, _struct_pb2.Value]] = ...) -> None: ... + +class Info(_message.Message): + __slots__ = ("title", "description", "terms_of_service", "contact", "license", "version", "extensions") + class ExtensionsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _struct_pb2.Value + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + TITLE_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + TERMS_OF_SERVICE_FIELD_NUMBER: _ClassVar[int] + CONTACT_FIELD_NUMBER: _ClassVar[int] + LICENSE_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + EXTENSIONS_FIELD_NUMBER: _ClassVar[int] + title: str + description: str + terms_of_service: str + contact: Contact + license: License + version: str + extensions: _containers.MessageMap[str, _struct_pb2.Value] + def __init__(self, title: _Optional[str] = ..., description: _Optional[str] = ..., terms_of_service: _Optional[str] = ..., contact: _Optional[_Union[Contact, _Mapping]] = ..., license: _Optional[_Union[License, _Mapping]] = ..., version: _Optional[str] = ..., extensions: _Optional[_Mapping[str, _struct_pb2.Value]] = ...) -> None: ... + +class Contact(_message.Message): + __slots__ = ("name", "url", "email") + NAME_FIELD_NUMBER: _ClassVar[int] + URL_FIELD_NUMBER: _ClassVar[int] + EMAIL_FIELD_NUMBER: _ClassVar[int] + name: str + url: str + email: str + def __init__(self, name: _Optional[str] = ..., url: _Optional[str] = ..., email: _Optional[str] = ...) -> None: ... + +class License(_message.Message): + __slots__ = ("name", "url") + NAME_FIELD_NUMBER: _ClassVar[int] + URL_FIELD_NUMBER: _ClassVar[int] + name: str + url: str + def __init__(self, name: _Optional[str] = ..., url: _Optional[str] = ...) -> None: ... + +class ExternalDocumentation(_message.Message): + __slots__ = ("description", "url") + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + URL_FIELD_NUMBER: _ClassVar[int] + description: str + url: str + def __init__(self, description: _Optional[str] = ..., url: _Optional[str] = ...) -> None: ... + +class Schema(_message.Message): + __slots__ = ("json_schema", "discriminator", "read_only", "external_docs", "example") + JSON_SCHEMA_FIELD_NUMBER: _ClassVar[int] + DISCRIMINATOR_FIELD_NUMBER: _ClassVar[int] + READ_ONLY_FIELD_NUMBER: _ClassVar[int] + EXTERNAL_DOCS_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + json_schema: JSONSchema + discriminator: str + read_only: bool + external_docs: ExternalDocumentation + example: str + def __init__(self, json_schema: _Optional[_Union[JSONSchema, _Mapping]] = ..., discriminator: _Optional[str] = ..., read_only: bool = ..., external_docs: _Optional[_Union[ExternalDocumentation, _Mapping]] = ..., example: _Optional[str] = ...) -> None: ... + +class JSONSchema(_message.Message): + __slots__ = ("ref", "title", "description", "default", "read_only", "example", "multiple_of", "maximum", "exclusive_maximum", "minimum", "exclusive_minimum", "max_length", "min_length", "pattern", "max_items", "min_items", "unique_items", "max_properties", "min_properties", "required", "array", "type", "format", "enum", "field_configuration", "extensions") + class JSONSchemaSimpleTypes(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UNKNOWN: _ClassVar[JSONSchema.JSONSchemaSimpleTypes] + ARRAY: _ClassVar[JSONSchema.JSONSchemaSimpleTypes] + BOOLEAN: _ClassVar[JSONSchema.JSONSchemaSimpleTypes] + INTEGER: _ClassVar[JSONSchema.JSONSchemaSimpleTypes] + NULL: _ClassVar[JSONSchema.JSONSchemaSimpleTypes] + NUMBER: _ClassVar[JSONSchema.JSONSchemaSimpleTypes] + OBJECT: _ClassVar[JSONSchema.JSONSchemaSimpleTypes] + STRING: _ClassVar[JSONSchema.JSONSchemaSimpleTypes] + UNKNOWN: JSONSchema.JSONSchemaSimpleTypes + ARRAY: JSONSchema.JSONSchemaSimpleTypes + BOOLEAN: JSONSchema.JSONSchemaSimpleTypes + INTEGER: JSONSchema.JSONSchemaSimpleTypes + NULL: JSONSchema.JSONSchemaSimpleTypes + NUMBER: JSONSchema.JSONSchemaSimpleTypes + OBJECT: JSONSchema.JSONSchemaSimpleTypes + STRING: JSONSchema.JSONSchemaSimpleTypes + class FieldConfiguration(_message.Message): + __slots__ = ("path_param_name",) + PATH_PARAM_NAME_FIELD_NUMBER: _ClassVar[int] + path_param_name: str + def __init__(self, path_param_name: _Optional[str] = ...) -> None: ... + class ExtensionsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _struct_pb2.Value + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + REF_FIELD_NUMBER: _ClassVar[int] + TITLE_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + DEFAULT_FIELD_NUMBER: _ClassVar[int] + READ_ONLY_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + MULTIPLE_OF_FIELD_NUMBER: _ClassVar[int] + MAXIMUM_FIELD_NUMBER: _ClassVar[int] + EXCLUSIVE_MAXIMUM_FIELD_NUMBER: _ClassVar[int] + MINIMUM_FIELD_NUMBER: _ClassVar[int] + EXCLUSIVE_MINIMUM_FIELD_NUMBER: _ClassVar[int] + MAX_LENGTH_FIELD_NUMBER: _ClassVar[int] + MIN_LENGTH_FIELD_NUMBER: _ClassVar[int] + PATTERN_FIELD_NUMBER: _ClassVar[int] + MAX_ITEMS_FIELD_NUMBER: _ClassVar[int] + MIN_ITEMS_FIELD_NUMBER: _ClassVar[int] + UNIQUE_ITEMS_FIELD_NUMBER: _ClassVar[int] + MAX_PROPERTIES_FIELD_NUMBER: _ClassVar[int] + MIN_PROPERTIES_FIELD_NUMBER: _ClassVar[int] + REQUIRED_FIELD_NUMBER: _ClassVar[int] + ARRAY_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + FORMAT_FIELD_NUMBER: _ClassVar[int] + ENUM_FIELD_NUMBER: _ClassVar[int] + FIELD_CONFIGURATION_FIELD_NUMBER: _ClassVar[int] + EXTENSIONS_FIELD_NUMBER: _ClassVar[int] + ref: str + title: str + description: str + default: str + read_only: bool + example: str + multiple_of: float + maximum: float + exclusive_maximum: bool + minimum: float + exclusive_minimum: bool + max_length: int + min_length: int + pattern: str + max_items: int + min_items: int + unique_items: bool + max_properties: int + min_properties: int + required: _containers.RepeatedScalarFieldContainer[str] + array: _containers.RepeatedScalarFieldContainer[str] + type: _containers.RepeatedScalarFieldContainer[JSONSchema.JSONSchemaSimpleTypes] + format: str + enum: _containers.RepeatedScalarFieldContainer[str] + field_configuration: JSONSchema.FieldConfiguration + extensions: _containers.MessageMap[str, _struct_pb2.Value] + def __init__(self, ref: _Optional[str] = ..., title: _Optional[str] = ..., description: _Optional[str] = ..., default: _Optional[str] = ..., read_only: bool = ..., example: _Optional[str] = ..., multiple_of: _Optional[float] = ..., maximum: _Optional[float] = ..., exclusive_maximum: bool = ..., minimum: _Optional[float] = ..., exclusive_minimum: bool = ..., max_length: _Optional[int] = ..., min_length: _Optional[int] = ..., pattern: _Optional[str] = ..., max_items: _Optional[int] = ..., min_items: _Optional[int] = ..., unique_items: bool = ..., max_properties: _Optional[int] = ..., min_properties: _Optional[int] = ..., required: _Optional[_Iterable[str]] = ..., array: _Optional[_Iterable[str]] = ..., type: _Optional[_Iterable[_Union[JSONSchema.JSONSchemaSimpleTypes, str]]] = ..., format: _Optional[str] = ..., enum: _Optional[_Iterable[str]] = ..., field_configuration: _Optional[_Union[JSONSchema.FieldConfiguration, _Mapping]] = ..., extensions: _Optional[_Mapping[str, _struct_pb2.Value]] = ...) -> None: ... + +class Tag(_message.Message): + __slots__ = ("name", "description", "external_docs", "extensions") + class ExtensionsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _struct_pb2.Value + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + NAME_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + EXTERNAL_DOCS_FIELD_NUMBER: _ClassVar[int] + EXTENSIONS_FIELD_NUMBER: _ClassVar[int] + name: str + description: str + external_docs: ExternalDocumentation + extensions: _containers.MessageMap[str, _struct_pb2.Value] + def __init__(self, name: _Optional[str] = ..., description: _Optional[str] = ..., external_docs: _Optional[_Union[ExternalDocumentation, _Mapping]] = ..., extensions: _Optional[_Mapping[str, _struct_pb2.Value]] = ...) -> None: ... + +class SecurityDefinitions(_message.Message): + __slots__ = ("security",) + class SecurityEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: SecurityScheme + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[SecurityScheme, _Mapping]] = ...) -> None: ... + SECURITY_FIELD_NUMBER: _ClassVar[int] + security: _containers.MessageMap[str, SecurityScheme] + def __init__(self, security: _Optional[_Mapping[str, SecurityScheme]] = ...) -> None: ... + +class SecurityScheme(_message.Message): + __slots__ = ("type", "description", "name", "flow", "authorization_url", "token_url", "scopes", "extensions") + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + TYPE_INVALID: _ClassVar[SecurityScheme.Type] + TYPE_BASIC: _ClassVar[SecurityScheme.Type] + TYPE_API_KEY: _ClassVar[SecurityScheme.Type] + TYPE_OAUTH2: _ClassVar[SecurityScheme.Type] + TYPE_INVALID: SecurityScheme.Type + TYPE_BASIC: SecurityScheme.Type + TYPE_API_KEY: SecurityScheme.Type + TYPE_OAUTH2: SecurityScheme.Type + class In(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + IN_INVALID: _ClassVar[SecurityScheme.In] + IN_QUERY: _ClassVar[SecurityScheme.In] + IN_HEADER: _ClassVar[SecurityScheme.In] + IN_INVALID: SecurityScheme.In + IN_QUERY: SecurityScheme.In + IN_HEADER: SecurityScheme.In + class Flow(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + FLOW_INVALID: _ClassVar[SecurityScheme.Flow] + FLOW_IMPLICIT: _ClassVar[SecurityScheme.Flow] + FLOW_PASSWORD: _ClassVar[SecurityScheme.Flow] + FLOW_APPLICATION: _ClassVar[SecurityScheme.Flow] + FLOW_ACCESS_CODE: _ClassVar[SecurityScheme.Flow] + FLOW_INVALID: SecurityScheme.Flow + FLOW_IMPLICIT: SecurityScheme.Flow + FLOW_PASSWORD: SecurityScheme.Flow + FLOW_APPLICATION: SecurityScheme.Flow + FLOW_ACCESS_CODE: SecurityScheme.Flow + class ExtensionsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _struct_pb2.Value + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + TYPE_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + FLOW_FIELD_NUMBER: _ClassVar[int] + AUTHORIZATION_URL_FIELD_NUMBER: _ClassVar[int] + TOKEN_URL_FIELD_NUMBER: _ClassVar[int] + SCOPES_FIELD_NUMBER: _ClassVar[int] + EXTENSIONS_FIELD_NUMBER: _ClassVar[int] + type: SecurityScheme.Type + description: str + name: str + flow: SecurityScheme.Flow + authorization_url: str + token_url: str + scopes: Scopes + extensions: _containers.MessageMap[str, _struct_pb2.Value] + def __init__(self, type: _Optional[_Union[SecurityScheme.Type, str]] = ..., description: _Optional[str] = ..., name: _Optional[str] = ..., flow: _Optional[_Union[SecurityScheme.Flow, str]] = ..., authorization_url: _Optional[str] = ..., token_url: _Optional[str] = ..., scopes: _Optional[_Union[Scopes, _Mapping]] = ..., extensions: _Optional[_Mapping[str, _struct_pb2.Value]] = ..., **kwargs) -> None: ... + +class SecurityRequirement(_message.Message): + __slots__ = ("security_requirement",) + class SecurityRequirementValue(_message.Message): + __slots__ = ("scope",) + SCOPE_FIELD_NUMBER: _ClassVar[int] + scope: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, scope: _Optional[_Iterable[str]] = ...) -> None: ... + class SecurityRequirementEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: SecurityRequirement.SecurityRequirementValue + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[SecurityRequirement.SecurityRequirementValue, _Mapping]] = ...) -> None: ... + SECURITY_REQUIREMENT_FIELD_NUMBER: _ClassVar[int] + security_requirement: _containers.MessageMap[str, SecurityRequirement.SecurityRequirementValue] + def __init__(self, security_requirement: _Optional[_Mapping[str, SecurityRequirement.SecurityRequirementValue]] = ...) -> None: ... + +class Scopes(_message.Message): + __slots__ = ("scope",) + class ScopeEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + SCOPE_FIELD_NUMBER: _ClassVar[int] + scope: _containers.ScalarMap[str, str] + def __init__(self, scope: _Optional[_Mapping[str, str]] = ...) -> None: ...