From 7293d75fd3fb51993d72d44eb509b2dff488a521 Mon Sep 17 00:00:00 2001 From: A Gardner <3100188+actgardner@users.noreply.github.com> Date: Fri, 19 Mar 2021 15:30:01 -0400 Subject: [PATCH 01/34] WIP try building with pachyderm 2.0 --- proto/pachyderm | 2 +- version.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/proto/pachyderm b/proto/pachyderm index 43457e15..ec8daf0c 160000 --- a/proto/pachyderm +++ b/proto/pachyderm @@ -1 +1 @@ -Subproject commit 43457e154631664b39942d4666deb1d4584a53c7 +Subproject commit ec8daf0cb22dd06f9a710a2217eae078b5bc75bb diff --git a/version.json b/version.json index 9aca6eb3..f9c84db1 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "pachyderm": "1.12.5", - "python-pachyderm": "6.1.0" + "pachyderm": "2.0.0-alpha8", + "python-pachyderm": "7.0.0-alpha1" } From e95005e41b6228e796cd3e454ca005251375b393 Mon Sep 17 00:00:00 2001 From: A Gardner <3100188+actgardner@users.noreply.github.com> Date: Fri, 19 Mar 2021 15:44:00 -0400 Subject: [PATCH 02/34] Regenerate protos for pachyderm 2.0 --- Makefile | 5 +- proto/run | 6 +- src/python_pachyderm/proto/admin/admin_pb2.py | 1026 +---- .../proto/admin/admin_pb2_grpc.py | 57 +- src/python_pachyderm/proto/auth/auth_pb2.py | 2440 +++++------ .../proto/auth/auth_pb2_grpc.py | 304 +- src/python_pachyderm/proto/debug/debug_pb2.py | 54 +- .../proto/debug/debug_pb2_grpc.py | 14 +- .../proto/enterprise/enterprise_pb2.py | 361 +- .../proto/enterprise/enterprise_pb2_grpc.py | 63 +- .../proto/health/health_pb2.py | 12 +- .../proto/identity/__init__.py | 0 .../proto/identity/identity_pb2.py | 1332 ++++++ .../proto/identity/identity_pb2_grpc.py | 250 ++ .../proto/license/__init__.py | 0 .../proto/license/license_pb2.py | 911 ++++ .../proto/license/license_pb2_grpc.py | 167 + src/python_pachyderm/proto/pfs/pfs_pb2.py | 3762 ++++------------- .../proto/pfs/pfs_pb2_grpc.py | 848 +--- src/python_pachyderm/proto/pps/pps_pb2.py | 953 ++--- .../proto/pps/pps_pb2_grpc.py | 207 +- src/python_pachyderm/proto/server/__init__.py | 0 .../proto/server/pfs/__init__.py | 0 .../proto/server/pfs/server/__init__.py | 0 .../proto/server/pfs/server/pfsserver_pb2.py | 162 + .../server/pfs/server/pfsserver_pb2_grpc.py | 3 + .../proto/server/worker/__init__.py | 0 .../proto/server/worker/common/__init__.py | 0 .../proto/server/worker/common/common_pb2.py | 143 + .../server/worker/common/common_pb2_grpc.py | 3 + .../proto/server/worker/datum/__init__.py | 0 .../proto/server/worker/datum/datum_pb2.py | 217 + .../server/worker/datum/datum_pb2_grpc.py | 3 + .../proto/server/worker/pipeline/__init__.py | 0 .../worker/pipeline/transform/__init__.py | 0 .../pipeline/transform/transform_pb2.py | 103 + .../pipeline/transform/transform_pb2_grpc.py | 3 + .../proto/server/worker/server/__init__.py | 0 .../proto/server/worker/server/service_pb2.py | 151 + .../server/worker/server/service_pb2_grpc.py | 65 + .../proto/transaction/transaction_pb2.py | 112 +- .../proto/transaction/transaction_pb2_grpc.py | 50 +- .../proto/version/versionpb/version_pb2.py | 18 +- .../version/versionpb/version_pb2_grpc.py | 6 +- version.json | 4 +- 45 files changed, 6550 insertions(+), 7265 deletions(-) create mode 100644 src/python_pachyderm/proto/identity/__init__.py create mode 100644 src/python_pachyderm/proto/identity/identity_pb2.py create mode 100644 src/python_pachyderm/proto/identity/identity_pb2_grpc.py create mode 100644 src/python_pachyderm/proto/license/__init__.py create mode 100644 src/python_pachyderm/proto/license/license_pb2.py create mode 100644 src/python_pachyderm/proto/license/license_pb2_grpc.py create mode 100644 src/python_pachyderm/proto/server/__init__.py create mode 100644 src/python_pachyderm/proto/server/pfs/__init__.py create mode 100644 src/python_pachyderm/proto/server/pfs/server/__init__.py create mode 100644 src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2.py create mode 100644 src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2_grpc.py create mode 100644 src/python_pachyderm/proto/server/worker/__init__.py create mode 100644 src/python_pachyderm/proto/server/worker/common/__init__.py create mode 100644 src/python_pachyderm/proto/server/worker/common/common_pb2.py create mode 100644 src/python_pachyderm/proto/server/worker/common/common_pb2_grpc.py create mode 100644 src/python_pachyderm/proto/server/worker/datum/__init__.py create mode 100644 src/python_pachyderm/proto/server/worker/datum/datum_pb2.py create mode 100644 src/python_pachyderm/proto/server/worker/datum/datum_pb2_grpc.py create mode 100644 src/python_pachyderm/proto/server/worker/pipeline/__init__.py create mode 100644 src/python_pachyderm/proto/server/worker/pipeline/transform/__init__.py create mode 100644 src/python_pachyderm/proto/server/worker/pipeline/transform/transform_pb2.py create mode 100644 src/python_pachyderm/proto/server/worker/pipeline/transform/transform_pb2_grpc.py create mode 100644 src/python_pachyderm/proto/server/worker/server/__init__.py create mode 100644 src/python_pachyderm/proto/server/worker/server/service_pb2.py create mode 100644 src/python_pachyderm/proto/server/worker/server/service_pb2_grpc.py diff --git a/Makefile b/Makefile index fdef19f8..7571dd00 100644 --- a/Makefile +++ b/Makefile @@ -22,12 +22,11 @@ src/python_pachyderm/proto: docker-build-proto cd proto/pachyderm && \ git fetch --all && \ git checkout v$(PACHYDERM_VERSION) - find ./proto/pachyderm/src/client -regex ".*\.proto" \ + find ./proto/pachyderm/src -regex ".*\.proto" \ + | grep -v 'internal' \ | xargs tar cf - \ | docker run -i pachyderm_python_proto \ | tar xf - - test -d src/python_pachyderm/proto && rm -rf src/python_pachyderm/proto - mv src/python_pachyderm/client src/python_pachyderm/proto find src/python_pachyderm/proto -type d -exec touch {}/__init__.py \; init: diff --git a/proto/run b/proto/run index e9d0252a..6cadb16d 100755 --- a/proto/run +++ b/proto/run @@ -2,10 +2,10 @@ tar xf /dev/stdin -OUTDIR=src/python_pachyderm/ +OUTDIR=src/python_pachyderm/proto mkdir -p $OUTDIR -for i in $(find ./proto/pachyderm/src/client -name "*.proto"); do \ +for i in $(find ./proto/pachyderm/src -name "*.proto"); do \ # Make sure to remove the gogoproto line, as that is go specific sed -i s/import.*gogo.proto.*\;// $i sed -i 's/\[.*gogoproto.*\]//' $i @@ -14,7 +14,7 @@ for i in $(find ./proto/pachyderm/src/client -name "*.proto"); do \ done # skip pkg because protos in there aren't part of the public API -for i in $(find ./proto/pachyderm/src/client -name "*.proto" | grep -v "proto/pachyderm/src/client/pkg"); do \ +for i in $(find ./proto/pachyderm/src -name "*.proto" | grep -v "proto/pachyderm/src/internal"); do \ python3 -m grpc_tools.protoc -I./proto/pachyderm/src --python_out=$OUTDIR --grpc_python_out=$OUTDIR ${i}; \ done diff --git a/src/python_pachyderm/proto/admin/admin_pb2.py b/src/python_pachyderm/proto/admin/admin_pb2.py index cfbb7293..5e08670f 100644 --- a/src/python_pachyderm/proto/admin/admin_pb2.py +++ b/src/python_pachyderm/proto/admin/admin_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: client/admin/admin.proto +# source: admin/admin.proto from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -12,839 +12,20 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -from python_pachyderm.proto.admin.v1_7.pfs import pfs_pb2 as client_dot_admin_dot_v1__7_dot_pfs_dot_pfs__pb2 -from python_pachyderm.proto.admin.v1_7.pps import pps_pb2 as client_dot_admin_dot_v1__7_dot_pps_dot_pps__pb2 -from python_pachyderm.proto.admin.v1_8.pfs import pfs_pb2 as client_dot_admin_dot_v1__8_dot_pfs_dot_pfs__pb2 -from python_pachyderm.proto.admin.v1_8.pps import pps_pb2 as client_dot_admin_dot_v1__8_dot_pps_dot_pps__pb2 -from python_pachyderm.proto.admin.v1_9.pfs import pfs_pb2 as client_dot_admin_dot_v1__9_dot_pfs_dot_pfs__pb2 -from python_pachyderm.proto.admin.v1_9.pps import pps_pb2 as client_dot_admin_dot_v1__9_dot_pps_dot_pps__pb2 -from python_pachyderm.proto.admin.v1_10.pfs import pfs_pb2 as client_dot_admin_dot_v1__10_dot_pfs_dot_pfs__pb2 -from python_pachyderm.proto.admin.v1_10.pps import pps_pb2 as client_dot_admin_dot_v1__10_dot_pps_dot_pps__pb2 -from python_pachyderm.proto.admin.v1_11.pfs import pfs_pb2 as client_dot_admin_dot_v1__11_dot_pfs_dot_pfs__pb2 -from python_pachyderm.proto.admin.v1_11.pps import pps_pb2 as client_dot_admin_dot_v1__11_dot_pps_dot_pps__pb2 -from python_pachyderm.proto.admin.v1_11.auth import auth_pb2 as client_dot_admin_dot_v1__11_dot_auth_dot_auth__pb2 -from python_pachyderm.proto.admin.v1_11.enterprise import enterprise_pb2 as client_dot_admin_dot_v1__11_dot_enterprise_dot_enterprise__pb2 -from python_pachyderm.proto.pfs import pfs_pb2 as client_dot_pfs_dot_pfs__pb2 -from python_pachyderm.proto.pps import pps_pb2 as client_dot_pps_dot_pps__pb2 -from python_pachyderm.proto.auth import auth_pb2 as client_dot_auth_dot_auth__pb2 -from python_pachyderm.proto.enterprise import enterprise_pb2 as client_dot_enterprise_dot_enterprise__pb2 DESCRIPTOR = _descriptor.FileDescriptor( - name='client/admin/admin.proto', + name='admin/admin.proto', package='admin', syntax='proto3', - serialized_options=b'Z/github.com/pachyderm/pachyderm/src/client/admin', - serialized_pb=b'\n\x18\x63lient/admin/admin.proto\x12\x05\x61\x64min\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1f\x63lient/admin/v1_7/pfs/pfs.proto\x1a\x1f\x63lient/admin/v1_7/pps/pps.proto\x1a\x1f\x63lient/admin/v1_8/pfs/pfs.proto\x1a\x1f\x63lient/admin/v1_8/pps/pps.proto\x1a\x1f\x63lient/admin/v1_9/pfs/pfs.proto\x1a\x1f\x63lient/admin/v1_9/pps/pps.proto\x1a client/admin/v1_10/pfs/pfs.proto\x1a client/admin/v1_10/pps/pps.proto\x1a client/admin/v1_11/pfs/pfs.proto\x1a client/admin/v1_11/pps/pps.proto\x1a\"client/admin/v1_11/auth/auth.proto\x1a.client/admin/v1_11/enterprise/enterprise.proto\x1a\x14\x63lient/pfs/pfs.proto\x1a\x14\x63lient/pps/pps.proto\x1a\x16\x63lient/auth/auth.proto\x1a\"client/enterprise/enterprise.proto\"\x10\n\x0e\x43heckAuthToken\"\x91\x02\n\x05Op1_7\x12)\n\x06object\x18\x02 \x01(\x0b\x32\x19.pfs_1_7.PutObjectRequest\x12&\n\x03tag\x18\x03 \x01(\x0b\x32\x19.pfs_1_7.TagObjectRequest\x12(\n\x04repo\x18\x04 \x01(\x0b\x32\x1a.pfs_1_7.CreateRepoRequest\x12+\n\x06\x63ommit\x18\x05 \x01(\x0b\x32\x1b.pfs_1_7.BuildCommitRequest\x12,\n\x06\x62ranch\x18\x06 \x01(\x0b\x32\x1c.pfs_1_7.CreateBranchRequest\x12\x30\n\x08pipeline\x18\x07 \x01(\x0b\x32\x1e.pps_1_7.CreatePipelineRequest\"\x91\x02\n\x05Op1_8\x12)\n\x06object\x18\x02 \x01(\x0b\x32\x19.pfs_1_8.PutObjectRequest\x12&\n\x03tag\x18\x03 \x01(\x0b\x32\x19.pfs_1_8.TagObjectRequest\x12(\n\x04repo\x18\x04 \x01(\x0b\x32\x1a.pfs_1_8.CreateRepoRequest\x12+\n\x06\x63ommit\x18\x05 \x01(\x0b\x32\x1b.pfs_1_8.BuildCommitRequest\x12,\n\x06\x62ranch\x18\x06 \x01(\x0b\x32\x1c.pfs_1_8.CreateBranchRequest\x12\x30\n\x08pipeline\x18\x07 \x01(\x0b\x32\x1e.pps_1_8.CreatePipelineRequest\"\x97\x03\n\x05Op1_9\x12)\n\x06object\x18\x02 \x01(\x0b\x32\x19.pfs_1_9.PutObjectRequest\x12\x33\n\rcreate_object\x18\t \x01(\x0b\x32\x1c.pfs_1_9.CreateObjectRequest\x12&\n\x03tag\x18\x03 \x01(\x0b\x32\x19.pfs_1_9.TagObjectRequest\x12\'\n\x05\x62lock\x18\n \x01(\x0b\x32\x18.pfs_1_9.PutBlockRequest\x12(\n\x04repo\x18\x04 \x01(\x0b\x32\x1a.pfs_1_9.CreateRepoRequest\x12+\n\x06\x63ommit\x18\x05 \x01(\x0b\x32\x1b.pfs_1_9.BuildCommitRequest\x12,\n\x06\x62ranch\x18\x06 \x01(\x0b\x32\x1c.pfs_1_9.CreateBranchRequest\x12\x30\n\x08pipeline\x18\x07 \x01(\x0b\x32\x1e.pps_1_9.CreatePipelineRequest\x12&\n\x03job\x18\x08 \x01(\x0b\x32\x19.pps_1_9.CreateJobRequest\"\xa1\x03\n\x06Op1_10\x12*\n\x06object\x18\x02 \x01(\x0b\x32\x1a.pfs_1_10.PutObjectRequest\x12\x34\n\rcreate_object\x18\t \x01(\x0b\x32\x1d.pfs_1_10.CreateObjectRequest\x12\'\n\x03tag\x18\x03 \x01(\x0b\x32\x1a.pfs_1_10.TagObjectRequest\x12(\n\x05\x62lock\x18\n \x01(\x0b\x32\x19.pfs_1_10.PutBlockRequest\x12)\n\x04repo\x18\x04 \x01(\x0b\x32\x1b.pfs_1_10.CreateRepoRequest\x12,\n\x06\x63ommit\x18\x05 \x01(\x0b\x32\x1c.pfs_1_10.BuildCommitRequest\x12-\n\x06\x62ranch\x18\x06 \x01(\x0b\x32\x1d.pfs_1_10.CreateBranchRequest\x12\x31\n\x08pipeline\x18\x07 \x01(\x0b\x32\x1f.pps_1_10.CreatePipelineRequest\x12\'\n\x03job\x18\x08 \x01(\x0b\x32\x1a.pps_1_10.CreateJobRequest\"\xba\x06\n\x06Op1_11\x12*\n\x06object\x18\x02 \x01(\x0b\x32\x1a.pfs_1_11.PutObjectRequest\x12\x34\n\rcreate_object\x18\t \x01(\x0b\x32\x1d.pfs_1_11.CreateObjectRequest\x12\'\n\x03tag\x18\x03 \x01(\x0b\x32\x1a.pfs_1_11.TagObjectRequest\x12(\n\x05\x62lock\x18\n \x01(\x0b\x32\x19.pfs_1_11.PutBlockRequest\x12)\n\x04repo\x18\x04 \x01(\x0b\x32\x1b.pfs_1_11.CreateRepoRequest\x12,\n\x06\x63ommit\x18\x05 \x01(\x0b\x32\x1c.pfs_1_11.BuildCommitRequest\x12-\n\x06\x62ranch\x18\x06 \x01(\x0b\x32\x1d.pfs_1_11.CreateBranchRequest\x12\x31\n\x08pipeline\x18\x07 \x01(\x0b\x32\x1f.pps_1_11.CreatePipelineRequest\x12\'\n\x03job\x18\x08 \x01(\x0b\x32\x1a.pps_1_11.CreateJobRequest\x12)\n\x07set_acl\x18\x0b \x01(\x0b\x32\x18.auth_1_11.SetACLRequest\x12L\n\x18set_cluster_role_binding\x18\x0c \x01(\x0b\x32*.auth_1_11.ModifyClusterRoleBindingRequest\x12;\n\x0fset_auth_config\x18\r \x01(\x0b\x32\".auth_1_11.SetConfigurationRequest\x12\x31\n\ractivate_auth\x18\x0e \x01(\x0b\x32\x1a.auth_1_11.ActivateRequest\x12>\n\x12restore_auth_token\x18\x0f \x01(\x0b\x32\".auth_1_11.RestoreAuthTokenRequest\x12=\n\x13\x61\x63tivate_enterprise\x18\x10 \x01(\x0b\x32 .enterprise_1_11.ActivateRequest\x12/\n\x10\x63heck_auth_token\x18\x11 \x01(\x0b\x32\x15.admin.CheckAuthToken\"\xef\x05\n\x06Op1_12\x12%\n\x06object\x18\x02 \x01(\x0b\x32\x15.pfs.PutObjectRequest\x12/\n\rcreate_object\x18\t \x01(\x0b\x32\x18.pfs.CreateObjectRequest\x12\"\n\x03tag\x18\x03 \x01(\x0b\x32\x15.pfs.TagObjectRequest\x12#\n\x05\x62lock\x18\n \x01(\x0b\x32\x14.pfs.PutBlockRequest\x12$\n\x04repo\x18\x04 \x01(\x0b\x32\x16.pfs.CreateRepoRequest\x12\'\n\x06\x63ommit\x18\x05 \x01(\x0b\x32\x17.pfs.BuildCommitRequest\x12(\n\x06\x62ranch\x18\x06 \x01(\x0b\x32\x18.pfs.CreateBranchRequest\x12,\n\x08pipeline\x18\x07 \x01(\x0b\x32\x1a.pps.CreatePipelineRequest\x12\"\n\x03job\x18\x08 \x01(\x0b\x32\x15.pps.CreateJobRequest\x12$\n\x07set_acl\x18\x0b \x01(\x0b\x32\x13.auth.SetACLRequest\x12G\n\x18set_cluster_role_binding\x18\x0c \x01(\x0b\x32%.auth.ModifyClusterRoleBindingRequest\x12\x36\n\x0fset_auth_config\x18\r \x01(\x0b\x32\x1d.auth.SetConfigurationRequest\x12,\n\ractivate_auth\x18\x0e \x01(\x0b\x32\x15.auth.ActivateRequest\x12\x39\n\x12restore_auth_token\x18\x0f \x01(\x0b\x32\x1d.auth.RestoreAuthTokenRequest\x12\x38\n\x13\x61\x63tivate_enterprise\x18\x10 \x01(\x0b\x32\x1b.enterprise.ActivateRequest\x12/\n\x10\x63heck_auth_token\x18\x11 \x01(\x0b\x32\x15.admin.CheckAuthToken\"\xb8\x01\n\x02Op\x12\x1b\n\x05op1_7\x18\x01 \x01(\x0b\x32\x0c.admin.Op1_7\x12\x1b\n\x05op1_8\x18\x02 \x01(\x0b\x32\x0c.admin.Op1_8\x12\x1b\n\x05op1_9\x18\x03 \x01(\x0b\x32\x0c.admin.Op1_9\x12\x1d\n\x06op1_10\x18\x04 \x01(\x0b\x32\r.admin.Op1_10\x12\x1d\n\x06op1_11\x18\x05 \x01(\x0b\x32\r.admin.Op1_11\x12\x1d\n\x06op1_12\x18\x06 \x01(\x0b\x32\r.admin.Op1_12\"\x81\x01\n\x0e\x45xtractRequest\x12\x0b\n\x03URL\x18\x01 \x01(\t\x12\x12\n\nno_objects\x18\x02 \x01(\x08\x12\x10\n\x08no_repos\x18\x03 \x01(\x08\x12\x14\n\x0cno_pipelines\x18\x04 \x01(\x08\x12\x15\n\rno_enterprise\x18\x05 \x01(\x08\x12\x0f\n\x07no_auth\x18\x06 \x01(\x08\"9\n\x16\x45xtractPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"4\n\x0eRestoreRequest\x12\x15\n\x02op\x18\x01 \x01(\x0b\x32\t.admin.Op\x12\x0b\n\x03URL\x18\x02 \x01(\t\"0\n\x0b\x43lusterInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x15\n\rdeployment_id\x18\x02 \x01(\t2\xf3\x01\n\x03\x41PI\x12/\n\x07\x45xtract\x12\x15.admin.ExtractRequest\x1a\t.admin.Op\"\x00\x30\x01\x12=\n\x0f\x45xtractPipeline\x12\x1d.admin.ExtractPipelineRequest\x1a\t.admin.Op\"\x00\x12<\n\x07Restore\x12\x15.admin.RestoreRequest\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12>\n\x0eInspectCluster\x12\x16.google.protobuf.Empty\x1a\x12.admin.ClusterInfo\"\x00\x42\x31Z/github.com/pachyderm/pachyderm/src/client/adminb\x06proto3' + serialized_options=b'Z+github.com/pachyderm/pachyderm/v2/src/admin', + serialized_pb=b'\n\x11\x61\x64min/admin.proto\x12\x05\x61\x64min\x1a\x1bgoogle/protobuf/empty.proto\"0\n\x0b\x43lusterInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x15\n\rdeployment_id\x18\x02 \x01(\t2E\n\x03\x41PI\x12>\n\x0eInspectCluster\x12\x16.google.protobuf.Empty\x1a\x12.admin.ClusterInfo\"\x00\x42-Z+github.com/pachyderm/pachyderm/v2/src/adminb\x06proto3' , - dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,client_dot_admin_dot_v1__7_dot_pfs_dot_pfs__pb2.DESCRIPTOR,client_dot_admin_dot_v1__7_dot_pps_dot_pps__pb2.DESCRIPTOR,client_dot_admin_dot_v1__8_dot_pfs_dot_pfs__pb2.DESCRIPTOR,client_dot_admin_dot_v1__8_dot_pps_dot_pps__pb2.DESCRIPTOR,client_dot_admin_dot_v1__9_dot_pfs_dot_pfs__pb2.DESCRIPTOR,client_dot_admin_dot_v1__9_dot_pps_dot_pps__pb2.DESCRIPTOR,client_dot_admin_dot_v1__10_dot_pfs_dot_pfs__pb2.DESCRIPTOR,client_dot_admin_dot_v1__10_dot_pps_dot_pps__pb2.DESCRIPTOR,client_dot_admin_dot_v1__11_dot_pfs_dot_pfs__pb2.DESCRIPTOR,client_dot_admin_dot_v1__11_dot_pps_dot_pps__pb2.DESCRIPTOR,client_dot_admin_dot_v1__11_dot_auth_dot_auth__pb2.DESCRIPTOR,client_dot_admin_dot_v1__11_dot_enterprise_dot_enterprise__pb2.DESCRIPTOR,client_dot_pfs_dot_pfs__pb2.DESCRIPTOR,client_dot_pps_dot_pps__pb2.DESCRIPTOR,client_dot_auth_dot_auth__pb2.DESCRIPTOR,client_dot_enterprise_dot_enterprise__pb2.DESCRIPTOR,]) + dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,]) -_CHECKAUTHTOKEN = _descriptor.Descriptor( - name='CheckAuthToken', - full_name='admin.CheckAuthToken', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=586, - serialized_end=602, -) - - -_OP1_7 = _descriptor.Descriptor( - name='Op1_7', - full_name='admin.Op1_7', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='object', full_name='admin.Op1_7.object', index=0, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tag', full_name='admin.Op1_7.tag', index=1, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='repo', full_name='admin.Op1_7.repo', index=2, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='commit', full_name='admin.Op1_7.commit', index=3, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='admin.Op1_7.branch', index=4, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pipeline', full_name='admin.Op1_7.pipeline', index=5, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=605, - serialized_end=878, -) - - -_OP1_8 = _descriptor.Descriptor( - name='Op1_8', - full_name='admin.Op1_8', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='object', full_name='admin.Op1_8.object', index=0, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tag', full_name='admin.Op1_8.tag', index=1, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='repo', full_name='admin.Op1_8.repo', index=2, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='commit', full_name='admin.Op1_8.commit', index=3, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='admin.Op1_8.branch', index=4, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pipeline', full_name='admin.Op1_8.pipeline', index=5, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=881, - serialized_end=1154, -) - - -_OP1_9 = _descriptor.Descriptor( - name='Op1_9', - full_name='admin.Op1_9', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='object', full_name='admin.Op1_9.object', index=0, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='create_object', full_name='admin.Op1_9.create_object', index=1, - number=9, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tag', full_name='admin.Op1_9.tag', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='block', full_name='admin.Op1_9.block', index=3, - number=10, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='repo', full_name='admin.Op1_9.repo', index=4, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='commit', full_name='admin.Op1_9.commit', index=5, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='admin.Op1_9.branch', index=6, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pipeline', full_name='admin.Op1_9.pipeline', index=7, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='job', full_name='admin.Op1_9.job', index=8, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1157, - serialized_end=1564, -) - - -_OP1_10 = _descriptor.Descriptor( - name='Op1_10', - full_name='admin.Op1_10', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='object', full_name='admin.Op1_10.object', index=0, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='create_object', full_name='admin.Op1_10.create_object', index=1, - number=9, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tag', full_name='admin.Op1_10.tag', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='block', full_name='admin.Op1_10.block', index=3, - number=10, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='repo', full_name='admin.Op1_10.repo', index=4, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='commit', full_name='admin.Op1_10.commit', index=5, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='admin.Op1_10.branch', index=6, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pipeline', full_name='admin.Op1_10.pipeline', index=7, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='job', full_name='admin.Op1_10.job', index=8, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1567, - serialized_end=1984, -) - - -_OP1_11 = _descriptor.Descriptor( - name='Op1_11', - full_name='admin.Op1_11', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='object', full_name='admin.Op1_11.object', index=0, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='create_object', full_name='admin.Op1_11.create_object', index=1, - number=9, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tag', full_name='admin.Op1_11.tag', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='block', full_name='admin.Op1_11.block', index=3, - number=10, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='repo', full_name='admin.Op1_11.repo', index=4, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='commit', full_name='admin.Op1_11.commit', index=5, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='admin.Op1_11.branch', index=6, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pipeline', full_name='admin.Op1_11.pipeline', index=7, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='job', full_name='admin.Op1_11.job', index=8, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='set_acl', full_name='admin.Op1_11.set_acl', index=9, - number=11, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='set_cluster_role_binding', full_name='admin.Op1_11.set_cluster_role_binding', index=10, - number=12, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='set_auth_config', full_name='admin.Op1_11.set_auth_config', index=11, - number=13, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='activate_auth', full_name='admin.Op1_11.activate_auth', index=12, - number=14, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='restore_auth_token', full_name='admin.Op1_11.restore_auth_token', index=13, - number=15, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='activate_enterprise', full_name='admin.Op1_11.activate_enterprise', index=14, - number=16, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='check_auth_token', full_name='admin.Op1_11.check_auth_token', index=15, - number=17, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1987, - serialized_end=2813, -) - - -_OP1_12 = _descriptor.Descriptor( - name='Op1_12', - full_name='admin.Op1_12', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='object', full_name='admin.Op1_12.object', index=0, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='create_object', full_name='admin.Op1_12.create_object', index=1, - number=9, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tag', full_name='admin.Op1_12.tag', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='block', full_name='admin.Op1_12.block', index=3, - number=10, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='repo', full_name='admin.Op1_12.repo', index=4, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='commit', full_name='admin.Op1_12.commit', index=5, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='admin.Op1_12.branch', index=6, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pipeline', full_name='admin.Op1_12.pipeline', index=7, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='job', full_name='admin.Op1_12.job', index=8, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='set_acl', full_name='admin.Op1_12.set_acl', index=9, - number=11, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='set_cluster_role_binding', full_name='admin.Op1_12.set_cluster_role_binding', index=10, - number=12, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='set_auth_config', full_name='admin.Op1_12.set_auth_config', index=11, - number=13, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='activate_auth', full_name='admin.Op1_12.activate_auth', index=12, - number=14, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='restore_auth_token', full_name='admin.Op1_12.restore_auth_token', index=13, - number=15, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='activate_enterprise', full_name='admin.Op1_12.activate_enterprise', index=14, - number=16, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='check_auth_token', full_name='admin.Op1_12.check_auth_token', index=15, - number=17, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2816, - serialized_end=3567, -) - - -_OP = _descriptor.Descriptor( - name='Op', - full_name='admin.Op', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='op1_7', full_name='admin.Op.op1_7', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='op1_8', full_name='admin.Op.op1_8', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='op1_9', full_name='admin.Op.op1_9', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='op1_10', full_name='admin.Op.op1_10', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='op1_11', full_name='admin.Op.op1_11', index=4, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='op1_12', full_name='admin.Op.op1_12', index=5, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3570, - serialized_end=3754, -) - - -_EXTRACTREQUEST = _descriptor.Descriptor( - name='ExtractRequest', - full_name='admin.ExtractRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='URL', full_name='admin.ExtractRequest.URL', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='no_objects', full_name='admin.ExtractRequest.no_objects', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='no_repos', full_name='admin.ExtractRequest.no_repos', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='no_pipelines', full_name='admin.ExtractRequest.no_pipelines', index=3, - number=4, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='no_enterprise', full_name='admin.ExtractRequest.no_enterprise', index=4, - number=5, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='no_auth', full_name='admin.ExtractRequest.no_auth', index=5, - number=6, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3757, - serialized_end=3886, -) - - -_EXTRACTPIPELINEREQUEST = _descriptor.Descriptor( - name='ExtractPipelineRequest', - full_name='admin.ExtractPipelineRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='pipeline', full_name='admin.ExtractPipelineRequest.pipeline', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3888, - serialized_end=3945, -) - - -_RESTOREREQUEST = _descriptor.Descriptor( - name='RestoreRequest', - full_name='admin.RestoreRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='op', full_name='admin.RestoreRequest.op', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='URL', full_name='admin.RestoreRequest.URL', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3947, - serialized_end=3999, -) - - _CLUSTERINFO = _descriptor.Descriptor( name='ClusterInfo', full_name='admin.ClusterInfo', @@ -878,174 +59,16 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4001, - serialized_end=4049, + serialized_start=57, + serialized_end=105, ) -_OP1_7.fields_by_name['object'].message_type = client_dot_admin_dot_v1__7_dot_pfs_dot_pfs__pb2._PUTOBJECTREQUEST -_OP1_7.fields_by_name['tag'].message_type = client_dot_admin_dot_v1__7_dot_pfs_dot_pfs__pb2._TAGOBJECTREQUEST -_OP1_7.fields_by_name['repo'].message_type = client_dot_admin_dot_v1__7_dot_pfs_dot_pfs__pb2._CREATEREPOREQUEST -_OP1_7.fields_by_name['commit'].message_type = client_dot_admin_dot_v1__7_dot_pfs_dot_pfs__pb2._BUILDCOMMITREQUEST -_OP1_7.fields_by_name['branch'].message_type = client_dot_admin_dot_v1__7_dot_pfs_dot_pfs__pb2._CREATEBRANCHREQUEST -_OP1_7.fields_by_name['pipeline'].message_type = client_dot_admin_dot_v1__7_dot_pps_dot_pps__pb2._CREATEPIPELINEREQUEST -_OP1_8.fields_by_name['object'].message_type = client_dot_admin_dot_v1__8_dot_pfs_dot_pfs__pb2._PUTOBJECTREQUEST -_OP1_8.fields_by_name['tag'].message_type = client_dot_admin_dot_v1__8_dot_pfs_dot_pfs__pb2._TAGOBJECTREQUEST -_OP1_8.fields_by_name['repo'].message_type = client_dot_admin_dot_v1__8_dot_pfs_dot_pfs__pb2._CREATEREPOREQUEST -_OP1_8.fields_by_name['commit'].message_type = client_dot_admin_dot_v1__8_dot_pfs_dot_pfs__pb2._BUILDCOMMITREQUEST -_OP1_8.fields_by_name['branch'].message_type = client_dot_admin_dot_v1__8_dot_pfs_dot_pfs__pb2._CREATEBRANCHREQUEST -_OP1_8.fields_by_name['pipeline'].message_type = client_dot_admin_dot_v1__8_dot_pps_dot_pps__pb2._CREATEPIPELINEREQUEST -_OP1_9.fields_by_name['object'].message_type = client_dot_admin_dot_v1__9_dot_pfs_dot_pfs__pb2._PUTOBJECTREQUEST -_OP1_9.fields_by_name['create_object'].message_type = client_dot_admin_dot_v1__9_dot_pfs_dot_pfs__pb2._CREATEOBJECTREQUEST -_OP1_9.fields_by_name['tag'].message_type = client_dot_admin_dot_v1__9_dot_pfs_dot_pfs__pb2._TAGOBJECTREQUEST -_OP1_9.fields_by_name['block'].message_type = client_dot_admin_dot_v1__9_dot_pfs_dot_pfs__pb2._PUTBLOCKREQUEST -_OP1_9.fields_by_name['repo'].message_type = client_dot_admin_dot_v1__9_dot_pfs_dot_pfs__pb2._CREATEREPOREQUEST -_OP1_9.fields_by_name['commit'].message_type = client_dot_admin_dot_v1__9_dot_pfs_dot_pfs__pb2._BUILDCOMMITREQUEST -_OP1_9.fields_by_name['branch'].message_type = client_dot_admin_dot_v1__9_dot_pfs_dot_pfs__pb2._CREATEBRANCHREQUEST -_OP1_9.fields_by_name['pipeline'].message_type = client_dot_admin_dot_v1__9_dot_pps_dot_pps__pb2._CREATEPIPELINEREQUEST -_OP1_9.fields_by_name['job'].message_type = client_dot_admin_dot_v1__9_dot_pps_dot_pps__pb2._CREATEJOBREQUEST -_OP1_10.fields_by_name['object'].message_type = client_dot_admin_dot_v1__10_dot_pfs_dot_pfs__pb2._PUTOBJECTREQUEST -_OP1_10.fields_by_name['create_object'].message_type = client_dot_admin_dot_v1__10_dot_pfs_dot_pfs__pb2._CREATEOBJECTREQUEST -_OP1_10.fields_by_name['tag'].message_type = client_dot_admin_dot_v1__10_dot_pfs_dot_pfs__pb2._TAGOBJECTREQUEST -_OP1_10.fields_by_name['block'].message_type = client_dot_admin_dot_v1__10_dot_pfs_dot_pfs__pb2._PUTBLOCKREQUEST -_OP1_10.fields_by_name['repo'].message_type = client_dot_admin_dot_v1__10_dot_pfs_dot_pfs__pb2._CREATEREPOREQUEST -_OP1_10.fields_by_name['commit'].message_type = client_dot_admin_dot_v1__10_dot_pfs_dot_pfs__pb2._BUILDCOMMITREQUEST -_OP1_10.fields_by_name['branch'].message_type = client_dot_admin_dot_v1__10_dot_pfs_dot_pfs__pb2._CREATEBRANCHREQUEST -_OP1_10.fields_by_name['pipeline'].message_type = client_dot_admin_dot_v1__10_dot_pps_dot_pps__pb2._CREATEPIPELINEREQUEST -_OP1_10.fields_by_name['job'].message_type = client_dot_admin_dot_v1__10_dot_pps_dot_pps__pb2._CREATEJOBREQUEST -_OP1_11.fields_by_name['object'].message_type = client_dot_admin_dot_v1__11_dot_pfs_dot_pfs__pb2._PUTOBJECTREQUEST -_OP1_11.fields_by_name['create_object'].message_type = client_dot_admin_dot_v1__11_dot_pfs_dot_pfs__pb2._CREATEOBJECTREQUEST -_OP1_11.fields_by_name['tag'].message_type = client_dot_admin_dot_v1__11_dot_pfs_dot_pfs__pb2._TAGOBJECTREQUEST -_OP1_11.fields_by_name['block'].message_type = client_dot_admin_dot_v1__11_dot_pfs_dot_pfs__pb2._PUTBLOCKREQUEST -_OP1_11.fields_by_name['repo'].message_type = client_dot_admin_dot_v1__11_dot_pfs_dot_pfs__pb2._CREATEREPOREQUEST -_OP1_11.fields_by_name['commit'].message_type = client_dot_admin_dot_v1__11_dot_pfs_dot_pfs__pb2._BUILDCOMMITREQUEST -_OP1_11.fields_by_name['branch'].message_type = client_dot_admin_dot_v1__11_dot_pfs_dot_pfs__pb2._CREATEBRANCHREQUEST -_OP1_11.fields_by_name['pipeline'].message_type = client_dot_admin_dot_v1__11_dot_pps_dot_pps__pb2._CREATEPIPELINEREQUEST -_OP1_11.fields_by_name['job'].message_type = client_dot_admin_dot_v1__11_dot_pps_dot_pps__pb2._CREATEJOBREQUEST -_OP1_11.fields_by_name['set_acl'].message_type = client_dot_admin_dot_v1__11_dot_auth_dot_auth__pb2._SETACLREQUEST -_OP1_11.fields_by_name['set_cluster_role_binding'].message_type = client_dot_admin_dot_v1__11_dot_auth_dot_auth__pb2._MODIFYCLUSTERROLEBINDINGREQUEST -_OP1_11.fields_by_name['set_auth_config'].message_type = client_dot_admin_dot_v1__11_dot_auth_dot_auth__pb2._SETCONFIGURATIONREQUEST -_OP1_11.fields_by_name['activate_auth'].message_type = client_dot_admin_dot_v1__11_dot_auth_dot_auth__pb2._ACTIVATEREQUEST -_OP1_11.fields_by_name['restore_auth_token'].message_type = client_dot_admin_dot_v1__11_dot_auth_dot_auth__pb2._RESTOREAUTHTOKENREQUEST -_OP1_11.fields_by_name['activate_enterprise'].message_type = client_dot_admin_dot_v1__11_dot_enterprise_dot_enterprise__pb2._ACTIVATEREQUEST -_OP1_11.fields_by_name['check_auth_token'].message_type = _CHECKAUTHTOKEN -_OP1_12.fields_by_name['object'].message_type = client_dot_pfs_dot_pfs__pb2._PUTOBJECTREQUEST -_OP1_12.fields_by_name['create_object'].message_type = client_dot_pfs_dot_pfs__pb2._CREATEOBJECTREQUEST -_OP1_12.fields_by_name['tag'].message_type = client_dot_pfs_dot_pfs__pb2._TAGOBJECTREQUEST -_OP1_12.fields_by_name['block'].message_type = client_dot_pfs_dot_pfs__pb2._PUTBLOCKREQUEST -_OP1_12.fields_by_name['repo'].message_type = client_dot_pfs_dot_pfs__pb2._CREATEREPOREQUEST -_OP1_12.fields_by_name['commit'].message_type = client_dot_pfs_dot_pfs__pb2._BUILDCOMMITREQUEST -_OP1_12.fields_by_name['branch'].message_type = client_dot_pfs_dot_pfs__pb2._CREATEBRANCHREQUEST -_OP1_12.fields_by_name['pipeline'].message_type = client_dot_pps_dot_pps__pb2._CREATEPIPELINEREQUEST -_OP1_12.fields_by_name['job'].message_type = client_dot_pps_dot_pps__pb2._CREATEJOBREQUEST -_OP1_12.fields_by_name['set_acl'].message_type = client_dot_auth_dot_auth__pb2._SETACLREQUEST -_OP1_12.fields_by_name['set_cluster_role_binding'].message_type = client_dot_auth_dot_auth__pb2._MODIFYCLUSTERROLEBINDINGREQUEST -_OP1_12.fields_by_name['set_auth_config'].message_type = client_dot_auth_dot_auth__pb2._SETCONFIGURATIONREQUEST -_OP1_12.fields_by_name['activate_auth'].message_type = client_dot_auth_dot_auth__pb2._ACTIVATEREQUEST -_OP1_12.fields_by_name['restore_auth_token'].message_type = client_dot_auth_dot_auth__pb2._RESTOREAUTHTOKENREQUEST -_OP1_12.fields_by_name['activate_enterprise'].message_type = client_dot_enterprise_dot_enterprise__pb2._ACTIVATEREQUEST -_OP1_12.fields_by_name['check_auth_token'].message_type = _CHECKAUTHTOKEN -_OP.fields_by_name['op1_7'].message_type = _OP1_7 -_OP.fields_by_name['op1_8'].message_type = _OP1_8 -_OP.fields_by_name['op1_9'].message_type = _OP1_9 -_OP.fields_by_name['op1_10'].message_type = _OP1_10 -_OP.fields_by_name['op1_11'].message_type = _OP1_11 -_OP.fields_by_name['op1_12'].message_type = _OP1_12 -_EXTRACTPIPELINEREQUEST.fields_by_name['pipeline'].message_type = client_dot_pps_dot_pps__pb2._PIPELINE -_RESTOREREQUEST.fields_by_name['op'].message_type = _OP -DESCRIPTOR.message_types_by_name['CheckAuthToken'] = _CHECKAUTHTOKEN -DESCRIPTOR.message_types_by_name['Op1_7'] = _OP1_7 -DESCRIPTOR.message_types_by_name['Op1_8'] = _OP1_8 -DESCRIPTOR.message_types_by_name['Op1_9'] = _OP1_9 -DESCRIPTOR.message_types_by_name['Op1_10'] = _OP1_10 -DESCRIPTOR.message_types_by_name['Op1_11'] = _OP1_11 -DESCRIPTOR.message_types_by_name['Op1_12'] = _OP1_12 -DESCRIPTOR.message_types_by_name['Op'] = _OP -DESCRIPTOR.message_types_by_name['ExtractRequest'] = _EXTRACTREQUEST -DESCRIPTOR.message_types_by_name['ExtractPipelineRequest'] = _EXTRACTPIPELINEREQUEST -DESCRIPTOR.message_types_by_name['RestoreRequest'] = _RESTOREREQUEST DESCRIPTOR.message_types_by_name['ClusterInfo'] = _CLUSTERINFO _sym_db.RegisterFileDescriptor(DESCRIPTOR) -CheckAuthToken = _reflection.GeneratedProtocolMessageType('CheckAuthToken', (_message.Message,), { - 'DESCRIPTOR' : _CHECKAUTHTOKEN, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.CheckAuthToken) - }) -_sym_db.RegisterMessage(CheckAuthToken) - -Op1_7 = _reflection.GeneratedProtocolMessageType('Op1_7', (_message.Message,), { - 'DESCRIPTOR' : _OP1_7, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.Op1_7) - }) -_sym_db.RegisterMessage(Op1_7) - -Op1_8 = _reflection.GeneratedProtocolMessageType('Op1_8', (_message.Message,), { - 'DESCRIPTOR' : _OP1_8, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.Op1_8) - }) -_sym_db.RegisterMessage(Op1_8) - -Op1_9 = _reflection.GeneratedProtocolMessageType('Op1_9', (_message.Message,), { - 'DESCRIPTOR' : _OP1_9, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.Op1_9) - }) -_sym_db.RegisterMessage(Op1_9) - -Op1_10 = _reflection.GeneratedProtocolMessageType('Op1_10', (_message.Message,), { - 'DESCRIPTOR' : _OP1_10, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.Op1_10) - }) -_sym_db.RegisterMessage(Op1_10) - -Op1_11 = _reflection.GeneratedProtocolMessageType('Op1_11', (_message.Message,), { - 'DESCRIPTOR' : _OP1_11, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.Op1_11) - }) -_sym_db.RegisterMessage(Op1_11) - -Op1_12 = _reflection.GeneratedProtocolMessageType('Op1_12', (_message.Message,), { - 'DESCRIPTOR' : _OP1_12, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.Op1_12) - }) -_sym_db.RegisterMessage(Op1_12) - -Op = _reflection.GeneratedProtocolMessageType('Op', (_message.Message,), { - 'DESCRIPTOR' : _OP, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.Op) - }) -_sym_db.RegisterMessage(Op) - -ExtractRequest = _reflection.GeneratedProtocolMessageType('ExtractRequest', (_message.Message,), { - 'DESCRIPTOR' : _EXTRACTREQUEST, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.ExtractRequest) - }) -_sym_db.RegisterMessage(ExtractRequest) - -ExtractPipelineRequest = _reflection.GeneratedProtocolMessageType('ExtractPipelineRequest', (_message.Message,), { - 'DESCRIPTOR' : _EXTRACTPIPELINEREQUEST, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.ExtractPipelineRequest) - }) -_sym_db.RegisterMessage(ExtractPipelineRequest) - -RestoreRequest = _reflection.GeneratedProtocolMessageType('RestoreRequest', (_message.Message,), { - 'DESCRIPTOR' : _RESTOREREQUEST, - '__module__' : 'client.admin.admin_pb2' - # @@protoc_insertion_point(class_scope:admin.RestoreRequest) - }) -_sym_db.RegisterMessage(RestoreRequest) - ClusterInfo = _reflection.GeneratedProtocolMessageType('ClusterInfo', (_message.Message,), { 'DESCRIPTOR' : _CLUSTERINFO, - '__module__' : 'client.admin.admin_pb2' + '__module__' : 'admin.admin_pb2' # @@protoc_insertion_point(class_scope:admin.ClusterInfo) }) _sym_db.RegisterMessage(ClusterInfo) @@ -1059,40 +82,13 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=4052, - serialized_end=4295, + serialized_start=107, + serialized_end=176, methods=[ - _descriptor.MethodDescriptor( - name='Extract', - full_name='admin.API.Extract', - index=0, - containing_service=None, - input_type=_EXTRACTREQUEST, - output_type=_OP, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ExtractPipeline', - full_name='admin.API.ExtractPipeline', - index=1, - containing_service=None, - input_type=_EXTRACTPIPELINEREQUEST, - output_type=_OP, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='Restore', - full_name='admin.API.Restore', - index=2, - containing_service=None, - input_type=_RESTOREREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - serialized_options=None, - ), _descriptor.MethodDescriptor( name='InspectCluster', full_name='admin.API.InspectCluster', - index=3, + index=0, containing_service=None, input_type=google_dot_protobuf_dot_empty__pb2._EMPTY, output_type=_CLUSTERINFO, diff --git a/src/python_pachyderm/proto/admin/admin_pb2_grpc.py b/src/python_pachyderm/proto/admin/admin_pb2_grpc.py index bebee1b0..3b8fb625 100644 --- a/src/python_pachyderm/proto/admin/admin_pb2_grpc.py +++ b/src/python_pachyderm/proto/admin/admin_pb2_grpc.py @@ -1,7 +1,7 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc -from python_pachyderm.proto.admin import admin_pb2 as client_dot_admin_dot_admin__pb2 +from admin import admin_pb2 as admin_dot_admin__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 @@ -15,25 +15,10 @@ def __init__(self, channel): Args: channel: A grpc.Channel. """ - self.Extract = channel.unary_stream( - '/admin.API/Extract', - request_serializer=client_dot_admin_dot_admin__pb2.ExtractRequest.SerializeToString, - response_deserializer=client_dot_admin_dot_admin__pb2.Op.FromString, - ) - self.ExtractPipeline = channel.unary_unary( - '/admin.API/ExtractPipeline', - request_serializer=client_dot_admin_dot_admin__pb2.ExtractPipelineRequest.SerializeToString, - response_deserializer=client_dot_admin_dot_admin__pb2.Op.FromString, - ) - self.Restore = channel.stream_unary( - '/admin.API/Restore', - request_serializer=client_dot_admin_dot_admin__pb2.RestoreRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) self.InspectCluster = channel.unary_unary( '/admin.API/InspectCluster', request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - response_deserializer=client_dot_admin_dot_admin__pb2.ClusterInfo.FromString, + response_deserializer=admin_dot_admin__pb2.ClusterInfo.FromString, ) @@ -41,27 +26,6 @@ class APIServicer(object): # missing associated documentation comment in .proto file pass - def Extract(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ExtractPipeline(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Restore(self, request_iterator, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def InspectCluster(self, request, context): # missing associated documentation comment in .proto file pass @@ -72,25 +36,10 @@ def InspectCluster(self, request, context): def add_APIServicer_to_server(servicer, server): rpc_method_handlers = { - 'Extract': grpc.unary_stream_rpc_method_handler( - servicer.Extract, - request_deserializer=client_dot_admin_dot_admin__pb2.ExtractRequest.FromString, - response_serializer=client_dot_admin_dot_admin__pb2.Op.SerializeToString, - ), - 'ExtractPipeline': grpc.unary_unary_rpc_method_handler( - servicer.ExtractPipeline, - request_deserializer=client_dot_admin_dot_admin__pb2.ExtractPipelineRequest.FromString, - response_serializer=client_dot_admin_dot_admin__pb2.Op.SerializeToString, - ), - 'Restore': grpc.stream_unary_rpc_method_handler( - servicer.Restore, - request_deserializer=client_dot_admin_dot_admin__pb2.RestoreRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), 'InspectCluster': grpc.unary_unary_rpc_method_handler( servicer.InspectCluster, request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - response_serializer=client_dot_admin_dot_admin__pb2.ClusterInfo.SerializeToString, + response_serializer=admin_dot_admin__pb2.ClusterInfo.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( diff --git a/src/python_pachyderm/proto/auth/auth_pb2.py b/src/python_pachyderm/proto/auth/auth_pb2.py index 306f7692..f235de50 100644 --- a/src/python_pachyderm/proto/auth/auth_pb2.py +++ b/src/python_pachyderm/proto/auth/auth_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: client/auth/auth.proto +# source: auth/auth.proto from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor @@ -16,709 +16,381 @@ DESCRIPTOR = _descriptor.FileDescriptor( - name='client/auth/auth.proto', + name='auth/auth.proto', package='auth', syntax='proto3', - serialized_options=b'Z.github.com/pachyderm/pachyderm/src/client/auth', - serialized_pb=b'\n\x16\x63lient/auth/auth.proto\x12\x04\x61uth\x1a\x1fgoogle/protobuf/timestamp.proto\"L\n\x0f\x41\x63tivateRequest\x12\x0f\n\x07subject\x18\x02 \x01(\t\x12\x14\n\x0cgithub_token\x18\x01 \x01(\t\x12\x12\n\nroot_token\x18\x03 \x01(\t\"&\n\x10\x41\x63tivateResponse\x12\x12\n\npach_token\x18\x01 \x01(\t\"\x13\n\x11\x44\x65\x61\x63tivateRequest\"\x14\n\x12\x44\x65\x61\x63tivateResponse\"\xb6\x03\n\nIDProvider\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12*\n\x04saml\x18\x03 \x01(\x0b\x32\x1c.auth.IDProvider.SAMLOptions\x12*\n\x04oidc\x18\x05 \x01(\x0b\x32\x1c.auth.IDProvider.OIDCOptions\x12.\n\x06github\x18\x04 \x01(\x0b\x32\x1e.auth.IDProvider.GitHubOptions\x1aR\n\x0bSAMLOptions\x12\x14\n\x0cmetadata_url\x18\x01 \x01(\t\x12\x14\n\x0cmetadata_xml\x18\x02 \x01(\x0c\x12\x17\n\x0fgroup_attribute\x18\x03 \x01(\t\x1a\x97\x01\n\x0bOIDCOptions\x12\x0e\n\x06issuer\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\x12\x15\n\rclient_secret\x18\x03 \x01(\t\x12\x14\n\x0credirect_uri\x18\x04 \x01(\t\x12\x19\n\x11\x61\x64\x64itional_scopes\x18\x05 \x03(\t\x12\x1d\n\x15ignore_email_verified\x18\x06 \x01(\x08\x1a\x0f\n\rGitHubOptions\"\x90\x02\n\nAuthConfig\x12\x1b\n\x13live_config_version\x18\x01 \x01(\x03\x12&\n\x0cid_providers\x18\x02 \x03(\x0b\x32\x10.auth.IDProvider\x12=\n\x10saml_svc_options\x18\x03 \x01(\x0b\x32#.auth.AuthConfig.SAMLServiceOptions\x1a~\n\x12SAMLServiceOptions\x12\x0f\n\x07\x61\x63s_url\x18\x01 \x01(\t\x12\x14\n\x0cmetadata_url\x18\x02 \x01(\t\x12\x10\n\x08\x64\x61sh_url\x18\x03 \x01(\t\x12\x18\n\x10session_duration\x18\x04 \x01(\t\x12\x15\n\rdebug_logging\x18\x05 \x01(\x08\"\x19\n\x17GetConfigurationRequest\"C\n\x18GetConfigurationResponse\x12\'\n\rconfiguration\x18\x01 \x01(\x0b\x32\x10.auth.AuthConfig\"B\n\x17SetConfigurationRequest\x12\'\n\rconfiguration\x18\x01 \x01(\x0b\x32\x10.auth.AuthConfig\"\x1a\n\x18SetConfigurationResponse\"0\n\x0c\x43lusterRoles\x12 \n\x05roles\x18\x01 \x03(\x0e\x32\x11.auth.ClusterRole\"\x1f\n\x1dGetClusterRoleBindingsRequest\"\xab\x01\n\x1eGetClusterRoleBindingsResponse\x12\x44\n\x08\x62indings\x18\x01 \x03(\x0b\x32\x32.auth.GetClusterRoleBindingsResponse.BindingsEntry\x1a\x43\n\rBindingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.auth.ClusterRoles:\x02\x38\x01\"W\n\x1fModifyClusterRoleBindingRequest\x12\x11\n\tprincipal\x18\x01 \x01(\t\x12!\n\x05roles\x18\x02 \x01(\x0b\x32\x12.auth.ClusterRoles\"\"\n ModifyClusterRoleBindingResponse\"\x12\n\x10GetAdminsRequest\"#\n\x11GetAdminsResponse\x12\x0e\n\x06\x61\x64mins\x18\x01 \x03(\t\"2\n\x13ModifyAdminsRequest\x12\x0b\n\x03\x61\x64\x64\x18\x01 \x03(\t\x12\x0e\n\x06remove\x18\x02 \x03(\t\"\x16\n\x14ModifyAdminsResponse\"R\n\x07OTPInfo\x12\x0f\n\x07subject\x18\x01 \x01(\t\x12\x36\n\x12session_expiration\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x86\x01\n\tTokenInfo\x12\x0f\n\x07subject\x18\x01 \x01(\t\x12+\n\x06source\x18\x02 \x01(\x0e\x32\x1b.auth.TokenInfo.TokenSource\";\n\x0bTokenSource\x12\x0b\n\x07INVALID\x10\x00\x12\x10\n\x0c\x41UTHENTICATE\x10\x01\x12\r\n\tGET_TOKEN\x10\x02\"l\n\x13\x41uthenticateRequest\x12\x14\n\x0cgithub_token\x18\x01 \x01(\t\x12\x12\n\noidc_state\x18\x03 \x01(\t\x12\x19\n\x11one_time_password\x18\x02 \x01(\t\x12\x10\n\x08id_token\x18\x04 \x01(\t\"*\n\x14\x41uthenticateResponse\x12\x12\n\npach_token\x18\x01 \x01(\t\"\x0f\n\rWhoAmIRequest\"l\n\x0eWhoAmIResponse\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x10\n\x08is_admin\x18\x02 \x01(\x08\x12\x0b\n\x03ttl\x18\x03 \x01(\x03\x12)\n\rcluster_roles\x18\x04 \x01(\x0b\x32\x12.auth.ClusterRoles\"k\n\x03\x41\x43L\x12\'\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x16.auth.ACL.EntriesEntry\x1a;\n\x0c\x45ntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1a\n\x05value\x18\x02 \x01(\x0e\x32\x0b.auth.Scope:\x02\x38\x01\"h\n\x05Users\x12-\n\tusernames\x18\x01 \x03(\x0b\x32\x1a.auth.Users.UsernamesEntry\x1a\x30\n\x0eUsernamesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"a\n\x06Groups\x12(\n\x06groups\x18\x01 \x03(\x0b\x32\x18.auth.Groups.GroupsEntry\x1a-\n\x0bGroupsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"<\n\x10\x41uthorizeRequest\x12\x0c\n\x04repo\x18\x01 \x01(\t\x12\x1a\n\x05scope\x18\x02 \x01(\x0e\x32\x0b.auth.Scope\"\'\n\x11\x41uthorizeResponse\x12\x12\n\nauthorized\x18\x01 \x01(\x08\"2\n\x0fGetScopeRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\r\n\x05repos\x18\x02 \x03(\t\"/\n\x10GetScopeResponse\x12\x1b\n\x06scopes\x18\x01 \x03(\x0e\x32\x0b.auth.Scope\"M\n\x0fSetScopeRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0c\n\x04repo\x18\x02 \x01(\t\x12\x1a\n\x05scope\x18\x03 \x01(\x0e\x32\x0b.auth.Scope\"\x12\n\x10SetScopeResponse\"\x1d\n\rGetACLRequest\x12\x0c\n\x04repo\x18\x01 \x01(\t\"8\n\x08\x41\x43LEntry\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x1a\n\x05scope\x18\x02 \x01(\x0e\x32\x0b.auth.Scope\"X\n\x0eGetACLResponse\x12\x1f\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x0e.auth.ACLEntry\x12%\n\rrobot_entries\x18\x02 \x03(\x0b\x32\x0e.auth.ACLEntry\">\n\rSetACLRequest\x12\x0c\n\x04repo\x18\x01 \x01(\t\x12\x1f\n\x07\x65ntries\x18\x02 \x03(\x0b\x32\x0e.auth.ACLEntry\"\x10\n\x0eSetACLResponse\"C\n\x0bSessionInfo\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x16\n\x0e\x63onversion_err\x18\x03 \x01(\x08\"\x15\n\x13GetOIDCLoginRequest\"8\n\x14GetOIDCLoginResponse\x12\x11\n\tlogin_url\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\t\"3\n\x13GetAuthTokenRequest\x12\x0f\n\x07subject\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"6\n\x14GetAuthTokenResponse\x12\x0f\n\x07subject\x18\x02 \x01(\t\x12\r\n\x05token\x18\x01 \x01(\t\"4\n\x16\x45xtendAuthTokenRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"\x19\n\x17\x45xtendAuthTokenResponse\"\'\n\x16RevokeAuthTokenRequest\x12\r\n\x05token\x18\x01 \x01(\t\"\x19\n\x17RevokeAuthTokenResponse\";\n\x17SetGroupsForUserRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0e\n\x06groups\x18\x02 \x03(\t\"\x1a\n\x18SetGroupsForUserResponse\"B\n\x14ModifyMembersRequest\x12\r\n\x05group\x18\x01 \x01(\t\x12\x0b\n\x03\x61\x64\x64\x18\x02 \x03(\t\x12\x0e\n\x06remove\x18\x03 \x03(\t\"\x17\n\x15ModifyMembersResponse\"$\n\x10GetGroupsRequest\x12\x10\n\x08username\x18\x01 \x01(\t\"#\n\x11GetGroupsResponse\x12\x0e\n\x06groups\x18\x01 \x03(\t\" \n\x0fGetUsersRequest\x12\r\n\x05group\x18\x01 \x01(\t\"%\n\x10GetUsersResponse\x12\x11\n\tusernames\x18\x01 \x03(\t\"9\n\x19GetOneTimePasswordRequest\x12\x0f\n\x07subject\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"^\n\x1aGetOneTimePasswordResponse\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\x12\x32\n\x0eotp_expiration\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"|\n\x0fHashedAuthToken\x12\x14\n\x0chashed_token\x18\x01 \x01(\t\x12#\n\ntoken_info\x18\x02 \x01(\x0b\x32\x0f.auth.TokenInfo\x12.\n\nexpiration\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x1a\n\x18\x45xtractAuthTokensRequest\"B\n\x19\x45xtractAuthTokensResponse\x12%\n\x06tokens\x18\x01 \x03(\x0b\x32\x15.auth.HashedAuthToken\"?\n\x17RestoreAuthTokenRequest\x12$\n\x05token\x18\x01 \x01(\x0b\x32\x15.auth.HashedAuthToken\"\x1a\n\x18RestoreAuthTokenResponse*/\n\x0b\x43lusterRole\x12\r\n\tUNDEFINED\x10\x00\x12\t\n\x05SUPER\x10\x01\x12\x06\n\x02\x46S\x10\x02*4\n\x05Scope\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06READER\x10\x01\x12\n\n\x06WRITER\x10\x02\x12\t\n\x05OWNER\x10\x03\x32\x90\x0f\n\x03\x41PI\x12;\n\x08\x41\x63tivate\x12\x15.auth.ActivateRequest\x1a\x16.auth.ActivateResponse\"\x00\x12\x41\n\nDeactivate\x12\x17.auth.DeactivateRequest\x1a\x18.auth.DeactivateResponse\"\x00\x12S\n\x10GetConfiguration\x12\x1d.auth.GetConfigurationRequest\x1a\x1e.auth.GetConfigurationResponse\"\x00\x12S\n\x10SetConfiguration\x12\x1d.auth.SetConfigurationRequest\x1a\x1e.auth.SetConfigurationResponse\"\x00\x12>\n\tGetAdmins\x12\x16.auth.GetAdminsRequest\x1a\x17.auth.GetAdminsResponse\"\x00\x12G\n\x0cModifyAdmins\x12\x19.auth.ModifyAdminsRequest\x1a\x1a.auth.ModifyAdminsResponse\"\x00\x12\x65\n\x16GetClusterRoleBindings\x12#.auth.GetClusterRoleBindingsRequest\x1a$.auth.GetClusterRoleBindingsResponse\"\x00\x12k\n\x18ModifyClusterRoleBinding\x12%.auth.ModifyClusterRoleBindingRequest\x1a&.auth.ModifyClusterRoleBindingResponse\"\x00\x12G\n\x0c\x41uthenticate\x12\x19.auth.AuthenticateRequest\x1a\x1a.auth.AuthenticateResponse\"\x00\x12>\n\tAuthorize\x12\x16.auth.AuthorizeRequest\x1a\x17.auth.AuthorizeResponse\"\x00\x12\x35\n\x06WhoAmI\x12\x13.auth.WhoAmIRequest\x1a\x14.auth.WhoAmIResponse\"\x00\x12;\n\x08GetScope\x12\x15.auth.GetScopeRequest\x1a\x16.auth.GetScopeResponse\"\x00\x12;\n\x08SetScope\x12\x15.auth.SetScopeRequest\x1a\x16.auth.SetScopeResponse\"\x00\x12\x35\n\x06GetACL\x12\x13.auth.GetACLRequest\x1a\x14.auth.GetACLResponse\"\x00\x12\x35\n\x06SetACL\x12\x13.auth.SetACLRequest\x1a\x14.auth.SetACLResponse\"\x00\x12G\n\x0cGetOIDCLogin\x12\x19.auth.GetOIDCLoginRequest\x1a\x1a.auth.GetOIDCLoginResponse\"\x00\x12G\n\x0cGetAuthToken\x12\x19.auth.GetAuthTokenRequest\x1a\x1a.auth.GetAuthTokenResponse\"\x00\x12P\n\x0f\x45xtendAuthToken\x12\x1c.auth.ExtendAuthTokenRequest\x1a\x1d.auth.ExtendAuthTokenResponse\"\x00\x12P\n\x0fRevokeAuthToken\x12\x1c.auth.RevokeAuthTokenRequest\x1a\x1d.auth.RevokeAuthTokenResponse\"\x00\x12S\n\x10SetGroupsForUser\x12\x1d.auth.SetGroupsForUserRequest\x1a\x1e.auth.SetGroupsForUserResponse\"\x00\x12J\n\rModifyMembers\x12\x1a.auth.ModifyMembersRequest\x1a\x1b.auth.ModifyMembersResponse\"\x00\x12>\n\tGetGroups\x12\x16.auth.GetGroupsRequest\x1a\x17.auth.GetGroupsResponse\"\x00\x12;\n\x08GetUsers\x12\x15.auth.GetUsersRequest\x1a\x16.auth.GetUsersResponse\"\x00\x12Y\n\x12GetOneTimePassword\x12\x1f.auth.GetOneTimePasswordRequest\x1a .auth.GetOneTimePasswordResponse\"\x00\x12V\n\x11\x45xtractAuthTokens\x12\x1e.auth.ExtractAuthTokensRequest\x1a\x1f.auth.ExtractAuthTokensResponse\"\x00\x12S\n\x10RestoreAuthToken\x12\x1d.auth.RestoreAuthTokenRequest\x1a\x1e.auth.RestoreAuthTokenResponse\"\x00\x42\x30Z.github.com/pachyderm/pachyderm/src/client/authb\x06proto3' + serialized_options=b'Z*github.com/pachyderm/pachyderm/v2/src/auth', + serialized_pb=b'\n\x0f\x61uth/auth.proto\x12\x04\x61uth\x1a\x1fgoogle/protobuf/timestamp.proto\"1\n\x0f\x41\x63tivateRequest\x12\x12\n\nroot_token\x18\x03 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"&\n\x10\x41\x63tivateResponse\x12\x12\n\npach_token\x18\x01 \x01(\t\"\x13\n\x11\x44\x65\x61\x63tivateRequest\"\x14\n\x12\x44\x65\x61\x63tivateResponse\"\xb0\x01\n\nOIDCConfig\x12\x0e\n\x06issuer\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\x12\x15\n\rclient_secret\x18\x03 \x01(\t\x12\x14\n\x0credirect_uri\x18\x04 \x01(\t\x12\x19\n\x11\x61\x64\x64itional_scopes\x18\x05 \x03(\t\x12\x1d\n\x15ignore_email_verified\x18\x06 \x01(\x08\x12\x18\n\x10localhost_issuer\x18\x07 \x01(\x08\"\x19\n\x17GetConfigurationRequest\"C\n\x18GetConfigurationResponse\x12\'\n\rconfiguration\x18\x01 \x01(\x0b\x32\x10.auth.OIDCConfig\"B\n\x17SetConfigurationRequest\x12\'\n\rconfiguration\x18\x01 \x01(\x0b\x32\x10.auth.OIDCConfig\"\x1a\n\x18SetConfigurationResponse\"\x86\x01\n\tTokenInfo\x12\x0f\n\x07subject\x18\x01 \x01(\t\x12+\n\x06source\x18\x02 \x01(\x0e\x32\x1b.auth.TokenInfo.TokenSource\";\n\x0bTokenSource\x12\x0b\n\x07INVALID\x10\x00\x12\x10\n\x0c\x41UTHENTICATE\x10\x01\x12\r\n\tGET_TOKEN\x10\x02\"G\n\x13\x41uthenticateRequest\x12\x12\n\noidc_state\x18\x03 \x01(\t\x12\x10\n\x08id_token\x18\x04 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"*\n\x14\x41uthenticateResponse\x12\x12\n\npach_token\x18\x01 \x01(\t\"\x0f\n\rWhoAmIRequest\";\n\x0eWhoAmIResponse\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x03 \x01(\x03J\x04\x08\x02\x10\x03J\x04\x08\x04\x10\x05\"\\\n\x05Roles\x12%\n\x05roles\x18\x01 \x03(\x0b\x32\x16.auth.Roles.RolesEntry\x1a,\n\nRolesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"{\n\x0bRoleBinding\x12/\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1e.auth.RoleBinding.EntriesEntry\x1a;\n\x0c\x45ntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1a\n\x05value\x18\x02 \x01(\x0b\x32\x0b.auth.Roles:\x02\x38\x01\":\n\x08Resource\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.auth.ResourceType\x12\x0c\n\x04name\x18\x02 \x01(\t\"h\n\x05Users\x12-\n\tusernames\x18\x01 \x03(\x0b\x32\x1a.auth.Users.UsernamesEntry\x1a\x30\n\x0eUsernamesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"a\n\x06Groups\x12(\n\x06groups\x18\x01 \x03(\x0b\x32\x18.auth.Groups.GroupsEntry\x1a-\n\x0bGroupsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"a\n\x10\x41uthorizeRequest\x12 \n\x08resource\x18\x01 \x01(\x0b\x32\x0e.auth.Resource\x12%\n\x0bpermissions\x18\x03 \x03(\x0e\x32\x10.auth.PermissionJ\x04\x08\x02\x10\x03\"\x82\x01\n\x11\x41uthorizeResponse\x12\x12\n\nauthorized\x18\x01 \x01(\x08\x12#\n\tsatisfied\x18\x02 \x03(\x0e\x32\x10.auth.Permission\x12!\n\x07missing\x18\x03 \x03(\x0e\x32\x10.auth.Permission\x12\x11\n\tprincipal\x18\x04 \x01(\t\"^\n\x18ModifyRoleBindingRequest\x12 \n\x08resource\x18\x01 \x01(\x0b\x32\x0e.auth.Resource\x12\x11\n\tprincipal\x18\x02 \x01(\t\x12\r\n\x05roles\x18\x03 \x03(\t\"\x1b\n\x19ModifyRoleBindingResponse\"9\n\x15GetRoleBindingRequest\x12 \n\x08resource\x18\x01 \x01(\x0b\x32\x0e.auth.Resource\"<\n\x16GetRoleBindingResponse\x12\"\n\x07\x62inding\x18\x01 \x01(\x0b\x32\x11.auth.RoleBinding\"C\n\x0bSessionInfo\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x16\n\x0e\x63onversion_err\x18\x03 \x01(\x08\"\x15\n\x13GetOIDCLoginRequest\"8\n\x14GetOIDCLoginResponse\x12\x11\n\tlogin_url\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\t\"3\n\x13GetAuthTokenRequest\x12\x0f\n\x07subject\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"6\n\x14GetAuthTokenResponse\x12\x0f\n\x07subject\x18\x02 \x01(\t\x12\r\n\x05token\x18\x01 \x01(\t\"2\n\x14GetRobotTokenRequest\x12\r\n\x05robot\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"&\n\x15GetRobotTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t\"4\n\x16\x45xtendAuthTokenRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"\x19\n\x17\x45xtendAuthTokenResponse\"\'\n\x16RevokeAuthTokenRequest\x12\r\n\x05token\x18\x01 \x01(\t\"\x19\n\x17RevokeAuthTokenResponse\";\n\x17SetGroupsForUserRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0e\n\x06groups\x18\x02 \x03(\t\"\x1a\n\x18SetGroupsForUserResponse\"B\n\x14ModifyMembersRequest\x12\r\n\x05group\x18\x01 \x01(\t\x12\x0b\n\x03\x61\x64\x64\x18\x02 \x03(\t\x12\x0e\n\x06remove\x18\x03 \x03(\t\"\x17\n\x15ModifyMembersResponse\"$\n\x10GetGroupsRequest\x12\x10\n\x08username\x18\x01 \x01(\t\"#\n\x11GetGroupsResponse\x12\x0e\n\x06groups\x18\x01 \x03(\t\" \n\x0fGetUsersRequest\x12\r\n\x05group\x18\x01 \x01(\t\"%\n\x10GetUsersResponse\x12\x11\n\tusernames\x18\x01 \x03(\t\"|\n\x0fHashedAuthToken\x12\x14\n\x0chashed_token\x18\x01 \x01(\t\x12#\n\ntoken_info\x18\x02 \x01(\x0b\x32\x0f.auth.TokenInfo\x12.\n\nexpiration\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x1a\n\x18\x45xtractAuthTokensRequest\"B\n\x19\x45xtractAuthTokensResponse\x12%\n\x06tokens\x18\x01 \x03(\x0b\x32\x15.auth.HashedAuthToken\"?\n\x17RestoreAuthTokenRequest\x12$\n\x05token\x18\x01 \x01(\x0b\x32\x15.auth.HashedAuthToken\"\x1a\n\x18RestoreAuthTokenResponse*\x82\r\n\nPermission\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x1b\n\x17\x43LUSTER_MODIFY_BINDINGS\x10\x64\x12\x18\n\x14\x43LUSTER_GET_BINDINGS\x10\x65\x12\x19\n\x15\x43LUSTER_AUTH_ACTIVATE\x10\x66\x12\x1b\n\x17\x43LUSTER_AUTH_DEACTIVATE\x10g\x12\x1b\n\x17\x43LUSTER_AUTH_GET_CONFIG\x10h\x12\x1b\n\x17\x43LUSTER_AUTH_SET_CONFIG\x10i\x12\x1a\n\x16\x43LUSTER_AUTH_GET_TOKEN\x10j\x12!\n\x1c\x43LUSTER_AUTH_GET_ROBOT_TOKEN\x10\x8b\x01\x12\x1d\n\x19\x43LUSTER_AUTH_EXTEND_TOKEN\x10k\x12%\n!CLUSTER_AUTH_MODIFY_GROUP_MEMBERS\x10m\x12\x1b\n\x17\x43LUSTER_AUTH_GET_GROUPS\x10n\x12 \n\x1c\x43LUSTER_AUTH_GET_GROUP_USERS\x10o\x12\x1f\n\x1b\x43LUSTER_AUTH_EXTRACT_TOKENS\x10p\x12\x1e\n\x1a\x43LUSTER_AUTH_RESTORE_TOKEN\x10q\x12\x1f\n\x1b\x43LUSTER_ENTERPRISE_ACTIVATE\x10r\x12 \n\x1c\x43LUSTER_ENTERPRISE_HEARTBEAT\x10s\x12\x1f\n\x1b\x43LUSTER_ENTERPRISE_GET_CODE\x10t\x12!\n\x1d\x43LUSTER_ENTERPRISE_DEACTIVATE\x10u\x12\x1f\n\x1b\x43LUSTER_IDENTITY_SET_CONFIG\x10v\x12\x1f\n\x1b\x43LUSTER_IDENTITY_GET_CONFIG\x10w\x12\x1f\n\x1b\x43LUSTER_IDENTITY_CREATE_IDP\x10x\x12\x1f\n\x1b\x43LUSTER_IDENTITY_UPDATE_IDP\x10y\x12\x1e\n\x1a\x43LUSTER_IDENTITY_LIST_IDPS\x10z\x12\x1c\n\x18\x43LUSTER_IDENTITY_GET_IDP\x10{\x12\x1f\n\x1b\x43LUSTER_IDENTITY_DELETE_IDP\x10|\x12\'\n#CLUSTER_IDENTITY_CREATE_OIDC_CLIENT\x10}\x12\'\n#CLUSTER_IDENTITY_UPDATE_OIDC_CLIENT\x10~\x12&\n\"CLUSTER_IDENTITY_LIST_OIDC_CLIENTS\x10\x7f\x12%\n CLUSTER_IDENTITY_GET_OIDC_CLIENT\x10\x80\x01\x12(\n#CLUSTER_IDENTITY_DELETE_OIDC_CLIENT\x10\x81\x01\x12\x17\n\x12\x43LUSTER_DEBUG_DUMP\x10\x83\x01\x12\x1d\n\x18\x43LUSTER_LICENSE_ACTIVATE\x10\x84\x01\x12\x1d\n\x18\x43LUSTER_LICENSE_GET_CODE\x10\x85\x01\x12 \n\x1b\x43LUSTER_LICENSE_ADD_CLUSTER\x10\x86\x01\x12#\n\x1e\x43LUSTER_LICENSE_UPDATE_CLUSTER\x10\x87\x01\x12#\n\x1e\x43LUSTER_LICENSE_DELETE_CLUSTER\x10\x88\x01\x12\"\n\x1d\x43LUSTER_LICENSE_LIST_CLUSTERS\x10\x89\x01\x12\x17\n\x12\x43LUSTER_DELETE_ALL\x10\x8a\x01\x12\x0e\n\tREPO_READ\x10\xc8\x01\x12\x0f\n\nREPO_WRITE\x10\xc9\x01\x12\x19\n\x14REPO_MODIFY_BINDINGS\x10\xca\x01\x12\x10\n\x0bREPO_DELETE\x10\xcb\x01\x12\x18\n\x13REPO_INSPECT_COMMIT\x10\xcc\x01\x12\x15\n\x10REPO_LIST_COMMIT\x10\xcd\x01\x12\x17\n\x12REPO_DELETE_COMMIT\x10\xce\x01\x12\x17\n\x12REPO_CREATE_BRANCH\x10\xcf\x01\x12\x15\n\x10REPO_LIST_BRANCH\x10\xd0\x01\x12\x17\n\x12REPO_DELETE_BRANCH\x10\xd1\x01\x12\x16\n\x11REPO_INSPECT_FILE\x10\xd2\x01\x12\x13\n\x0eREPO_LIST_FILE\x10\xd3\x01\x12\x1d\n\x18REPO_ADD_PIPELINE_READER\x10\xd4\x01\x12 \n\x1bREPO_REMOVE_PIPELINE_READER\x10\xd5\x01\x12\x1d\n\x18REPO_ADD_PIPELINE_WRITER\x10\xd6\x01\x12\x16\n\x11PIPELINE_LIST_JOB\x10\xad\x02*@\n\x0cResourceType\x12\x19\n\x15RESOURCE_TYPE_UNKNOWN\x10\x00\x12\x0b\n\x07\x43LUSTER\x10\x01\x12\x08\n\x04REPO\x10\x02\x32\xe3\x0b\n\x03\x41PI\x12;\n\x08\x41\x63tivate\x12\x15.auth.ActivateRequest\x1a\x16.auth.ActivateResponse\"\x00\x12\x41\n\nDeactivate\x12\x17.auth.DeactivateRequest\x1a\x18.auth.DeactivateResponse\"\x00\x12S\n\x10GetConfiguration\x12\x1d.auth.GetConfigurationRequest\x1a\x1e.auth.GetConfigurationResponse\"\x00\x12S\n\x10SetConfiguration\x12\x1d.auth.SetConfigurationRequest\x1a\x1e.auth.SetConfigurationResponse\"\x00\x12G\n\x0c\x41uthenticate\x12\x19.auth.AuthenticateRequest\x1a\x1a.auth.AuthenticateResponse\"\x00\x12>\n\tAuthorize\x12\x16.auth.AuthorizeRequest\x1a\x17.auth.AuthorizeResponse\"\x00\x12\x35\n\x06WhoAmI\x12\x13.auth.WhoAmIRequest\x1a\x14.auth.WhoAmIResponse\"\x00\x12V\n\x11ModifyRoleBinding\x12\x1e.auth.ModifyRoleBindingRequest\x1a\x1f.auth.ModifyRoleBindingResponse\"\x00\x12M\n\x0eGetRoleBinding\x12\x1b.auth.GetRoleBindingRequest\x1a\x1c.auth.GetRoleBindingResponse\"\x00\x12G\n\x0cGetOIDCLogin\x12\x19.auth.GetOIDCLoginRequest\x1a\x1a.auth.GetOIDCLoginResponse\"\x00\x12G\n\x0cGetAuthToken\x12\x19.auth.GetAuthTokenRequest\x1a\x1a.auth.GetAuthTokenResponse\"\x00\x12J\n\rGetRobotToken\x12\x1a.auth.GetRobotTokenRequest\x1a\x1b.auth.GetRobotTokenResponse\"\x00\x12P\n\x0f\x45xtendAuthToken\x12\x1c.auth.ExtendAuthTokenRequest\x1a\x1d.auth.ExtendAuthTokenResponse\"\x00\x12P\n\x0fRevokeAuthToken\x12\x1c.auth.RevokeAuthTokenRequest\x1a\x1d.auth.RevokeAuthTokenResponse\"\x00\x12S\n\x10SetGroupsForUser\x12\x1d.auth.SetGroupsForUserRequest\x1a\x1e.auth.SetGroupsForUserResponse\"\x00\x12J\n\rModifyMembers\x12\x1a.auth.ModifyMembersRequest\x1a\x1b.auth.ModifyMembersResponse\"\x00\x12>\n\tGetGroups\x12\x16.auth.GetGroupsRequest\x1a\x17.auth.GetGroupsResponse\"\x00\x12;\n\x08GetUsers\x12\x15.auth.GetUsersRequest\x1a\x16.auth.GetUsersResponse\"\x00\x12V\n\x11\x45xtractAuthTokens\x12\x1e.auth.ExtractAuthTokensRequest\x1a\x1f.auth.ExtractAuthTokensResponse\"\x00\x12S\n\x10RestoreAuthToken\x12\x1d.auth.RestoreAuthTokenRequest\x1a\x1e.auth.RestoreAuthTokenResponse\"\x00\x42,Z*github.com/pachyderm/pachyderm/v2/src/authb\x06proto3' , dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) -_CLUSTERROLE = _descriptor.EnumDescriptor( - name='ClusterRole', - full_name='auth.ClusterRole', +_PERMISSION = _descriptor.EnumDescriptor( + name='Permission', + full_name='auth.Permission', filename=None, file=DESCRIPTOR, values=[ _descriptor.EnumValueDescriptor( - name='UNDEFINED', index=0, number=0, + name='UNKNOWN', index=0, number=0, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='SUPER', index=1, number=1, + name='CLUSTER_MODIFY_BINDINGS', index=1, number=100, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='FS', index=2, number=2, + name='CLUSTER_GET_BINDINGS', index=2, number=101, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_ACTIVATE', index=3, number=102, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_DEACTIVATE', index=4, number=103, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_GET_CONFIG', index=5, number=104, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_SET_CONFIG', index=6, number=105, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_GET_TOKEN', index=7, number=106, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_GET_ROBOT_TOKEN', index=8, number=139, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_EXTEND_TOKEN', index=9, number=107, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_MODIFY_GROUP_MEMBERS', index=10, number=109, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_GET_GROUPS', index=11, number=110, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_GET_GROUP_USERS', index=12, number=111, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_EXTRACT_TOKENS', index=13, number=112, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_AUTH_RESTORE_TOKEN', index=14, number=113, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_ENTERPRISE_ACTIVATE', index=15, number=114, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_ENTERPRISE_HEARTBEAT', index=16, number=115, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_ENTERPRISE_GET_CODE', index=17, number=116, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_ENTERPRISE_DEACTIVATE', index=18, number=117, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_SET_CONFIG', index=19, number=118, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_GET_CONFIG', index=20, number=119, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_CREATE_IDP', index=21, number=120, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_UPDATE_IDP', index=22, number=121, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_LIST_IDPS', index=23, number=122, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_GET_IDP', index=24, number=123, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_DELETE_IDP', index=25, number=124, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_CREATE_OIDC_CLIENT', index=26, number=125, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_UPDATE_OIDC_CLIENT', index=27, number=126, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_LIST_OIDC_CLIENTS', index=28, number=127, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_GET_OIDC_CLIENT', index=29, number=128, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_IDENTITY_DELETE_OIDC_CLIENT', index=30, number=129, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_DEBUG_DUMP', index=31, number=131, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_LICENSE_ACTIVATE', index=32, number=132, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_LICENSE_GET_CODE', index=33, number=133, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_LICENSE_ADD_CLUSTER', index=34, number=134, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_LICENSE_UPDATE_CLUSTER', index=35, number=135, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_LICENSE_DELETE_CLUSTER', index=36, number=136, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_LICENSE_LIST_CLUSTERS', index=37, number=137, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CLUSTER_DELETE_ALL', index=38, number=138, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_READ', index=39, number=200, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_WRITE', index=40, number=201, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_MODIFY_BINDINGS', index=41, number=202, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_DELETE', index=42, number=203, serialized_options=None, type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=4237, - serialized_end=4284, -) -_sym_db.RegisterEnumDescriptor(_CLUSTERROLE) - -ClusterRole = enum_type_wrapper.EnumTypeWrapper(_CLUSTERROLE) -_SCOPE = _descriptor.EnumDescriptor( - name='Scope', - full_name='auth.Scope', - filename=None, - file=DESCRIPTOR, - values=[ _descriptor.EnumValueDescriptor( - name='NONE', index=0, number=0, + name='REPO_INSPECT_COMMIT', index=43, number=204, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='READER', index=1, number=1, + name='REPO_LIST_COMMIT', index=44, number=205, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='WRITER', index=2, number=2, + name='REPO_DELETE_COMMIT', index=45, number=206, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='OWNER', index=3, number=3, + name='REPO_CREATE_BRANCH', index=46, number=207, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_LIST_BRANCH', index=47, number=208, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_DELETE_BRANCH', index=48, number=209, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_INSPECT_FILE', index=49, number=210, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_LIST_FILE', index=50, number=211, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_ADD_PIPELINE_READER', index=51, number=212, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_REMOVE_PIPELINE_READER', index=52, number=213, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPO_ADD_PIPELINE_WRITER', index=53, number=214, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PIPELINE_LIST_JOB', index=54, number=301, serialized_options=None, type=None), ], containing_type=None, serialized_options=None, - serialized_start=4286, - serialized_end=4338, + serialized_start=3003, + serialized_end=4669, ) -_sym_db.RegisterEnumDescriptor(_SCOPE) +_sym_db.RegisterEnumDescriptor(_PERMISSION) -Scope = enum_type_wrapper.EnumTypeWrapper(_SCOPE) -UNDEFINED = 0 -SUPER = 1 -FS = 2 -NONE = 0 -READER = 1 -WRITER = 2 -OWNER = 3 - - -_TOKENINFO_TOKENSOURCE = _descriptor.EnumDescriptor( - name='TokenSource', - full_name='auth.TokenInfo.TokenSource', +Permission = enum_type_wrapper.EnumTypeWrapper(_PERMISSION) +_RESOURCETYPE = _descriptor.EnumDescriptor( + name='ResourceType', + full_name='auth.ResourceType', filename=None, file=DESCRIPTOR, values=[ _descriptor.EnumValueDescriptor( - name='INVALID', index=0, number=0, + name='RESOURCE_TYPE_UNKNOWN', index=0, number=0, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='AUTHENTICATE', index=1, number=1, + name='CLUSTER', index=1, number=1, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='GET_TOKEN', index=2, number=2, + name='REPO', index=2, number=2, serialized_options=None, type=None), ], containing_type=None, serialized_options=None, - serialized_start=1809, - serialized_end=1868, -) -_sym_db.RegisterEnumDescriptor(_TOKENINFO_TOKENSOURCE) - - -_ACTIVATEREQUEST = _descriptor.Descriptor( - name='ActivateRequest', - full_name='auth.ActivateRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='subject', full_name='auth.ActivateRequest.subject', index=0, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='github_token', full_name='auth.ActivateRequest.github_token', index=1, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='root_token', full_name='auth.ActivateRequest.root_token', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=65, - serialized_end=141, -) - - -_ACTIVATERESPONSE = _descriptor.Descriptor( - name='ActivateResponse', - full_name='auth.ActivateResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='pach_token', full_name='auth.ActivateResponse.pach_token', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=143, - serialized_end=181, -) + serialized_start=4671, + serialized_end=4735, +) +_sym_db.RegisterEnumDescriptor(_RESOURCETYPE) + +ResourceType = enum_type_wrapper.EnumTypeWrapper(_RESOURCETYPE) +UNKNOWN = 0 +CLUSTER_MODIFY_BINDINGS = 100 +CLUSTER_GET_BINDINGS = 101 +CLUSTER_AUTH_ACTIVATE = 102 +CLUSTER_AUTH_DEACTIVATE = 103 +CLUSTER_AUTH_GET_CONFIG = 104 +CLUSTER_AUTH_SET_CONFIG = 105 +CLUSTER_AUTH_GET_TOKEN = 106 +CLUSTER_AUTH_GET_ROBOT_TOKEN = 139 +CLUSTER_AUTH_EXTEND_TOKEN = 107 +CLUSTER_AUTH_MODIFY_GROUP_MEMBERS = 109 +CLUSTER_AUTH_GET_GROUPS = 110 +CLUSTER_AUTH_GET_GROUP_USERS = 111 +CLUSTER_AUTH_EXTRACT_TOKENS = 112 +CLUSTER_AUTH_RESTORE_TOKEN = 113 +CLUSTER_ENTERPRISE_ACTIVATE = 114 +CLUSTER_ENTERPRISE_HEARTBEAT = 115 +CLUSTER_ENTERPRISE_GET_CODE = 116 +CLUSTER_ENTERPRISE_DEACTIVATE = 117 +CLUSTER_IDENTITY_SET_CONFIG = 118 +CLUSTER_IDENTITY_GET_CONFIG = 119 +CLUSTER_IDENTITY_CREATE_IDP = 120 +CLUSTER_IDENTITY_UPDATE_IDP = 121 +CLUSTER_IDENTITY_LIST_IDPS = 122 +CLUSTER_IDENTITY_GET_IDP = 123 +CLUSTER_IDENTITY_DELETE_IDP = 124 +CLUSTER_IDENTITY_CREATE_OIDC_CLIENT = 125 +CLUSTER_IDENTITY_UPDATE_OIDC_CLIENT = 126 +CLUSTER_IDENTITY_LIST_OIDC_CLIENTS = 127 +CLUSTER_IDENTITY_GET_OIDC_CLIENT = 128 +CLUSTER_IDENTITY_DELETE_OIDC_CLIENT = 129 +CLUSTER_DEBUG_DUMP = 131 +CLUSTER_LICENSE_ACTIVATE = 132 +CLUSTER_LICENSE_GET_CODE = 133 +CLUSTER_LICENSE_ADD_CLUSTER = 134 +CLUSTER_LICENSE_UPDATE_CLUSTER = 135 +CLUSTER_LICENSE_DELETE_CLUSTER = 136 +CLUSTER_LICENSE_LIST_CLUSTERS = 137 +CLUSTER_DELETE_ALL = 138 +REPO_READ = 200 +REPO_WRITE = 201 +REPO_MODIFY_BINDINGS = 202 +REPO_DELETE = 203 +REPO_INSPECT_COMMIT = 204 +REPO_LIST_COMMIT = 205 +REPO_DELETE_COMMIT = 206 +REPO_CREATE_BRANCH = 207 +REPO_LIST_BRANCH = 208 +REPO_DELETE_BRANCH = 209 +REPO_INSPECT_FILE = 210 +REPO_LIST_FILE = 211 +REPO_ADD_PIPELINE_READER = 212 +REPO_REMOVE_PIPELINE_READER = 213 +REPO_ADD_PIPELINE_WRITER = 214 +PIPELINE_LIST_JOB = 301 +RESOURCE_TYPE_UNKNOWN = 0 +CLUSTER = 1 +REPO = 2 -_DEACTIVATEREQUEST = _descriptor.Descriptor( - name='DeactivateRequest', - full_name='auth.DeactivateRequest', +_TOKENINFO_TOKENSOURCE = _descriptor.EnumDescriptor( + name='TokenSource', + full_name='auth.TokenInfo.TokenSource', filename=None, file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=183, - serialized_end=202, -) - - -_DEACTIVATERESPONSE = _descriptor.Descriptor( - name='DeactivateResponse', - full_name='auth.DeactivateResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=204, - serialized_end=224, -) - - -_IDPROVIDER_SAMLOPTIONS = _descriptor.Descriptor( - name='SAMLOptions', - full_name='auth.IDProvider.SAMLOptions', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='metadata_url', full_name='auth.IDProvider.SAMLOptions.metadata_url', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='metadata_xml', full_name='auth.IDProvider.SAMLOptions.metadata_xml', index=1, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='group_attribute', full_name='auth.IDProvider.SAMLOptions.group_attribute', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=412, - serialized_end=494, -) - -_IDPROVIDER_OIDCOPTIONS = _descriptor.Descriptor( - name='OIDCOptions', - full_name='auth.IDProvider.OIDCOptions', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='issuer', full_name='auth.IDProvider.OIDCOptions.issuer', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='client_id', full_name='auth.IDProvider.OIDCOptions.client_id', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='client_secret', full_name='auth.IDProvider.OIDCOptions.client_secret', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='redirect_uri', full_name='auth.IDProvider.OIDCOptions.redirect_uri', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='additional_scopes', full_name='auth.IDProvider.OIDCOptions.additional_scopes', index=4, - number=5, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ignore_email_verified', full_name='auth.IDProvider.OIDCOptions.ignore_email_verified', index=5, - number=6, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=497, - serialized_end=648, -) - -_IDPROVIDER_GITHUBOPTIONS = _descriptor.Descriptor( - name='GitHubOptions', - full_name='auth.IDProvider.GitHubOptions', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=650, - serialized_end=665, -) - -_IDPROVIDER = _descriptor.Descriptor( - name='IDProvider', - full_name='auth.IDProvider', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='auth.IDProvider.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='description', full_name='auth.IDProvider.description', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='saml', full_name='auth.IDProvider.saml', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='oidc', full_name='auth.IDProvider.oidc', index=3, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='github', full_name='auth.IDProvider.github', index=4, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_IDPROVIDER_SAMLOPTIONS, _IDPROVIDER_OIDCOPTIONS, _IDPROVIDER_GITHUBOPTIONS, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=227, - serialized_end=665, -) - - -_AUTHCONFIG_SAMLSERVICEOPTIONS = _descriptor.Descriptor( - name='SAMLServiceOptions', - full_name='auth.AuthConfig.SAMLServiceOptions', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='acs_url', full_name='auth.AuthConfig.SAMLServiceOptions.acs_url', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='metadata_url', full_name='auth.AuthConfig.SAMLServiceOptions.metadata_url', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='dash_url', full_name='auth.AuthConfig.SAMLServiceOptions.dash_url', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='session_duration', full_name='auth.AuthConfig.SAMLServiceOptions.session_duration', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='debug_logging', full_name='auth.AuthConfig.SAMLServiceOptions.debug_logging', index=4, - number=5, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=814, - serialized_end=940, -) - -_AUTHCONFIG = _descriptor.Descriptor( - name='AuthConfig', - full_name='auth.AuthConfig', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='live_config_version', full_name='auth.AuthConfig.live_config_version', index=0, - number=1, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='id_providers', full_name='auth.AuthConfig.id_providers', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='saml_svc_options', full_name='auth.AuthConfig.saml_svc_options', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_AUTHCONFIG_SAMLSERVICEOPTIONS, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=668, - serialized_end=940, -) - - -_GETCONFIGURATIONREQUEST = _descriptor.Descriptor( - name='GetConfigurationRequest', - full_name='auth.GetConfigurationRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=942, - serialized_end=967, -) - - -_GETCONFIGURATIONRESPONSE = _descriptor.Descriptor( - name='GetConfigurationResponse', - full_name='auth.GetConfigurationResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='configuration', full_name='auth.GetConfigurationResponse.configuration', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=969, - serialized_end=1036, -) - - -_SETCONFIGURATIONREQUEST = _descriptor.Descriptor( - name='SetConfigurationRequest', - full_name='auth.SetConfigurationRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='configuration', full_name='auth.SetConfigurationRequest.configuration', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1038, - serialized_end=1104, -) - - -_SETCONFIGURATIONRESPONSE = _descriptor.Descriptor( - name='SetConfigurationResponse', - full_name='auth.SetConfigurationResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1106, - serialized_end=1132, -) - - -_CLUSTERROLES = _descriptor.Descriptor( - name='ClusterRoles', - full_name='auth.ClusterRoles', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='roles', full_name='auth.ClusterRoles.roles', index=0, - number=1, type=14, cpp_type=8, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ + values=[ + _descriptor.EnumValueDescriptor( + name='INVALID', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AUTHENTICATE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GET_TOKEN', index=2, number=2, + serialized_options=None, + type=None), ], - serialized_start=1134, - serialized_end=1182, -) - - -_GETCLUSTERROLEBINDINGSREQUEST = _descriptor.Descriptor( - name='GetClusterRoleBindingsRequest', - full_name='auth.GetClusterRoleBindingsRequest', - filename=None, - file=DESCRIPTOR, containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1184, - serialized_end=1215, + serialized_start=639, + serialized_end=698, ) +_sym_db.RegisterEnumDescriptor(_TOKENINFO_TOKENSOURCE) -_GETCLUSTERROLEBINDINGSRESPONSE_BINDINGSENTRY = _descriptor.Descriptor( - name='BindingsEntry', - full_name='auth.GetClusterRoleBindingsResponse.BindingsEntry', +_ACTIVATEREQUEST = _descriptor.Descriptor( + name='ActivateRequest', + full_name='auth.ActivateRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='auth.GetClusterRoleBindingsResponse.BindingsEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, + name='root_token', full_name='auth.ActivateRequest.root_token', index=0, + number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='auth.GetClusterRoleBindingsResponse.BindingsEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='root_token', full_name='auth.ActivateRequest.root_token', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -728,34 +400,35 @@ nested_types=[], enum_types=[ ], - serialized_options=b'8\001', + serialized_options=None, is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ ], - serialized_start=1322, - serialized_end=1389, + serialized_start=58, + serialized_end=107, ) -_GETCLUSTERROLEBINDINGSRESPONSE = _descriptor.Descriptor( - name='GetClusterRoleBindingsResponse', - full_name='auth.GetClusterRoleBindingsResponse', + +_ACTIVATERESPONSE = _descriptor.Descriptor( + name='ActivateResponse', + full_name='auth.ActivateResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='bindings', full_name='auth.GetClusterRoleBindingsResponse.bindings', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='pach_token', full_name='auth.ActivateResponse.pach_token', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], - nested_types=[_GETCLUSTERROLEBINDINGSRESPONSE_BINDINGSENTRY, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -764,32 +437,18 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1218, - serialized_end=1389, + serialized_start=109, + serialized_end=147, ) -_MODIFYCLUSTERROLEBINDINGREQUEST = _descriptor.Descriptor( - name='ModifyClusterRoleBindingRequest', - full_name='auth.ModifyClusterRoleBindingRequest', +_DEACTIVATEREQUEST = _descriptor.Descriptor( + name='DeactivateRequest', + full_name='auth.DeactivateRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ - _descriptor.FieldDescriptor( - name='principal', full_name='auth.ModifyClusterRoleBindingRequest.principal', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='roles', full_name='auth.ModifyClusterRoleBindingRequest.roles', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -802,14 +461,14 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1391, - serialized_end=1478, + serialized_start=149, + serialized_end=168, ) -_MODIFYCLUSTERROLEBINDINGRESPONSE = _descriptor.Descriptor( - name='ModifyClusterRoleBindingResponse', - full_name='auth.ModifyClusterRoleBindingResponse', +_DEACTIVATERESPONSE = _descriptor.Descriptor( + name='DeactivateResponse', + full_name='auth.DeactivateResponse', filename=None, file=DESCRIPTOR, containing_type=None, @@ -826,18 +485,81 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1480, - serialized_end=1514, + serialized_start=170, + serialized_end=190, ) -_GETADMINSREQUEST = _descriptor.Descriptor( - name='GetAdminsRequest', - full_name='auth.GetAdminsRequest', +_OIDCCONFIG = _descriptor.Descriptor( + name='OIDCConfig', + full_name='auth.OIDCConfig', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ + _descriptor.FieldDescriptor( + name='issuer', full_name='auth.OIDCConfig.issuer', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='client_id', full_name='auth.OIDCConfig.client_id', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='client_secret', full_name='auth.OIDCConfig.client_secret', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='redirect_uri', full_name='auth.OIDCConfig.redirect_uri', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='additional_scopes', full_name='auth.OIDCConfig.additional_scopes', index=4, + number=5, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_email_verified', full_name='auth.OIDCConfig.ignore_email_verified', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='localhost_issuer', full_name='auth.OIDCConfig.localhost_issuer', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='additional_scopes', full_name='auth.IDProvider.OIDCOptions.additional_scopes', index=4, + number=5, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_email_verified', full_name='auth.IDProvider.OIDCOptions.ignore_email_verified', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -850,25 +572,18 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1516, - serialized_end=1534, + serialized_start=193, + serialized_end=369, ) -_GETADMINSRESPONSE = _descriptor.Descriptor( - name='GetAdminsResponse', - full_name='auth.GetAdminsResponse', +_GETCONFIGURATIONREQUEST = _descriptor.Descriptor( + name='GetConfigurationRequest', + full_name='auth.GetConfigurationRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ - _descriptor.FieldDescriptor( - name='admins', full_name='auth.GetAdminsResponse.admins', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -881,29 +596,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1536, - serialized_end=1571, + serialized_start=371, + serialized_end=396, ) -_MODIFYADMINSREQUEST = _descriptor.Descriptor( - name='ModifyAdminsRequest', - full_name='auth.ModifyAdminsRequest', +_GETCONFIGURATIONRESPONSE = _descriptor.Descriptor( + name='GetConfigurationResponse', + full_name='auth.GetConfigurationResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='add', full_name='auth.ModifyAdminsRequest.add', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='remove', full_name='auth.ModifyAdminsRequest.remove', index=1, - number=2, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], + name='configuration', full_name='auth.GetConfigurationResponse.configuration', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -919,18 +627,25 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1573, - serialized_end=1623, + serialized_start=398, + serialized_end=465, ) -_MODIFYADMINSRESPONSE = _descriptor.Descriptor( - name='ModifyAdminsResponse', - full_name='auth.ModifyAdminsResponse', +_SETCONFIGURATIONREQUEST = _descriptor.Descriptor( + name='SetConfigurationRequest', + full_name='auth.SetConfigurationRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ + _descriptor.FieldDescriptor( + name='configuration', full_name='auth.SetConfigurationRequest.configuration', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -943,32 +658,18 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1625, - serialized_end=1647, + serialized_start=467, + serialized_end=533, ) -_OTPINFO = _descriptor.Descriptor( - name='OTPInfo', - full_name='auth.OTPInfo', +_SETCONFIGURATIONRESPONSE = _descriptor.Descriptor( + name='SetConfigurationResponse', + full_name='auth.SetConfigurationResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ - _descriptor.FieldDescriptor( - name='subject', full_name='auth.OTPInfo.subject', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='session_expiration', full_name='auth.OTPInfo.session_expiration', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -981,8 +682,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1649, - serialized_end=1731, + serialized_start=535, + serialized_end=561, ) @@ -1020,8 +721,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1734, - serialized_end=1868, + serialized_start=564, + serialized_end=698, ) @@ -1033,28 +734,14 @@ containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='github_token', full_name='auth.AuthenticateRequest.github_token', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='oidc_state', full_name='auth.AuthenticateRequest.oidc_state', index=1, + name='oidc_state', full_name='auth.AuthenticateRequest.oidc_state', index=0, number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='one_time_password', full_name='auth.AuthenticateRequest.one_time_password', index=2, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='id_token', full_name='auth.AuthenticateRequest.id_token', index=3, + name='id_token', full_name='auth.AuthenticateRequest.id_token', index=1, number=4, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -1072,8 +759,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1870, - serialized_end=1978, + serialized_start=700, + serialized_end=771, ) @@ -1103,8 +790,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1980, - serialized_end=2022, + serialized_start=773, + serialized_end=815, ) @@ -1127,8 +814,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2024, - serialized_end=2039, + serialized_start=817, + serialized_end=832, ) @@ -1147,23 +834,47 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='is_admin', full_name='auth.WhoAmIResponse.is_admin', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='ttl', full_name='auth.WhoAmIResponse.ttl', index=1, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=834, + serialized_end=893, +) + + +_ROLES_ROLESENTRY = _descriptor.Descriptor( + name='RolesEntry', + full_name='auth.Roles.RolesEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ _descriptor.FieldDescriptor( - name='ttl', full_name='auth.WhoAmIResponse.ttl', index=2, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, + name='key', full_name='auth.Roles.RolesEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='cluster_roles', full_name='auth.WhoAmIResponse.cluster_roles', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='value', full_name='auth.Roles.RolesEntry.value', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1173,35 +884,65 @@ nested_types=[], enum_types=[ ], + serialized_options=b'8\001', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=943, + serialized_end=987, +) + +_ROLES = _descriptor.Descriptor( + name='Roles', + full_name='auth.Roles', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='roles', full_name='auth.Roles.roles', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_ROLES_ROLESENTRY, ], + enum_types=[ + ], serialized_options=None, is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ ], - serialized_start=2041, - serialized_end=2149, + serialized_start=895, + serialized_end=987, ) -_ACL_ENTRIESENTRY = _descriptor.Descriptor( +_ROLEBINDING_ENTRIESENTRY = _descriptor.Descriptor( name='EntriesEntry', - full_name='auth.ACL.EntriesEntry', + full_name='auth.RoleBinding.EntriesEntry', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='auth.ACL.EntriesEntry.key', index=0, + name='key', full_name='auth.RoleBinding.EntriesEntry.key', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='auth.ACL.EntriesEntry.value', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, + name='value', full_name='auth.RoleBinding.EntriesEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1217,28 +958,66 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2199, - serialized_end=2258, + serialized_start=1053, + serialized_end=1112, +) + +_ROLEBINDING = _descriptor.Descriptor( + name='RoleBinding', + full_name='auth.RoleBinding', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='entries', full_name='auth.RoleBinding.entries', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_ROLEBINDING_ENTRIESENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=989, + serialized_end=1112, ) -_ACL = _descriptor.Descriptor( - name='ACL', - full_name='auth.ACL', + +_RESOURCE = _descriptor.Descriptor( + name='Resource', + full_name='auth.Resource', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='entries', full_name='auth.ACL.entries', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='type', full_name='auth.Resource.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='auth.Resource.name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], - nested_types=[_ACL_ENTRIESENTRY, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -1247,8 +1026,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2151, - serialized_end=2258, + serialized_start=1114, + serialized_end=1172, ) @@ -1285,8 +1064,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2316, - serialized_end=2364, + serialized_start=1230, + serialized_end=1278, ) _USERS = _descriptor.Descriptor( @@ -1315,8 +1094,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2260, - serialized_end=2364, + serialized_start=1174, + serialized_end=1278, ) @@ -1353,8 +1132,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2418, - serialized_end=2463, + serialized_start=1332, + serialized_end=1377, ) _GROUPS = _descriptor.Descriptor( @@ -1383,8 +1162,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2366, - serialized_end=2463, + serialized_start=1280, + serialized_end=1377, ) @@ -1396,16 +1175,16 @@ containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='repo', full_name='auth.AuthorizeRequest.repo', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='resource', full_name='auth.AuthorizeRequest.resource', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='scope', full_name='auth.AuthorizeRequest.scope', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, + name='permissions', full_name='auth.AuthorizeRequest.permissions', index=1, + number=3, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1421,8 +1200,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2465, - serialized_end=2525, + serialized_start=1379, + serialized_end=1476, ) @@ -1440,72 +1219,24 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2527, - serialized_end=2566, -) - - -_GETSCOPEREQUEST = _descriptor.Descriptor( - name='GetScopeRequest', - full_name='auth.GetScopeRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ _descriptor.FieldDescriptor( - name='username', full_name='auth.GetScopeRequest.username', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='satisfied', full_name='auth.AuthorizeResponse.satisfied', index=1, + number=2, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='repos', full_name='auth.GetScopeRequest.repos', index=1, - number=2, type=9, cpp_type=9, label=3, + name='missing', full_name='auth.AuthorizeResponse.missing', index=2, + number=3, type=14, cpp_type=8, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2568, - serialized_end=2618, -) - - -_GETSCOPERESPONSE = _descriptor.Descriptor( - name='GetScopeResponse', - full_name='auth.GetScopeResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ _descriptor.FieldDescriptor( - name='scopes', full_name='auth.GetScopeResponse.scopes', index=0, - number=1, type=14, cpp_type=8, label=3, - has_default_value=False, default_value=[], + name='principal', full_name='auth.AuthorizeResponse.principal', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1521,36 +1252,36 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2620, - serialized_end=2667, + serialized_start=1479, + serialized_end=1609, ) -_SETSCOPEREQUEST = _descriptor.Descriptor( - name='SetScopeRequest', - full_name='auth.SetScopeRequest', +_MODIFYROLEBINDINGREQUEST = _descriptor.Descriptor( + name='ModifyRoleBindingRequest', + full_name='auth.ModifyRoleBindingRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='username', full_name='auth.SetScopeRequest.username', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='resource', full_name='auth.ModifyRoleBindingRequest.resource', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='repo', full_name='auth.SetScopeRequest.repo', index=1, + name='principal', full_name='auth.ModifyRoleBindingRequest.principal', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='scope', full_name='auth.SetScopeRequest.scope', index=2, - number=3, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, + name='roles', full_name='auth.ModifyRoleBindingRequest.roles', index=2, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1566,14 +1297,14 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2669, - serialized_end=2746, + serialized_start=1611, + serialized_end=1705, ) -_SETSCOPERESPONSE = _descriptor.Descriptor( - name='SetScopeResponse', - full_name='auth.SetScopeResponse', +_MODIFYROLEBINDINGRESPONSE = _descriptor.Descriptor( + name='ModifyRoleBindingResponse', + full_name='auth.ModifyRoleBindingResponse', filename=None, file=DESCRIPTOR, containing_type=None, @@ -1590,22 +1321,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2748, - serialized_end=2766, + serialized_start=1707, + serialized_end=1734, ) -_GETACLREQUEST = _descriptor.Descriptor( - name='GetACLRequest', - full_name='auth.GetACLRequest', +_GETROLEBINDINGREQUEST = _descriptor.Descriptor( + name='GetRoleBindingRequest', + full_name='auth.GetRoleBindingRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='repo', full_name='auth.GetACLRequest.repo', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='resource', full_name='auth.GetRoleBindingRequest.resource', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1621,29 +1352,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2768, - serialized_end=2797, + serialized_start=1736, + serialized_end=1793, ) -_ACLENTRY = _descriptor.Descriptor( - name='ACLEntry', - full_name='auth.ACLEntry', +_GETROLEBINDINGRESPONSE = _descriptor.Descriptor( + name='GetRoleBindingResponse', + full_name='auth.GetRoleBindingResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='username', full_name='auth.ACLEntry.username', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='scope', full_name='auth.ACLEntry.scope', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, + name='binding', full_name='auth.GetRoleBindingResponse.binding', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1659,67 +1383,36 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2799, - serialized_end=2855, + serialized_start=1795, + serialized_end=1855, ) -_GETACLRESPONSE = _descriptor.Descriptor( - name='GetACLResponse', - full_name='auth.GetACLResponse', +_SESSIONINFO = _descriptor.Descriptor( + name='SessionInfo', + full_name='auth.SessionInfo', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='entries', full_name='auth.GetACLResponse.entries', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='robot_entries', full_name='auth.GetACLResponse.robot_entries', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='nonce', full_name='auth.SessionInfo.nonce', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2857, - serialized_end=2945, -) - - -_SETACLREQUEST = _descriptor.Descriptor( - name='SetACLRequest', - full_name='auth.SetACLRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ _descriptor.FieldDescriptor( - name='repo', full_name='auth.SetACLRequest.repo', index=0, - number=1, type=9, cpp_type=9, label=1, + name='email', full_name='auth.SessionInfo.email', index=1, + number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='entries', full_name='auth.SetACLRequest.entries', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='conversion_err', full_name='auth.SessionInfo.conversion_err', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1735,14 +1428,14 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2947, - serialized_end=3009, + serialized_start=1857, + serialized_end=1924, ) -_SETACLRESPONSE = _descriptor.Descriptor( - name='SetACLResponse', - full_name='auth.SetACLResponse', +_GETOIDCLOGINREQUEST = _descriptor.Descriptor( + name='GetOIDCLoginRequest', + full_name='auth.GetOIDCLoginRequest', filename=None, file=DESCRIPTOR, containing_type=None, @@ -1759,39 +1452,32 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3011, - serialized_end=3027, + serialized_start=1926, + serialized_end=1947, ) -_SESSIONINFO = _descriptor.Descriptor( - name='SessionInfo', - full_name='auth.SessionInfo', +_GETOIDCLOGINRESPONSE = _descriptor.Descriptor( + name='GetOIDCLoginResponse', + full_name='auth.GetOIDCLoginResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='nonce', full_name='auth.SessionInfo.nonce', index=0, + name='login_url', full_name='auth.GetOIDCLoginResponse.login_url', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='email', full_name='auth.SessionInfo.email', index=1, + name='state', full_name='auth.GetOIDCLoginResponse.state', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='conversion_err', full_name='auth.SessionInfo.conversion_err', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -1804,18 +1490,32 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3029, - serialized_end=3096, + serialized_start=1949, + serialized_end=2005, ) -_GETOIDCLOGINREQUEST = _descriptor.Descriptor( - name='GetOIDCLoginRequest', - full_name='auth.GetOIDCLoginRequest', +_GETAUTHTOKENREQUEST = _descriptor.Descriptor( + name='GetAuthTokenRequest', + full_name='auth.GetAuthTokenRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ + _descriptor.FieldDescriptor( + name='subject', full_name='auth.GetAuthTokenRequest.subject', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ttl', full_name='auth.GetAuthTokenRequest.ttl', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -1828,28 +1528,28 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3098, - serialized_end=3119, + serialized_start=2007, + serialized_end=2058, ) -_GETOIDCLOGINRESPONSE = _descriptor.Descriptor( - name='GetOIDCLoginResponse', - full_name='auth.GetOIDCLoginResponse', +_GETAUTHTOKENRESPONSE = _descriptor.Descriptor( + name='GetAuthTokenResponse', + full_name='auth.GetAuthTokenResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='login_url', full_name='auth.GetOIDCLoginResponse.login_url', index=0, - number=1, type=9, cpp_type=9, label=1, + name='subject', full_name='auth.GetAuthTokenResponse.subject', index=0, + number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='state', full_name='auth.GetOIDCLoginResponse.state', index=1, - number=2, type=9, cpp_type=9, label=1, + name='token', full_name='auth.GetAuthTokenResponse.token', index=1, + number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -1866,27 +1566,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3121, - serialized_end=3177, + serialized_start=2060, + serialized_end=2114, ) -_GETAUTHTOKENREQUEST = _descriptor.Descriptor( - name='GetAuthTokenRequest', - full_name='auth.GetAuthTokenRequest', +_GETROBOTTOKENREQUEST = _descriptor.Descriptor( + name='GetRobotTokenRequest', + full_name='auth.GetRobotTokenRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='subject', full_name='auth.GetAuthTokenRequest.subject', index=0, + name='robot', full_name='auth.GetRobotTokenRequest.robot', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='ttl', full_name='auth.GetAuthTokenRequest.ttl', index=1, + name='ttl', full_name='auth.GetRobotTokenRequest.ttl', index=1, number=2, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, @@ -1904,27 +1604,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3179, - serialized_end=3230, + serialized_start=2116, + serialized_end=2166, ) -_GETAUTHTOKENRESPONSE = _descriptor.Descriptor( - name='GetAuthTokenResponse', - full_name='auth.GetAuthTokenResponse', +_GETROBOTTOKENRESPONSE = _descriptor.Descriptor( + name='GetRobotTokenResponse', + full_name='auth.GetRobotTokenResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='subject', full_name='auth.GetAuthTokenResponse.subject', index=0, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='token', full_name='auth.GetAuthTokenResponse.token', index=1, + name='token', full_name='auth.GetRobotTokenResponse.token', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -1942,8 +1635,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3232, - serialized_end=3286, + serialized_start=2168, + serialized_end=2206, ) @@ -1980,8 +1673,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3288, - serialized_end=3340, + serialized_start=2208, + serialized_end=2260, ) @@ -2004,8 +1697,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3342, - serialized_end=3367, + serialized_start=2262, + serialized_end=2287, ) @@ -2035,8 +1728,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3369, - serialized_end=3408, + serialized_start=2289, + serialized_end=2328, ) @@ -2059,8 +1752,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3410, - serialized_end=3435, + serialized_start=2330, + serialized_end=2355, ) @@ -2097,8 +1790,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3437, - serialized_end=3496, + serialized_start=2357, + serialized_end=2416, ) @@ -2121,8 +1814,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3498, - serialized_end=3524, + serialized_start=2418, + serialized_end=2444, ) @@ -2166,8 +1859,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3526, - serialized_end=3592, + serialized_start=2446, + serialized_end=2512, ) @@ -2176,70 +1869,8 @@ full_name='auth.ModifyMembersResponse', filename=None, file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3594, - serialized_end=3617, -) - - -_GETGROUPSREQUEST = _descriptor.Descriptor( - name='GetGroupsRequest', - full_name='auth.GetGroupsRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='username', full_name='auth.GetGroupsRequest.username', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3619, - serialized_end=3655, -) - - -_GETGROUPSRESPONSE = _descriptor.Descriptor( - name='GetGroupsResponse', - full_name='auth.GetGroupsResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='groups', full_name='auth.GetGroupsResponse.groups', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), + containing_type=None, + fields=[ ], extensions=[ ], @@ -2252,20 +1883,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3657, - serialized_end=3692, + serialized_start=2514, + serialized_end=2537, ) -_GETUSERSREQUEST = _descriptor.Descriptor( - name='GetUsersRequest', - full_name='auth.GetUsersRequest', +_GETGROUPSREQUEST = _descriptor.Descriptor( + name='GetGroupsRequest', + full_name='auth.GetGroupsRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='group', full_name='auth.GetUsersRequest.group', index=0, + name='username', full_name='auth.GetGroupsRequest.username', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -2283,20 +1914,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3694, - serialized_end=3726, + serialized_start=2539, + serialized_end=2575, ) -_GETUSERSRESPONSE = _descriptor.Descriptor( - name='GetUsersResponse', - full_name='auth.GetUsersResponse', +_GETGROUPSRESPONSE = _descriptor.Descriptor( + name='GetGroupsResponse', + full_name='auth.GetGroupsResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='usernames', full_name='auth.GetUsersResponse.usernames', index=0, + name='groups', full_name='auth.GetGroupsResponse.groups', index=0, number=1, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, @@ -2314,32 +1945,25 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3728, - serialized_end=3765, + serialized_start=2577, + serialized_end=2612, ) -_GETONETIMEPASSWORDREQUEST = _descriptor.Descriptor( - name='GetOneTimePasswordRequest', - full_name='auth.GetOneTimePasswordRequest', +_GETUSERSREQUEST = _descriptor.Descriptor( + name='GetUsersRequest', + full_name='auth.GetUsersRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='subject', full_name='auth.GetOneTimePasswordRequest.subject', index=0, + name='group', full_name='auth.GetUsersRequest.group', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ttl', full_name='auth.GetOneTimePasswordRequest.ttl', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -2352,29 +1976,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3767, - serialized_end=3824, + serialized_start=2614, + serialized_end=2646, ) -_GETONETIMEPASSWORDRESPONSE = _descriptor.Descriptor( - name='GetOneTimePasswordResponse', - full_name='auth.GetOneTimePasswordResponse', +_GETUSERSRESPONSE = _descriptor.Descriptor( + name='GetUsersResponse', + full_name='auth.GetUsersResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='code', full_name='auth.GetOneTimePasswordResponse.code', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='otp_expiration', full_name='auth.GetOneTimePasswordResponse.otp_expiration', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='usernames', full_name='auth.GetUsersResponse.usernames', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2390,8 +2007,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3826, - serialized_end=3920, + serialized_start=2648, + serialized_end=2685, ) @@ -2435,8 +2052,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3922, - serialized_end=4046, + serialized_start=2687, + serialized_end=2811, ) @@ -2459,8 +2076,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4048, - serialized_end=4074, + serialized_start=2813, + serialized_end=2839, ) @@ -2490,8 +2107,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4076, - serialized_end=4142, + serialized_start=2841, + serialized_end=2907, ) @@ -2521,8 +2138,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4144, - serialized_end=4207, + serialized_start=2909, + serialized_end=2972, ) @@ -2545,45 +2162,31 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4209, - serialized_end=4235, + serialized_start=2974, + serialized_end=3000, ) -_IDPROVIDER_SAMLOPTIONS.containing_type = _IDPROVIDER -_IDPROVIDER_OIDCOPTIONS.containing_type = _IDPROVIDER -_IDPROVIDER_GITHUBOPTIONS.containing_type = _IDPROVIDER -_IDPROVIDER.fields_by_name['saml'].message_type = _IDPROVIDER_SAMLOPTIONS -_IDPROVIDER.fields_by_name['oidc'].message_type = _IDPROVIDER_OIDCOPTIONS -_IDPROVIDER.fields_by_name['github'].message_type = _IDPROVIDER_GITHUBOPTIONS -_AUTHCONFIG_SAMLSERVICEOPTIONS.containing_type = _AUTHCONFIG -_AUTHCONFIG.fields_by_name['id_providers'].message_type = _IDPROVIDER -_AUTHCONFIG.fields_by_name['saml_svc_options'].message_type = _AUTHCONFIG_SAMLSERVICEOPTIONS -_GETCONFIGURATIONRESPONSE.fields_by_name['configuration'].message_type = _AUTHCONFIG -_SETCONFIGURATIONREQUEST.fields_by_name['configuration'].message_type = _AUTHCONFIG -_CLUSTERROLES.fields_by_name['roles'].enum_type = _CLUSTERROLE -_GETCLUSTERROLEBINDINGSRESPONSE_BINDINGSENTRY.fields_by_name['value'].message_type = _CLUSTERROLES -_GETCLUSTERROLEBINDINGSRESPONSE_BINDINGSENTRY.containing_type = _GETCLUSTERROLEBINDINGSRESPONSE -_GETCLUSTERROLEBINDINGSRESPONSE.fields_by_name['bindings'].message_type = _GETCLUSTERROLEBINDINGSRESPONSE_BINDINGSENTRY -_MODIFYCLUSTERROLEBINDINGREQUEST.fields_by_name['roles'].message_type = _CLUSTERROLES -_OTPINFO.fields_by_name['session_expiration'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_GETCONFIGURATIONRESPONSE.fields_by_name['configuration'].message_type = _OIDCCONFIG +_SETCONFIGURATIONREQUEST.fields_by_name['configuration'].message_type = _OIDCCONFIG _TOKENINFO.fields_by_name['source'].enum_type = _TOKENINFO_TOKENSOURCE _TOKENINFO_TOKENSOURCE.containing_type = _TOKENINFO -_WHOAMIRESPONSE.fields_by_name['cluster_roles'].message_type = _CLUSTERROLES -_ACL_ENTRIESENTRY.fields_by_name['value'].enum_type = _SCOPE -_ACL_ENTRIESENTRY.containing_type = _ACL -_ACL.fields_by_name['entries'].message_type = _ACL_ENTRIESENTRY +_ROLES_ROLESENTRY.containing_type = _ROLES +_ROLES.fields_by_name['roles'].message_type = _ROLES_ROLESENTRY +_ROLEBINDING_ENTRIESENTRY.fields_by_name['value'].message_type = _ROLES +_ROLEBINDING_ENTRIESENTRY.containing_type = _ROLEBINDING +_ROLEBINDING.fields_by_name['entries'].message_type = _ROLEBINDING_ENTRIESENTRY +_RESOURCE.fields_by_name['type'].enum_type = _RESOURCETYPE _USERS_USERNAMESENTRY.containing_type = _USERS _USERS.fields_by_name['usernames'].message_type = _USERS_USERNAMESENTRY _GROUPS_GROUPSENTRY.containing_type = _GROUPS _GROUPS.fields_by_name['groups'].message_type = _GROUPS_GROUPSENTRY -_AUTHORIZEREQUEST.fields_by_name['scope'].enum_type = _SCOPE -_GETSCOPERESPONSE.fields_by_name['scopes'].enum_type = _SCOPE -_SETSCOPEREQUEST.fields_by_name['scope'].enum_type = _SCOPE -_ACLENTRY.fields_by_name['scope'].enum_type = _SCOPE -_GETACLRESPONSE.fields_by_name['entries'].message_type = _ACLENTRY -_GETACLRESPONSE.fields_by_name['robot_entries'].message_type = _ACLENTRY -_SETACLREQUEST.fields_by_name['entries'].message_type = _ACLENTRY -_GETONETIMEPASSWORDRESPONSE.fields_by_name['otp_expiration'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_AUTHORIZEREQUEST.fields_by_name['resource'].message_type = _RESOURCE +_AUTHORIZEREQUEST.fields_by_name['permissions'].enum_type = _PERMISSION +_AUTHORIZERESPONSE.fields_by_name['satisfied'].enum_type = _PERMISSION +_AUTHORIZERESPONSE.fields_by_name['missing'].enum_type = _PERMISSION +_MODIFYROLEBINDINGREQUEST.fields_by_name['resource'].message_type = _RESOURCE +_GETROLEBINDINGREQUEST.fields_by_name['resource'].message_type = _RESOURCE +_GETROLEBINDINGRESPONSE.fields_by_name['binding'].message_type = _ROLEBINDING _HASHEDAUTHTOKEN.fields_by_name['token_info'].message_type = _TOKENINFO _HASHEDAUTHTOKEN.fields_by_name['expiration'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _EXTRACTAUTHTOKENSRESPONSE.fields_by_name['tokens'].message_type = _HASHEDAUTHTOKEN @@ -2592,46 +2195,34 @@ DESCRIPTOR.message_types_by_name['ActivateResponse'] = _ACTIVATERESPONSE DESCRIPTOR.message_types_by_name['DeactivateRequest'] = _DEACTIVATEREQUEST DESCRIPTOR.message_types_by_name['DeactivateResponse'] = _DEACTIVATERESPONSE -DESCRIPTOR.message_types_by_name['IDProvider'] = _IDPROVIDER -DESCRIPTOR.message_types_by_name['AuthConfig'] = _AUTHCONFIG +DESCRIPTOR.message_types_by_name['OIDCConfig'] = _OIDCCONFIG DESCRIPTOR.message_types_by_name['GetConfigurationRequest'] = _GETCONFIGURATIONREQUEST DESCRIPTOR.message_types_by_name['GetConfigurationResponse'] = _GETCONFIGURATIONRESPONSE DESCRIPTOR.message_types_by_name['SetConfigurationRequest'] = _SETCONFIGURATIONREQUEST DESCRIPTOR.message_types_by_name['SetConfigurationResponse'] = _SETCONFIGURATIONRESPONSE -DESCRIPTOR.message_types_by_name['ClusterRoles'] = _CLUSTERROLES -DESCRIPTOR.message_types_by_name['GetClusterRoleBindingsRequest'] = _GETCLUSTERROLEBINDINGSREQUEST -DESCRIPTOR.message_types_by_name['GetClusterRoleBindingsResponse'] = _GETCLUSTERROLEBINDINGSRESPONSE -DESCRIPTOR.message_types_by_name['ModifyClusterRoleBindingRequest'] = _MODIFYCLUSTERROLEBINDINGREQUEST -DESCRIPTOR.message_types_by_name['ModifyClusterRoleBindingResponse'] = _MODIFYCLUSTERROLEBINDINGRESPONSE -DESCRIPTOR.message_types_by_name['GetAdminsRequest'] = _GETADMINSREQUEST -DESCRIPTOR.message_types_by_name['GetAdminsResponse'] = _GETADMINSRESPONSE -DESCRIPTOR.message_types_by_name['ModifyAdminsRequest'] = _MODIFYADMINSREQUEST -DESCRIPTOR.message_types_by_name['ModifyAdminsResponse'] = _MODIFYADMINSRESPONSE -DESCRIPTOR.message_types_by_name['OTPInfo'] = _OTPINFO DESCRIPTOR.message_types_by_name['TokenInfo'] = _TOKENINFO DESCRIPTOR.message_types_by_name['AuthenticateRequest'] = _AUTHENTICATEREQUEST DESCRIPTOR.message_types_by_name['AuthenticateResponse'] = _AUTHENTICATERESPONSE DESCRIPTOR.message_types_by_name['WhoAmIRequest'] = _WHOAMIREQUEST DESCRIPTOR.message_types_by_name['WhoAmIResponse'] = _WHOAMIRESPONSE -DESCRIPTOR.message_types_by_name['ACL'] = _ACL +DESCRIPTOR.message_types_by_name['Roles'] = _ROLES +DESCRIPTOR.message_types_by_name['RoleBinding'] = _ROLEBINDING +DESCRIPTOR.message_types_by_name['Resource'] = _RESOURCE DESCRIPTOR.message_types_by_name['Users'] = _USERS DESCRIPTOR.message_types_by_name['Groups'] = _GROUPS DESCRIPTOR.message_types_by_name['AuthorizeRequest'] = _AUTHORIZEREQUEST DESCRIPTOR.message_types_by_name['AuthorizeResponse'] = _AUTHORIZERESPONSE -DESCRIPTOR.message_types_by_name['GetScopeRequest'] = _GETSCOPEREQUEST -DESCRIPTOR.message_types_by_name['GetScopeResponse'] = _GETSCOPERESPONSE -DESCRIPTOR.message_types_by_name['SetScopeRequest'] = _SETSCOPEREQUEST -DESCRIPTOR.message_types_by_name['SetScopeResponse'] = _SETSCOPERESPONSE -DESCRIPTOR.message_types_by_name['GetACLRequest'] = _GETACLREQUEST -DESCRIPTOR.message_types_by_name['ACLEntry'] = _ACLENTRY -DESCRIPTOR.message_types_by_name['GetACLResponse'] = _GETACLRESPONSE -DESCRIPTOR.message_types_by_name['SetACLRequest'] = _SETACLREQUEST -DESCRIPTOR.message_types_by_name['SetACLResponse'] = _SETACLRESPONSE +DESCRIPTOR.message_types_by_name['ModifyRoleBindingRequest'] = _MODIFYROLEBINDINGREQUEST +DESCRIPTOR.message_types_by_name['ModifyRoleBindingResponse'] = _MODIFYROLEBINDINGRESPONSE +DESCRIPTOR.message_types_by_name['GetRoleBindingRequest'] = _GETROLEBINDINGREQUEST +DESCRIPTOR.message_types_by_name['GetRoleBindingResponse'] = _GETROLEBINDINGRESPONSE DESCRIPTOR.message_types_by_name['SessionInfo'] = _SESSIONINFO DESCRIPTOR.message_types_by_name['GetOIDCLoginRequest'] = _GETOIDCLOGINREQUEST DESCRIPTOR.message_types_by_name['GetOIDCLoginResponse'] = _GETOIDCLOGINRESPONSE DESCRIPTOR.message_types_by_name['GetAuthTokenRequest'] = _GETAUTHTOKENREQUEST DESCRIPTOR.message_types_by_name['GetAuthTokenResponse'] = _GETAUTHTOKENRESPONSE +DESCRIPTOR.message_types_by_name['GetRobotTokenRequest'] = _GETROBOTTOKENREQUEST +DESCRIPTOR.message_types_by_name['GetRobotTokenResponse'] = _GETROBOTTOKENRESPONSE DESCRIPTOR.message_types_by_name['ExtendAuthTokenRequest'] = _EXTENDAUTHTOKENREQUEST DESCRIPTOR.message_types_by_name['ExtendAuthTokenResponse'] = _EXTENDAUTHTOKENRESPONSE DESCRIPTOR.message_types_by_name['RevokeAuthTokenRequest'] = _REVOKEAUTHTOKENREQUEST @@ -2644,257 +2235,160 @@ DESCRIPTOR.message_types_by_name['GetGroupsResponse'] = _GETGROUPSRESPONSE DESCRIPTOR.message_types_by_name['GetUsersRequest'] = _GETUSERSREQUEST DESCRIPTOR.message_types_by_name['GetUsersResponse'] = _GETUSERSRESPONSE -DESCRIPTOR.message_types_by_name['GetOneTimePasswordRequest'] = _GETONETIMEPASSWORDREQUEST -DESCRIPTOR.message_types_by_name['GetOneTimePasswordResponse'] = _GETONETIMEPASSWORDRESPONSE DESCRIPTOR.message_types_by_name['HashedAuthToken'] = _HASHEDAUTHTOKEN DESCRIPTOR.message_types_by_name['ExtractAuthTokensRequest'] = _EXTRACTAUTHTOKENSREQUEST DESCRIPTOR.message_types_by_name['ExtractAuthTokensResponse'] = _EXTRACTAUTHTOKENSRESPONSE DESCRIPTOR.message_types_by_name['RestoreAuthTokenRequest'] = _RESTOREAUTHTOKENREQUEST DESCRIPTOR.message_types_by_name['RestoreAuthTokenResponse'] = _RESTOREAUTHTOKENRESPONSE -DESCRIPTOR.enum_types_by_name['ClusterRole'] = _CLUSTERROLE -DESCRIPTOR.enum_types_by_name['Scope'] = _SCOPE +DESCRIPTOR.enum_types_by_name['Permission'] = _PERMISSION +DESCRIPTOR.enum_types_by_name['ResourceType'] = _RESOURCETYPE _sym_db.RegisterFileDescriptor(DESCRIPTOR) ActivateRequest = _reflection.GeneratedProtocolMessageType('ActivateRequest', (_message.Message,), { 'DESCRIPTOR' : _ACTIVATEREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.ActivateRequest) }) _sym_db.RegisterMessage(ActivateRequest) ActivateResponse = _reflection.GeneratedProtocolMessageType('ActivateResponse', (_message.Message,), { 'DESCRIPTOR' : _ACTIVATERESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.ActivateResponse) }) _sym_db.RegisterMessage(ActivateResponse) DeactivateRequest = _reflection.GeneratedProtocolMessageType('DeactivateRequest', (_message.Message,), { 'DESCRIPTOR' : _DEACTIVATEREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.DeactivateRequest) }) _sym_db.RegisterMessage(DeactivateRequest) DeactivateResponse = _reflection.GeneratedProtocolMessageType('DeactivateResponse', (_message.Message,), { 'DESCRIPTOR' : _DEACTIVATERESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.DeactivateResponse) }) _sym_db.RegisterMessage(DeactivateResponse) -IDProvider = _reflection.GeneratedProtocolMessageType('IDProvider', (_message.Message,), { - - 'SAMLOptions' : _reflection.GeneratedProtocolMessageType('SAMLOptions', (_message.Message,), { - 'DESCRIPTOR' : _IDPROVIDER_SAMLOPTIONS, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.IDProvider.SAMLOptions) - }) - , - - 'OIDCOptions' : _reflection.GeneratedProtocolMessageType('OIDCOptions', (_message.Message,), { - 'DESCRIPTOR' : _IDPROVIDER_OIDCOPTIONS, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.IDProvider.OIDCOptions) - }) - , - - 'GitHubOptions' : _reflection.GeneratedProtocolMessageType('GitHubOptions', (_message.Message,), { - 'DESCRIPTOR' : _IDPROVIDER_GITHUBOPTIONS, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.IDProvider.GitHubOptions) - }) - , - 'DESCRIPTOR' : _IDPROVIDER, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.IDProvider) - }) -_sym_db.RegisterMessage(IDProvider) -_sym_db.RegisterMessage(IDProvider.SAMLOptions) -_sym_db.RegisterMessage(IDProvider.OIDCOptions) -_sym_db.RegisterMessage(IDProvider.GitHubOptions) - -AuthConfig = _reflection.GeneratedProtocolMessageType('AuthConfig', (_message.Message,), { - - 'SAMLServiceOptions' : _reflection.GeneratedProtocolMessageType('SAMLServiceOptions', (_message.Message,), { - 'DESCRIPTOR' : _AUTHCONFIG_SAMLSERVICEOPTIONS, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.AuthConfig.SAMLServiceOptions) - }) - , - 'DESCRIPTOR' : _AUTHCONFIG, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.AuthConfig) +OIDCConfig = _reflection.GeneratedProtocolMessageType('OIDCConfig', (_message.Message,), { + 'DESCRIPTOR' : _OIDCCONFIG, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.OIDCConfig) }) -_sym_db.RegisterMessage(AuthConfig) -_sym_db.RegisterMessage(AuthConfig.SAMLServiceOptions) +_sym_db.RegisterMessage(OIDCConfig) GetConfigurationRequest = _reflection.GeneratedProtocolMessageType('GetConfigurationRequest', (_message.Message,), { 'DESCRIPTOR' : _GETCONFIGURATIONREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetConfigurationRequest) }) _sym_db.RegisterMessage(GetConfigurationRequest) GetConfigurationResponse = _reflection.GeneratedProtocolMessageType('GetConfigurationResponse', (_message.Message,), { 'DESCRIPTOR' : _GETCONFIGURATIONRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetConfigurationResponse) }) _sym_db.RegisterMessage(GetConfigurationResponse) SetConfigurationRequest = _reflection.GeneratedProtocolMessageType('SetConfigurationRequest', (_message.Message,), { 'DESCRIPTOR' : _SETCONFIGURATIONREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.SetConfigurationRequest) }) _sym_db.RegisterMessage(SetConfigurationRequest) SetConfigurationResponse = _reflection.GeneratedProtocolMessageType('SetConfigurationResponse', (_message.Message,), { 'DESCRIPTOR' : _SETCONFIGURATIONRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.SetConfigurationResponse) }) _sym_db.RegisterMessage(SetConfigurationResponse) -ClusterRoles = _reflection.GeneratedProtocolMessageType('ClusterRoles', (_message.Message,), { - 'DESCRIPTOR' : _CLUSTERROLES, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ClusterRoles) - }) -_sym_db.RegisterMessage(ClusterRoles) - -GetClusterRoleBindingsRequest = _reflection.GeneratedProtocolMessageType('GetClusterRoleBindingsRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETCLUSTERROLEBINDINGSREQUEST, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetClusterRoleBindingsRequest) - }) -_sym_db.RegisterMessage(GetClusterRoleBindingsRequest) - -GetClusterRoleBindingsResponse = _reflection.GeneratedProtocolMessageType('GetClusterRoleBindingsResponse', (_message.Message,), { - - 'BindingsEntry' : _reflection.GeneratedProtocolMessageType('BindingsEntry', (_message.Message,), { - 'DESCRIPTOR' : _GETCLUSTERROLEBINDINGSRESPONSE_BINDINGSENTRY, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetClusterRoleBindingsResponse.BindingsEntry) - }) - , - 'DESCRIPTOR' : _GETCLUSTERROLEBINDINGSRESPONSE, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetClusterRoleBindingsResponse) - }) -_sym_db.RegisterMessage(GetClusterRoleBindingsResponse) -_sym_db.RegisterMessage(GetClusterRoleBindingsResponse.BindingsEntry) - -ModifyClusterRoleBindingRequest = _reflection.GeneratedProtocolMessageType('ModifyClusterRoleBindingRequest', (_message.Message,), { - 'DESCRIPTOR' : _MODIFYCLUSTERROLEBINDINGREQUEST, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ModifyClusterRoleBindingRequest) - }) -_sym_db.RegisterMessage(ModifyClusterRoleBindingRequest) - -ModifyClusterRoleBindingResponse = _reflection.GeneratedProtocolMessageType('ModifyClusterRoleBindingResponse', (_message.Message,), { - 'DESCRIPTOR' : _MODIFYCLUSTERROLEBINDINGRESPONSE, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ModifyClusterRoleBindingResponse) - }) -_sym_db.RegisterMessage(ModifyClusterRoleBindingResponse) - -GetAdminsRequest = _reflection.GeneratedProtocolMessageType('GetAdminsRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETADMINSREQUEST, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetAdminsRequest) - }) -_sym_db.RegisterMessage(GetAdminsRequest) - -GetAdminsResponse = _reflection.GeneratedProtocolMessageType('GetAdminsResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETADMINSRESPONSE, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetAdminsResponse) - }) -_sym_db.RegisterMessage(GetAdminsResponse) - -ModifyAdminsRequest = _reflection.GeneratedProtocolMessageType('ModifyAdminsRequest', (_message.Message,), { - 'DESCRIPTOR' : _MODIFYADMINSREQUEST, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ModifyAdminsRequest) - }) -_sym_db.RegisterMessage(ModifyAdminsRequest) - -ModifyAdminsResponse = _reflection.GeneratedProtocolMessageType('ModifyAdminsResponse', (_message.Message,), { - 'DESCRIPTOR' : _MODIFYADMINSRESPONSE, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ModifyAdminsResponse) - }) -_sym_db.RegisterMessage(ModifyAdminsResponse) - -OTPInfo = _reflection.GeneratedProtocolMessageType('OTPInfo', (_message.Message,), { - 'DESCRIPTOR' : _OTPINFO, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.OTPInfo) - }) -_sym_db.RegisterMessage(OTPInfo) - TokenInfo = _reflection.GeneratedProtocolMessageType('TokenInfo', (_message.Message,), { 'DESCRIPTOR' : _TOKENINFO, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.TokenInfo) }) _sym_db.RegisterMessage(TokenInfo) AuthenticateRequest = _reflection.GeneratedProtocolMessageType('AuthenticateRequest', (_message.Message,), { 'DESCRIPTOR' : _AUTHENTICATEREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.AuthenticateRequest) }) _sym_db.RegisterMessage(AuthenticateRequest) AuthenticateResponse = _reflection.GeneratedProtocolMessageType('AuthenticateResponse', (_message.Message,), { 'DESCRIPTOR' : _AUTHENTICATERESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.AuthenticateResponse) }) _sym_db.RegisterMessage(AuthenticateResponse) WhoAmIRequest = _reflection.GeneratedProtocolMessageType('WhoAmIRequest', (_message.Message,), { 'DESCRIPTOR' : _WHOAMIREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.WhoAmIRequest) }) _sym_db.RegisterMessage(WhoAmIRequest) WhoAmIResponse = _reflection.GeneratedProtocolMessageType('WhoAmIResponse', (_message.Message,), { 'DESCRIPTOR' : _WHOAMIRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.WhoAmIResponse) }) _sym_db.RegisterMessage(WhoAmIResponse) -ACL = _reflection.GeneratedProtocolMessageType('ACL', (_message.Message,), { +Roles = _reflection.GeneratedProtocolMessageType('Roles', (_message.Message,), { + + 'RolesEntry' : _reflection.GeneratedProtocolMessageType('RolesEntry', (_message.Message,), { + 'DESCRIPTOR' : _ROLES_ROLESENTRY, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.Roles.RolesEntry) + }) + , + 'DESCRIPTOR' : _ROLES, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.Roles) + }) +_sym_db.RegisterMessage(Roles) +_sym_db.RegisterMessage(Roles.RolesEntry) + +RoleBinding = _reflection.GeneratedProtocolMessageType('RoleBinding', (_message.Message,), { 'EntriesEntry' : _reflection.GeneratedProtocolMessageType('EntriesEntry', (_message.Message,), { - 'DESCRIPTOR' : _ACL_ENTRIESENTRY, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ACL.EntriesEntry) + 'DESCRIPTOR' : _ROLEBINDING_ENTRIESENTRY, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.RoleBinding.EntriesEntry) }) , - 'DESCRIPTOR' : _ACL, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ACL) + 'DESCRIPTOR' : _ROLEBINDING, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.RoleBinding) + }) +_sym_db.RegisterMessage(RoleBinding) +_sym_db.RegisterMessage(RoleBinding.EntriesEntry) + +Resource = _reflection.GeneratedProtocolMessageType('Resource', (_message.Message,), { + 'DESCRIPTOR' : _RESOURCE, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.Resource) }) -_sym_db.RegisterMessage(ACL) -_sym_db.RegisterMessage(ACL.EntriesEntry) +_sym_db.RegisterMessage(Resource) Users = _reflection.GeneratedProtocolMessageType('Users', (_message.Message,), { 'UsernamesEntry' : _reflection.GeneratedProtocolMessageType('UsernamesEntry', (_message.Message,), { 'DESCRIPTOR' : _USERS_USERNAMESENTRY, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.Users.UsernamesEntry) }) , 'DESCRIPTOR' : _USERS, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.Users) }) _sym_db.RegisterMessage(Users) @@ -2904,12 +2398,12 @@ 'GroupsEntry' : _reflection.GeneratedProtocolMessageType('GroupsEntry', (_message.Message,), { 'DESCRIPTOR' : _GROUPS_GROUPSENTRY, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.Groups.GroupsEntry) }) , 'DESCRIPTOR' : _GROUPS, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.Groups) }) _sym_db.RegisterMessage(Groups) @@ -2917,213 +2411,213 @@ AuthorizeRequest = _reflection.GeneratedProtocolMessageType('AuthorizeRequest', (_message.Message,), { 'DESCRIPTOR' : _AUTHORIZEREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.AuthorizeRequest) }) _sym_db.RegisterMessage(AuthorizeRequest) AuthorizeResponse = _reflection.GeneratedProtocolMessageType('AuthorizeResponse', (_message.Message,), { 'DESCRIPTOR' : _AUTHORIZERESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.AuthorizeResponse) }) _sym_db.RegisterMessage(AuthorizeResponse) -GetScopeRequest = _reflection.GeneratedProtocolMessageType('GetScopeRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETSCOPEREQUEST, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetScopeRequest) - }) -_sym_db.RegisterMessage(GetScopeRequest) - -GetScopeResponse = _reflection.GeneratedProtocolMessageType('GetScopeResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETSCOPERESPONSE, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetScopeResponse) - }) -_sym_db.RegisterMessage(GetScopeResponse) - -SetScopeRequest = _reflection.GeneratedProtocolMessageType('SetScopeRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETSCOPEREQUEST, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.SetScopeRequest) - }) -_sym_db.RegisterMessage(SetScopeRequest) - -SetScopeResponse = _reflection.GeneratedProtocolMessageType('SetScopeResponse', (_message.Message,), { - 'DESCRIPTOR' : _SETSCOPERESPONSE, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.SetScopeResponse) - }) -_sym_db.RegisterMessage(SetScopeResponse) - -GetACLRequest = _reflection.GeneratedProtocolMessageType('GetACLRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETACLREQUEST, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetACLRequest) - }) -_sym_db.RegisterMessage(GetACLRequest) - -ACLEntry = _reflection.GeneratedProtocolMessageType('ACLEntry', (_message.Message,), { - 'DESCRIPTOR' : _ACLENTRY, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ACLEntry) +ModifyRoleBindingRequest = _reflection.GeneratedProtocolMessageType('ModifyRoleBindingRequest', (_message.Message,), { + 'DESCRIPTOR' : _MODIFYROLEBINDINGREQUEST, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.ModifyRoleBindingRequest) }) -_sym_db.RegisterMessage(ACLEntry) +_sym_db.RegisterMessage(ModifyRoleBindingRequest) -GetACLResponse = _reflection.GeneratedProtocolMessageType('GetACLResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETACLRESPONSE, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetACLResponse) +ModifyRoleBindingResponse = _reflection.GeneratedProtocolMessageType('ModifyRoleBindingResponse', (_message.Message,), { + 'DESCRIPTOR' : _MODIFYROLEBINDINGRESPONSE, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.ModifyRoleBindingResponse) }) -_sym_db.RegisterMessage(GetACLResponse) +_sym_db.RegisterMessage(ModifyRoleBindingResponse) -SetACLRequest = _reflection.GeneratedProtocolMessageType('SetACLRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETACLREQUEST, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.SetACLRequest) +GetRoleBindingRequest = _reflection.GeneratedProtocolMessageType('GetRoleBindingRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETROLEBINDINGREQUEST, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.GetRoleBindingRequest) }) -_sym_db.RegisterMessage(SetACLRequest) +_sym_db.RegisterMessage(GetRoleBindingRequest) -SetACLResponse = _reflection.GeneratedProtocolMessageType('SetACLResponse', (_message.Message,), { - 'DESCRIPTOR' : _SETACLRESPONSE, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.SetACLResponse) +GetRoleBindingResponse = _reflection.GeneratedProtocolMessageType('GetRoleBindingResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETROLEBINDINGRESPONSE, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.GetRoleBindingResponse) }) -_sym_db.RegisterMessage(SetACLResponse) +_sym_db.RegisterMessage(GetRoleBindingResponse) SessionInfo = _reflection.GeneratedProtocolMessageType('SessionInfo', (_message.Message,), { 'DESCRIPTOR' : _SESSIONINFO, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.SessionInfo) }) _sym_db.RegisterMessage(SessionInfo) GetOIDCLoginRequest = _reflection.GeneratedProtocolMessageType('GetOIDCLoginRequest', (_message.Message,), { 'DESCRIPTOR' : _GETOIDCLOGINREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetOIDCLoginRequest) }) _sym_db.RegisterMessage(GetOIDCLoginRequest) GetOIDCLoginResponse = _reflection.GeneratedProtocolMessageType('GetOIDCLoginResponse', (_message.Message,), { 'DESCRIPTOR' : _GETOIDCLOGINRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetOIDCLoginResponse) }) _sym_db.RegisterMessage(GetOIDCLoginResponse) GetAuthTokenRequest = _reflection.GeneratedProtocolMessageType('GetAuthTokenRequest', (_message.Message,), { 'DESCRIPTOR' : _GETAUTHTOKENREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetAuthTokenRequest) }) _sym_db.RegisterMessage(GetAuthTokenRequest) GetAuthTokenResponse = _reflection.GeneratedProtocolMessageType('GetAuthTokenResponse', (_message.Message,), { 'DESCRIPTOR' : _GETAUTHTOKENRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetAuthTokenResponse) }) _sym_db.RegisterMessage(GetAuthTokenResponse) +GetRobotTokenRequest = _reflection.GeneratedProtocolMessageType('GetRobotTokenRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETROBOTTOKENREQUEST, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.GetRobotTokenRequest) + }) +_sym_db.RegisterMessage(GetRobotTokenRequest) + +GetRobotTokenResponse = _reflection.GeneratedProtocolMessageType('GetRobotTokenResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETROBOTTOKENRESPONSE, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.GetRobotTokenResponse) + }) +_sym_db.RegisterMessage(GetRobotTokenResponse) + ExtendAuthTokenRequest = _reflection.GeneratedProtocolMessageType('ExtendAuthTokenRequest', (_message.Message,), { 'DESCRIPTOR' : _EXTENDAUTHTOKENREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.ExtendAuthTokenRequest) }) _sym_db.RegisterMessage(ExtendAuthTokenRequest) ExtendAuthTokenResponse = _reflection.GeneratedProtocolMessageType('ExtendAuthTokenResponse', (_message.Message,), { 'DESCRIPTOR' : _EXTENDAUTHTOKENRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.ExtendAuthTokenResponse) }) _sym_db.RegisterMessage(ExtendAuthTokenResponse) RevokeAuthTokenRequest = _reflection.GeneratedProtocolMessageType('RevokeAuthTokenRequest', (_message.Message,), { 'DESCRIPTOR' : _REVOKEAUTHTOKENREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.RevokeAuthTokenRequest) }) _sym_db.RegisterMessage(RevokeAuthTokenRequest) RevokeAuthTokenResponse = _reflection.GeneratedProtocolMessageType('RevokeAuthTokenResponse', (_message.Message,), { 'DESCRIPTOR' : _REVOKEAUTHTOKENRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.RevokeAuthTokenResponse) }) _sym_db.RegisterMessage(RevokeAuthTokenResponse) SetGroupsForUserRequest = _reflection.GeneratedProtocolMessageType('SetGroupsForUserRequest', (_message.Message,), { 'DESCRIPTOR' : _SETGROUPSFORUSERREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.SetGroupsForUserRequest) }) _sym_db.RegisterMessage(SetGroupsForUserRequest) SetGroupsForUserResponse = _reflection.GeneratedProtocolMessageType('SetGroupsForUserResponse', (_message.Message,), { 'DESCRIPTOR' : _SETGROUPSFORUSERRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.SetGroupsForUserResponse) }) _sym_db.RegisterMessage(SetGroupsForUserResponse) ModifyMembersRequest = _reflection.GeneratedProtocolMessageType('ModifyMembersRequest', (_message.Message,), { 'DESCRIPTOR' : _MODIFYMEMBERSREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.ModifyMembersRequest) }) _sym_db.RegisterMessage(ModifyMembersRequest) ModifyMembersResponse = _reflection.GeneratedProtocolMessageType('ModifyMembersResponse', (_message.Message,), { 'DESCRIPTOR' : _MODIFYMEMBERSRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.ModifyMembersResponse) }) _sym_db.RegisterMessage(ModifyMembersResponse) GetGroupsRequest = _reflection.GeneratedProtocolMessageType('GetGroupsRequest', (_message.Message,), { 'DESCRIPTOR' : _GETGROUPSREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetGroupsRequest) }) _sym_db.RegisterMessage(GetGroupsRequest) GetGroupsResponse = _reflection.GeneratedProtocolMessageType('GetGroupsResponse', (_message.Message,), { 'DESCRIPTOR' : _GETGROUPSRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetGroupsResponse) }) _sym_db.RegisterMessage(GetGroupsResponse) GetUsersRequest = _reflection.GeneratedProtocolMessageType('GetUsersRequest', (_message.Message,), { 'DESCRIPTOR' : _GETUSERSREQUEST, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetUsersRequest) }) _sym_db.RegisterMessage(GetUsersRequest) GetUsersResponse = _reflection.GeneratedProtocolMessageType('GetUsersResponse', (_message.Message,), { 'DESCRIPTOR' : _GETUSERSRESPONSE, - '__module__' : 'client.auth.auth_pb2' + '__module__' : 'auth.auth_pb2' # @@protoc_insertion_point(class_scope:auth.GetUsersResponse) }) _sym_db.RegisterMessage(GetUsersResponse) -GetOneTimePasswordRequest = _reflection.GeneratedProtocolMessageType('GetOneTimePasswordRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETONETIMEPASSWORDREQUEST, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetOneTimePasswordRequest) +HashedAuthToken = _reflection.GeneratedProtocolMessageType('HashedAuthToken', (_message.Message,), { + 'DESCRIPTOR' : _HASHEDAUTHTOKEN, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.HashedAuthToken) }) -_sym_db.RegisterMessage(GetOneTimePasswordRequest) +_sym_db.RegisterMessage(HashedAuthToken) -GetOneTimePasswordResponse = _reflection.GeneratedProtocolMessageType('GetOneTimePasswordResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETONETIMEPASSWORDRESPONSE, - '__module__' : 'client.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetOneTimePasswordResponse) +ExtractAuthTokensRequest = _reflection.GeneratedProtocolMessageType('ExtractAuthTokensRequest', (_message.Message,), { + 'DESCRIPTOR' : _EXTRACTAUTHTOKENSREQUEST, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.ExtractAuthTokensRequest) + }) +_sym_db.RegisterMessage(ExtractAuthTokensRequest) + +ExtractAuthTokensResponse = _reflection.GeneratedProtocolMessageType('ExtractAuthTokensResponse', (_message.Message,), { + 'DESCRIPTOR' : _EXTRACTAUTHTOKENSRESPONSE, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.ExtractAuthTokensResponse) + }) +_sym_db.RegisterMessage(ExtractAuthTokensResponse) + +RestoreAuthTokenRequest = _reflection.GeneratedProtocolMessageType('RestoreAuthTokenRequest', (_message.Message,), { + 'DESCRIPTOR' : _RESTOREAUTHTOKENREQUEST, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.RestoreAuthTokenRequest) + }) +_sym_db.RegisterMessage(RestoreAuthTokenRequest) + +RestoreAuthTokenResponse = _reflection.GeneratedProtocolMessageType('RestoreAuthTokenResponse', (_message.Message,), { + 'DESCRIPTOR' : _RESTOREAUTHTOKENRESPONSE, + '__module__' : 'auth.auth_pb2' + # @@protoc_insertion_point(class_scope:auth.RestoreAuthTokenResponse) }) -_sym_db.RegisterMessage(GetOneTimePasswordResponse) +_sym_db.RegisterMessage(RestoreAuthTokenResponse) HashedAuthToken = _reflection.GeneratedProtocolMessageType('HashedAuthToken', (_message.Message,), { 'DESCRIPTOR' : _HASHEDAUTHTOKEN, @@ -3162,8 +2656,8 @@ DESCRIPTOR._options = None -_GETCLUSTERROLEBINDINGSRESPONSE_BINDINGSENTRY._options = None -_ACL_ENTRIESENTRY._options = None +_ROLES_ROLESENTRY._options = None +_ROLEBINDING_ENTRIESENTRY._options = None _USERS_USERNAMESENTRY._options = None _GROUPS_GROUPSENTRY._options = None @@ -3173,8 +2667,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=4341, - serialized_end=6277, + serialized_start=4738, + serialized_end=6245, methods=[ _descriptor.MethodDescriptor( name='Activate', @@ -3212,46 +2706,10 @@ output_type=_SETCONFIGURATIONRESPONSE, serialized_options=None, ), - _descriptor.MethodDescriptor( - name='GetAdmins', - full_name='auth.API.GetAdmins', - index=4, - containing_service=None, - input_type=_GETADMINSREQUEST, - output_type=_GETADMINSRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ModifyAdmins', - full_name='auth.API.ModifyAdmins', - index=5, - containing_service=None, - input_type=_MODIFYADMINSREQUEST, - output_type=_MODIFYADMINSRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetClusterRoleBindings', - full_name='auth.API.GetClusterRoleBindings', - index=6, - containing_service=None, - input_type=_GETCLUSTERROLEBINDINGSREQUEST, - output_type=_GETCLUSTERROLEBINDINGSRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ModifyClusterRoleBinding', - full_name='auth.API.ModifyClusterRoleBinding', - index=7, - containing_service=None, - input_type=_MODIFYCLUSTERROLEBINDINGREQUEST, - output_type=_MODIFYCLUSTERROLEBINDINGRESPONSE, - serialized_options=None, - ), _descriptor.MethodDescriptor( name='Authenticate', full_name='auth.API.Authenticate', - index=8, + index=4, containing_service=None, input_type=_AUTHENTICATEREQUEST, output_type=_AUTHENTICATERESPONSE, @@ -3260,7 +2718,7 @@ _descriptor.MethodDescriptor( name='Authorize', full_name='auth.API.Authorize', - index=9, + index=5, containing_service=None, input_type=_AUTHORIZEREQUEST, output_type=_AUTHORIZERESPONSE, @@ -3269,52 +2727,34 @@ _descriptor.MethodDescriptor( name='WhoAmI', full_name='auth.API.WhoAmI', - index=10, + index=6, containing_service=None, input_type=_WHOAMIREQUEST, output_type=_WHOAMIRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( - name='GetScope', - full_name='auth.API.GetScope', - index=11, - containing_service=None, - input_type=_GETSCOPEREQUEST, - output_type=_GETSCOPERESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='SetScope', - full_name='auth.API.SetScope', - index=12, - containing_service=None, - input_type=_SETSCOPEREQUEST, - output_type=_SETSCOPERESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetACL', - full_name='auth.API.GetACL', - index=13, + name='ModifyRoleBinding', + full_name='auth.API.ModifyRoleBinding', + index=7, containing_service=None, - input_type=_GETACLREQUEST, - output_type=_GETACLRESPONSE, + input_type=_MODIFYROLEBINDINGREQUEST, + output_type=_MODIFYROLEBINDINGRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( - name='SetACL', - full_name='auth.API.SetACL', - index=14, + name='GetRoleBinding', + full_name='auth.API.GetRoleBinding', + index=8, containing_service=None, - input_type=_SETACLREQUEST, - output_type=_SETACLRESPONSE, + input_type=_GETROLEBINDINGREQUEST, + output_type=_GETROLEBINDINGRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( name='GetOIDCLogin', full_name='auth.API.GetOIDCLogin', - index=15, + index=9, containing_service=None, input_type=_GETOIDCLOGINREQUEST, output_type=_GETOIDCLOGINRESPONSE, @@ -3323,16 +2763,25 @@ _descriptor.MethodDescriptor( name='GetAuthToken', full_name='auth.API.GetAuthToken', - index=16, + index=10, containing_service=None, input_type=_GETAUTHTOKENREQUEST, output_type=_GETAUTHTOKENRESPONSE, serialized_options=None, ), + _descriptor.MethodDescriptor( + name='GetRobotToken', + full_name='auth.API.GetRobotToken', + index=11, + containing_service=None, + input_type=_GETROBOTTOKENREQUEST, + output_type=_GETROBOTTOKENRESPONSE, + serialized_options=None, + ), _descriptor.MethodDescriptor( name='ExtendAuthToken', full_name='auth.API.ExtendAuthToken', - index=17, + index=12, containing_service=None, input_type=_EXTENDAUTHTOKENREQUEST, output_type=_EXTENDAUTHTOKENRESPONSE, @@ -3341,7 +2790,7 @@ _descriptor.MethodDescriptor( name='RevokeAuthToken', full_name='auth.API.RevokeAuthToken', - index=18, + index=13, containing_service=None, input_type=_REVOKEAUTHTOKENREQUEST, output_type=_REVOKEAUTHTOKENRESPONSE, @@ -3350,7 +2799,7 @@ _descriptor.MethodDescriptor( name='SetGroupsForUser', full_name='auth.API.SetGroupsForUser', - index=19, + index=14, containing_service=None, input_type=_SETGROUPSFORUSERREQUEST, output_type=_SETGROUPSFORUSERRESPONSE, @@ -3359,7 +2808,7 @@ _descriptor.MethodDescriptor( name='ModifyMembers', full_name='auth.API.ModifyMembers', - index=20, + index=15, containing_service=None, input_type=_MODIFYMEMBERSREQUEST, output_type=_MODIFYMEMBERSRESPONSE, @@ -3368,7 +2817,7 @@ _descriptor.MethodDescriptor( name='GetGroups', full_name='auth.API.GetGroups', - index=21, + index=16, containing_service=None, input_type=_GETGROUPSREQUEST, output_type=_GETGROUPSRESPONSE, @@ -3377,19 +2826,28 @@ _descriptor.MethodDescriptor( name='GetUsers', full_name='auth.API.GetUsers', - index=22, + index=17, containing_service=None, input_type=_GETUSERSREQUEST, output_type=_GETUSERSRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( - name='GetOneTimePassword', - full_name='auth.API.GetOneTimePassword', - index=23, + name='ExtractAuthTokens', + full_name='auth.API.ExtractAuthTokens', + index=18, + containing_service=None, + input_type=_EXTRACTAUTHTOKENSREQUEST, + output_type=_EXTRACTAUTHTOKENSRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='RestoreAuthToken', + full_name='auth.API.RestoreAuthToken', + index=19, containing_service=None, - input_type=_GETONETIMEPASSWORDREQUEST, - output_type=_GETONETIMEPASSWORDRESPONSE, + input_type=_RESTOREAUTHTOKENREQUEST, + output_type=_RESTOREAUTHTOKENRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( diff --git a/src/python_pachyderm/proto/auth/auth_pb2_grpc.py b/src/python_pachyderm/proto/auth/auth_pb2_grpc.py index ec4f0e74..ec385f4f 100644 --- a/src/python_pachyderm/proto/auth/auth_pb2_grpc.py +++ b/src/python_pachyderm/proto/auth/auth_pb2_grpc.py @@ -1,7 +1,7 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc -from python_pachyderm.proto.auth import auth_pb2 as client_dot_auth_dot_auth__pb2 +from auth import auth_pb2 as auth_dot_auth__pb2 class APIStub(object): @@ -16,123 +16,103 @@ def __init__(self, channel): """ self.Activate = channel.unary_unary( '/auth.API/Activate', - request_serializer=client_dot_auth_dot_auth__pb2.ActivateRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.ActivateResponse.FromString, + request_serializer=auth_dot_auth__pb2.ActivateRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.ActivateResponse.FromString, ) self.Deactivate = channel.unary_unary( '/auth.API/Deactivate', - request_serializer=client_dot_auth_dot_auth__pb2.DeactivateRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.DeactivateResponse.FromString, + request_serializer=auth_dot_auth__pb2.DeactivateRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.DeactivateResponse.FromString, ) self.GetConfiguration = channel.unary_unary( '/auth.API/GetConfiguration', - request_serializer=client_dot_auth_dot_auth__pb2.GetConfigurationRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetConfigurationResponse.FromString, + request_serializer=auth_dot_auth__pb2.GetConfigurationRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.GetConfigurationResponse.FromString, ) self.SetConfiguration = channel.unary_unary( '/auth.API/SetConfiguration', - request_serializer=client_dot_auth_dot_auth__pb2.SetConfigurationRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.SetConfigurationResponse.FromString, - ) - self.GetAdmins = channel.unary_unary( - '/auth.API/GetAdmins', - request_serializer=client_dot_auth_dot_auth__pb2.GetAdminsRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetAdminsResponse.FromString, - ) - self.ModifyAdmins = channel.unary_unary( - '/auth.API/ModifyAdmins', - request_serializer=client_dot_auth_dot_auth__pb2.ModifyAdminsRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.ModifyAdminsResponse.FromString, - ) - self.GetClusterRoleBindings = channel.unary_unary( - '/auth.API/GetClusterRoleBindings', - request_serializer=client_dot_auth_dot_auth__pb2.GetClusterRoleBindingsRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetClusterRoleBindingsResponse.FromString, - ) - self.ModifyClusterRoleBinding = channel.unary_unary( - '/auth.API/ModifyClusterRoleBinding', - request_serializer=client_dot_auth_dot_auth__pb2.ModifyClusterRoleBindingRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.ModifyClusterRoleBindingResponse.FromString, + request_serializer=auth_dot_auth__pb2.SetConfigurationRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.SetConfigurationResponse.FromString, ) self.Authenticate = channel.unary_unary( '/auth.API/Authenticate', - request_serializer=client_dot_auth_dot_auth__pb2.AuthenticateRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.AuthenticateResponse.FromString, + request_serializer=auth_dot_auth__pb2.AuthenticateRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.AuthenticateResponse.FromString, ) self.Authorize = channel.unary_unary( '/auth.API/Authorize', - request_serializer=client_dot_auth_dot_auth__pb2.AuthorizeRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.AuthorizeResponse.FromString, + request_serializer=auth_dot_auth__pb2.AuthorizeRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.AuthorizeResponse.FromString, ) self.WhoAmI = channel.unary_unary( '/auth.API/WhoAmI', - request_serializer=client_dot_auth_dot_auth__pb2.WhoAmIRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.WhoAmIResponse.FromString, + request_serializer=auth_dot_auth__pb2.WhoAmIRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.WhoAmIResponse.FromString, ) - self.GetScope = channel.unary_unary( - '/auth.API/GetScope', - request_serializer=client_dot_auth_dot_auth__pb2.GetScopeRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetScopeResponse.FromString, + self.ModifyRoleBinding = channel.unary_unary( + '/auth.API/ModifyRoleBinding', + request_serializer=auth_dot_auth__pb2.ModifyRoleBindingRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.ModifyRoleBindingResponse.FromString, ) - self.SetScope = channel.unary_unary( - '/auth.API/SetScope', - request_serializer=client_dot_auth_dot_auth__pb2.SetScopeRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.SetScopeResponse.FromString, - ) - self.GetACL = channel.unary_unary( - '/auth.API/GetACL', - request_serializer=client_dot_auth_dot_auth__pb2.GetACLRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetACLResponse.FromString, - ) - self.SetACL = channel.unary_unary( - '/auth.API/SetACL', - request_serializer=client_dot_auth_dot_auth__pb2.SetACLRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.SetACLResponse.FromString, + self.GetRoleBinding = channel.unary_unary( + '/auth.API/GetRoleBinding', + request_serializer=auth_dot_auth__pb2.GetRoleBindingRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.GetRoleBindingResponse.FromString, ) self.GetOIDCLogin = channel.unary_unary( '/auth.API/GetOIDCLogin', - request_serializer=client_dot_auth_dot_auth__pb2.GetOIDCLoginRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetOIDCLoginResponse.FromString, + request_serializer=auth_dot_auth__pb2.GetOIDCLoginRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.GetOIDCLoginResponse.FromString, ) self.GetAuthToken = channel.unary_unary( '/auth.API/GetAuthToken', - request_serializer=client_dot_auth_dot_auth__pb2.GetAuthTokenRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetAuthTokenResponse.FromString, + request_serializer=auth_dot_auth__pb2.GetAuthTokenRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.GetAuthTokenResponse.FromString, + ) + self.GetRobotToken = channel.unary_unary( + '/auth.API/GetRobotToken', + request_serializer=auth_dot_auth__pb2.GetRobotTokenRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.GetRobotTokenResponse.FromString, ) self.ExtendAuthToken = channel.unary_unary( '/auth.API/ExtendAuthToken', - request_serializer=client_dot_auth_dot_auth__pb2.ExtendAuthTokenRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.ExtendAuthTokenResponse.FromString, + request_serializer=auth_dot_auth__pb2.ExtendAuthTokenRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.ExtendAuthTokenResponse.FromString, ) self.RevokeAuthToken = channel.unary_unary( '/auth.API/RevokeAuthToken', - request_serializer=client_dot_auth_dot_auth__pb2.RevokeAuthTokenRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.RevokeAuthTokenResponse.FromString, + request_serializer=auth_dot_auth__pb2.RevokeAuthTokenRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.RevokeAuthTokenResponse.FromString, ) self.SetGroupsForUser = channel.unary_unary( '/auth.API/SetGroupsForUser', - request_serializer=client_dot_auth_dot_auth__pb2.SetGroupsForUserRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.SetGroupsForUserResponse.FromString, + request_serializer=auth_dot_auth__pb2.SetGroupsForUserRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.SetGroupsForUserResponse.FromString, ) self.ModifyMembers = channel.unary_unary( '/auth.API/ModifyMembers', - request_serializer=client_dot_auth_dot_auth__pb2.ModifyMembersRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.ModifyMembersResponse.FromString, + request_serializer=auth_dot_auth__pb2.ModifyMembersRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.ModifyMembersResponse.FromString, ) self.GetGroups = channel.unary_unary( '/auth.API/GetGroups', - request_serializer=client_dot_auth_dot_auth__pb2.GetGroupsRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetGroupsResponse.FromString, + request_serializer=auth_dot_auth__pb2.GetGroupsRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.GetGroupsResponse.FromString, ) self.GetUsers = channel.unary_unary( '/auth.API/GetUsers', - request_serializer=client_dot_auth_dot_auth__pb2.GetUsersRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetUsersResponse.FromString, + request_serializer=auth_dot_auth__pb2.GetUsersRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.GetUsersResponse.FromString, + ) + self.ExtractAuthTokens = channel.unary_unary( + '/auth.API/ExtractAuthTokens', + request_serializer=auth_dot_auth__pb2.ExtractAuthTokensRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.ExtractAuthTokensResponse.FromString, ) - self.GetOneTimePassword = channel.unary_unary( - '/auth.API/GetOneTimePassword', - request_serializer=client_dot_auth_dot_auth__pb2.GetOneTimePasswordRequest.SerializeToString, - response_deserializer=client_dot_auth_dot_auth__pb2.GetOneTimePasswordResponse.FromString, + self.RestoreAuthToken = channel.unary_unary( + '/auth.API/RestoreAuthToken', + request_serializer=auth_dot_auth__pb2.RestoreAuthTokenRequest.SerializeToString, + response_deserializer=auth_dot_auth__pb2.RestoreAuthTokenResponse.FromString, ) self.ExtractAuthTokens = channel.unary_unary( '/auth.API/ExtractAuthTokens', @@ -180,34 +160,6 @@ def SetConfiguration(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def GetAdmins(self, request, context): - """Deprecated. GetAdmins returns the current list of cluster super admins - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ModifyAdmins(self, request, context): - """Deprecated. ModifyAdmins adds or removes super admins from the cluster - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetClusterRoleBindings(self, request, context): - """GetClusterRoleBindings returns the current set of cluster role bindings - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ModifyClusterRoleBinding(self, request, context): - """ModifyAdmin sets the list of admin roles for a principal - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def Authenticate(self, request, context): # missing associated documentation comment in .proto file pass @@ -229,42 +181,35 @@ def WhoAmI(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def GetScope(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SetScope(self, request, context): + def ModifyRoleBinding(self, request, context): # missing associated documentation comment in .proto file pass context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def GetACL(self, request, context): + def GetRoleBinding(self, request, context): # missing associated documentation comment in .proto file pass context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def SetACL(self, request, context): + def GetOIDCLogin(self, request, context): # missing associated documentation comment in .proto file pass context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def GetOIDCLogin(self, request, context): + def GetAuthToken(self, request, context): # missing associated documentation comment in .proto file pass context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def GetAuthToken(self, request, context): + def GetRobotToken(self, request, context): # missing associated documentation comment in .proto file pass context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -313,7 +258,14 @@ def GetUsers(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def GetOneTimePassword(self, request, context): + def ExtractAuthTokens(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RestoreAuthToken(self, request, context): # missing associated documentation comment in .proto file pass context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -339,123 +291,103 @@ def add_APIServicer_to_server(servicer, server): rpc_method_handlers = { 'Activate': grpc.unary_unary_rpc_method_handler( servicer.Activate, - request_deserializer=client_dot_auth_dot_auth__pb2.ActivateRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.ActivateResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.ActivateRequest.FromString, + response_serializer=auth_dot_auth__pb2.ActivateResponse.SerializeToString, ), 'Deactivate': grpc.unary_unary_rpc_method_handler( servicer.Deactivate, - request_deserializer=client_dot_auth_dot_auth__pb2.DeactivateRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.DeactivateResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.DeactivateRequest.FromString, + response_serializer=auth_dot_auth__pb2.DeactivateResponse.SerializeToString, ), 'GetConfiguration': grpc.unary_unary_rpc_method_handler( servicer.GetConfiguration, - request_deserializer=client_dot_auth_dot_auth__pb2.GetConfigurationRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetConfigurationResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.GetConfigurationRequest.FromString, + response_serializer=auth_dot_auth__pb2.GetConfigurationResponse.SerializeToString, ), 'SetConfiguration': grpc.unary_unary_rpc_method_handler( servicer.SetConfiguration, - request_deserializer=client_dot_auth_dot_auth__pb2.SetConfigurationRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.SetConfigurationResponse.SerializeToString, - ), - 'GetAdmins': grpc.unary_unary_rpc_method_handler( - servicer.GetAdmins, - request_deserializer=client_dot_auth_dot_auth__pb2.GetAdminsRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetAdminsResponse.SerializeToString, - ), - 'ModifyAdmins': grpc.unary_unary_rpc_method_handler( - servicer.ModifyAdmins, - request_deserializer=client_dot_auth_dot_auth__pb2.ModifyAdminsRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.ModifyAdminsResponse.SerializeToString, - ), - 'GetClusterRoleBindings': grpc.unary_unary_rpc_method_handler( - servicer.GetClusterRoleBindings, - request_deserializer=client_dot_auth_dot_auth__pb2.GetClusterRoleBindingsRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetClusterRoleBindingsResponse.SerializeToString, - ), - 'ModifyClusterRoleBinding': grpc.unary_unary_rpc_method_handler( - servicer.ModifyClusterRoleBinding, - request_deserializer=client_dot_auth_dot_auth__pb2.ModifyClusterRoleBindingRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.ModifyClusterRoleBindingResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.SetConfigurationRequest.FromString, + response_serializer=auth_dot_auth__pb2.SetConfigurationResponse.SerializeToString, ), 'Authenticate': grpc.unary_unary_rpc_method_handler( servicer.Authenticate, - request_deserializer=client_dot_auth_dot_auth__pb2.AuthenticateRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.AuthenticateResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.AuthenticateRequest.FromString, + response_serializer=auth_dot_auth__pb2.AuthenticateResponse.SerializeToString, ), 'Authorize': grpc.unary_unary_rpc_method_handler( servicer.Authorize, - request_deserializer=client_dot_auth_dot_auth__pb2.AuthorizeRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.AuthorizeResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.AuthorizeRequest.FromString, + response_serializer=auth_dot_auth__pb2.AuthorizeResponse.SerializeToString, ), 'WhoAmI': grpc.unary_unary_rpc_method_handler( servicer.WhoAmI, - request_deserializer=client_dot_auth_dot_auth__pb2.WhoAmIRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.WhoAmIResponse.SerializeToString, - ), - 'GetScope': grpc.unary_unary_rpc_method_handler( - servicer.GetScope, - request_deserializer=client_dot_auth_dot_auth__pb2.GetScopeRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetScopeResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.WhoAmIRequest.FromString, + response_serializer=auth_dot_auth__pb2.WhoAmIResponse.SerializeToString, ), - 'SetScope': grpc.unary_unary_rpc_method_handler( - servicer.SetScope, - request_deserializer=client_dot_auth_dot_auth__pb2.SetScopeRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.SetScopeResponse.SerializeToString, + 'ModifyRoleBinding': grpc.unary_unary_rpc_method_handler( + servicer.ModifyRoleBinding, + request_deserializer=auth_dot_auth__pb2.ModifyRoleBindingRequest.FromString, + response_serializer=auth_dot_auth__pb2.ModifyRoleBindingResponse.SerializeToString, ), - 'GetACL': grpc.unary_unary_rpc_method_handler( - servicer.GetACL, - request_deserializer=client_dot_auth_dot_auth__pb2.GetACLRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetACLResponse.SerializeToString, - ), - 'SetACL': grpc.unary_unary_rpc_method_handler( - servicer.SetACL, - request_deserializer=client_dot_auth_dot_auth__pb2.SetACLRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.SetACLResponse.SerializeToString, + 'GetRoleBinding': grpc.unary_unary_rpc_method_handler( + servicer.GetRoleBinding, + request_deserializer=auth_dot_auth__pb2.GetRoleBindingRequest.FromString, + response_serializer=auth_dot_auth__pb2.GetRoleBindingResponse.SerializeToString, ), 'GetOIDCLogin': grpc.unary_unary_rpc_method_handler( servicer.GetOIDCLogin, - request_deserializer=client_dot_auth_dot_auth__pb2.GetOIDCLoginRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetOIDCLoginResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.GetOIDCLoginRequest.FromString, + response_serializer=auth_dot_auth__pb2.GetOIDCLoginResponse.SerializeToString, ), 'GetAuthToken': grpc.unary_unary_rpc_method_handler( servicer.GetAuthToken, - request_deserializer=client_dot_auth_dot_auth__pb2.GetAuthTokenRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetAuthTokenResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.GetAuthTokenRequest.FromString, + response_serializer=auth_dot_auth__pb2.GetAuthTokenResponse.SerializeToString, + ), + 'GetRobotToken': grpc.unary_unary_rpc_method_handler( + servicer.GetRobotToken, + request_deserializer=auth_dot_auth__pb2.GetRobotTokenRequest.FromString, + response_serializer=auth_dot_auth__pb2.GetRobotTokenResponse.SerializeToString, ), 'ExtendAuthToken': grpc.unary_unary_rpc_method_handler( servicer.ExtendAuthToken, - request_deserializer=client_dot_auth_dot_auth__pb2.ExtendAuthTokenRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.ExtendAuthTokenResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.ExtendAuthTokenRequest.FromString, + response_serializer=auth_dot_auth__pb2.ExtendAuthTokenResponse.SerializeToString, ), 'RevokeAuthToken': grpc.unary_unary_rpc_method_handler( servicer.RevokeAuthToken, - request_deserializer=client_dot_auth_dot_auth__pb2.RevokeAuthTokenRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.RevokeAuthTokenResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.RevokeAuthTokenRequest.FromString, + response_serializer=auth_dot_auth__pb2.RevokeAuthTokenResponse.SerializeToString, ), 'SetGroupsForUser': grpc.unary_unary_rpc_method_handler( servicer.SetGroupsForUser, - request_deserializer=client_dot_auth_dot_auth__pb2.SetGroupsForUserRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.SetGroupsForUserResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.SetGroupsForUserRequest.FromString, + response_serializer=auth_dot_auth__pb2.SetGroupsForUserResponse.SerializeToString, ), 'ModifyMembers': grpc.unary_unary_rpc_method_handler( servicer.ModifyMembers, - request_deserializer=client_dot_auth_dot_auth__pb2.ModifyMembersRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.ModifyMembersResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.ModifyMembersRequest.FromString, + response_serializer=auth_dot_auth__pb2.ModifyMembersResponse.SerializeToString, ), 'GetGroups': grpc.unary_unary_rpc_method_handler( servicer.GetGroups, - request_deserializer=client_dot_auth_dot_auth__pb2.GetGroupsRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetGroupsResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.GetGroupsRequest.FromString, + response_serializer=auth_dot_auth__pb2.GetGroupsResponse.SerializeToString, ), 'GetUsers': grpc.unary_unary_rpc_method_handler( servicer.GetUsers, - request_deserializer=client_dot_auth_dot_auth__pb2.GetUsersRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetUsersResponse.SerializeToString, + request_deserializer=auth_dot_auth__pb2.GetUsersRequest.FromString, + response_serializer=auth_dot_auth__pb2.GetUsersResponse.SerializeToString, ), - 'GetOneTimePassword': grpc.unary_unary_rpc_method_handler( - servicer.GetOneTimePassword, - request_deserializer=client_dot_auth_dot_auth__pb2.GetOneTimePasswordRequest.FromString, - response_serializer=client_dot_auth_dot_auth__pb2.GetOneTimePasswordResponse.SerializeToString, + 'ExtractAuthTokens': grpc.unary_unary_rpc_method_handler( + servicer.ExtractAuthTokens, + request_deserializer=auth_dot_auth__pb2.ExtractAuthTokensRequest.FromString, + response_serializer=auth_dot_auth__pb2.ExtractAuthTokensResponse.SerializeToString, + ), + 'RestoreAuthToken': grpc.unary_unary_rpc_method_handler( + servicer.RestoreAuthToken, + request_deserializer=auth_dot_auth__pb2.RestoreAuthTokenRequest.FromString, + response_serializer=auth_dot_auth__pb2.RestoreAuthTokenResponse.SerializeToString, ), 'ExtractAuthTokens': grpc.unary_unary_rpc_method_handler( servicer.ExtractAuthTokens, diff --git a/src/python_pachyderm/proto/debug/debug_pb2.py b/src/python_pachyderm/proto/debug/debug_pb2.py index e6d54ad0..90471994 100644 --- a/src/python_pachyderm/proto/debug/debug_pb2.py +++ b/src/python_pachyderm/proto/debug/debug_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: client/debug/debug.proto +# source: debug/debug.proto from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -13,17 +13,17 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 -from python_pachyderm.proto.pps import pps_pb2 as client_dot_pps_dot_pps__pb2 +from pps import pps_pb2 as pps_dot_pps__pb2 DESCRIPTOR = _descriptor.FileDescriptor( - name='client/debug/debug.proto', + name='debug/debug.proto', package='debug', syntax='proto3', - serialized_options=b'Z/github.com/pachyderm/pachyderm/src/client/debug', - serialized_pb=b'\n\x18\x63lient/debug/debug.proto\x12\x05\x64\x65\x62ug\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x14\x63lient/pps/pps.proto\"P\n\x0eProfileRequest\x12\x1f\n\x07profile\x18\x01 \x01(\x0b\x32\x0e.debug.Profile\x12\x1d\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\r.debug.Filter\"D\n\x07Profile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"g\n\x06\x46ilter\x12\x0f\n\x05pachd\x18\x01 \x01(\x08H\x00\x12!\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.PipelineH\x00\x12\x1f\n\x06worker\x18\x03 \x01(\x0b\x32\r.debug.WorkerH\x00\x42\x08\n\x06\x66ilter\")\n\x06Worker\x12\x0b\n\x03pod\x18\x01 \x01(\t\x12\x12\n\nredirected\x18\x02 \x01(\x08\".\n\rBinaryRequest\x12\x1d\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\r.debug.Filter\";\n\x0b\x44umpRequest\x12\x1d\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\r.debug.Filter\x12\r\n\x05limit\x18\x02 \x01(\x03\x32\xc8\x01\n\x05\x44\x65\x62ug\x12\x41\n\x07Profile\x12\x15.debug.ProfileRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12?\n\x06\x42inary\x12\x14.debug.BinaryRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12;\n\x04\x44ump\x12\x12.debug.DumpRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x42\x31Z/github.com/pachyderm/pachyderm/src/client/debugb\x06proto3' + serialized_options=b'Z+github.com/pachyderm/pachyderm/v2/src/debug', + serialized_pb=b'\n\x11\x64\x65\x62ug/debug.proto\x12\x05\x64\x65\x62ug\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\rpps/pps.proto\"P\n\x0eProfileRequest\x12\x1f\n\x07profile\x18\x01 \x01(\x0b\x32\x0e.debug.Profile\x12\x1d\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\r.debug.Filter\"D\n\x07Profile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"g\n\x06\x46ilter\x12\x0f\n\x05pachd\x18\x01 \x01(\x08H\x00\x12!\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.PipelineH\x00\x12\x1f\n\x06worker\x18\x03 \x01(\x0b\x32\r.debug.WorkerH\x00\x42\x08\n\x06\x66ilter\")\n\x06Worker\x12\x0b\n\x03pod\x18\x01 \x01(\t\x12\x12\n\nredirected\x18\x02 \x01(\x08\".\n\rBinaryRequest\x12\x1d\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\r.debug.Filter\";\n\x0b\x44umpRequest\x12\x1d\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\r.debug.Filter\x12\r\n\x05limit\x18\x02 \x01(\x03\x32\xc8\x01\n\x05\x44\x65\x62ug\x12\x41\n\x07Profile\x12\x15.debug.ProfileRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12?\n\x06\x42inary\x12\x14.debug.BinaryRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12;\n\x04\x44ump\x12\x12.debug.DumpRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x42-Z+github.com/pachyderm/pachyderm/v2/src/debugb\x06proto3' , - dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,client_dot_pps_dot_pps__pb2.DESCRIPTOR,]) + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,pps_dot_pps__pb2.DESCRIPTOR,]) @@ -61,8 +61,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=121, - serialized_end=201, + serialized_start=107, + serialized_end=187, ) @@ -99,8 +99,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=203, - serialized_end=271, + serialized_start=189, + serialized_end=257, ) @@ -147,8 +147,8 @@ name='filter', full_name='debug.Filter.filter', index=0, containing_type=None, fields=[]), ], - serialized_start=273, - serialized_end=376, + serialized_start=259, + serialized_end=362, ) @@ -185,8 +185,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=378, - serialized_end=419, + serialized_start=364, + serialized_end=405, ) @@ -216,8 +216,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=421, - serialized_end=467, + serialized_start=407, + serialized_end=453, ) @@ -254,14 +254,14 @@ extension_ranges=[], oneofs=[ ], - serialized_start=469, - serialized_end=528, + serialized_start=455, + serialized_end=514, ) _PROFILEREQUEST.fields_by_name['profile'].message_type = _PROFILE _PROFILEREQUEST.fields_by_name['filter'].message_type = _FILTER _PROFILE.fields_by_name['duration'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION -_FILTER.fields_by_name['pipeline'].message_type = client_dot_pps_dot_pps__pb2._PIPELINE +_FILTER.fields_by_name['pipeline'].message_type = pps_dot_pps__pb2._PIPELINE _FILTER.fields_by_name['worker'].message_type = _WORKER _FILTER.oneofs_by_name['filter'].fields.append( _FILTER.fields_by_name['pachd']) @@ -284,42 +284,42 @@ ProfileRequest = _reflection.GeneratedProtocolMessageType('ProfileRequest', (_message.Message,), { 'DESCRIPTOR' : _PROFILEREQUEST, - '__module__' : 'client.debug.debug_pb2' + '__module__' : 'debug.debug_pb2' # @@protoc_insertion_point(class_scope:debug.ProfileRequest) }) _sym_db.RegisterMessage(ProfileRequest) Profile = _reflection.GeneratedProtocolMessageType('Profile', (_message.Message,), { 'DESCRIPTOR' : _PROFILE, - '__module__' : 'client.debug.debug_pb2' + '__module__' : 'debug.debug_pb2' # @@protoc_insertion_point(class_scope:debug.Profile) }) _sym_db.RegisterMessage(Profile) Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), { 'DESCRIPTOR' : _FILTER, - '__module__' : 'client.debug.debug_pb2' + '__module__' : 'debug.debug_pb2' # @@protoc_insertion_point(class_scope:debug.Filter) }) _sym_db.RegisterMessage(Filter) Worker = _reflection.GeneratedProtocolMessageType('Worker', (_message.Message,), { 'DESCRIPTOR' : _WORKER, - '__module__' : 'client.debug.debug_pb2' + '__module__' : 'debug.debug_pb2' # @@protoc_insertion_point(class_scope:debug.Worker) }) _sym_db.RegisterMessage(Worker) BinaryRequest = _reflection.GeneratedProtocolMessageType('BinaryRequest', (_message.Message,), { 'DESCRIPTOR' : _BINARYREQUEST, - '__module__' : 'client.debug.debug_pb2' + '__module__' : 'debug.debug_pb2' # @@protoc_insertion_point(class_scope:debug.BinaryRequest) }) _sym_db.RegisterMessage(BinaryRequest) DumpRequest = _reflection.GeneratedProtocolMessageType('DumpRequest', (_message.Message,), { 'DESCRIPTOR' : _DUMPREQUEST, - '__module__' : 'client.debug.debug_pb2' + '__module__' : 'debug.debug_pb2' # @@protoc_insertion_point(class_scope:debug.DumpRequest) }) _sym_db.RegisterMessage(DumpRequest) @@ -333,8 +333,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=531, - serialized_end=731, + serialized_start=517, + serialized_end=717, methods=[ _descriptor.MethodDescriptor( name='Profile', diff --git a/src/python_pachyderm/proto/debug/debug_pb2_grpc.py b/src/python_pachyderm/proto/debug/debug_pb2_grpc.py index 59d94d74..7d088b6a 100644 --- a/src/python_pachyderm/proto/debug/debug_pb2_grpc.py +++ b/src/python_pachyderm/proto/debug/debug_pb2_grpc.py @@ -1,7 +1,7 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc -from python_pachyderm.proto.debug import debug_pb2 as client_dot_debug_dot_debug__pb2 +from debug import debug_pb2 as debug_dot_debug__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 @@ -17,17 +17,17 @@ def __init__(self, channel): """ self.Profile = channel.unary_stream( '/debug.Debug/Profile', - request_serializer=client_dot_debug_dot_debug__pb2.ProfileRequest.SerializeToString, + request_serializer=debug_dot_debug__pb2.ProfileRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, ) self.Binary = channel.unary_stream( '/debug.Debug/Binary', - request_serializer=client_dot_debug_dot_debug__pb2.BinaryRequest.SerializeToString, + request_serializer=debug_dot_debug__pb2.BinaryRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, ) self.Dump = channel.unary_stream( '/debug.Debug/Dump', - request_serializer=client_dot_debug_dot_debug__pb2.DumpRequest.SerializeToString, + request_serializer=debug_dot_debug__pb2.DumpRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, ) @@ -62,17 +62,17 @@ def add_DebugServicer_to_server(servicer, server): rpc_method_handlers = { 'Profile': grpc.unary_stream_rpc_method_handler( servicer.Profile, - request_deserializer=client_dot_debug_dot_debug__pb2.ProfileRequest.FromString, + request_deserializer=debug_dot_debug__pb2.ProfileRequest.FromString, response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, ), 'Binary': grpc.unary_stream_rpc_method_handler( servicer.Binary, - request_deserializer=client_dot_debug_dot_debug__pb2.BinaryRequest.FromString, + request_deserializer=debug_dot_debug__pb2.BinaryRequest.FromString, response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, ), 'Dump': grpc.unary_stream_rpc_method_handler( servicer.Dump, - request_deserializer=client_dot_debug_dot_debug__pb2.DumpRequest.FromString, + request_deserializer=debug_dot_debug__pb2.DumpRequest.FromString, response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, ), } diff --git a/src/python_pachyderm/proto/enterprise/enterprise_pb2.py b/src/python_pachyderm/proto/enterprise/enterprise_pb2.py index 5087ce39..5ab80050 100644 --- a/src/python_pachyderm/proto/enterprise/enterprise_pb2.py +++ b/src/python_pachyderm/proto/enterprise/enterprise_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: client/enterprise/enterprise.proto +# source: enterprise/enterprise.proto from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor @@ -16,11 +16,11 @@ DESCRIPTOR = _descriptor.FileDescriptor( - name='client/enterprise/enterprise.proto', + name='enterprise/enterprise.proto', package='enterprise', syntax='proto3', - serialized_options=b'Z4github.com/pachyderm/pachyderm/src/client/enterprise', - serialized_pb=b'\n\"client/enterprise/enterprise.proto\x12\nenterprise\x1a\x1fgoogle/protobuf/timestamp.proto\"X\n\x10\x45nterpriseRecord\x12\x17\n\x0f\x61\x63tivation_code\x18\x01 \x01(\t\x12+\n\x07\x65xpires\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"8\n\tTokenInfo\x12+\n\x07\x65xpires\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"W\n\x0f\x41\x63tivateRequest\x12\x17\n\x0f\x61\x63tivation_code\x18\x01 \x01(\t\x12+\n\x07\x65xpires\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"7\n\x10\x41\x63tivateResponse\x12#\n\x04info\x18\x01 \x01(\x0b\x32\x15.enterprise.TokenInfo\"\x11\n\x0fGetStateRequest\"r\n\x10GetStateResponse\x12 \n\x05state\x18\x01 \x01(\x0e\x32\x11.enterprise.State\x12#\n\x04info\x18\x02 \x01(\x0b\x32\x15.enterprise.TokenInfo\x12\x17\n\x0f\x61\x63tivation_code\x18\x03 \x01(\t\"\x1a\n\x18GetActivationCodeRequest\"{\n\x19GetActivationCodeResponse\x12 \n\x05state\x18\x01 \x01(\x0e\x32\x11.enterprise.State\x12#\n\x04info\x18\x02 \x01(\x0b\x32\x15.enterprise.TokenInfo\x12\x17\n\x0f\x61\x63tivation_code\x18\x03 \x01(\t\"\x13\n\x11\x44\x65\x61\x63tivateRequest\"\x14\n\x12\x44\x65\x61\x63tivateResponse**\n\x05State\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x32\xca\x02\n\x03\x41PI\x12G\n\x08\x41\x63tivate\x12\x1b.enterprise.ActivateRequest\x1a\x1c.enterprise.ActivateResponse\"\x00\x12G\n\x08GetState\x12\x1b.enterprise.GetStateRequest\x1a\x1c.enterprise.GetStateResponse\"\x00\x12\x62\n\x11GetActivationCode\x12$.enterprise.GetActivationCodeRequest\x1a%.enterprise.GetActivationCodeResponse\"\x00\x12M\n\nDeactivate\x12\x1d.enterprise.DeactivateRequest\x1a\x1e.enterprise.DeactivateResponse\"\x00\x42\x36Z4github.com/pachyderm/pachyderm/src/client/enterpriseb\x06proto3' + serialized_options=b'Z0github.com/pachyderm/pachyderm/v2/src/enterprise', + serialized_pb=b'\n\x1b\x65nterprise/enterprise.proto\x12\nenterprise\x1a\x1fgoogle/protobuf/timestamp.proto\"U\n\rLicenseRecord\x12\x17\n\x0f\x61\x63tivation_code\x18\x01 \x01(\t\x12+\n\x07\x65xpires\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"F\n\x10\x45nterpriseConfig\x12\x16\n\x0elicense_server\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0e\n\x06secret\x18\x03 \x01(\t\"\x8c\x01\n\x10\x45nterpriseRecord\x12*\n\x07license\x18\x01 \x01(\x0b\x32\x19.enterprise.LicenseRecord\x12\x32\n\x0elast_heartbeat\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10heartbeat_failed\x18\x03 \x01(\x08\"8\n\tTokenInfo\x12+\n\x07\x65xpires\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"Q\n\x0f\x41\x63tivateRequest\x12\x16\n\x0elicense_server\x18\x03 \x01(\t\x12\n\n\x02id\x18\x04 \x01(\t\x12\x0e\n\x06secret\x18\x05 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"\x12\n\x10\x41\x63tivateResponse\"\x11\n\x0fGetStateRequest\"r\n\x10GetStateResponse\x12 \n\x05state\x18\x01 \x01(\x0e\x32\x11.enterprise.State\x12#\n\x04info\x18\x02 \x01(\x0b\x32\x15.enterprise.TokenInfo\x12\x17\n\x0f\x61\x63tivation_code\x18\x03 \x01(\t\"\x1a\n\x18GetActivationCodeRequest\"{\n\x19GetActivationCodeResponse\x12 \n\x05state\x18\x01 \x01(\x0e\x32\x11.enterprise.State\x12#\n\x04info\x18\x02 \x01(\x0b\x32\x15.enterprise.TokenInfo\x12\x17\n\x0f\x61\x63tivation_code\x18\x03 \x01(\t\"\x12\n\x10HeartbeatRequest\"\x13\n\x11HeartbeatResponse\"\x13\n\x11\x44\x65\x61\x63tivateRequest\"\x14\n\x12\x44\x65\x61\x63tivateResponse*@\n\x05State\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x12\x14\n\x10HEARTBEAT_FAILED\x10\x03\x32\x96\x03\n\x03\x41PI\x12G\n\x08\x41\x63tivate\x12\x1b.enterprise.ActivateRequest\x1a\x1c.enterprise.ActivateResponse\"\x00\x12G\n\x08GetState\x12\x1b.enterprise.GetStateRequest\x1a\x1c.enterprise.GetStateResponse\"\x00\x12\x62\n\x11GetActivationCode\x12$.enterprise.GetActivationCodeRequest\x1a%.enterprise.GetActivationCodeResponse\"\x00\x12J\n\tHeartbeat\x12\x1c.enterprise.HeartbeatRequest\x1a\x1d.enterprise.HeartbeatResponse\"\x00\x12M\n\nDeactivate\x12\x1d.enterprise.DeactivateRequest\x1a\x1e.enterprise.DeactivateResponse\"\x00\x42\x32Z0github.com/pachyderm/pachyderm/v2/src/enterpriseb\x06proto3' , dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) @@ -42,11 +42,15 @@ name='EXPIRED', index=2, number=2, serialized_options=None, type=None), + _descriptor.EnumValueDescriptor( + name='HEARTBEAT_FAILED', index=3, number=3, + serialized_options=None, + type=None), ], containing_type=None, serialized_options=None, - serialized_start=708, - serialized_end=750, + serialized_start=911, + serialized_end=975, ) _sym_db.RegisterEnumDescriptor(_STATE) @@ -54,8 +58,92 @@ NONE = 0 ACTIVE = 1 EXPIRED = 2 +HEARTBEAT_FAILED = 3 + +_LICENSERECORD = _descriptor.Descriptor( + name='LicenseRecord', + full_name='enterprise.LicenseRecord', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='activation_code', full_name='enterprise.LicenseRecord.activation_code', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='expires', full_name='enterprise.LicenseRecord.expires', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=76, + serialized_end=161, +) + + +_ENTERPRISECONFIG = _descriptor.Descriptor( + name='EnterpriseConfig', + full_name='enterprise.EnterpriseConfig', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='license_server', full_name='enterprise.EnterpriseConfig.license_server', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='id', full_name='enterprise.EnterpriseConfig.id', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='secret', full_name='enterprise.EnterpriseConfig.secret', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=163, + serialized_end=233, +) + _ENTERPRISERECORD = _descriptor.Descriptor( name='EnterpriseRecord', @@ -65,19 +153,26 @@ containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='activation_code', full_name='enterprise.EnterpriseRecord.activation_code', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='license', full_name='enterprise.EnterpriseRecord.license', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='expires', full_name='enterprise.EnterpriseRecord.expires', index=1, + name='last_heartbeat', full_name='enterprise.EnterpriseRecord.last_heartbeat', index=1, number=2, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='heartbeat_failed', full_name='enterprise.EnterpriseRecord.heartbeat_failed', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -90,8 +185,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=83, - serialized_end=171, + serialized_start=236, + serialized_end=376, ) @@ -121,8 +216,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=173, - serialized_end=229, + serialized_start=378, + serialized_end=434, ) @@ -134,16 +229,23 @@ containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='activation_code', full_name='enterprise.ActivateRequest.activation_code', index=0, - number=1, type=9, cpp_type=9, label=1, + name='license_server', full_name='enterprise.ActivateRequest.license_server', index=0, + number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='expires', full_name='enterprise.ActivateRequest.expires', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='id', full_name='enterprise.ActivateRequest.id', index=1, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='secret', full_name='enterprise.ActivateRequest.secret', index=2, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -159,8 +261,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=231, - serialized_end=318, + serialized_start=436, + serialized_end=517, ) @@ -171,13 +273,6 @@ file=DESCRIPTOR, containing_type=None, fields=[ - _descriptor.FieldDescriptor( - name='info', full_name='enterprise.ActivateResponse.info', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -190,8 +285,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=320, - serialized_end=375, + serialized_start=519, + serialized_end=537, ) @@ -214,8 +309,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=377, - serialized_end=394, + serialized_start=539, + serialized_end=556, ) @@ -259,8 +354,125 @@ extension_ranges=[], oneofs=[ ], - serialized_start=396, - serialized_end=510, + serialized_start=558, + serialized_end=672, +) + + +_GETACTIVATIONCODEREQUEST = _descriptor.Descriptor( + name='GetActivationCodeRequest', + full_name='enterprise.GetActivationCodeRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=674, + serialized_end=700, +) + + +_GETACTIVATIONCODERESPONSE = _descriptor.Descriptor( + name='GetActivationCodeResponse', + full_name='enterprise.GetActivationCodeResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='state', full_name='enterprise.GetActivationCodeResponse.state', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='info', full_name='enterprise.GetActivationCodeResponse.info', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='activation_code', full_name='enterprise.GetActivationCodeResponse.activation_code', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=702, + serialized_end=825, +) + + +_HEARTBEATREQUEST = _descriptor.Descriptor( + name='HeartbeatRequest', + full_name='enterprise.HeartbeatRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=827, + serialized_end=845, +) + + +_HEARTBEATRESPONSE = _descriptor.Descriptor( + name='HeartbeatResponse', + full_name='enterprise.HeartbeatResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=847, + serialized_end=866, ) @@ -352,8 +564,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=665, - serialized_end=684, + serialized_start=868, + serialized_end=887, ) @@ -376,18 +588,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=686, - serialized_end=706, + serialized_start=889, + serialized_end=909, ) -_ENTERPRISERECORD.fields_by_name['expires'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_LICENSERECORD.fields_by_name['expires'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_ENTERPRISERECORD.fields_by_name['license'].message_type = _LICENSERECORD +_ENTERPRISERECORD.fields_by_name['last_heartbeat'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _TOKENINFO.fields_by_name['expires'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_ACTIVATEREQUEST.fields_by_name['expires'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_ACTIVATERESPONSE.fields_by_name['info'].message_type = _TOKENINFO _GETSTATERESPONSE.fields_by_name['state'].enum_type = _STATE _GETSTATERESPONSE.fields_by_name['info'].message_type = _TOKENINFO _GETACTIVATIONCODERESPONSE.fields_by_name['state'].enum_type = _STATE _GETACTIVATIONCODERESPONSE.fields_by_name['info'].message_type = _TOKENINFO +DESCRIPTOR.message_types_by_name['LicenseRecord'] = _LICENSERECORD +DESCRIPTOR.message_types_by_name['EnterpriseConfig'] = _ENTERPRISECONFIG DESCRIPTOR.message_types_by_name['EnterpriseRecord'] = _ENTERPRISERECORD DESCRIPTOR.message_types_by_name['TokenInfo'] = _TOKENINFO DESCRIPTOR.message_types_by_name['ActivateRequest'] = _ACTIVATEREQUEST @@ -396,77 +610,107 @@ DESCRIPTOR.message_types_by_name['GetStateResponse'] = _GETSTATERESPONSE DESCRIPTOR.message_types_by_name['GetActivationCodeRequest'] = _GETACTIVATIONCODEREQUEST DESCRIPTOR.message_types_by_name['GetActivationCodeResponse'] = _GETACTIVATIONCODERESPONSE +DESCRIPTOR.message_types_by_name['HeartbeatRequest'] = _HEARTBEATREQUEST +DESCRIPTOR.message_types_by_name['HeartbeatResponse'] = _HEARTBEATRESPONSE DESCRIPTOR.message_types_by_name['DeactivateRequest'] = _DEACTIVATEREQUEST DESCRIPTOR.message_types_by_name['DeactivateResponse'] = _DEACTIVATERESPONSE DESCRIPTOR.enum_types_by_name['State'] = _STATE _sym_db.RegisterFileDescriptor(DESCRIPTOR) +LicenseRecord = _reflection.GeneratedProtocolMessageType('LicenseRecord', (_message.Message,), { + 'DESCRIPTOR' : _LICENSERECORD, + '__module__' : 'enterprise.enterprise_pb2' + # @@protoc_insertion_point(class_scope:enterprise.LicenseRecord) + }) +_sym_db.RegisterMessage(LicenseRecord) + +EnterpriseConfig = _reflection.GeneratedProtocolMessageType('EnterpriseConfig', (_message.Message,), { + 'DESCRIPTOR' : _ENTERPRISECONFIG, + '__module__' : 'enterprise.enterprise_pb2' + # @@protoc_insertion_point(class_scope:enterprise.EnterpriseConfig) + }) +_sym_db.RegisterMessage(EnterpriseConfig) + EnterpriseRecord = _reflection.GeneratedProtocolMessageType('EnterpriseRecord', (_message.Message,), { 'DESCRIPTOR' : _ENTERPRISERECORD, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.EnterpriseRecord) }) _sym_db.RegisterMessage(EnterpriseRecord) TokenInfo = _reflection.GeneratedProtocolMessageType('TokenInfo', (_message.Message,), { 'DESCRIPTOR' : _TOKENINFO, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.TokenInfo) }) _sym_db.RegisterMessage(TokenInfo) ActivateRequest = _reflection.GeneratedProtocolMessageType('ActivateRequest', (_message.Message,), { 'DESCRIPTOR' : _ACTIVATEREQUEST, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.ActivateRequest) }) _sym_db.RegisterMessage(ActivateRequest) ActivateResponse = _reflection.GeneratedProtocolMessageType('ActivateResponse', (_message.Message,), { 'DESCRIPTOR' : _ACTIVATERESPONSE, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.ActivateResponse) }) _sym_db.RegisterMessage(ActivateResponse) GetStateRequest = _reflection.GeneratedProtocolMessageType('GetStateRequest', (_message.Message,), { 'DESCRIPTOR' : _GETSTATEREQUEST, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.GetStateRequest) }) _sym_db.RegisterMessage(GetStateRequest) GetStateResponse = _reflection.GeneratedProtocolMessageType('GetStateResponse', (_message.Message,), { 'DESCRIPTOR' : _GETSTATERESPONSE, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.GetStateResponse) }) _sym_db.RegisterMessage(GetStateResponse) GetActivationCodeRequest = _reflection.GeneratedProtocolMessageType('GetActivationCodeRequest', (_message.Message,), { 'DESCRIPTOR' : _GETACTIVATIONCODEREQUEST, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.GetActivationCodeRequest) }) _sym_db.RegisterMessage(GetActivationCodeRequest) GetActivationCodeResponse = _reflection.GeneratedProtocolMessageType('GetActivationCodeResponse', (_message.Message,), { 'DESCRIPTOR' : _GETACTIVATIONCODERESPONSE, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.GetActivationCodeResponse) }) _sym_db.RegisterMessage(GetActivationCodeResponse) +HeartbeatRequest = _reflection.GeneratedProtocolMessageType('HeartbeatRequest', (_message.Message,), { + 'DESCRIPTOR' : _HEARTBEATREQUEST, + '__module__' : 'enterprise.enterprise_pb2' + # @@protoc_insertion_point(class_scope:enterprise.HeartbeatRequest) + }) +_sym_db.RegisterMessage(HeartbeatRequest) + +HeartbeatResponse = _reflection.GeneratedProtocolMessageType('HeartbeatResponse', (_message.Message,), { + 'DESCRIPTOR' : _HEARTBEATRESPONSE, + '__module__' : 'enterprise.enterprise_pb2' + # @@protoc_insertion_point(class_scope:enterprise.HeartbeatResponse) + }) +_sym_db.RegisterMessage(HeartbeatResponse) + DeactivateRequest = _reflection.GeneratedProtocolMessageType('DeactivateRequest', (_message.Message,), { 'DESCRIPTOR' : _DEACTIVATEREQUEST, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.DeactivateRequest) }) _sym_db.RegisterMessage(DeactivateRequest) DeactivateResponse = _reflection.GeneratedProtocolMessageType('DeactivateResponse', (_message.Message,), { 'DESCRIPTOR' : _DEACTIVATERESPONSE, - '__module__' : 'client.enterprise.enterprise_pb2' + '__module__' : 'enterprise.enterprise_pb2' # @@protoc_insertion_point(class_scope:enterprise.DeactivateResponse) }) _sym_db.RegisterMessage(DeactivateResponse) @@ -480,8 +724,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=753, - serialized_end=1083, + serialized_start=978, + serialized_end=1384, methods=[ _descriptor.MethodDescriptor( name='Activate', @@ -510,10 +754,19 @@ output_type=_GETACTIVATIONCODERESPONSE, serialized_options=None, ), + _descriptor.MethodDescriptor( + name='Heartbeat', + full_name='enterprise.API.Heartbeat', + index=3, + containing_service=None, + input_type=_HEARTBEATREQUEST, + output_type=_HEARTBEATRESPONSE, + serialized_options=None, + ), _descriptor.MethodDescriptor( name='Deactivate', full_name='enterprise.API.Deactivate', - index=3, + index=4, containing_service=None, input_type=_DEACTIVATEREQUEST, output_type=_DEACTIVATERESPONSE, diff --git a/src/python_pachyderm/proto/enterprise/enterprise_pb2_grpc.py b/src/python_pachyderm/proto/enterprise/enterprise_pb2_grpc.py index 60aea020..182497e7 100644 --- a/src/python_pachyderm/proto/enterprise/enterprise_pb2_grpc.py +++ b/src/python_pachyderm/proto/enterprise/enterprise_pb2_grpc.py @@ -1,7 +1,7 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc -from python_pachyderm.proto.enterprise import enterprise_pb2 as client_dot_enterprise_dot_enterprise__pb2 +from enterprise import enterprise_pb2 as enterprise_dot_enterprise__pb2 class APIStub(object): @@ -16,13 +16,23 @@ def __init__(self, channel): """ self.Activate = channel.unary_unary( '/enterprise.API/Activate', - request_serializer=client_dot_enterprise_dot_enterprise__pb2.ActivateRequest.SerializeToString, - response_deserializer=client_dot_enterprise_dot_enterprise__pb2.ActivateResponse.FromString, + request_serializer=enterprise_dot_enterprise__pb2.ActivateRequest.SerializeToString, + response_deserializer=enterprise_dot_enterprise__pb2.ActivateResponse.FromString, ) self.GetState = channel.unary_unary( '/enterprise.API/GetState', - request_serializer=client_dot_enterprise_dot_enterprise__pb2.GetStateRequest.SerializeToString, - response_deserializer=client_dot_enterprise_dot_enterprise__pb2.GetStateResponse.FromString, + request_serializer=enterprise_dot_enterprise__pb2.GetStateRequest.SerializeToString, + response_deserializer=enterprise_dot_enterprise__pb2.GetStateResponse.FromString, + ) + self.GetActivationCode = channel.unary_unary( + '/enterprise.API/GetActivationCode', + request_serializer=enterprise_dot_enterprise__pb2.GetActivationCodeRequest.SerializeToString, + response_deserializer=enterprise_dot_enterprise__pb2.GetActivationCodeResponse.FromString, + ) + self.Heartbeat = channel.unary_unary( + '/enterprise.API/Heartbeat', + request_serializer=enterprise_dot_enterprise__pb2.HeartbeatRequest.SerializeToString, + response_deserializer=enterprise_dot_enterprise__pb2.HeartbeatResponse.FromString, ) self.GetActivationCode = channel.unary_unary( '/enterprise.API/GetActivationCode', @@ -31,8 +41,8 @@ def __init__(self, channel): ) self.Deactivate = channel.unary_unary( '/enterprise.API/Deactivate', - request_serializer=client_dot_enterprise_dot_enterprise__pb2.DeactivateRequest.SerializeToString, - response_deserializer=client_dot_enterprise_dot_enterprise__pb2.DeactivateResponse.FromString, + request_serializer=enterprise_dot_enterprise__pb2.DeactivateRequest.SerializeToString, + response_deserializer=enterprise_dot_enterprise__pb2.DeactivateResponse.FromString, ) @@ -62,14 +72,17 @@ def GetActivationCode(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def Deactivate(self, request, context): - """Deactivate is a testing API. It removes a cluster's enterprise activation - token and sets its enterprise state to NONE (normally, once a cluster has - been activated, the only reachable state is EXPIRED). + def Heartbeat(self, request, context): + """Heartbeat is used in testing to trigger a heartbeat on demand. Normally this happens + on a timer. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') - NOTE: This endpoint also calls DeleteAll (and deletes all Pachyderm data in - its cluster). This is to avoid dealing with invalid, intermediate states - (e.g. auth is activated but enterprise state is NONE) + def Deactivate(self, request, context): + """Deactivate removes a cluster's enterprise activation + token and sets its enterprise state to NONE. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -80,13 +93,23 @@ def add_APIServicer_to_server(servicer, server): rpc_method_handlers = { 'Activate': grpc.unary_unary_rpc_method_handler( servicer.Activate, - request_deserializer=client_dot_enterprise_dot_enterprise__pb2.ActivateRequest.FromString, - response_serializer=client_dot_enterprise_dot_enterprise__pb2.ActivateResponse.SerializeToString, + request_deserializer=enterprise_dot_enterprise__pb2.ActivateRequest.FromString, + response_serializer=enterprise_dot_enterprise__pb2.ActivateResponse.SerializeToString, ), 'GetState': grpc.unary_unary_rpc_method_handler( servicer.GetState, - request_deserializer=client_dot_enterprise_dot_enterprise__pb2.GetStateRequest.FromString, - response_serializer=client_dot_enterprise_dot_enterprise__pb2.GetStateResponse.SerializeToString, + request_deserializer=enterprise_dot_enterprise__pb2.GetStateRequest.FromString, + response_serializer=enterprise_dot_enterprise__pb2.GetStateResponse.SerializeToString, + ), + 'GetActivationCode': grpc.unary_unary_rpc_method_handler( + servicer.GetActivationCode, + request_deserializer=enterprise_dot_enterprise__pb2.GetActivationCodeRequest.FromString, + response_serializer=enterprise_dot_enterprise__pb2.GetActivationCodeResponse.SerializeToString, + ), + 'Heartbeat': grpc.unary_unary_rpc_method_handler( + servicer.Heartbeat, + request_deserializer=enterprise_dot_enterprise__pb2.HeartbeatRequest.FromString, + response_serializer=enterprise_dot_enterprise__pb2.HeartbeatResponse.SerializeToString, ), 'GetActivationCode': grpc.unary_unary_rpc_method_handler( servicer.GetActivationCode, @@ -95,8 +118,8 @@ def add_APIServicer_to_server(servicer, server): ), 'Deactivate': grpc.unary_unary_rpc_method_handler( servicer.Deactivate, - request_deserializer=client_dot_enterprise_dot_enterprise__pb2.DeactivateRequest.FromString, - response_serializer=client_dot_enterprise_dot_enterprise__pb2.DeactivateResponse.SerializeToString, + request_deserializer=enterprise_dot_enterprise__pb2.DeactivateRequest.FromString, + response_serializer=enterprise_dot_enterprise__pb2.DeactivateResponse.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( diff --git a/src/python_pachyderm/proto/health/health_pb2.py b/src/python_pachyderm/proto/health/health_pb2.py index eb067c10..c1cc3873 100644 --- a/src/python_pachyderm/proto/health/health_pb2.py +++ b/src/python_pachyderm/proto/health/health_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: client/health/health.proto +# source: health/health.proto from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -15,11 +15,11 @@ DESCRIPTOR = _descriptor.FileDescriptor( - name='client/health/health.proto', + name='health/health.proto', package='health', syntax='proto3', - serialized_options=b'Z0github.com/pachyderm/pachyderm/src/client/health', - serialized_pb=b'\n\x1a\x63lient/health/health.proto\x12\x06health\x1a\x1bgoogle/protobuf/empty.proto2D\n\x06Health\x12:\n\x06Health\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x42\x32Z0github.com/pachyderm/pachyderm/src/client/healthb\x06proto3' + serialized_options=b'Z,github.com/pachyderm/pachyderm/v2/src/health', + serialized_pb=b'\n\x13health/health.proto\x12\x06health\x1a\x1bgoogle/protobuf/empty.proto2D\n\x06Health\x12:\n\x06Health\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x42.Z,github.com/pachyderm/pachyderm/v2/src/healthb\x06proto3' , dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,]) @@ -36,8 +36,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=67, - serialized_end=135, + serialized_start=60, + serialized_end=128, methods=[ _descriptor.MethodDescriptor( name='Health', diff --git a/src/python_pachyderm/proto/identity/__init__.py b/src/python_pachyderm/proto/identity/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/python_pachyderm/proto/identity/identity_pb2.py b/src/python_pachyderm/proto/identity/identity_pb2.py new file mode 100644 index 00000000..47d195ba --- /dev/null +++ b/src/python_pachyderm/proto/identity/identity_pb2.py @@ -0,0 +1,1332 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: identity/identity.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='identity/identity.proto', + package='identity', + syntax='proto3', + serialized_options=b'Z.github.com/pachyderm/pachyderm/v2/src/identity', + serialized_pb=b'\n\x17identity/identity.proto\x12\x08identity\x1a\x1fgoogle/protobuf/timestamp.proto\"M\n\x04User\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\x36\n\x12last_authenticated\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"&\n\x14IdentityServerConfig\x12\x0e\n\x06issuer\x18\x01 \x01(\t\"P\n\x1eSetIdentityServerConfigRequest\x12.\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1e.identity.IdentityServerConfig\"!\n\x1fSetIdentityServerConfigResponse\" \n\x1eGetIdentityServerConfigRequest\"Q\n\x1fGetIdentityServerConfigResponse\x12.\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1e.identity.IdentityServerConfig\"a\n\x0cIDPConnector\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x15\n\rconfigVersion\x18\x04 \x01(\x03\x12\x12\n\njsonConfig\x18\x05 \x01(\t\"F\n\x19\x43reateIDPConnectorRequest\x12)\n\tconnector\x18\x01 \x01(\x0b\x32\x16.identity.IDPConnector\"\x1c\n\x1a\x43reateIDPConnectorResponse\"F\n\x19UpdateIDPConnectorRequest\x12)\n\tconnector\x18\x01 \x01(\x0b\x32\x16.identity.IDPConnector\"\x1c\n\x1aUpdateIDPConnectorResponse\"\x1a\n\x18ListIDPConnectorsRequest\"G\n\x19ListIDPConnectorsResponse\x12*\n\nconnectors\x18\x01 \x03(\x0b\x32\x16.identity.IDPConnector\"$\n\x16GetIDPConnectorRequest\x12\n\n\x02id\x18\x01 \x01(\t\"D\n\x17GetIDPConnectorResponse\x12)\n\tconnector\x18\x01 \x01(\x0b\x32\x16.identity.IDPConnector\"\'\n\x19\x44\x65leteIDPConnectorRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x1c\n\x1a\x44\x65leteIDPConnectorResponse\"d\n\nOIDCClient\x12\n\n\x02id\x18\x01 \x01(\t\x12\x15\n\rredirect_uris\x18\x02 \x03(\t\x12\x15\n\rtrusted_peers\x18\x03 \x03(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0e\n\x06secret\x18\x05 \x01(\t\"?\n\x17\x43reateOIDCClientRequest\x12$\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x14.identity.OIDCClient\"@\n\x18\x43reateOIDCClientResponse\x12$\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x14.identity.OIDCClient\"\"\n\x14GetOIDCClientRequest\x12\n\n\x02id\x18\x01 \x01(\t\"=\n\x15GetOIDCClientResponse\x12$\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x14.identity.OIDCClient\"\x18\n\x16ListOIDCClientsRequest\"@\n\x17ListOIDCClientsResponse\x12%\n\x07\x63lients\x18\x01 \x03(\x0b\x32\x14.identity.OIDCClient\"?\n\x17UpdateOIDCClientRequest\x12$\n\x06\x63lient\x18\x01 \x01(\x0b\x32\x14.identity.OIDCClient\"\x1a\n\x18UpdateOIDCClientResponse\"%\n\x17\x44\x65leteOIDCClientRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x1a\n\x18\x44\x65leteOIDCClientResponse\"\x12\n\x10\x44\x65leteAllRequest\"\x13\n\x11\x44\x65leteAllResponse2\xd9\t\n\x03\x41PI\x12p\n\x17SetIdentityServerConfig\x12(.identity.SetIdentityServerConfigRequest\x1a).identity.SetIdentityServerConfigResponse\"\x00\x12p\n\x17GetIdentityServerConfig\x12(.identity.GetIdentityServerConfigRequest\x1a).identity.GetIdentityServerConfigResponse\"\x00\x12\x61\n\x12\x43reateIDPConnector\x12#.identity.CreateIDPConnectorRequest\x1a$.identity.CreateIDPConnectorResponse\"\x00\x12\x61\n\x12UpdateIDPConnector\x12#.identity.UpdateIDPConnectorRequest\x1a$.identity.UpdateIDPConnectorResponse\"\x00\x12^\n\x11ListIDPConnectors\x12\".identity.ListIDPConnectorsRequest\x1a#.identity.ListIDPConnectorsResponse\"\x00\x12X\n\x0fGetIDPConnector\x12 .identity.GetIDPConnectorRequest\x1a!.identity.GetIDPConnectorResponse\"\x00\x12\x61\n\x12\x44\x65leteIDPConnector\x12#.identity.DeleteIDPConnectorRequest\x1a$.identity.DeleteIDPConnectorResponse\"\x00\x12[\n\x10\x43reateOIDCClient\x12!.identity.CreateOIDCClientRequest\x1a\".identity.CreateOIDCClientResponse\"\x00\x12[\n\x10UpdateOIDCClient\x12!.identity.UpdateOIDCClientRequest\x1a\".identity.UpdateOIDCClientResponse\"\x00\x12R\n\rGetOIDCClient\x12\x1e.identity.GetOIDCClientRequest\x1a\x1f.identity.GetOIDCClientResponse\"\x00\x12X\n\x0fListOIDCClients\x12 .identity.ListOIDCClientsRequest\x1a!.identity.ListOIDCClientsResponse\"\x00\x12[\n\x10\x44\x65leteOIDCClient\x12!.identity.DeleteOIDCClientRequest\x1a\".identity.DeleteOIDCClientResponse\"\x00\x12\x46\n\tDeleteAll\x12\x1a.identity.DeleteAllRequest\x1a\x1b.identity.DeleteAllResponse\"\x00\x42\x30Z.github.com/pachyderm/pachyderm/v2/src/identityb\x06proto3' + , + dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) + + + + +_USER = _descriptor.Descriptor( + name='User', + full_name='identity.User', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='email', full_name='identity.User.email', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='last_authenticated', full_name='identity.User.last_authenticated', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=70, + serialized_end=147, +) + + +_IDENTITYSERVERCONFIG = _descriptor.Descriptor( + name='IdentityServerConfig', + full_name='identity.IdentityServerConfig', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='issuer', full_name='identity.IdentityServerConfig.issuer', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=149, + serialized_end=187, +) + + +_SETIDENTITYSERVERCONFIGREQUEST = _descriptor.Descriptor( + name='SetIdentityServerConfigRequest', + full_name='identity.SetIdentityServerConfigRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='config', full_name='identity.SetIdentityServerConfigRequest.config', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=189, + serialized_end=269, +) + + +_SETIDENTITYSERVERCONFIGRESPONSE = _descriptor.Descriptor( + name='SetIdentityServerConfigResponse', + full_name='identity.SetIdentityServerConfigResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=271, + serialized_end=304, +) + + +_GETIDENTITYSERVERCONFIGREQUEST = _descriptor.Descriptor( + name='GetIdentityServerConfigRequest', + full_name='identity.GetIdentityServerConfigRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=306, + serialized_end=338, +) + + +_GETIDENTITYSERVERCONFIGRESPONSE = _descriptor.Descriptor( + name='GetIdentityServerConfigResponse', + full_name='identity.GetIdentityServerConfigResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='config', full_name='identity.GetIdentityServerConfigResponse.config', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=340, + serialized_end=421, +) + + +_IDPCONNECTOR = _descriptor.Descriptor( + name='IDPConnector', + full_name='identity.IDPConnector', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='identity.IDPConnector.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='identity.IDPConnector.name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='identity.IDPConnector.type', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='configVersion', full_name='identity.IDPConnector.configVersion', index=3, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='jsonConfig', full_name='identity.IDPConnector.jsonConfig', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=423, + serialized_end=520, +) + + +_CREATEIDPCONNECTORREQUEST = _descriptor.Descriptor( + name='CreateIDPConnectorRequest', + full_name='identity.CreateIDPConnectorRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connector', full_name='identity.CreateIDPConnectorRequest.connector', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=522, + serialized_end=592, +) + + +_CREATEIDPCONNECTORRESPONSE = _descriptor.Descriptor( + name='CreateIDPConnectorResponse', + full_name='identity.CreateIDPConnectorResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=594, + serialized_end=622, +) + + +_UPDATEIDPCONNECTORREQUEST = _descriptor.Descriptor( + name='UpdateIDPConnectorRequest', + full_name='identity.UpdateIDPConnectorRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connector', full_name='identity.UpdateIDPConnectorRequest.connector', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=624, + serialized_end=694, +) + + +_UPDATEIDPCONNECTORRESPONSE = _descriptor.Descriptor( + name='UpdateIDPConnectorResponse', + full_name='identity.UpdateIDPConnectorResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=696, + serialized_end=724, +) + + +_LISTIDPCONNECTORSREQUEST = _descriptor.Descriptor( + name='ListIDPConnectorsRequest', + full_name='identity.ListIDPConnectorsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=726, + serialized_end=752, +) + + +_LISTIDPCONNECTORSRESPONSE = _descriptor.Descriptor( + name='ListIDPConnectorsResponse', + full_name='identity.ListIDPConnectorsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connectors', full_name='identity.ListIDPConnectorsResponse.connectors', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=754, + serialized_end=825, +) + + +_GETIDPCONNECTORREQUEST = _descriptor.Descriptor( + name='GetIDPConnectorRequest', + full_name='identity.GetIDPConnectorRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='identity.GetIDPConnectorRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=827, + serialized_end=863, +) + + +_GETIDPCONNECTORRESPONSE = _descriptor.Descriptor( + name='GetIDPConnectorResponse', + full_name='identity.GetIDPConnectorResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connector', full_name='identity.GetIDPConnectorResponse.connector', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=865, + serialized_end=933, +) + + +_DELETEIDPCONNECTORREQUEST = _descriptor.Descriptor( + name='DeleteIDPConnectorRequest', + full_name='identity.DeleteIDPConnectorRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='identity.DeleteIDPConnectorRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=935, + serialized_end=974, +) + + +_DELETEIDPCONNECTORRESPONSE = _descriptor.Descriptor( + name='DeleteIDPConnectorResponse', + full_name='identity.DeleteIDPConnectorResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=976, + serialized_end=1004, +) + + +_OIDCCLIENT = _descriptor.Descriptor( + name='OIDCClient', + full_name='identity.OIDCClient', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='identity.OIDCClient.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='redirect_uris', full_name='identity.OIDCClient.redirect_uris', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='trusted_peers', full_name='identity.OIDCClient.trusted_peers', index=2, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='identity.OIDCClient.name', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='secret', full_name='identity.OIDCClient.secret', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1006, + serialized_end=1106, +) + + +_CREATEOIDCCLIENTREQUEST = _descriptor.Descriptor( + name='CreateOIDCClientRequest', + full_name='identity.CreateOIDCClientRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='client', full_name='identity.CreateOIDCClientRequest.client', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1108, + serialized_end=1171, +) + + +_CREATEOIDCCLIENTRESPONSE = _descriptor.Descriptor( + name='CreateOIDCClientResponse', + full_name='identity.CreateOIDCClientResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='client', full_name='identity.CreateOIDCClientResponse.client', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1173, + serialized_end=1237, +) + + +_GETOIDCCLIENTREQUEST = _descriptor.Descriptor( + name='GetOIDCClientRequest', + full_name='identity.GetOIDCClientRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='identity.GetOIDCClientRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1239, + serialized_end=1273, +) + + +_GETOIDCCLIENTRESPONSE = _descriptor.Descriptor( + name='GetOIDCClientResponse', + full_name='identity.GetOIDCClientResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='client', full_name='identity.GetOIDCClientResponse.client', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1275, + serialized_end=1336, +) + + +_LISTOIDCCLIENTSREQUEST = _descriptor.Descriptor( + name='ListOIDCClientsRequest', + full_name='identity.ListOIDCClientsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1338, + serialized_end=1362, +) + + +_LISTOIDCCLIENTSRESPONSE = _descriptor.Descriptor( + name='ListOIDCClientsResponse', + full_name='identity.ListOIDCClientsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='clients', full_name='identity.ListOIDCClientsResponse.clients', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1364, + serialized_end=1428, +) + + +_UPDATEOIDCCLIENTREQUEST = _descriptor.Descriptor( + name='UpdateOIDCClientRequest', + full_name='identity.UpdateOIDCClientRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='client', full_name='identity.UpdateOIDCClientRequest.client', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1430, + serialized_end=1493, +) + + +_UPDATEOIDCCLIENTRESPONSE = _descriptor.Descriptor( + name='UpdateOIDCClientResponse', + full_name='identity.UpdateOIDCClientResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1495, + serialized_end=1521, +) + + +_DELETEOIDCCLIENTREQUEST = _descriptor.Descriptor( + name='DeleteOIDCClientRequest', + full_name='identity.DeleteOIDCClientRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='identity.DeleteOIDCClientRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1523, + serialized_end=1560, +) + + +_DELETEOIDCCLIENTRESPONSE = _descriptor.Descriptor( + name='DeleteOIDCClientResponse', + full_name='identity.DeleteOIDCClientResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1562, + serialized_end=1588, +) + + +_DELETEALLREQUEST = _descriptor.Descriptor( + name='DeleteAllRequest', + full_name='identity.DeleteAllRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1590, + serialized_end=1608, +) + + +_DELETEALLRESPONSE = _descriptor.Descriptor( + name='DeleteAllResponse', + full_name='identity.DeleteAllResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1610, + serialized_end=1629, +) + +_USER.fields_by_name['last_authenticated'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_SETIDENTITYSERVERCONFIGREQUEST.fields_by_name['config'].message_type = _IDENTITYSERVERCONFIG +_GETIDENTITYSERVERCONFIGRESPONSE.fields_by_name['config'].message_type = _IDENTITYSERVERCONFIG +_CREATEIDPCONNECTORREQUEST.fields_by_name['connector'].message_type = _IDPCONNECTOR +_UPDATEIDPCONNECTORREQUEST.fields_by_name['connector'].message_type = _IDPCONNECTOR +_LISTIDPCONNECTORSRESPONSE.fields_by_name['connectors'].message_type = _IDPCONNECTOR +_GETIDPCONNECTORRESPONSE.fields_by_name['connector'].message_type = _IDPCONNECTOR +_CREATEOIDCCLIENTREQUEST.fields_by_name['client'].message_type = _OIDCCLIENT +_CREATEOIDCCLIENTRESPONSE.fields_by_name['client'].message_type = _OIDCCLIENT +_GETOIDCCLIENTRESPONSE.fields_by_name['client'].message_type = _OIDCCLIENT +_LISTOIDCCLIENTSRESPONSE.fields_by_name['clients'].message_type = _OIDCCLIENT +_UPDATEOIDCCLIENTREQUEST.fields_by_name['client'].message_type = _OIDCCLIENT +DESCRIPTOR.message_types_by_name['User'] = _USER +DESCRIPTOR.message_types_by_name['IdentityServerConfig'] = _IDENTITYSERVERCONFIG +DESCRIPTOR.message_types_by_name['SetIdentityServerConfigRequest'] = _SETIDENTITYSERVERCONFIGREQUEST +DESCRIPTOR.message_types_by_name['SetIdentityServerConfigResponse'] = _SETIDENTITYSERVERCONFIGRESPONSE +DESCRIPTOR.message_types_by_name['GetIdentityServerConfigRequest'] = _GETIDENTITYSERVERCONFIGREQUEST +DESCRIPTOR.message_types_by_name['GetIdentityServerConfigResponse'] = _GETIDENTITYSERVERCONFIGRESPONSE +DESCRIPTOR.message_types_by_name['IDPConnector'] = _IDPCONNECTOR +DESCRIPTOR.message_types_by_name['CreateIDPConnectorRequest'] = _CREATEIDPCONNECTORREQUEST +DESCRIPTOR.message_types_by_name['CreateIDPConnectorResponse'] = _CREATEIDPCONNECTORRESPONSE +DESCRIPTOR.message_types_by_name['UpdateIDPConnectorRequest'] = _UPDATEIDPCONNECTORREQUEST +DESCRIPTOR.message_types_by_name['UpdateIDPConnectorResponse'] = _UPDATEIDPCONNECTORRESPONSE +DESCRIPTOR.message_types_by_name['ListIDPConnectorsRequest'] = _LISTIDPCONNECTORSREQUEST +DESCRIPTOR.message_types_by_name['ListIDPConnectorsResponse'] = _LISTIDPCONNECTORSRESPONSE +DESCRIPTOR.message_types_by_name['GetIDPConnectorRequest'] = _GETIDPCONNECTORREQUEST +DESCRIPTOR.message_types_by_name['GetIDPConnectorResponse'] = _GETIDPCONNECTORRESPONSE +DESCRIPTOR.message_types_by_name['DeleteIDPConnectorRequest'] = _DELETEIDPCONNECTORREQUEST +DESCRIPTOR.message_types_by_name['DeleteIDPConnectorResponse'] = _DELETEIDPCONNECTORRESPONSE +DESCRIPTOR.message_types_by_name['OIDCClient'] = _OIDCCLIENT +DESCRIPTOR.message_types_by_name['CreateOIDCClientRequest'] = _CREATEOIDCCLIENTREQUEST +DESCRIPTOR.message_types_by_name['CreateOIDCClientResponse'] = _CREATEOIDCCLIENTRESPONSE +DESCRIPTOR.message_types_by_name['GetOIDCClientRequest'] = _GETOIDCCLIENTREQUEST +DESCRIPTOR.message_types_by_name['GetOIDCClientResponse'] = _GETOIDCCLIENTRESPONSE +DESCRIPTOR.message_types_by_name['ListOIDCClientsRequest'] = _LISTOIDCCLIENTSREQUEST +DESCRIPTOR.message_types_by_name['ListOIDCClientsResponse'] = _LISTOIDCCLIENTSRESPONSE +DESCRIPTOR.message_types_by_name['UpdateOIDCClientRequest'] = _UPDATEOIDCCLIENTREQUEST +DESCRIPTOR.message_types_by_name['UpdateOIDCClientResponse'] = _UPDATEOIDCCLIENTRESPONSE +DESCRIPTOR.message_types_by_name['DeleteOIDCClientRequest'] = _DELETEOIDCCLIENTREQUEST +DESCRIPTOR.message_types_by_name['DeleteOIDCClientResponse'] = _DELETEOIDCCLIENTRESPONSE +DESCRIPTOR.message_types_by_name['DeleteAllRequest'] = _DELETEALLREQUEST +DESCRIPTOR.message_types_by_name['DeleteAllResponse'] = _DELETEALLRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +User = _reflection.GeneratedProtocolMessageType('User', (_message.Message,), { + 'DESCRIPTOR' : _USER, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.User) + }) +_sym_db.RegisterMessage(User) + +IdentityServerConfig = _reflection.GeneratedProtocolMessageType('IdentityServerConfig', (_message.Message,), { + 'DESCRIPTOR' : _IDENTITYSERVERCONFIG, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.IdentityServerConfig) + }) +_sym_db.RegisterMessage(IdentityServerConfig) + +SetIdentityServerConfigRequest = _reflection.GeneratedProtocolMessageType('SetIdentityServerConfigRequest', (_message.Message,), { + 'DESCRIPTOR' : _SETIDENTITYSERVERCONFIGREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.SetIdentityServerConfigRequest) + }) +_sym_db.RegisterMessage(SetIdentityServerConfigRequest) + +SetIdentityServerConfigResponse = _reflection.GeneratedProtocolMessageType('SetIdentityServerConfigResponse', (_message.Message,), { + 'DESCRIPTOR' : _SETIDENTITYSERVERCONFIGRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.SetIdentityServerConfigResponse) + }) +_sym_db.RegisterMessage(SetIdentityServerConfigResponse) + +GetIdentityServerConfigRequest = _reflection.GeneratedProtocolMessageType('GetIdentityServerConfigRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETIDENTITYSERVERCONFIGREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.GetIdentityServerConfigRequest) + }) +_sym_db.RegisterMessage(GetIdentityServerConfigRequest) + +GetIdentityServerConfigResponse = _reflection.GeneratedProtocolMessageType('GetIdentityServerConfigResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETIDENTITYSERVERCONFIGRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.GetIdentityServerConfigResponse) + }) +_sym_db.RegisterMessage(GetIdentityServerConfigResponse) + +IDPConnector = _reflection.GeneratedProtocolMessageType('IDPConnector', (_message.Message,), { + 'DESCRIPTOR' : _IDPCONNECTOR, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.IDPConnector) + }) +_sym_db.RegisterMessage(IDPConnector) + +CreateIDPConnectorRequest = _reflection.GeneratedProtocolMessageType('CreateIDPConnectorRequest', (_message.Message,), { + 'DESCRIPTOR' : _CREATEIDPCONNECTORREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.CreateIDPConnectorRequest) + }) +_sym_db.RegisterMessage(CreateIDPConnectorRequest) + +CreateIDPConnectorResponse = _reflection.GeneratedProtocolMessageType('CreateIDPConnectorResponse', (_message.Message,), { + 'DESCRIPTOR' : _CREATEIDPCONNECTORRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.CreateIDPConnectorResponse) + }) +_sym_db.RegisterMessage(CreateIDPConnectorResponse) + +UpdateIDPConnectorRequest = _reflection.GeneratedProtocolMessageType('UpdateIDPConnectorRequest', (_message.Message,), { + 'DESCRIPTOR' : _UPDATEIDPCONNECTORREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.UpdateIDPConnectorRequest) + }) +_sym_db.RegisterMessage(UpdateIDPConnectorRequest) + +UpdateIDPConnectorResponse = _reflection.GeneratedProtocolMessageType('UpdateIDPConnectorResponse', (_message.Message,), { + 'DESCRIPTOR' : _UPDATEIDPCONNECTORRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.UpdateIDPConnectorResponse) + }) +_sym_db.RegisterMessage(UpdateIDPConnectorResponse) + +ListIDPConnectorsRequest = _reflection.GeneratedProtocolMessageType('ListIDPConnectorsRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTIDPCONNECTORSREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.ListIDPConnectorsRequest) + }) +_sym_db.RegisterMessage(ListIDPConnectorsRequest) + +ListIDPConnectorsResponse = _reflection.GeneratedProtocolMessageType('ListIDPConnectorsResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTIDPCONNECTORSRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.ListIDPConnectorsResponse) + }) +_sym_db.RegisterMessage(ListIDPConnectorsResponse) + +GetIDPConnectorRequest = _reflection.GeneratedProtocolMessageType('GetIDPConnectorRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETIDPCONNECTORREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.GetIDPConnectorRequest) + }) +_sym_db.RegisterMessage(GetIDPConnectorRequest) + +GetIDPConnectorResponse = _reflection.GeneratedProtocolMessageType('GetIDPConnectorResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETIDPCONNECTORRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.GetIDPConnectorResponse) + }) +_sym_db.RegisterMessage(GetIDPConnectorResponse) + +DeleteIDPConnectorRequest = _reflection.GeneratedProtocolMessageType('DeleteIDPConnectorRequest', (_message.Message,), { + 'DESCRIPTOR' : _DELETEIDPCONNECTORREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.DeleteIDPConnectorRequest) + }) +_sym_db.RegisterMessage(DeleteIDPConnectorRequest) + +DeleteIDPConnectorResponse = _reflection.GeneratedProtocolMessageType('DeleteIDPConnectorResponse', (_message.Message,), { + 'DESCRIPTOR' : _DELETEIDPCONNECTORRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.DeleteIDPConnectorResponse) + }) +_sym_db.RegisterMessage(DeleteIDPConnectorResponse) + +OIDCClient = _reflection.GeneratedProtocolMessageType('OIDCClient', (_message.Message,), { + 'DESCRIPTOR' : _OIDCCLIENT, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.OIDCClient) + }) +_sym_db.RegisterMessage(OIDCClient) + +CreateOIDCClientRequest = _reflection.GeneratedProtocolMessageType('CreateOIDCClientRequest', (_message.Message,), { + 'DESCRIPTOR' : _CREATEOIDCCLIENTREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.CreateOIDCClientRequest) + }) +_sym_db.RegisterMessage(CreateOIDCClientRequest) + +CreateOIDCClientResponse = _reflection.GeneratedProtocolMessageType('CreateOIDCClientResponse', (_message.Message,), { + 'DESCRIPTOR' : _CREATEOIDCCLIENTRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.CreateOIDCClientResponse) + }) +_sym_db.RegisterMessage(CreateOIDCClientResponse) + +GetOIDCClientRequest = _reflection.GeneratedProtocolMessageType('GetOIDCClientRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETOIDCCLIENTREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.GetOIDCClientRequest) + }) +_sym_db.RegisterMessage(GetOIDCClientRequest) + +GetOIDCClientResponse = _reflection.GeneratedProtocolMessageType('GetOIDCClientResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETOIDCCLIENTRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.GetOIDCClientResponse) + }) +_sym_db.RegisterMessage(GetOIDCClientResponse) + +ListOIDCClientsRequest = _reflection.GeneratedProtocolMessageType('ListOIDCClientsRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTOIDCCLIENTSREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.ListOIDCClientsRequest) + }) +_sym_db.RegisterMessage(ListOIDCClientsRequest) + +ListOIDCClientsResponse = _reflection.GeneratedProtocolMessageType('ListOIDCClientsResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTOIDCCLIENTSRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.ListOIDCClientsResponse) + }) +_sym_db.RegisterMessage(ListOIDCClientsResponse) + +UpdateOIDCClientRequest = _reflection.GeneratedProtocolMessageType('UpdateOIDCClientRequest', (_message.Message,), { + 'DESCRIPTOR' : _UPDATEOIDCCLIENTREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.UpdateOIDCClientRequest) + }) +_sym_db.RegisterMessage(UpdateOIDCClientRequest) + +UpdateOIDCClientResponse = _reflection.GeneratedProtocolMessageType('UpdateOIDCClientResponse', (_message.Message,), { + 'DESCRIPTOR' : _UPDATEOIDCCLIENTRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.UpdateOIDCClientResponse) + }) +_sym_db.RegisterMessage(UpdateOIDCClientResponse) + +DeleteOIDCClientRequest = _reflection.GeneratedProtocolMessageType('DeleteOIDCClientRequest', (_message.Message,), { + 'DESCRIPTOR' : _DELETEOIDCCLIENTREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.DeleteOIDCClientRequest) + }) +_sym_db.RegisterMessage(DeleteOIDCClientRequest) + +DeleteOIDCClientResponse = _reflection.GeneratedProtocolMessageType('DeleteOIDCClientResponse', (_message.Message,), { + 'DESCRIPTOR' : _DELETEOIDCCLIENTRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.DeleteOIDCClientResponse) + }) +_sym_db.RegisterMessage(DeleteOIDCClientResponse) + +DeleteAllRequest = _reflection.GeneratedProtocolMessageType('DeleteAllRequest', (_message.Message,), { + 'DESCRIPTOR' : _DELETEALLREQUEST, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.DeleteAllRequest) + }) +_sym_db.RegisterMessage(DeleteAllRequest) + +DeleteAllResponse = _reflection.GeneratedProtocolMessageType('DeleteAllResponse', (_message.Message,), { + 'DESCRIPTOR' : _DELETEALLRESPONSE, + '__module__' : 'identity.identity_pb2' + # @@protoc_insertion_point(class_scope:identity.DeleteAllResponse) + }) +_sym_db.RegisterMessage(DeleteAllResponse) + + +DESCRIPTOR._options = None + +_API = _descriptor.ServiceDescriptor( + name='API', + full_name='identity.API', + file=DESCRIPTOR, + index=0, + serialized_options=None, + serialized_start=1632, + serialized_end=2873, + methods=[ + _descriptor.MethodDescriptor( + name='SetIdentityServerConfig', + full_name='identity.API.SetIdentityServerConfig', + index=0, + containing_service=None, + input_type=_SETIDENTITYSERVERCONFIGREQUEST, + output_type=_SETIDENTITYSERVERCONFIGRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetIdentityServerConfig', + full_name='identity.API.GetIdentityServerConfig', + index=1, + containing_service=None, + input_type=_GETIDENTITYSERVERCONFIGREQUEST, + output_type=_GETIDENTITYSERVERCONFIGRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='CreateIDPConnector', + full_name='identity.API.CreateIDPConnector', + index=2, + containing_service=None, + input_type=_CREATEIDPCONNECTORREQUEST, + output_type=_CREATEIDPCONNECTORRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='UpdateIDPConnector', + full_name='identity.API.UpdateIDPConnector', + index=3, + containing_service=None, + input_type=_UPDATEIDPCONNECTORREQUEST, + output_type=_UPDATEIDPCONNECTORRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='ListIDPConnectors', + full_name='identity.API.ListIDPConnectors', + index=4, + containing_service=None, + input_type=_LISTIDPCONNECTORSREQUEST, + output_type=_LISTIDPCONNECTORSRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetIDPConnector', + full_name='identity.API.GetIDPConnector', + index=5, + containing_service=None, + input_type=_GETIDPCONNECTORREQUEST, + output_type=_GETIDPCONNECTORRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='DeleteIDPConnector', + full_name='identity.API.DeleteIDPConnector', + index=6, + containing_service=None, + input_type=_DELETEIDPCONNECTORREQUEST, + output_type=_DELETEIDPCONNECTORRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='CreateOIDCClient', + full_name='identity.API.CreateOIDCClient', + index=7, + containing_service=None, + input_type=_CREATEOIDCCLIENTREQUEST, + output_type=_CREATEOIDCCLIENTRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='UpdateOIDCClient', + full_name='identity.API.UpdateOIDCClient', + index=8, + containing_service=None, + input_type=_UPDATEOIDCCLIENTREQUEST, + output_type=_UPDATEOIDCCLIENTRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetOIDCClient', + full_name='identity.API.GetOIDCClient', + index=9, + containing_service=None, + input_type=_GETOIDCCLIENTREQUEST, + output_type=_GETOIDCCLIENTRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='ListOIDCClients', + full_name='identity.API.ListOIDCClients', + index=10, + containing_service=None, + input_type=_LISTOIDCCLIENTSREQUEST, + output_type=_LISTOIDCCLIENTSRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='DeleteOIDCClient', + full_name='identity.API.DeleteOIDCClient', + index=11, + containing_service=None, + input_type=_DELETEOIDCCLIENTREQUEST, + output_type=_DELETEOIDCCLIENTRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='DeleteAll', + full_name='identity.API.DeleteAll', + index=12, + containing_service=None, + input_type=_DELETEALLREQUEST, + output_type=_DELETEALLRESPONSE, + serialized_options=None, + ), +]) +_sym_db.RegisterServiceDescriptor(_API) + +DESCRIPTOR.services_by_name['API'] = _API + +# @@protoc_insertion_point(module_scope) diff --git a/src/python_pachyderm/proto/identity/identity_pb2_grpc.py b/src/python_pachyderm/proto/identity/identity_pb2_grpc.py new file mode 100644 index 00000000..f7af2509 --- /dev/null +++ b/src/python_pachyderm/proto/identity/identity_pb2_grpc.py @@ -0,0 +1,250 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from identity import identity_pb2 as identity_dot_identity__pb2 + + +class APIStub(object): + # missing associated documentation comment in .proto file + pass + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.SetIdentityServerConfig = channel.unary_unary( + '/identity.API/SetIdentityServerConfig', + request_serializer=identity_dot_identity__pb2.SetIdentityServerConfigRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.SetIdentityServerConfigResponse.FromString, + ) + self.GetIdentityServerConfig = channel.unary_unary( + '/identity.API/GetIdentityServerConfig', + request_serializer=identity_dot_identity__pb2.GetIdentityServerConfigRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.GetIdentityServerConfigResponse.FromString, + ) + self.CreateIDPConnector = channel.unary_unary( + '/identity.API/CreateIDPConnector', + request_serializer=identity_dot_identity__pb2.CreateIDPConnectorRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.CreateIDPConnectorResponse.FromString, + ) + self.UpdateIDPConnector = channel.unary_unary( + '/identity.API/UpdateIDPConnector', + request_serializer=identity_dot_identity__pb2.UpdateIDPConnectorRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.UpdateIDPConnectorResponse.FromString, + ) + self.ListIDPConnectors = channel.unary_unary( + '/identity.API/ListIDPConnectors', + request_serializer=identity_dot_identity__pb2.ListIDPConnectorsRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.ListIDPConnectorsResponse.FromString, + ) + self.GetIDPConnector = channel.unary_unary( + '/identity.API/GetIDPConnector', + request_serializer=identity_dot_identity__pb2.GetIDPConnectorRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.GetIDPConnectorResponse.FromString, + ) + self.DeleteIDPConnector = channel.unary_unary( + '/identity.API/DeleteIDPConnector', + request_serializer=identity_dot_identity__pb2.DeleteIDPConnectorRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.DeleteIDPConnectorResponse.FromString, + ) + self.CreateOIDCClient = channel.unary_unary( + '/identity.API/CreateOIDCClient', + request_serializer=identity_dot_identity__pb2.CreateOIDCClientRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.CreateOIDCClientResponse.FromString, + ) + self.UpdateOIDCClient = channel.unary_unary( + '/identity.API/UpdateOIDCClient', + request_serializer=identity_dot_identity__pb2.UpdateOIDCClientRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.UpdateOIDCClientResponse.FromString, + ) + self.GetOIDCClient = channel.unary_unary( + '/identity.API/GetOIDCClient', + request_serializer=identity_dot_identity__pb2.GetOIDCClientRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.GetOIDCClientResponse.FromString, + ) + self.ListOIDCClients = channel.unary_unary( + '/identity.API/ListOIDCClients', + request_serializer=identity_dot_identity__pb2.ListOIDCClientsRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.ListOIDCClientsResponse.FromString, + ) + self.DeleteOIDCClient = channel.unary_unary( + '/identity.API/DeleteOIDCClient', + request_serializer=identity_dot_identity__pb2.DeleteOIDCClientRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.DeleteOIDCClientResponse.FromString, + ) + self.DeleteAll = channel.unary_unary( + '/identity.API/DeleteAll', + request_serializer=identity_dot_identity__pb2.DeleteAllRequest.SerializeToString, + response_deserializer=identity_dot_identity__pb2.DeleteAllResponse.FromString, + ) + + +class APIServicer(object): + # missing associated documentation comment in .proto file + pass + + def SetIdentityServerConfig(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetIdentityServerConfig(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateIDPConnector(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateIDPConnector(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListIDPConnectors(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetIDPConnector(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteIDPConnector(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CreateOIDCClient(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateOIDCClient(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetOIDCClient(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListOIDCClients(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteOIDCClient(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteAll(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_APIServicer_to_server(servicer, server): + rpc_method_handlers = { + 'SetIdentityServerConfig': grpc.unary_unary_rpc_method_handler( + servicer.SetIdentityServerConfig, + request_deserializer=identity_dot_identity__pb2.SetIdentityServerConfigRequest.FromString, + response_serializer=identity_dot_identity__pb2.SetIdentityServerConfigResponse.SerializeToString, + ), + 'GetIdentityServerConfig': grpc.unary_unary_rpc_method_handler( + servicer.GetIdentityServerConfig, + request_deserializer=identity_dot_identity__pb2.GetIdentityServerConfigRequest.FromString, + response_serializer=identity_dot_identity__pb2.GetIdentityServerConfigResponse.SerializeToString, + ), + 'CreateIDPConnector': grpc.unary_unary_rpc_method_handler( + servicer.CreateIDPConnector, + request_deserializer=identity_dot_identity__pb2.CreateIDPConnectorRequest.FromString, + response_serializer=identity_dot_identity__pb2.CreateIDPConnectorResponse.SerializeToString, + ), + 'UpdateIDPConnector': grpc.unary_unary_rpc_method_handler( + servicer.UpdateIDPConnector, + request_deserializer=identity_dot_identity__pb2.UpdateIDPConnectorRequest.FromString, + response_serializer=identity_dot_identity__pb2.UpdateIDPConnectorResponse.SerializeToString, + ), + 'ListIDPConnectors': grpc.unary_unary_rpc_method_handler( + servicer.ListIDPConnectors, + request_deserializer=identity_dot_identity__pb2.ListIDPConnectorsRequest.FromString, + response_serializer=identity_dot_identity__pb2.ListIDPConnectorsResponse.SerializeToString, + ), + 'GetIDPConnector': grpc.unary_unary_rpc_method_handler( + servicer.GetIDPConnector, + request_deserializer=identity_dot_identity__pb2.GetIDPConnectorRequest.FromString, + response_serializer=identity_dot_identity__pb2.GetIDPConnectorResponse.SerializeToString, + ), + 'DeleteIDPConnector': grpc.unary_unary_rpc_method_handler( + servicer.DeleteIDPConnector, + request_deserializer=identity_dot_identity__pb2.DeleteIDPConnectorRequest.FromString, + response_serializer=identity_dot_identity__pb2.DeleteIDPConnectorResponse.SerializeToString, + ), + 'CreateOIDCClient': grpc.unary_unary_rpc_method_handler( + servicer.CreateOIDCClient, + request_deserializer=identity_dot_identity__pb2.CreateOIDCClientRequest.FromString, + response_serializer=identity_dot_identity__pb2.CreateOIDCClientResponse.SerializeToString, + ), + 'UpdateOIDCClient': grpc.unary_unary_rpc_method_handler( + servicer.UpdateOIDCClient, + request_deserializer=identity_dot_identity__pb2.UpdateOIDCClientRequest.FromString, + response_serializer=identity_dot_identity__pb2.UpdateOIDCClientResponse.SerializeToString, + ), + 'GetOIDCClient': grpc.unary_unary_rpc_method_handler( + servicer.GetOIDCClient, + request_deserializer=identity_dot_identity__pb2.GetOIDCClientRequest.FromString, + response_serializer=identity_dot_identity__pb2.GetOIDCClientResponse.SerializeToString, + ), + 'ListOIDCClients': grpc.unary_unary_rpc_method_handler( + servicer.ListOIDCClients, + request_deserializer=identity_dot_identity__pb2.ListOIDCClientsRequest.FromString, + response_serializer=identity_dot_identity__pb2.ListOIDCClientsResponse.SerializeToString, + ), + 'DeleteOIDCClient': grpc.unary_unary_rpc_method_handler( + servicer.DeleteOIDCClient, + request_deserializer=identity_dot_identity__pb2.DeleteOIDCClientRequest.FromString, + response_serializer=identity_dot_identity__pb2.DeleteOIDCClientResponse.SerializeToString, + ), + 'DeleteAll': grpc.unary_unary_rpc_method_handler( + servicer.DeleteAll, + request_deserializer=identity_dot_identity__pb2.DeleteAllRequest.FromString, + response_serializer=identity_dot_identity__pb2.DeleteAllResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'identity.API', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/src/python_pachyderm/proto/license/__init__.py b/src/python_pachyderm/proto/license/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/python_pachyderm/proto/license/license_pb2.py b/src/python_pachyderm/proto/license/license_pb2.py new file mode 100644 index 00000000..fc861dbd --- /dev/null +++ b/src/python_pachyderm/proto/license/license_pb2.py @@ -0,0 +1,911 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: license/license.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from enterprise import enterprise_pb2 as enterprise_dot_enterprise__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='license/license.proto', + package='license', + syntax='proto3', + serialized_options=b'Z-github.com/pachyderm/pachyderm/v2/src/license', + serialized_pb=b'\n\x15license/license.proto\x12\x07license\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1b\x65nterprise/enterprise.proto\"W\n\x0f\x41\x63tivateRequest\x12\x17\n\x0f\x61\x63tivation_code\x18\x01 \x01(\t\x12+\n\x07\x65xpires\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"7\n\x10\x41\x63tivateResponse\x12#\n\x04info\x18\x01 \x01(\x0b\x32\x15.enterprise.TokenInfo\"\x1a\n\x18GetActivationCodeRequest\"{\n\x19GetActivationCodeResponse\x12 \n\x05state\x18\x01 \x01(\x0e\x32\x11.enterprise.State\x12#\n\x04info\x18\x02 \x01(\x0b\x32\x15.enterprise.TokenInfo\x12\x17\n\x0f\x61\x63tivation_code\x18\x03 \x01(\t\"\x13\n\x11\x44\x65\x61\x63tivateRequest\"\x14\n\x12\x44\x65\x61\x63tivateResponse\"@\n\x11\x41\x64\x64\x43lusterRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x0e\n\x06secret\x18\x03 \x01(\t\"$\n\x12\x41\x64\x64\x43lusterResponse\x12\x0e\n\x06secret\x18\x01 \x01(\t\"\"\n\x14\x44\x65leteClusterRequest\x12\n\n\x02id\x18\x01 \x01(\t\"\x17\n\x15\x44\x65leteClusterResponse\"\xb7\x01\n\rClusterStatus\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x14\n\x0c\x61uth_enabled\x18\x04 \x01(\x08\x12\x32\n\x0elast_heartbeat\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"3\n\x14UpdateClusterRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\"\x17\n\x15UpdateClusterResponse\"\x15\n\x13ListClustersRequest\"@\n\x14ListClustersResponse\x12(\n\x08\x63lusters\x18\x01 \x03(\x0b\x32\x16.license.ClusterStatus\"\x12\n\x10\x44\x65leteAllRequest\"\x13\n\x11\x44\x65leteAllResponse\"U\n\x10HeartbeatRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06secret\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x14\n\x0c\x61uth_enabled\x18\x04 \x01(\x08\"?\n\x11HeartbeatResponse\x12*\n\x07license\x18\x01 \x01(\x0b\x32\x19.enterprise.LicenseRecord2\xee\x04\n\x03\x41PI\x12\x41\n\x08\x41\x63tivate\x12\x18.license.ActivateRequest\x1a\x19.license.ActivateResponse\"\x00\x12\\\n\x11GetActivationCode\x12!.license.GetActivationCodeRequest\x1a\".license.GetActivationCodeResponse\"\x00\x12\x44\n\tDeleteAll\x12\x19.license.DeleteAllRequest\x1a\x1a.license.DeleteAllResponse\"\x00\x12G\n\nAddCluster\x12\x1a.license.AddClusterRequest\x1a\x1b.license.AddClusterResponse\"\x00\x12P\n\rDeleteCluster\x12\x1d.license.DeleteClusterRequest\x1a\x1e.license.DeleteClusterResponse\"\x00\x12M\n\x0cListClusters\x12\x1c.license.ListClustersRequest\x1a\x1d.license.ListClustersResponse\"\x00\x12P\n\rUpdateCluster\x12\x1d.license.UpdateClusterRequest\x1a\x1e.license.UpdateClusterResponse\"\x00\x12\x44\n\tHeartbeat\x12\x19.license.HeartbeatRequest\x1a\x1a.license.HeartbeatResponse\"\x00\x42/Z-github.com/pachyderm/pachyderm/v2/src/licenseb\x06proto3' + , + dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,enterprise_dot_enterprise__pb2.DESCRIPTOR,]) + + + + +_ACTIVATEREQUEST = _descriptor.Descriptor( + name='ActivateRequest', + full_name='license.ActivateRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='activation_code', full_name='license.ActivateRequest.activation_code', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='expires', full_name='license.ActivateRequest.expires', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=96, + serialized_end=183, +) + + +_ACTIVATERESPONSE = _descriptor.Descriptor( + name='ActivateResponse', + full_name='license.ActivateResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='info', full_name='license.ActivateResponse.info', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=185, + serialized_end=240, +) + + +_GETACTIVATIONCODEREQUEST = _descriptor.Descriptor( + name='GetActivationCodeRequest', + full_name='license.GetActivationCodeRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=242, + serialized_end=268, +) + + +_GETACTIVATIONCODERESPONSE = _descriptor.Descriptor( + name='GetActivationCodeResponse', + full_name='license.GetActivationCodeResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='state', full_name='license.GetActivationCodeResponse.state', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='info', full_name='license.GetActivationCodeResponse.info', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='activation_code', full_name='license.GetActivationCodeResponse.activation_code', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=270, + serialized_end=393, +) + + +_DEACTIVATEREQUEST = _descriptor.Descriptor( + name='DeactivateRequest', + full_name='license.DeactivateRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=395, + serialized_end=414, +) + + +_DEACTIVATERESPONSE = _descriptor.Descriptor( + name='DeactivateResponse', + full_name='license.DeactivateResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=416, + serialized_end=436, +) + + +_ADDCLUSTERREQUEST = _descriptor.Descriptor( + name='AddClusterRequest', + full_name='license.AddClusterRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='license.AddClusterRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='address', full_name='license.AddClusterRequest.address', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='secret', full_name='license.AddClusterRequest.secret', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=438, + serialized_end=502, +) + + +_ADDCLUSTERRESPONSE = _descriptor.Descriptor( + name='AddClusterResponse', + full_name='license.AddClusterResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='secret', full_name='license.AddClusterResponse.secret', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=504, + serialized_end=540, +) + + +_DELETECLUSTERREQUEST = _descriptor.Descriptor( + name='DeleteClusterRequest', + full_name='license.DeleteClusterRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='license.DeleteClusterRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=542, + serialized_end=576, +) + + +_DELETECLUSTERRESPONSE = _descriptor.Descriptor( + name='DeleteClusterResponse', + full_name='license.DeleteClusterResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=578, + serialized_end=601, +) + + +_CLUSTERSTATUS = _descriptor.Descriptor( + name='ClusterStatus', + full_name='license.ClusterStatus', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='license.ClusterStatus.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='address', full_name='license.ClusterStatus.address', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='version', full_name='license.ClusterStatus.version', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='auth_enabled', full_name='license.ClusterStatus.auth_enabled', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='last_heartbeat', full_name='license.ClusterStatus.last_heartbeat', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='created_at', full_name='license.ClusterStatus.created_at', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=604, + serialized_end=787, +) + + +_UPDATECLUSTERREQUEST = _descriptor.Descriptor( + name='UpdateClusterRequest', + full_name='license.UpdateClusterRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='license.UpdateClusterRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='address', full_name='license.UpdateClusterRequest.address', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=789, + serialized_end=840, +) + + +_UPDATECLUSTERRESPONSE = _descriptor.Descriptor( + name='UpdateClusterResponse', + full_name='license.UpdateClusterResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=842, + serialized_end=865, +) + + +_LISTCLUSTERSREQUEST = _descriptor.Descriptor( + name='ListClustersRequest', + full_name='license.ListClustersRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=867, + serialized_end=888, +) + + +_LISTCLUSTERSRESPONSE = _descriptor.Descriptor( + name='ListClustersResponse', + full_name='license.ListClustersResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='clusters', full_name='license.ListClustersResponse.clusters', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=890, + serialized_end=954, +) + + +_DELETEALLREQUEST = _descriptor.Descriptor( + name='DeleteAllRequest', + full_name='license.DeleteAllRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=956, + serialized_end=974, +) + + +_DELETEALLRESPONSE = _descriptor.Descriptor( + name='DeleteAllResponse', + full_name='license.DeleteAllResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=976, + serialized_end=995, +) + + +_HEARTBEATREQUEST = _descriptor.Descriptor( + name='HeartbeatRequest', + full_name='license.HeartbeatRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='license.HeartbeatRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='secret', full_name='license.HeartbeatRequest.secret', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='version', full_name='license.HeartbeatRequest.version', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='auth_enabled', full_name='license.HeartbeatRequest.auth_enabled', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=997, + serialized_end=1082, +) + + +_HEARTBEATRESPONSE = _descriptor.Descriptor( + name='HeartbeatResponse', + full_name='license.HeartbeatResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='license', full_name='license.HeartbeatResponse.license', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1084, + serialized_end=1147, +) + +_ACTIVATEREQUEST.fields_by_name['expires'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_ACTIVATERESPONSE.fields_by_name['info'].message_type = enterprise_dot_enterprise__pb2._TOKENINFO +_GETACTIVATIONCODERESPONSE.fields_by_name['state'].enum_type = enterprise_dot_enterprise__pb2._STATE +_GETACTIVATIONCODERESPONSE.fields_by_name['info'].message_type = enterprise_dot_enterprise__pb2._TOKENINFO +_CLUSTERSTATUS.fields_by_name['last_heartbeat'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_CLUSTERSTATUS.fields_by_name['created_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP +_LISTCLUSTERSRESPONSE.fields_by_name['clusters'].message_type = _CLUSTERSTATUS +_HEARTBEATRESPONSE.fields_by_name['license'].message_type = enterprise_dot_enterprise__pb2._LICENSERECORD +DESCRIPTOR.message_types_by_name['ActivateRequest'] = _ACTIVATEREQUEST +DESCRIPTOR.message_types_by_name['ActivateResponse'] = _ACTIVATERESPONSE +DESCRIPTOR.message_types_by_name['GetActivationCodeRequest'] = _GETACTIVATIONCODEREQUEST +DESCRIPTOR.message_types_by_name['GetActivationCodeResponse'] = _GETACTIVATIONCODERESPONSE +DESCRIPTOR.message_types_by_name['DeactivateRequest'] = _DEACTIVATEREQUEST +DESCRIPTOR.message_types_by_name['DeactivateResponse'] = _DEACTIVATERESPONSE +DESCRIPTOR.message_types_by_name['AddClusterRequest'] = _ADDCLUSTERREQUEST +DESCRIPTOR.message_types_by_name['AddClusterResponse'] = _ADDCLUSTERRESPONSE +DESCRIPTOR.message_types_by_name['DeleteClusterRequest'] = _DELETECLUSTERREQUEST +DESCRIPTOR.message_types_by_name['DeleteClusterResponse'] = _DELETECLUSTERRESPONSE +DESCRIPTOR.message_types_by_name['ClusterStatus'] = _CLUSTERSTATUS +DESCRIPTOR.message_types_by_name['UpdateClusterRequest'] = _UPDATECLUSTERREQUEST +DESCRIPTOR.message_types_by_name['UpdateClusterResponse'] = _UPDATECLUSTERRESPONSE +DESCRIPTOR.message_types_by_name['ListClustersRequest'] = _LISTCLUSTERSREQUEST +DESCRIPTOR.message_types_by_name['ListClustersResponse'] = _LISTCLUSTERSRESPONSE +DESCRIPTOR.message_types_by_name['DeleteAllRequest'] = _DELETEALLREQUEST +DESCRIPTOR.message_types_by_name['DeleteAllResponse'] = _DELETEALLRESPONSE +DESCRIPTOR.message_types_by_name['HeartbeatRequest'] = _HEARTBEATREQUEST +DESCRIPTOR.message_types_by_name['HeartbeatResponse'] = _HEARTBEATRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ActivateRequest = _reflection.GeneratedProtocolMessageType('ActivateRequest', (_message.Message,), { + 'DESCRIPTOR' : _ACTIVATEREQUEST, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.ActivateRequest) + }) +_sym_db.RegisterMessage(ActivateRequest) + +ActivateResponse = _reflection.GeneratedProtocolMessageType('ActivateResponse', (_message.Message,), { + 'DESCRIPTOR' : _ACTIVATERESPONSE, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.ActivateResponse) + }) +_sym_db.RegisterMessage(ActivateResponse) + +GetActivationCodeRequest = _reflection.GeneratedProtocolMessageType('GetActivationCodeRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETACTIVATIONCODEREQUEST, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.GetActivationCodeRequest) + }) +_sym_db.RegisterMessage(GetActivationCodeRequest) + +GetActivationCodeResponse = _reflection.GeneratedProtocolMessageType('GetActivationCodeResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETACTIVATIONCODERESPONSE, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.GetActivationCodeResponse) + }) +_sym_db.RegisterMessage(GetActivationCodeResponse) + +DeactivateRequest = _reflection.GeneratedProtocolMessageType('DeactivateRequest', (_message.Message,), { + 'DESCRIPTOR' : _DEACTIVATEREQUEST, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.DeactivateRequest) + }) +_sym_db.RegisterMessage(DeactivateRequest) + +DeactivateResponse = _reflection.GeneratedProtocolMessageType('DeactivateResponse', (_message.Message,), { + 'DESCRIPTOR' : _DEACTIVATERESPONSE, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.DeactivateResponse) + }) +_sym_db.RegisterMessage(DeactivateResponse) + +AddClusterRequest = _reflection.GeneratedProtocolMessageType('AddClusterRequest', (_message.Message,), { + 'DESCRIPTOR' : _ADDCLUSTERREQUEST, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.AddClusterRequest) + }) +_sym_db.RegisterMessage(AddClusterRequest) + +AddClusterResponse = _reflection.GeneratedProtocolMessageType('AddClusterResponse', (_message.Message,), { + 'DESCRIPTOR' : _ADDCLUSTERRESPONSE, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.AddClusterResponse) + }) +_sym_db.RegisterMessage(AddClusterResponse) + +DeleteClusterRequest = _reflection.GeneratedProtocolMessageType('DeleteClusterRequest', (_message.Message,), { + 'DESCRIPTOR' : _DELETECLUSTERREQUEST, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.DeleteClusterRequest) + }) +_sym_db.RegisterMessage(DeleteClusterRequest) + +DeleteClusterResponse = _reflection.GeneratedProtocolMessageType('DeleteClusterResponse', (_message.Message,), { + 'DESCRIPTOR' : _DELETECLUSTERRESPONSE, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.DeleteClusterResponse) + }) +_sym_db.RegisterMessage(DeleteClusterResponse) + +ClusterStatus = _reflection.GeneratedProtocolMessageType('ClusterStatus', (_message.Message,), { + 'DESCRIPTOR' : _CLUSTERSTATUS, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.ClusterStatus) + }) +_sym_db.RegisterMessage(ClusterStatus) + +UpdateClusterRequest = _reflection.GeneratedProtocolMessageType('UpdateClusterRequest', (_message.Message,), { + 'DESCRIPTOR' : _UPDATECLUSTERREQUEST, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.UpdateClusterRequest) + }) +_sym_db.RegisterMessage(UpdateClusterRequest) + +UpdateClusterResponse = _reflection.GeneratedProtocolMessageType('UpdateClusterResponse', (_message.Message,), { + 'DESCRIPTOR' : _UPDATECLUSTERRESPONSE, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.UpdateClusterResponse) + }) +_sym_db.RegisterMessage(UpdateClusterResponse) + +ListClustersRequest = _reflection.GeneratedProtocolMessageType('ListClustersRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTCLUSTERSREQUEST, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.ListClustersRequest) + }) +_sym_db.RegisterMessage(ListClustersRequest) + +ListClustersResponse = _reflection.GeneratedProtocolMessageType('ListClustersResponse', (_message.Message,), { + 'DESCRIPTOR' : _LISTCLUSTERSRESPONSE, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.ListClustersResponse) + }) +_sym_db.RegisterMessage(ListClustersResponse) + +DeleteAllRequest = _reflection.GeneratedProtocolMessageType('DeleteAllRequest', (_message.Message,), { + 'DESCRIPTOR' : _DELETEALLREQUEST, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.DeleteAllRequest) + }) +_sym_db.RegisterMessage(DeleteAllRequest) + +DeleteAllResponse = _reflection.GeneratedProtocolMessageType('DeleteAllResponse', (_message.Message,), { + 'DESCRIPTOR' : _DELETEALLRESPONSE, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.DeleteAllResponse) + }) +_sym_db.RegisterMessage(DeleteAllResponse) + +HeartbeatRequest = _reflection.GeneratedProtocolMessageType('HeartbeatRequest', (_message.Message,), { + 'DESCRIPTOR' : _HEARTBEATREQUEST, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.HeartbeatRequest) + }) +_sym_db.RegisterMessage(HeartbeatRequest) + +HeartbeatResponse = _reflection.GeneratedProtocolMessageType('HeartbeatResponse', (_message.Message,), { + 'DESCRIPTOR' : _HEARTBEATRESPONSE, + '__module__' : 'license.license_pb2' + # @@protoc_insertion_point(class_scope:license.HeartbeatResponse) + }) +_sym_db.RegisterMessage(HeartbeatResponse) + + +DESCRIPTOR._options = None + +_API = _descriptor.ServiceDescriptor( + name='API', + full_name='license.API', + file=DESCRIPTOR, + index=0, + serialized_options=None, + serialized_start=1150, + serialized_end=1772, + methods=[ + _descriptor.MethodDescriptor( + name='Activate', + full_name='license.API.Activate', + index=0, + containing_service=None, + input_type=_ACTIVATEREQUEST, + output_type=_ACTIVATERESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetActivationCode', + full_name='license.API.GetActivationCode', + index=1, + containing_service=None, + input_type=_GETACTIVATIONCODEREQUEST, + output_type=_GETACTIVATIONCODERESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='DeleteAll', + full_name='license.API.DeleteAll', + index=2, + containing_service=None, + input_type=_DELETEALLREQUEST, + output_type=_DELETEALLRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='AddCluster', + full_name='license.API.AddCluster', + index=3, + containing_service=None, + input_type=_ADDCLUSTERREQUEST, + output_type=_ADDCLUSTERRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='DeleteCluster', + full_name='license.API.DeleteCluster', + index=4, + containing_service=None, + input_type=_DELETECLUSTERREQUEST, + output_type=_DELETECLUSTERRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='ListClusters', + full_name='license.API.ListClusters', + index=5, + containing_service=None, + input_type=_LISTCLUSTERSREQUEST, + output_type=_LISTCLUSTERSRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='UpdateCluster', + full_name='license.API.UpdateCluster', + index=6, + containing_service=None, + input_type=_UPDATECLUSTERREQUEST, + output_type=_UPDATECLUSTERRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='Heartbeat', + full_name='license.API.Heartbeat', + index=7, + containing_service=None, + input_type=_HEARTBEATREQUEST, + output_type=_HEARTBEATRESPONSE, + serialized_options=None, + ), +]) +_sym_db.RegisterServiceDescriptor(_API) + +DESCRIPTOR.services_by_name['API'] = _API + +# @@protoc_insertion_point(module_scope) diff --git a/src/python_pachyderm/proto/license/license_pb2_grpc.py b/src/python_pachyderm/proto/license/license_pb2_grpc.py new file mode 100644 index 00000000..a20a6935 --- /dev/null +++ b/src/python_pachyderm/proto/license/license_pb2_grpc.py @@ -0,0 +1,167 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +from license import license_pb2 as license_dot_license__pb2 + + +class APIStub(object): + # missing associated documentation comment in .proto file + pass + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.Activate = channel.unary_unary( + '/license.API/Activate', + request_serializer=license_dot_license__pb2.ActivateRequest.SerializeToString, + response_deserializer=license_dot_license__pb2.ActivateResponse.FromString, + ) + self.GetActivationCode = channel.unary_unary( + '/license.API/GetActivationCode', + request_serializer=license_dot_license__pb2.GetActivationCodeRequest.SerializeToString, + response_deserializer=license_dot_license__pb2.GetActivationCodeResponse.FromString, + ) + self.DeleteAll = channel.unary_unary( + '/license.API/DeleteAll', + request_serializer=license_dot_license__pb2.DeleteAllRequest.SerializeToString, + response_deserializer=license_dot_license__pb2.DeleteAllResponse.FromString, + ) + self.AddCluster = channel.unary_unary( + '/license.API/AddCluster', + request_serializer=license_dot_license__pb2.AddClusterRequest.SerializeToString, + response_deserializer=license_dot_license__pb2.AddClusterResponse.FromString, + ) + self.DeleteCluster = channel.unary_unary( + '/license.API/DeleteCluster', + request_serializer=license_dot_license__pb2.DeleteClusterRequest.SerializeToString, + response_deserializer=license_dot_license__pb2.DeleteClusterResponse.FromString, + ) + self.ListClusters = channel.unary_unary( + '/license.API/ListClusters', + request_serializer=license_dot_license__pb2.ListClustersRequest.SerializeToString, + response_deserializer=license_dot_license__pb2.ListClustersResponse.FromString, + ) + self.UpdateCluster = channel.unary_unary( + '/license.API/UpdateCluster', + request_serializer=license_dot_license__pb2.UpdateClusterRequest.SerializeToString, + response_deserializer=license_dot_license__pb2.UpdateClusterResponse.FromString, + ) + self.Heartbeat = channel.unary_unary( + '/license.API/Heartbeat', + request_serializer=license_dot_license__pb2.HeartbeatRequest.SerializeToString, + response_deserializer=license_dot_license__pb2.HeartbeatResponse.FromString, + ) + + +class APIServicer(object): + # missing associated documentation comment in .proto file + pass + + def Activate(self, request, context): + """Activate enables the license service by setting the enterprise activation + code to serve. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetActivationCode(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteAll(self, request, context): + """DeleteAll deactivates the server and removes all data. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AddCluster(self, request, context): + """CRUD operations for the pachds registered with this server. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeleteCluster(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListClusters(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UpdateCluster(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Heartbeat(self, request, context): + """Heartbeat is the RPC registered pachds make to the license server + to communicate their status and fetch updates. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_APIServicer_to_server(servicer, server): + rpc_method_handlers = { + 'Activate': grpc.unary_unary_rpc_method_handler( + servicer.Activate, + request_deserializer=license_dot_license__pb2.ActivateRequest.FromString, + response_serializer=license_dot_license__pb2.ActivateResponse.SerializeToString, + ), + 'GetActivationCode': grpc.unary_unary_rpc_method_handler( + servicer.GetActivationCode, + request_deserializer=license_dot_license__pb2.GetActivationCodeRequest.FromString, + response_serializer=license_dot_license__pb2.GetActivationCodeResponse.SerializeToString, + ), + 'DeleteAll': grpc.unary_unary_rpc_method_handler( + servicer.DeleteAll, + request_deserializer=license_dot_license__pb2.DeleteAllRequest.FromString, + response_serializer=license_dot_license__pb2.DeleteAllResponse.SerializeToString, + ), + 'AddCluster': grpc.unary_unary_rpc_method_handler( + servicer.AddCluster, + request_deserializer=license_dot_license__pb2.AddClusterRequest.FromString, + response_serializer=license_dot_license__pb2.AddClusterResponse.SerializeToString, + ), + 'DeleteCluster': grpc.unary_unary_rpc_method_handler( + servicer.DeleteCluster, + request_deserializer=license_dot_license__pb2.DeleteClusterRequest.FromString, + response_serializer=license_dot_license__pb2.DeleteClusterResponse.SerializeToString, + ), + 'ListClusters': grpc.unary_unary_rpc_method_handler( + servicer.ListClusters, + request_deserializer=license_dot_license__pb2.ListClustersRequest.FromString, + response_serializer=license_dot_license__pb2.ListClustersResponse.SerializeToString, + ), + 'UpdateCluster': grpc.unary_unary_rpc_method_handler( + servicer.UpdateCluster, + request_deserializer=license_dot_license__pb2.UpdateClusterRequest.FromString, + response_serializer=license_dot_license__pb2.UpdateClusterResponse.SerializeToString, + ), + 'Heartbeat': grpc.unary_unary_rpc_method_handler( + servicer.Heartbeat, + request_deserializer=license_dot_license__pb2.HeartbeatRequest.FromString, + response_serializer=license_dot_license__pb2.HeartbeatResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'license.API', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/src/python_pachyderm/proto/pfs/pfs_pb2.py b/src/python_pachyderm/proto/pfs/pfs_pb2.py index 1754a7dc..2b67a18a 100644 --- a/src/python_pachyderm/proto/pfs/pfs_pb2.py +++ b/src/python_pachyderm/proto/pfs/pfs_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: client/pfs/pfs.proto +# source: pfs/pfs.proto from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor @@ -15,17 +15,17 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -from python_pachyderm.proto.auth import auth_pb2 as client_dot_auth_dot_auth__pb2 +from auth import auth_pb2 as auth_dot_auth__pb2 DESCRIPTOR = _descriptor.FileDescriptor( - name='client/pfs/pfs.proto', + name='pfs/pfs.proto', package='pfs', syntax='proto3', - serialized_options=b'Z-github.com/pachyderm/pachyderm/src/client/pfs', - serialized_pb=b'\n\x14\x63lient/pfs/pfs.proto\x12\x03pfs\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x16\x63lient/auth/auth.proto\"\x14\n\x04Repo\x12\x0c\n\x04name\x18\x01 \x01(\t\"/\n\x06\x42ranch\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0c\n\x04name\x18\x02 \x01(\t\"1\n\x04\x46ile\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x15\n\x05\x42lock\x12\x0c\n\x04hash\x18\x01 \x01(\t\"\x16\n\x06Object\x12\x0c\n\x04hash\x18\x01 \x01(\t\"\x13\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xd7\x01\n\x08RepoInfo\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12+\n\x07\x63reated\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x1d\n\x08\x62ranches\x18\x07 \x03(\x0b\x32\x0b.pfs.Branch\x12$\n\tauth_info\x18\x06 \x01(\x0b\x32\x11.pfs.RepoAuthInfo\x12\x11\n\ttombstone\x18\x08 \x01(\x08J\x04\x08\x04\x10\x05\"1\n\x0cRepoAuthInfo\x12!\n\x0c\x61\x63\x63\x65ss_level\x18\x01 \x01(\x0e\x32\x0b.auth.Scope\"\xdb\x01\n\nBranchInfo\x12\x1b\n\x06\x62ranch\x18\x04 \x01(\x0b\x32\x0b.pfs.Branch\x12\x19\n\x04head\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\nprovenance\x18\x03 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1f\n\nsubvenance\x18\x05 \x03(\x0b\x32\x0b.pfs.Branch\x12&\n\x11\x64irect_provenance\x18\x06 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1d\n\x07trigger\x18\x07 \x01(\x0b\x32\x0c.pfs.Trigger\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n\x0b\x42ranchInfos\x12$\n\x0b\x62ranch_info\x18\x01 \x03(\x0b\x32\x0f.pfs.BranchInfo\"X\n\x07Trigger\x12\x0e\n\x06\x62ranch\x18\x01 \x01(\t\x12\x0b\n\x03\x61ll\x18\x02 \x01(\x08\x12\x11\n\tcron_spec\x18\x03 \x01(\t\x12\x0c\n\x04size\x18\x04 \x01(\t\x12\x0f\n\x07\x63ommits\x18\x05 \x01(\x03\"-\n\x0c\x43ommitOrigin\x12\x1d\n\x04kind\x18\x01 \x01(\x0e\x32\x0f.pfs.OriginKind\"-\n\x06\x43ommit\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\n\n\x02id\x18\x02 \x01(\t\"E\n\x0b\x43ommitRange\x12\x1a\n\x05lower\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1a\n\x05upper\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\"L\n\x10\x43ommitProvenance\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x06\x62ranch\x18\x02 \x01(\x0b\x32\x0b.pfs.Branch\"\xe7\x04\n\nCommitInfo\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x06\x62ranch\x18\x0f \x01(\x0b\x32\x0b.pfs.Branch\x12!\n\x06origin\x18\x11 \x01(\x0b\x32\x11.pfs.CommitOrigin\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\x12\"\n\rparent_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\"\n\rchild_commits\x18\x0b \x03(\x0b\x32\x0b.pfs.Commit\x12+\n\x07started\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nsize_bytes\x18\x05 \x01(\x04\x12)\n\nprovenance\x18\x10 \x03(\x0b\x32\x15.pfs.CommitProvenance\x12\x18\n\x10ready_provenance\x18\x0c \x01(\x03\x12$\n\nsubvenance\x18\t \x03(\x0b\x32\x10.pfs.CommitRange\x12\x19\n\x04tree\x18\x07 \x01(\x0b\x32\x0b.pfs.Object\x12\x1a\n\x05trees\x18\r \x03(\x0b\x32\x0b.pfs.Object\x12\x1b\n\x06\x64\x61tums\x18\x0e \x01(\x0b\x32\x0b.pfs.Object\x12!\n\x19subvenant_commits_success\x18\x12 \x01(\x03\x12!\n\x19subvenant_commits_failure\x18\x13 \x01(\x03\x12\x1f\n\x17subvenant_commits_total\x18\x14 \x01(\x03J\x04\x08\x06\x10\x07J\x04\x08\n\x10\x0b\"\xe8\x01\n\x08\x46ileInfo\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12 \n\tfile_type\x18\x02 \x01(\x0e\x32\r.pfs.FileType\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12-\n\tcommitted\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x63hildren\x18\x06 \x03(\t\x12\x1c\n\x07objects\x18\x08 \x03(\x0b\x32\x0b.pfs.Object\x12 \n\tblockRefs\x18\t \x03(\x0b\x32\r.pfs.BlockRef\x12\x0c\n\x04hash\x18\x07 \x01(\x0c\")\n\tByteRange\x12\r\n\x05lower\x18\x01 \x01(\x04\x12\r\n\x05upper\x18\x02 \x01(\x04\"D\n\x08\x42lockRef\x12\x19\n\x05\x62lock\x18\x01 \x01(\x0b\x32\n.pfs.Block\x12\x1d\n\x05range\x18\x02 \x01(\x0b\x32\x0e.pfs.ByteRange\"K\n\nObjectInfo\x12\x1b\n\x06object\x18\x01 \x01(\x0b\x32\x0b.pfs.Object\x12 \n\tblock_ref\x18\x02 \x01(\x0b\x32\r.pfs.BlockRef\"$\n\nCompaction\x12\x16\n\x0einput_prefixes\x18\x02 \x03(\t\"`\n\x05Shard\x12#\n\ncompaction\x18\x01 \x01(\x0b\x32\x0f.pfs.Compaction\x12\x1d\n\x05range\x18\x02 \x01(\x0b\x32\x0e.pfs.PathRange\x12\x13\n\x0boutput_path\x18\x03 \x01(\t\")\n\tPathRange\x12\r\n\x05lower\x18\x01 \x01(\t\x12\r\n\x05upper\x18\x02 \x01(\t\"W\n\x11\x43reateRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06update\x18\x04 \x01(\x08J\x04\x08\x02\x10\x03\"-\n\x12InspectRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\"\x17\n\x0fListRepoRequestJ\x04\x08\x01\x10\x02\"4\n\x10ListRepoResponse\x12 \n\trepo_info\x18\x01 \x03(\x0b\x32\r.pfs.RepoInfo\"c\n\x11\x44\x65leteRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x12\x0b\n\x03\x61ll\x18\x03 \x01(\x08\x12\x19\n\x11split_transaction\x18\x04 \x01(\x08\"\x87\x01\n\x12StartCommitRequest\x12\x1b\n\x06parent\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12)\n\nprovenance\x18\x05 \x03(\x0b\x32\x15.pfs.CommitProvenanceJ\x04\x08\x02\x10\x03\"\xe4\x02\n\x12\x42uildCommitRequest\x12\x1b\n\x06parent\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0e\n\x06\x62ranch\x18\x04 \x01(\t\x12!\n\x06origin\x18\x0c \x01(\x0b\x32\x11.pfs.CommitOrigin\x12)\n\nprovenance\x18\x06 \x03(\x0b\x32\x15.pfs.CommitProvenance\x12\x19\n\x04tree\x18\x03 \x01(\x0b\x32\x0b.pfs.Object\x12\x1a\n\x05trees\x18\x07 \x03(\x0b\x32\x0b.pfs.Object\x12\x1b\n\x06\x64\x61tums\x18\x08 \x01(\x0b\x32\x0b.pfs.Object\x12\n\n\x02ID\x18\x05 \x01(\t\x12\x12\n\nsize_bytes\x18\t \x01(\x04\x12+\n\x07started\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampJ\x04\x08\x02\x10\x03\"\xbe\x01\n\x13\x46inishCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x19\n\x04tree\x18\x03 \x01(\x0b\x32\x0b.pfs.Object\x12\x1a\n\x05trees\x18\x05 \x03(\x0b\x32\x0b.pfs.Object\x12\x1b\n\x06\x64\x61tums\x18\x07 \x01(\x0b\x32\x0b.pfs.Object\x12\x12\n\nsize_bytes\x18\x06 \x01(\x04\x12\r\n\x05\x65mpty\x18\x04 \x01(\x08\"Z\n\x14InspectCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12%\n\x0b\x62lock_state\x18\x02 \x01(\x0e\x32\x10.pfs.CommitState\"\x81\x01\n\x11ListCommitRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x19\n\x04\x66rom\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x17\n\x02to\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0e\n\x06number\x18\x04 \x01(\x04\x12\x0f\n\x07reverse\x18\x05 \x01(\x08\"3\n\x0b\x43ommitInfos\x12$\n\x0b\x63ommit_info\x18\x01 \x03(\x0b\x32\x0f.pfs.CommitInfo\"\x9f\x01\n\x13\x43reateBranchRequest\x12\x19\n\x04head\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x10\n\x08s_branch\x18\x02 \x01(\t\x12\x1b\n\x06\x62ranch\x18\x03 \x01(\x0b\x32\x0b.pfs.Branch\x12\x1f\n\nprovenance\x18\x04 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1d\n\x07trigger\x18\x05 \x01(\x0b\x32\x0c.pfs.Trigger\"3\n\x14InspectBranchRequest\x12\x1b\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0b.pfs.Branch\"=\n\x11ListBranchRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0f\n\x07reverse\x18\x02 \x01(\x08\"A\n\x13\x44\x65leteBranchRequest\x12\x1b\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0b.pfs.Branch\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"2\n\x13\x44\x65leteCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"O\n\x12\x46lushCommitRequest\x12\x1c\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x08to_repos\x18\x02 \x03(\x0b\x32\t.pfs.Repo\"\xa2\x01\n\x16SubscribeCommitRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0e\n\x06\x62ranch\x18\x02 \x01(\t\x12#\n\x04prov\x18\x05 \x01(\x0b\x32\x15.pfs.CommitProvenance\x12\x19\n\x04\x66rom\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\x05state\x18\x04 \x01(\x0e\x32\x10.pfs.CommitState\"S\n\x0eGetFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x14\n\x0coffset_bytes\x18\x02 \x01(\x03\x12\x12\n\nsize_bytes\x18\x03 \x01(\x03\"\x1f\n\x0eOverwriteIndex\x12\r\n\x05index\x18\x01 \x01(\x03\"\x94\x02\n\x0ePutFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\r\n\x05value\x18\x03 \x01(\x0c\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12!\n\tdelimiter\x18\x07 \x01(\x0e\x32\x0e.pfs.Delimiter\x12\x1a\n\x12target_file_datums\x18\x08 \x01(\x03\x12\x19\n\x11target_file_bytes\x18\t \x01(\x03\x12\x16\n\x0eheader_records\x18\x0b \x01(\x03\x12,\n\x0foverwrite_index\x18\n \x01(\x0b\x32\x13.pfs.OverwriteIndex\x12\x0e\n\x06\x64\x65lete\x18\x0c \x01(\x08J\x04\x08\x02\x10\x03J\x04\x08\x04\x10\x05\"\x88\x01\n\rPutFileRecord\x12\x12\n\nsize_bytes\x18\x01 \x01(\x03\x12\x13\n\x0bobject_hash\x18\x02 \x01(\t\x12,\n\x0foverwrite_index\x18\x03 \x01(\x0b\x32\x13.pfs.OverwriteIndex\x12 \n\tblock_ref\x18\x04 \x01(\x0b\x32\r.pfs.BlockRef\"\x9f\x01\n\x0ePutFileRecords\x12\r\n\x05split\x18\x01 \x01(\x08\x12#\n\x07records\x18\x02 \x03(\x0b\x32\x12.pfs.PutFileRecord\x12\x11\n\ttombstone\x18\x03 \x01(\x08\x12\"\n\x06header\x18\x04 \x01(\x0b\x32\x12.pfs.PutFileRecord\x12\"\n\x06\x66ooter\x18\x05 \x01(\x0b\x32\x12.pfs.PutFileRecord\"T\n\x0f\x43opyFileRequest\x12\x16\n\x03src\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x16\n\x03\x64st\x18\x02 \x01(\x0b\x32\t.pfs.File\x12\x11\n\toverwrite\x18\x03 \x01(\x08\"-\n\x12InspectFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"I\n\x0fListFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x0c\n\x04\x66ull\x18\x02 \x01(\x08\x12\x0f\n\x07history\x18\x03 \x01(\x03\"*\n\x0fWalkFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"?\n\x0fGlobFileRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07pattern\x18\x02 \x01(\t\"-\n\tFileInfos\x12 \n\tfile_info\x18\x01 \x03(\x0b\x32\r.pfs.FileInfo\"\\\n\x0f\x44iffFileRequest\x12\x1b\n\x08new_file\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x1b\n\x08old_file\x18\x02 \x01(\x0b\x32\t.pfs.File\x12\x0f\n\x07shallow\x18\x03 \x01(\x08\"V\n\x10\x44iffFileResponse\x12 \n\tnew_files\x18\x01 \x03(\x0b\x32\r.pfs.FileInfo\x12 \n\told_files\x18\x02 \x03(\x0b\x32\r.pfs.FileInfo\",\n\x11\x44\x65leteFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"\x1a\n\x0b\x46sckRequest\x12\x0b\n\x03\x66ix\x18\x01 \x01(\x08\"*\n\x0c\x46sckResponse\x12\x0b\n\x03\x66ix\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x9e\x01\n\x16\x46ileOperationRequestV2\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\'\n\x07put_tar\x18\x02 \x01(\x0b\x32\x14.pfs.PutTarRequestV2H\x00\x12\x31\n\x0c\x64\x65lete_files\x18\x03 \x01(\x0b\x32\x19.pfs.DeleteFilesRequestV2H\x00\x42\x0b\n\toperation\"?\n\x0fPutTarRequestV2\x12\x11\n\toverwrite\x18\x01 \x01(\x08\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"2\n\x14\x44\x65leteFilesRequestV2\x12\r\n\x05\x66iles\x18\x01 \x03(\t\x12\x0b\n\x03tag\x18\x02 \x01(\t\"*\n\x0fGetTarRequestV2\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"V\n\x12\x44iffFileResponseV2\x12\x1f\n\x08old_file\x18\x01 \x01(\x0b\x32\r.pfs.FileInfo\x12\x1f\n\x08new_file\x18\x02 \x01(\x0b\x32\r.pfs.FileInfo\".\n\x18\x43reateTmpFileSetResponse\x12\x12\n\nfileset_id\x18\x01 \x01(\t\"A\n\x16RenewTmpFileSetRequest\x12\x12\n\nfileset_id\x18\x01 \x01(\t\x12\x13\n\x0bttl_seconds\x18\x02 \x01(\x03\"3\n\x14\x43learCommitRequestV2\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"T\n\x10PutObjectRequest\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x16\n\x04tags\x18\x02 \x03(\x0b\x32\x08.pfs.Tag\x12\x19\n\x05\x62lock\x18\x03 \x01(\x0b\x32\n.pfs.Block\"T\n\x13\x43reateObjectRequest\x12\x1b\n\x06object\x18\x01 \x01(\x0b\x32\x0b.pfs.Object\x12 \n\tblock_ref\x18\x02 \x01(\x0b\x32\r.pfs.BlockRef\"o\n\x11GetObjectsRequest\x12\x1c\n\x07objects\x18\x01 \x03(\x0b\x32\x0b.pfs.Object\x12\x14\n\x0coffset_bytes\x18\x02 \x01(\x04\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x12\n\ntotal_size\x18\x04 \x01(\x04\";\n\x0fPutBlockRequest\x12\x19\n\x05\x62lock\x18\x01 \x01(\x0b\x32\n.pfs.Block\x12\r\n\x05value\x18\x02 \x01(\x0c\",\n\x0fGetBlockRequest\x12\x19\n\x05\x62lock\x18\x01 \x01(\x0b\x32\n.pfs.Block\"r\n\x10GetBlocksRequest\x12 \n\tblockRefs\x18\x01 \x03(\x0b\x32\r.pfs.BlockRef\x12\x14\n\x0coffset_bytes\x18\x02 \x01(\x04\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x12\n\ntotal_size\x18\x04 \x01(\x04\"\x12\n\x10ListBlockRequest\"G\n\x10TagObjectRequest\x12\x1b\n\x06object\x18\x01 \x01(\x0b\x32\x0b.pfs.Object\x12\x16\n\x04tags\x18\x02 \x03(\x0b\x32\x08.pfs.Tag\"\x14\n\x12ListObjectsRequest\"9\n\x0fListTagsRequest\x12\x0e\n\x06prefix\x18\x01 \x01(\t\x12\x16\n\x0einclude_object\x18\x02 \x01(\x08\"F\n\x10ListTagsResponse\x12\x15\n\x03tag\x18\x01 \x01(\x0b\x32\x08.pfs.Tag\x12\x1b\n\x06object\x18\x02 \x01(\x0b\x32\x0b.pfs.Object\"4\n\x14\x44\x65leteObjectsRequest\x12\x1c\n\x07objects\x18\x01 \x03(\x0b\x32\x0b.pfs.Object\"\x17\n\x15\x44\x65leteObjectsResponse\"+\n\x11\x44\x65leteTagsRequest\x12\x16\n\x04tags\x18\x01 \x03(\x0b\x32\x08.pfs.Tag\"\x14\n\x12\x44\x65leteTagsResponse\"1\n\x12\x43heckObjectRequest\x12\x1b\n\x06object\x18\x01 \x01(\x0b\x32\x0b.pfs.Object\"%\n\x13\x43heckObjectResponse\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\"\'\n\x07Objects\x12\x1c\n\x07objects\x18\x01 \x03(\x0b\x32\x0b.pfs.Object\"1\n\x13PutObjDirectRequest\x12\x0b\n\x03obj\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\"\"\n\x13GetObjDirectRequest\x12\x0b\n\x03obj\x18\x01 \x01(\t\"8\n\x16\x44\x65leteObjDirectRequest\x12\x0e\n\x06object\x18\x01 \x01(\t\x12\x0e\n\x06prefix\x18\x02 \x01(\t\"\xe0\x01\n\x0bObjectIndex\x12.\n\x07objects\x18\x01 \x03(\x0b\x32\x1d.pfs.ObjectIndex.ObjectsEntry\x12(\n\x04tags\x18\x02 \x03(\x0b\x32\x1a.pfs.ObjectIndex.TagsEntry\x1a=\n\x0cObjectsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1c\n\x05value\x18\x02 \x01(\x0b\x32\r.pfs.BlockRef:\x02\x38\x01\x1a\x38\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1a\n\x05value\x18\x02 \x01(\x0b\x32\x0b.pfs.Object:\x02\x38\x01**\n\nOriginKind\x12\x08\n\x04USER\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\x12\x08\n\x04\x46SCK\x10\x02*+\n\x08\x46ileType\x12\x0c\n\x08RESERVED\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\x12\x07\n\x03\x44IR\x10\x02*3\n\x0b\x43ommitState\x12\x0b\n\x07STARTED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x46INISHED\x10\x02*;\n\tDelimiter\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04JSON\x10\x01\x12\x08\n\x04LINE\x10\x02\x12\x07\n\x03SQL\x10\x03\x12\x07\n\x03\x43SV\x10\x04\x32\xd0\x11\n\x03\x41PI\x12>\n\nCreateRepo\x12\x16.pfs.CreateRepoRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x37\n\x0bInspectRepo\x12\x17.pfs.InspectRepoRequest\x1a\r.pfs.RepoInfo\"\x00\x12\x39\n\x08ListRepo\x12\x14.pfs.ListRepoRequest\x1a\x15.pfs.ListRepoResponse\"\x00\x12>\n\nDeleteRepo\x12\x16.pfs.DeleteRepoRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x35\n\x0bStartCommit\x12\x17.pfs.StartCommitRequest\x1a\x0b.pfs.Commit\"\x00\x12\x42\n\x0c\x46inishCommit\x12\x18.pfs.FinishCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12=\n\rInspectCommit\x12\x19.pfs.InspectCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x12\x38\n\nListCommit\x12\x16.pfs.ListCommitRequest\x1a\x10.pfs.CommitInfos\"\x00\x12?\n\x10ListCommitStream\x12\x16.pfs.ListCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12\x42\n\x0c\x44\x65leteCommit\x12\x18.pfs.DeleteCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12;\n\x0b\x46lushCommit\x12\x17.pfs.FlushCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12\x43\n\x0fSubscribeCommit\x12\x1b.pfs.SubscribeCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12\x35\n\x0b\x42uildCommit\x12\x17.pfs.BuildCommitRequest\x1a\x0b.pfs.Commit\"\x00\x12\x42\n\x0c\x43reateBranch\x12\x18.pfs.CreateBranchRequest\x1a\x16.google.protobuf.Empty\"\x00\x12=\n\rInspectBranch\x12\x19.pfs.InspectBranchRequest\x1a\x0f.pfs.BranchInfo\"\x00\x12\x38\n\nListBranch\x12\x16.pfs.ListBranchRequest\x1a\x10.pfs.BranchInfos\"\x00\x12\x42\n\x0c\x44\x65leteBranch\x12\x18.pfs.DeleteBranchRequest\x1a\x16.google.protobuf.Empty\"\x00\x12:\n\x07PutFile\x12\x13.pfs.PutFileRequest\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12:\n\x08\x43opyFile\x12\x14.pfs.CopyFileRequest\x1a\x16.google.protobuf.Empty\"\x00\x12?\n\x07GetFile\x12\x13.pfs.GetFileRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12\x37\n\x0bInspectFile\x12\x17.pfs.InspectFileRequest\x1a\r.pfs.FileInfo\"\x00\x12\x32\n\x08ListFile\x12\x14.pfs.ListFileRequest\x1a\x0e.pfs.FileInfos\"\x00\x12\x39\n\x0eListFileStream\x12\x14.pfs.ListFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12\x33\n\x08WalkFile\x12\x14.pfs.WalkFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12\x32\n\x08GlobFile\x12\x14.pfs.GlobFileRequest\x1a\x0e.pfs.FileInfos\"\x00\x12\x39\n\x0eGlobFileStream\x12\x14.pfs.GlobFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12\x39\n\x08\x44iffFile\x12\x14.pfs.DiffFileRequest\x1a\x15.pfs.DiffFileResponse\"\x00\x12>\n\nDeleteFile\x12\x16.pfs.DeleteFileRequest\x1a\x16.google.protobuf.Empty\"\x00\x12=\n\tDeleteAll\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12/\n\x04\x46sck\x12\x10.pfs.FsckRequest\x1a\x11.pfs.FsckResponse\"\x00\x30\x01\x12J\n\x0f\x46ileOperationV2\x12\x1b.pfs.FileOperationRequestV2\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12\x41\n\x08GetTarV2\x12\x14.pfs.GetTarRequestV2\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12?\n\nDiffFileV2\x12\x14.pfs.DiffFileRequest\x1a\x17.pfs.DiffFileResponseV2\"\x00\x30\x01\x12R\n\x10\x43reateTmpFileSet\x12\x1b.pfs.FileOperationRequestV2\x1a\x1d.pfs.CreateTmpFileSetResponse\"\x00(\x01\x12H\n\x0fRenewTmpFileSet\x12\x1b.pfs.RenewTmpFileSetRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x44\n\rClearCommitV2\x12\x19.pfs.ClearCommitRequestV2\x1a\x16.google.protobuf.Empty\"\x00\x32\xac\x0b\n\tObjectAPI\x12\x33\n\tPutObject\x12\x15.pfs.PutObjectRequest\x1a\x0b.pfs.Object\"\x00(\x01\x12\x39\n\x0ePutObjectSplit\x12\x15.pfs.PutObjectRequest\x1a\x0c.pfs.Objects\"\x00(\x01\x12?\n\nPutObjects\x12\x15.pfs.PutObjectRequest\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12\x42\n\x0c\x43reateObject\x12\x18.pfs.CreateObjectRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x39\n\tGetObject\x12\x0b.pfs.Object\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12\x45\n\nGetObjects\x12\x16.pfs.GetObjectsRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12<\n\x08PutBlock\x12\x14.pfs.PutBlockRequest\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12\x41\n\x08GetBlock\x12\x14.pfs.GetBlockRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12\x43\n\tGetBlocks\x12\x15.pfs.GetBlocksRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12\x32\n\tListBlock\x12\x15.pfs.ListBlockRequest\x1a\n.pfs.Block\"\x00\x30\x01\x12<\n\tTagObject\x12\x15.pfs.TagObjectRequest\x1a\x16.google.protobuf.Empty\"\x00\x12/\n\rInspectObject\x12\x0b.pfs.Object\x1a\x0f.pfs.ObjectInfo\"\x00\x12\x42\n\x0b\x43heckObject\x12\x17.pfs.CheckObjectRequest\x1a\x18.pfs.CheckObjectResponse\"\x00\x12;\n\x0bListObjects\x12\x17.pfs.ListObjectsRequest\x1a\x0f.pfs.ObjectInfo\"\x00\x30\x01\x12H\n\rDeleteObjects\x12\x19.pfs.DeleteObjectsRequest\x1a\x1a.pfs.DeleteObjectsResponse\"\x00\x12\x33\n\x06GetTag\x12\x08.pfs.Tag\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12)\n\nInspectTag\x12\x08.pfs.Tag\x1a\x0f.pfs.ObjectInfo\"\x00\x12;\n\x08ListTags\x12\x14.pfs.ListTagsRequest\x1a\x15.pfs.ListTagsResponse\"\x00\x30\x01\x12?\n\nDeleteTags\x12\x16.pfs.DeleteTagsRequest\x1a\x17.pfs.DeleteTagsResponse\"\x00\x12;\n\x07\x43ompact\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x44\n\x0cPutObjDirect\x12\x18.pfs.PutObjDirectRequest\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12I\n\x0cGetObjDirect\x12\x18.pfs.GetObjDirectRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12H\n\x0f\x44\x65leteObjDirect\x12\x1b.pfs.DeleteObjDirectRequest\x1a\x16.google.protobuf.Empty\"\x00\x42/Z-github.com/pachyderm/pachyderm/src/client/pfsb\x06proto3' + serialized_options=b'Z)github.com/pachyderm/pachyderm/v2/src/pfs', + serialized_pb=b'\n\rpfs/pfs.proto\x12\x03pfs\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x0f\x61uth/auth.proto\"\x14\n\x04Repo\x12\x0c\n\x04name\x18\x01 \x01(\t\"/\n\x06\x42ranch\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0c\n\x04name\x18\x02 \x01(\t\"1\n\x04\x46ile\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04path\x18\x02 \x01(\t\"\xc4\x01\n\x08RepoInfo\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12+\n\x07\x63reated\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x1d\n\x08\x62ranches\x18\x07 \x03(\x0b\x32\x0b.pfs.Branch\x12$\n\tauth_info\x18\x06 \x01(\x0b\x32\x11.pfs.RepoAuthInfoJ\x04\x08\x04\x10\x05\"5\n\x0cRepoAuthInfo\x12%\n\x0bpermissions\x18\x01 \x03(\x0e\x32\x10.auth.Permission\"\xdb\x01\n\nBranchInfo\x12\x1b\n\x06\x62ranch\x18\x04 \x01(\x0b\x32\x0b.pfs.Branch\x12\x19\n\x04head\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\nprovenance\x18\x03 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1f\n\nsubvenance\x18\x05 \x03(\x0b\x32\x0b.pfs.Branch\x12&\n\x11\x64irect_provenance\x18\x06 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1d\n\x07trigger\x18\x07 \x01(\x0b\x32\x0c.pfs.Trigger\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n\x0b\x42ranchInfos\x12$\n\x0b\x62ranch_info\x18\x01 \x03(\x0b\x32\x0f.pfs.BranchInfo\"X\n\x07Trigger\x12\x0e\n\x06\x62ranch\x18\x01 \x01(\t\x12\x0b\n\x03\x61ll\x18\x02 \x01(\x08\x12\x11\n\tcron_spec\x18\x03 \x01(\t\x12\x0c\n\x04size\x18\x04 \x01(\t\x12\x0f\n\x07\x63ommits\x18\x05 \x01(\x03\"-\n\x0c\x43ommitOrigin\x12\x1d\n\x04kind\x18\x01 \x01(\x0e\x32\x0f.pfs.OriginKind\"-\n\x06\x43ommit\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\n\n\x02id\x18\x02 \x01(\t\"E\n\x0b\x43ommitRange\x12\x1a\n\x05lower\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1a\n\x05upper\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\"L\n\x10\x43ommitProvenance\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x06\x62ranch\x18\x02 \x01(\x0b\x32\x0b.pfs.Branch\"\x93\x04\n\nCommitInfo\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x06\x62ranch\x18\x0f \x01(\x0b\x32\x0b.pfs.Branch\x12!\n\x06origin\x18\x11 \x01(\x0b\x32\x11.pfs.CommitOrigin\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\x12\"\n\rparent_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\"\n\rchild_commits\x18\x0b \x03(\x0b\x32\x0b.pfs.Commit\x12+\n\x07started\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nsize_bytes\x18\x05 \x01(\x04\x12)\n\nprovenance\x18\x10 \x03(\x0b\x32\x15.pfs.CommitProvenance\x12\x18\n\x10ready_provenance\x18\x0c \x01(\x03\x12$\n\nsubvenance\x18\t \x03(\x0b\x32\x10.pfs.CommitRange\x12!\n\x19subvenant_commits_success\x18\x12 \x01(\x03\x12!\n\x19subvenant_commits_failure\x18\x13 \x01(\x03\x12\x1f\n\x17subvenant_commits_total\x18\x14 \x01(\x03J\x04\x08\x06\x10\x07J\x04\x08\n\x10\x0b\"\x96\x01\n\x08\x46ileInfo\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12 \n\tfile_type\x18\x02 \x01(\x0e\x32\r.pfs.FileType\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12-\n\tcommitted\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04hash\x18\x07 \x01(\x0c\"W\n\x11\x43reateRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06update\x18\x04 \x01(\x08J\x04\x08\x02\x10\x03\"-\n\x12InspectRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\"\x17\n\x0fListRepoRequestJ\x04\x08\x01\x10\x02\"4\n\x10ListRepoResponse\x12 \n\trepo_info\x18\x01 \x03(\x0b\x32\r.pfs.RepoInfo\"H\n\x11\x44\x65leteRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x12\x0b\n\x03\x61ll\x18\x03 \x01(\x08\"\x87\x01\n\x12StartCommitRequest\x12\x1b\n\x06parent\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12)\n\nprovenance\x18\x05 \x03(\x0b\x32\x15.pfs.CommitProvenanceJ\x04\x08\x02\x10\x03\"j\n\x13\x46inishCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\nsize_bytes\x18\x06 \x01(\x04\x12\r\n\x05\x65mpty\x18\x04 \x01(\x08\"Z\n\x14InspectCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12%\n\x0b\x62lock_state\x18\x02 \x01(\x0e\x32\x10.pfs.CommitState\"\x81\x01\n\x11ListCommitRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x19\n\x04\x66rom\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x17\n\x02to\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0e\n\x06number\x18\x04 \x01(\x04\x12\x0f\n\x07reverse\x18\x05 \x01(\x08\"3\n\x0b\x43ommitInfos\x12$\n\x0b\x63ommit_info\x18\x01 \x03(\x0b\x32\x0f.pfs.CommitInfo\"2\n\x13SquashCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"O\n\x12\x46lushCommitRequest\x12\x1c\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x08to_repos\x18\x02 \x03(\x0b\x32\t.pfs.Repo\"\xa2\x01\n\x16SubscribeCommitRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0e\n\x06\x62ranch\x18\x02 \x01(\t\x12#\n\x04prov\x18\x05 \x01(\x0b\x32\x15.pfs.CommitProvenance\x12\x19\n\x04\x66rom\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\x05state\x18\x04 \x01(\x0e\x32\x10.pfs.CommitState\"1\n\x12\x43learCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"\x9f\x01\n\x13\x43reateBranchRequest\x12\x19\n\x04head\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x10\n\x08s_branch\x18\x02 \x01(\t\x12\x1b\n\x06\x62ranch\x18\x03 \x01(\x0b\x32\x0b.pfs.Branch\x12\x1f\n\nprovenance\x18\x04 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1d\n\x07trigger\x18\x05 \x01(\x0b\x32\x0c.pfs.Trigger\"3\n\x14InspectBranchRequest\x12\x1b\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0b.pfs.Branch\"=\n\x11ListBranchRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0f\n\x07reverse\x18\x02 \x01(\x08\"A\n\x13\x44\x65leteBranchRequest\x12\x1b\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0b.pfs.Branch\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"\xc3\x01\n\nAppendFile\x12\x11\n\toverwrite\x18\x01 \x01(\x08\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12-\n\x0fraw_file_source\x18\x03 \x01(\x0b\x32\x12.pfs.RawFileSourceH\x00\x12-\n\x0ftar_file_source\x18\x04 \x01(\x0b\x32\x12.pfs.TarFileSourceH\x00\x12-\n\x0furl_file_source\x18\x05 \x01(\x0b\x32\x12.pfs.URLFileSourceH\x00\x42\x08\n\x06source\"8\n\rRawFileSource\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0b\n\x03\x45OF\x18\x03 \x01(\x08\"\x1d\n\rTarFileSource\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"=\n\rURLFileSource\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0b\n\x03URL\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x03 \x01(\x08\"\'\n\nDeleteFile\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x0b\n\x03tag\x18\x02 \x01(\t\"\x90\x01\n\x11ModifyFileRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12&\n\x0b\x61ppend_file\x18\x02 \x01(\x0b\x32\x0f.pfs.AppendFileH\x00\x12&\n\x0b\x64\x65lete_file\x18\x03 \x01(\x0b\x32\x0f.pfs.DeleteFileH\x00\x42\x0e\n\x0cmodification\"a\n\x0f\x43opyFileRequest\x12\x16\n\x03src\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x16\n\x03\x64st\x18\x02 \x01(\x0b\x32\t.pfs.File\x12\x11\n\toverwrite\x18\x03 \x01(\x08\x12\x0b\n\x03tag\x18\x04 \x01(\t\"6\n\x0eGetFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x0b\n\x03URL\x18\x02 \x01(\t\"-\n\x12InspectFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"8\n\x0fListFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x0c\n\x04\x66ull\x18\x02 \x01(\x08\"*\n\x0fWalkFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"?\n\x0fGlobFileRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07pattern\x18\x02 \x01(\t\"\\\n\x0f\x44iffFileRequest\x12\x1b\n\x08new_file\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x1b\n\x08old_file\x18\x02 \x01(\x0b\x32\t.pfs.File\x12\x0f\n\x07shallow\x18\x03 \x01(\x08\"T\n\x10\x44iffFileResponse\x12\x1f\n\x08new_file\x18\x01 \x01(\x0b\x32\r.pfs.FileInfo\x12\x1f\n\x08old_file\x18\x02 \x01(\x0b\x32\r.pfs.FileInfo\"\x1a\n\x0b\x46sckRequest\x12\x0b\n\x03\x66ix\x18\x01 \x01(\x08\"*\n\x0c\x46sckResponse\x12\x0b\n\x03\x66ix\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"+\n\x15\x43reateFilesetResponse\x12\x12\n\nfileset_id\x18\x01 \x01(\t\">\n\x13RenewFilesetRequest\x12\x12\n\nfileset_id\x18\x01 \x01(\t\x12\x13\n\x0bttl_seconds\x18\x02 \x01(\x03\"D\n\x11\x41\x64\x64\x46ilesetRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x12\n\nfileset_id\x18\x02 \x01(\t\"0\n\x11GetFilesetRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"\x15\n\x13\x41\x63tivateAuthRequest\"\x16\n\x14\x41\x63tivateAuthResponse**\n\nOriginKind\x12\x08\n\x04USER\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\x12\x08\n\x04\x46SCK\x10\x02*+\n\x08\x46ileType\x12\x0c\n\x08RESERVED\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\x12\x07\n\x03\x44IR\x10\x02*3\n\x0b\x43ommitState\x12\x0b\n\x07STARTED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x46INISHED\x10\x02*;\n\tDelimiter\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04JSON\x10\x01\x12\x08\n\x04LINE\x10\x02\x12\x07\n\x03SQL\x10\x03\x12\x07\n\x03\x43SV\x10\x04\x32\x93\x0f\n\x03\x41PI\x12>\n\nCreateRepo\x12\x16.pfs.CreateRepoRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x37\n\x0bInspectRepo\x12\x17.pfs.InspectRepoRequest\x1a\r.pfs.RepoInfo\"\x00\x12\x39\n\x08ListRepo\x12\x14.pfs.ListRepoRequest\x1a\x15.pfs.ListRepoResponse\"\x00\x12>\n\nDeleteRepo\x12\x16.pfs.DeleteRepoRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x35\n\x0bStartCommit\x12\x17.pfs.StartCommitRequest\x1a\x0b.pfs.Commit\"\x00\x12\x42\n\x0c\x46inishCommit\x12\x18.pfs.FinishCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12=\n\rInspectCommit\x12\x19.pfs.InspectCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x12\x39\n\nListCommit\x12\x16.pfs.ListCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12\x42\n\x0cSquashCommit\x12\x18.pfs.SquashCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12;\n\x0b\x46lushCommit\x12\x17.pfs.FlushCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12\x43\n\x0fSubscribeCommit\x12\x1b.pfs.SubscribeCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12@\n\x0b\x43learCommit\x12\x17.pfs.ClearCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x43reateBranch\x12\x18.pfs.CreateBranchRequest\x1a\x16.google.protobuf.Empty\"\x00\x12=\n\rInspectBranch\x12\x19.pfs.InspectBranchRequest\x1a\x0f.pfs.BranchInfo\"\x00\x12\x38\n\nListBranch\x12\x16.pfs.ListBranchRequest\x1a\x10.pfs.BranchInfos\"\x00\x12\x42\n\x0c\x44\x65leteBranch\x12\x18.pfs.DeleteBranchRequest\x1a\x16.google.protobuf.Empty\"\x00\x12@\n\nModifyFile\x12\x16.pfs.ModifyFileRequest\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12:\n\x08\x43opyFile\x12\x14.pfs.CopyFileRequest\x1a\x16.google.protobuf.Empty\"\x00\x12?\n\x07GetFile\x12\x13.pfs.GetFileRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12\x37\n\x0bInspectFile\x12\x17.pfs.InspectFileRequest\x1a\r.pfs.FileInfo\"\x00\x12\x33\n\x08ListFile\x12\x14.pfs.ListFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12\x33\n\x08WalkFile\x12\x14.pfs.WalkFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12\x33\n\x08GlobFile\x12\x14.pfs.GlobFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12;\n\x08\x44iffFile\x12\x14.pfs.DiffFileRequest\x1a\x15.pfs.DiffFileResponse\"\x00\x30\x01\x12\x45\n\x0c\x41\x63tivateAuth\x12\x18.pfs.ActivateAuthRequest\x1a\x19.pfs.ActivateAuthResponse\"\x00\x12=\n\tDeleteAll\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12/\n\x04\x46sck\x12\x10.pfs.FsckRequest\x1a\x11.pfs.FsckResponse\"\x00\x30\x01\x12>\n\nAddFileset\x12\x16.pfs.AddFilesetRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\nGetFileset\x12\x16.pfs.GetFilesetRequest\x1a\x1a.pfs.CreateFilesetResponse\"\x00\x12G\n\rCreateFileset\x12\x16.pfs.ModifyFileRequest\x1a\x1a.pfs.CreateFilesetResponse\"\x00(\x01\x12\x42\n\x0cRenewFileset\x12\x18.pfs.RenewFilesetRequest\x1a\x16.google.protobuf.Empty\"\x00\x42+Z)github.com/pachyderm/pachyderm/v2/src/pfsb\x06proto3' , - dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,client_dot_auth_dot_auth__pb2.DESCRIPTOR,]) + dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,auth_dot_auth__pb2.DESCRIPTOR,]) _ORIGINKIND = _descriptor.EnumDescriptor( name='OriginKind', @@ -48,8 +48,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=7705, - serialized_end=7747, + serialized_start=4745, + serialized_end=4787, ) _sym_db.RegisterEnumDescriptor(_ORIGINKIND) @@ -75,8 +75,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=7749, - serialized_end=7792, + serialized_start=4789, + serialized_end=4832, ) _sym_db.RegisterEnumDescriptor(_FILETYPE) @@ -102,8 +102,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=7794, - serialized_end=7845, + serialized_start=4834, + serialized_end=4885, ) _sym_db.RegisterEnumDescriptor(_COMMITSTATE) @@ -137,8 +137,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=7847, - serialized_end=7906, + serialized_start=4887, + serialized_end=4946, ) _sym_db.RegisterEnumDescriptor(_DELIMITER) @@ -186,8 +186,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=147, - serialized_end=167, + serialized_start=133, + serialized_end=153, ) @@ -224,8 +224,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=169, - serialized_end=216, + serialized_start=155, + serialized_end=202, ) @@ -262,101 +262,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=218, - serialized_end=267, -) - - -_BLOCK = _descriptor.Descriptor( - name='Block', - full_name='pfs.Block', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='hash', full_name='pfs.Block.hash', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=269, - serialized_end=290, -) - - -_OBJECT = _descriptor.Descriptor( - name='Object', - full_name='pfs.Object', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='hash', full_name='pfs.Object.hash', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=292, - serialized_end=314, -) - - -_TAG = _descriptor.Descriptor( - name='Tag', - full_name='pfs.Tag', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='pfs.Tag.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=316, - serialized_end=335, + serialized_start=204, + serialized_end=253, ) @@ -409,13 +316,6 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tombstone', full_name='pfs.RepoInfo.tombstone', index=6, - number=8, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -428,8 +328,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=338, - serialized_end=553, + serialized_start=256, + serialized_end=452, ) @@ -441,9 +341,9 @@ containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='access_level', full_name='pfs.RepoAuthInfo.access_level', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, + name='permissions', full_name='pfs.RepoAuthInfo.permissions', index=0, + number=1, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -459,8 +359,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=555, - serialized_end=604, + serialized_start=454, + serialized_end=507, ) @@ -520,6 +420,27 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='branches', full_name='pfs.RepoInfo.branches', index=4, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='auth_info', full_name='pfs.RepoInfo.auth_info', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tombstone', full_name='pfs.RepoInfo.tombstone', index=6, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -532,8 +453,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=607, - serialized_end=826, + serialized_start=510, + serialized_end=729, ) @@ -563,8 +484,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=828, - serialized_end=879, + serialized_start=731, + serialized_end=782, ) @@ -622,8 +543,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=881, - serialized_end=969, + serialized_start=784, + serialized_end=872, ) @@ -653,8 +574,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=971, - serialized_end=1016, + serialized_start=874, + serialized_end=919, ) @@ -691,8 +612,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1018, - serialized_end=1063, + serialized_start=921, + serialized_end=966, ) @@ -729,8 +650,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1065, - serialized_end=1134, + serialized_start=968, + serialized_end=1037, ) @@ -767,8 +688,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1136, - serialized_end=1212, + serialized_start=1039, + serialized_end=1115, ) @@ -864,42 +785,21 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tree', full_name='pfs.CommitInfo.tree', index=12, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='trees', full_name='pfs.CommitInfo.trees', index=13, - number=13, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='datums', full_name='pfs.CommitInfo.datums', index=14, - number=14, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='subvenant_commits_success', full_name='pfs.CommitInfo.subvenant_commits_success', index=15, + name='subvenant_commits_success', full_name='pfs.CommitInfo.subvenant_commits_success', index=12, number=18, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='subvenant_commits_failure', full_name='pfs.CommitInfo.subvenant_commits_failure', index=16, + name='subvenant_commits_failure', full_name='pfs.CommitInfo.subvenant_commits_failure', index=13, number=19, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='subvenant_commits_total', full_name='pfs.CommitInfo.subvenant_commits_total', index=17, + name='subvenant_commits_total', full_name='pfs.CommitInfo.subvenant_commits_total', index=14, number=20, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, @@ -917,8 +817,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1215, - serialized_end=1830, + serialized_start=1118, + serialized_end=1649, ) @@ -958,28 +858,7 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='children', full_name='pfs.FileInfo.children', index=4, - number=6, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='objects', full_name='pfs.FileInfo.objects', index=5, - number=8, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='blockRefs', full_name='pfs.FileInfo.blockRefs', index=6, - number=9, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='hash', full_name='pfs.FileInfo.hash', index=7, + name='hash', full_name='pfs.FileInfo.hash', index=4, number=7, type=12, cpp_type=9, label=1, has_default_value=False, default_value=b"", message_type=None, enum_type=None, containing_type=None, @@ -997,29 +876,36 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1833, - serialized_end=2065, + serialized_start=1652, + serialized_end=1802, ) -_BYTERANGE = _descriptor.Descriptor( - name='ByteRange', - full_name='pfs.ByteRange', +_CREATEREPOREQUEST = _descriptor.Descriptor( + name='CreateRepoRequest', + full_name='pfs.CreateRepoRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='lower', full_name='pfs.ByteRange.lower', index=0, - number=1, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='repo', full_name='pfs.CreateRepoRequest.repo', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='upper', full_name='pfs.ByteRange.upper', index=1, - number=2, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='description', full_name='pfs.CreateRepoRequest.description', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='update', full_name='pfs.CreateRepoRequest.update', index=2, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1035,32 +921,25 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2067, - serialized_end=2108, + serialized_start=1804, + serialized_end=1891, ) -_BLOCKREF = _descriptor.Descriptor( - name='BlockRef', - full_name='pfs.BlockRef', +_INSPECTREPOREQUEST = _descriptor.Descriptor( + name='InspectRepoRequest', + full_name='pfs.InspectRepoRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='block', full_name='pfs.BlockRef.block', index=0, + name='repo', full_name='pfs.InspectRepoRequest.repo', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='range', full_name='pfs.BlockRef.range', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -1073,32 +952,18 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2110, - serialized_end=2178, + serialized_start=1893, + serialized_end=1938, ) -_OBJECTINFO = _descriptor.Descriptor( - name='ObjectInfo', - full_name='pfs.ObjectInfo', +_LISTREPOREQUEST = _descriptor.Descriptor( + name='ListRepoRequest', + full_name='pfs.ListRepoRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ - _descriptor.FieldDescriptor( - name='object', full_name='pfs.ObjectInfo.object', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='block_ref', full_name='pfs.ObjectInfo.block_ref', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -1111,21 +976,21 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2180, - serialized_end=2255, + serialized_start=1940, + serialized_end=1963, ) -_COMPACTION = _descriptor.Descriptor( - name='Compaction', - full_name='pfs.Compaction', +_LISTREPORESPONSE = _descriptor.Descriptor( + name='ListRepoResponse', + full_name='pfs.ListRepoResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='input_prefixes', full_name='pfs.Compaction.input_prefixes', index=0, - number=2, type=9, cpp_type=9, label=3, + name='repo_info', full_name='pfs.ListRepoResponse.repo_info', index=0, + number=1, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -1142,36 +1007,36 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2257, - serialized_end=2293, + serialized_start=1965, + serialized_end=2017, ) -_SHARD = _descriptor.Descriptor( - name='Shard', - full_name='pfs.Shard', +_DELETEREPOREQUEST = _descriptor.Descriptor( + name='DeleteRepoRequest', + full_name='pfs.DeleteRepoRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='compaction', full_name='pfs.Shard.compaction', index=0, + name='repo', full_name='pfs.DeleteRepoRequest.repo', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='range', full_name='pfs.Shard.range', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='force', full_name='pfs.DeleteRepoRequest.force', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='output_path', full_name='pfs.Shard.output_path', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='all', full_name='pfs.DeleteRepoRequest.all', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1187,32 +1052,46 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2295, - serialized_end=2391, + serialized_start=2019, + serialized_end=2091, ) -_PATHRANGE = _descriptor.Descriptor( - name='PathRange', - full_name='pfs.PathRange', +_STARTCOMMITREQUEST = _descriptor.Descriptor( + name='StartCommitRequest', + full_name='pfs.StartCommitRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='lower', full_name='pfs.PathRange.lower', index=0, - number=1, type=9, cpp_type=9, label=1, + name='parent', full_name='pfs.StartCommitRequest.parent', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='description', full_name='pfs.StartCommitRequest.description', index=1, + number=4, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='upper', full_name='pfs.PathRange.upper', index=1, - number=2, type=9, cpp_type=9, label=1, + name='branch', full_name='pfs.StartCommitRequest.branch', index=2, + number=3, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='provenance', full_name='pfs.StartCommitRequest.provenance', index=3, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -1225,34 +1104,41 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2393, - serialized_end=2434, + serialized_start=2094, + serialized_end=2229, ) -_CREATEREPOREQUEST = _descriptor.Descriptor( - name='CreateRepoRequest', - full_name='pfs.CreateRepoRequest', +_FINISHCOMMITREQUEST = _descriptor.Descriptor( + name='FinishCommitRequest', + full_name='pfs.FinishCommitRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='repo', full_name='pfs.CreateRepoRequest.repo', index=0, + name='commit', full_name='pfs.FinishCommitRequest.commit', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='description', full_name='pfs.CreateRepoRequest.description', index=1, - number=3, type=9, cpp_type=9, label=1, + name='description', full_name='pfs.FinishCommitRequest.description', index=1, + number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='update', full_name='pfs.CreateRepoRequest.update', index=2, + name='size_bytes', full_name='pfs.FinishCommitRequest.size_bytes', index=2, + number=6, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='empty', full_name='pfs.FinishCommitRequest.empty', index=3, number=4, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, @@ -1270,1279 +1156,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2436, - serialized_end=2523, + serialized_start=2231, + serialized_end=2337, ) -_INSPECTREPOREQUEST = _descriptor.Descriptor( - name='InspectRepoRequest', - full_name='pfs.InspectRepoRequest', +_INSPECTCOMMITREQUEST = _descriptor.Descriptor( + name='InspectCommitRequest', + full_name='pfs.InspectCommitRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='repo', full_name='pfs.InspectRepoRequest.repo', index=0, + name='commit', full_name='pfs.InspectCommitRequest.commit', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2525, - serialized_end=2570, -) - - -_LISTREPOREQUEST = _descriptor.Descriptor( - name='ListRepoRequest', - full_name='pfs.ListRepoRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2572, - serialized_end=2595, -) - - -_LISTREPORESPONSE = _descriptor.Descriptor( - name='ListRepoResponse', - full_name='pfs.ListRepoResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='repo_info', full_name='pfs.ListRepoResponse.repo_info', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2597, - serialized_end=2649, -) - - -_DELETEREPOREQUEST = _descriptor.Descriptor( - name='DeleteRepoRequest', - full_name='pfs.DeleteRepoRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='repo', full_name='pfs.DeleteRepoRequest.repo', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='force', full_name='pfs.DeleteRepoRequest.force', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='all', full_name='pfs.DeleteRepoRequest.all', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='split_transaction', full_name='pfs.DeleteRepoRequest.split_transaction', index=3, - number=4, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2651, - serialized_end=2750, -) - - -_STARTCOMMITREQUEST = _descriptor.Descriptor( - name='StartCommitRequest', - full_name='pfs.StartCommitRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='parent', full_name='pfs.StartCommitRequest.parent', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='description', full_name='pfs.StartCommitRequest.description', index=1, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='pfs.StartCommitRequest.branch', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='provenance', full_name='pfs.StartCommitRequest.provenance', index=3, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2753, - serialized_end=2888, -) - - -_BUILDCOMMITREQUEST = _descriptor.Descriptor( - name='BuildCommitRequest', - full_name='pfs.BuildCommitRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='parent', full_name='pfs.BuildCommitRequest.parent', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='pfs.BuildCommitRequest.branch', index=1, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='origin', full_name='pfs.BuildCommitRequest.origin', index=2, - number=12, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='provenance', full_name='pfs.BuildCommitRequest.provenance', index=3, - number=6, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tree', full_name='pfs.BuildCommitRequest.tree', index=4, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='trees', full_name='pfs.BuildCommitRequest.trees', index=5, - number=7, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='datums', full_name='pfs.BuildCommitRequest.datums', index=6, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ID', full_name='pfs.BuildCommitRequest.ID', index=7, - number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size_bytes', full_name='pfs.BuildCommitRequest.size_bytes', index=8, - number=9, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='started', full_name='pfs.BuildCommitRequest.started', index=9, - number=10, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='finished', full_name='pfs.BuildCommitRequest.finished', index=10, - number=11, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2891, - serialized_end=3247, -) - - -_FINISHCOMMITREQUEST = _descriptor.Descriptor( - name='FinishCommitRequest', - full_name='pfs.FinishCommitRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='commit', full_name='pfs.FinishCommitRequest.commit', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='description', full_name='pfs.FinishCommitRequest.description', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tree', full_name='pfs.FinishCommitRequest.tree', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='trees', full_name='pfs.FinishCommitRequest.trees', index=3, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='datums', full_name='pfs.FinishCommitRequest.datums', index=4, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size_bytes', full_name='pfs.FinishCommitRequest.size_bytes', index=5, - number=6, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='empty', full_name='pfs.FinishCommitRequest.empty', index=6, - number=4, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3250, - serialized_end=3440, -) - - -_INSPECTCOMMITREQUEST = _descriptor.Descriptor( - name='InspectCommitRequest', - full_name='pfs.InspectCommitRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='commit', full_name='pfs.InspectCommitRequest.commit', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='block_state', full_name='pfs.InspectCommitRequest.block_state', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3442, - serialized_end=3532, -) - - -_LISTCOMMITREQUEST = _descriptor.Descriptor( - name='ListCommitRequest', - full_name='pfs.ListCommitRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='repo', full_name='pfs.ListCommitRequest.repo', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='from', full_name='pfs.ListCommitRequest.from', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='to', full_name='pfs.ListCommitRequest.to', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='number', full_name='pfs.ListCommitRequest.number', index=3, - number=4, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='reverse', full_name='pfs.ListCommitRequest.reverse', index=4, - number=5, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3535, - serialized_end=3664, -) - - -_COMMITINFOS = _descriptor.Descriptor( - name='CommitInfos', - full_name='pfs.CommitInfos', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='commit_info', full_name='pfs.CommitInfos.commit_info', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3666, - serialized_end=3717, -) - - -_CREATEBRANCHREQUEST = _descriptor.Descriptor( - name='CreateBranchRequest', - full_name='pfs.CreateBranchRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='head', full_name='pfs.CreateBranchRequest.head', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='s_branch', full_name='pfs.CreateBranchRequest.s_branch', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='pfs.CreateBranchRequest.branch', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='provenance', full_name='pfs.CreateBranchRequest.provenance', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='trigger', full_name='pfs.CreateBranchRequest.trigger', index=4, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3720, - serialized_end=3879, -) - - -_INSPECTBRANCHREQUEST = _descriptor.Descriptor( - name='InspectBranchRequest', - full_name='pfs.InspectBranchRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='branch', full_name='pfs.InspectBranchRequest.branch', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3881, - serialized_end=3932, -) - - -_LISTBRANCHREQUEST = _descriptor.Descriptor( - name='ListBranchRequest', - full_name='pfs.ListBranchRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='repo', full_name='pfs.ListBranchRequest.repo', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='reverse', full_name='pfs.ListBranchRequest.reverse', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3934, - serialized_end=3995, -) - - -_DELETEBRANCHREQUEST = _descriptor.Descriptor( - name='DeleteBranchRequest', - full_name='pfs.DeleteBranchRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='branch', full_name='pfs.DeleteBranchRequest.branch', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='force', full_name='pfs.DeleteBranchRequest.force', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3997, - serialized_end=4062, -) - - -_DELETECOMMITREQUEST = _descriptor.Descriptor( - name='DeleteCommitRequest', - full_name='pfs.DeleteCommitRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='commit', full_name='pfs.DeleteCommitRequest.commit', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4064, - serialized_end=4114, -) - - -_FLUSHCOMMITREQUEST = _descriptor.Descriptor( - name='FlushCommitRequest', - full_name='pfs.FlushCommitRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='commits', full_name='pfs.FlushCommitRequest.commits', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='to_repos', full_name='pfs.FlushCommitRequest.to_repos', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4116, - serialized_end=4195, -) - - -_SUBSCRIBECOMMITREQUEST = _descriptor.Descriptor( - name='SubscribeCommitRequest', - full_name='pfs.SubscribeCommitRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='repo', full_name='pfs.SubscribeCommitRequest.repo', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='branch', full_name='pfs.SubscribeCommitRequest.branch', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='prov', full_name='pfs.SubscribeCommitRequest.prov', index=2, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='from', full_name='pfs.SubscribeCommitRequest.from', index=3, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='state', full_name='pfs.SubscribeCommitRequest.state', index=4, - number=4, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4198, - serialized_end=4360, -) - - -_GETFILEREQUEST = _descriptor.Descriptor( - name='GetFileRequest', - full_name='pfs.GetFileRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='file', full_name='pfs.GetFileRequest.file', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='offset_bytes', full_name='pfs.GetFileRequest.offset_bytes', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size_bytes', full_name='pfs.GetFileRequest.size_bytes', index=2, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4362, - serialized_end=4445, -) - - -_OVERWRITEINDEX = _descriptor.Descriptor( - name='OverwriteIndex', - full_name='pfs.OverwriteIndex', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='index', full_name='pfs.OverwriteIndex.index', index=0, - number=1, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4447, - serialized_end=4478, -) - - -_PUTFILEREQUEST = _descriptor.Descriptor( - name='PutFileRequest', - full_name='pfs.PutFileRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='file', full_name='pfs.PutFileRequest.file', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='pfs.PutFileRequest.value', index=1, - number=3, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='url', full_name='pfs.PutFileRequest.url', index=2, - number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='recursive', full_name='pfs.PutFileRequest.recursive', index=3, - number=6, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='delimiter', full_name='pfs.PutFileRequest.delimiter', index=4, - number=7, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='target_file_datums', full_name='pfs.PutFileRequest.target_file_datums', index=5, - number=8, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='target_file_bytes', full_name='pfs.PutFileRequest.target_file_bytes', index=6, - number=9, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='header_records', full_name='pfs.PutFileRequest.header_records', index=7, - number=11, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='overwrite_index', full_name='pfs.PutFileRequest.overwrite_index', index=8, - number=10, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='delete', full_name='pfs.PutFileRequest.delete', index=9, - number=12, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4481, - serialized_end=4757, -) - - -_PUTFILERECORD = _descriptor.Descriptor( - name='PutFileRecord', - full_name='pfs.PutFileRecord', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='size_bytes', full_name='pfs.PutFileRecord.size_bytes', index=0, - number=1, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='object_hash', full_name='pfs.PutFileRecord.object_hash', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='overwrite_index', full_name='pfs.PutFileRecord.overwrite_index', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='block_ref', full_name='pfs.PutFileRecord.block_ref', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4760, - serialized_end=4896, -) - - -_PUTFILERECORDS = _descriptor.Descriptor( - name='PutFileRecords', - full_name='pfs.PutFileRecords', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='split', full_name='pfs.PutFileRecords.split', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='records', full_name='pfs.PutFileRecords.records', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tombstone', full_name='pfs.PutFileRecords.tombstone', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='header', full_name='pfs.PutFileRecords.header', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='footer', full_name='pfs.PutFileRecords.footer', index=4, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4899, - serialized_end=5058, -) - - -_COPYFILEREQUEST = _descriptor.Descriptor( - name='CopyFileRequest', - full_name='pfs.CopyFileRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='src', full_name='pfs.CopyFileRequest.src', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='dst', full_name='pfs.CopyFileRequest.dst', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='overwrite', full_name='pfs.CopyFileRequest.overwrite', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5060, - serialized_end=5144, -) - - -_INSPECTFILEREQUEST = _descriptor.Descriptor( - name='InspectFileRequest', - full_name='pfs.InspectFileRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='file', full_name='pfs.InspectFileRequest.file', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5146, - serialized_end=5191, -) - - -_LISTFILEREQUEST = _descriptor.Descriptor( - name='ListFileRequest', - full_name='pfs.ListFileRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='file', full_name='pfs.ListFileRequest.file', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='full', full_name='pfs.ListFileRequest.full', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='history', full_name='pfs.ListFileRequest.history', index=2, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5193, - serialized_end=5266, -) - - -_WALKFILEREQUEST = _descriptor.Descriptor( - name='WalkFileRequest', - full_name='pfs.WalkFileRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='file', full_name='pfs.WalkFileRequest.file', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5268, - serialized_end=5310, -) - - -_GLOBFILEREQUEST = _descriptor.Descriptor( - name='GlobFileRequest', - full_name='pfs.GlobFileRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='commit', full_name='pfs.GlobFileRequest.commit', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pattern', full_name='pfs.GlobFileRequest.pattern', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5312, - serialized_end=5375, -) - - -_FILEINFOS = _descriptor.Descriptor( - name='FileInfos', - full_name='pfs.FileInfos', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ _descriptor.FieldDescriptor( - name='file_info', full_name='pfs.FileInfos.file_info', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='block_state', full_name='pfs.InspectCommitRequest.block_state', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2558,135 +1194,49 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5377, - serialized_end=5422, + serialized_start=2339, + serialized_end=2429, ) -_DIFFFILEREQUEST = _descriptor.Descriptor( - name='DiffFileRequest', - full_name='pfs.DiffFileRequest', +_LISTCOMMITREQUEST = _descriptor.Descriptor( + name='ListCommitRequest', + full_name='pfs.ListCommitRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='new_file', full_name='pfs.DiffFileRequest.new_file', index=0, + name='repo', full_name='pfs.ListCommitRequest.repo', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='old_file', full_name='pfs.DiffFileRequest.old_file', index=1, + name='from', full_name='pfs.ListCommitRequest.from', index=1, number=2, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='shallow', full_name='pfs.DiffFileRequest.shallow', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5424, - serialized_end=5516, -) - - -_DIFFFILERESPONSE = _descriptor.Descriptor( - name='DiffFileResponse', - full_name='pfs.DiffFileResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='new_files', full_name='pfs.DiffFileResponse.new_files', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='old_files', full_name='pfs.DiffFileResponse.old_files', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='to', full_name='pfs.ListCommitRequest.to', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5518, - serialized_end=5604, -) - - -_DELETEFILEREQUEST = _descriptor.Descriptor( - name='DeleteFileRequest', - full_name='pfs.DeleteFileRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ _descriptor.FieldDescriptor( - name='file', full_name='pfs.DeleteFileRequest.file', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='number', full_name='pfs.ListCommitRequest.number', index=3, + number=4, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5606, - serialized_end=5650, -) - - -_FSCKREQUEST = _descriptor.Descriptor( - name='FsckRequest', - full_name='pfs.FsckRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ _descriptor.FieldDescriptor( - name='fix', full_name='pfs.FsckRequest.fix', index=0, - number=1, type=8, cpp_type=7, label=1, + name='reverse', full_name='pfs.ListCommitRequest.reverse', index=4, + number=5, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -2703,29 +1253,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5652, - serialized_end=5678, + serialized_start=2432, + serialized_end=2561, ) -_FSCKRESPONSE = _descriptor.Descriptor( - name='FsckResponse', - full_name='pfs.FsckResponse', +_COMMITINFOS = _descriptor.Descriptor( + name='CommitInfos', + full_name='pfs.CommitInfos', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='fix', full_name='pfs.FsckResponse.fix', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='error', full_name='pfs.FsckResponse.error', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='commit_info', full_name='pfs.CommitInfos.commit_info', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2741,39 +1284,25 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5680, - serialized_end=5722, + serialized_start=2563, + serialized_end=2614, ) -_FILEOPERATIONREQUESTV2 = _descriptor.Descriptor( - name='FileOperationRequestV2', - full_name='pfs.FileOperationRequestV2', +_SQUASHCOMMITREQUEST = _descriptor.Descriptor( + name='SquashCommitRequest', + full_name='pfs.SquashCommitRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='commit', full_name='pfs.FileOperationRequestV2.commit', index=0, + name='commit', full_name='pfs.SquashCommitRequest.commit', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='put_tar', full_name='pfs.FileOperationRequestV2.put_tar', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='delete_files', full_name='pfs.FileOperationRequestV2.delete_files', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -2785,40 +1314,30 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='operation', full_name='pfs.FileOperationRequestV2.operation', - index=0, containing_type=None, fields=[]), ], - serialized_start=5725, - serialized_end=5883, + serialized_start=2616, + serialized_end=2666, ) -_PUTTARREQUESTV2 = _descriptor.Descriptor( - name='PutTarRequestV2', - full_name='pfs.PutTarRequestV2', +_FLUSHCOMMITREQUEST = _descriptor.Descriptor( + name='FlushCommitRequest', + full_name='pfs.FlushCommitRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='overwrite', full_name='pfs.PutTarRequestV2.overwrite', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tag', full_name='pfs.PutTarRequestV2.tag', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='commits', full_name='pfs.FlushCommitRequest.commits', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='data', full_name='pfs.PutTarRequestV2.data', index=2, - number=3, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='to_repos', full_name='pfs.FlushCommitRequest.to_repos', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2834,98 +1353,50 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5885, - serialized_end=5948, + serialized_start=2668, + serialized_end=2747, ) -_DELETEFILESREQUESTV2 = _descriptor.Descriptor( - name='DeleteFilesRequestV2', - full_name='pfs.DeleteFilesRequestV2', +_SUBSCRIBECOMMITREQUEST = _descriptor.Descriptor( + name='SubscribeCommitRequest', + full_name='pfs.SubscribeCommitRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='files', full_name='pfs.DeleteFilesRequestV2.files', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], + name='repo', full_name='pfs.SubscribeCommitRequest.repo', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tag', full_name='pfs.DeleteFilesRequestV2.tag', index=1, + name='branch', full_name='pfs.SubscribeCommitRequest.branch', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5950, - serialized_end=6000, -) - - -_GETTARREQUESTV2 = _descriptor.Descriptor( - name='GetTarRequestV2', - full_name='pfs.GetTarRequestV2', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ _descriptor.FieldDescriptor( - name='file', full_name='pfs.GetTarRequestV2.file', index=0, - number=1, type=11, cpp_type=10, label=1, + name='prov', full_name='pfs.SubscribeCommitRequest.prov', index=2, + number=5, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6002, - serialized_end=6044, -) - - -_DIFFFILERESPONSEV2 = _descriptor.Descriptor( - name='DiffFileResponseV2', - full_name='pfs.DiffFileResponseV2', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ _descriptor.FieldDescriptor( - name='old_file', full_name='pfs.DiffFileResponseV2.old_file', index=0, - number=1, type=11, cpp_type=10, label=1, + name='from', full_name='pfs.SubscribeCommitRequest.from', index=3, + number=3, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='new_file', full_name='pfs.DiffFileResponseV2.new_file', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='state', full_name='pfs.SubscribeCommitRequest.state', index=4, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2941,22 +1412,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6046, - serialized_end=6132, + serialized_start=2750, + serialized_end=2912, ) -_CREATETMPFILESETRESPONSE = _descriptor.Descriptor( - name='CreateTmpFileSetResponse', - full_name='pfs.CreateTmpFileSetResponse', +_CLEARCOMMITREQUEST = _descriptor.Descriptor( + name='ClearCommitRequest', + full_name='pfs.ClearCommitRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='fileset_id', full_name='pfs.CreateTmpFileSetResponse.fileset_id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='commit', full_name='pfs.ClearCommitRequest.commit', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2972,29 +1443,50 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6134, - serialized_end=6180, + serialized_start=2914, + serialized_end=2963, ) -_RENEWTMPFILESETREQUEST = _descriptor.Descriptor( - name='RenewTmpFileSetRequest', - full_name='pfs.RenewTmpFileSetRequest', +_CREATEBRANCHREQUEST = _descriptor.Descriptor( + name='CreateBranchRequest', + full_name='pfs.CreateBranchRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='fileset_id', full_name='pfs.RenewTmpFileSetRequest.fileset_id', index=0, - number=1, type=9, cpp_type=9, label=1, + name='head', full_name='pfs.CreateBranchRequest.head', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='s_branch', full_name='pfs.CreateBranchRequest.s_branch', index=1, + number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='ttl_seconds', full_name='pfs.RenewTmpFileSetRequest.ttl_seconds', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, + name='branch', full_name='pfs.CreateBranchRequest.branch', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='provenance', full_name='pfs.CreateBranchRequest.provenance', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='trigger', full_name='pfs.CreateBranchRequest.trigger', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3010,20 +1502,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6182, - serialized_end=6247, + serialized_start=2966, + serialized_end=3125, ) -_CLEARCOMMITREQUESTV2 = _descriptor.Descriptor( - name='ClearCommitRequestV2', - full_name='pfs.ClearCommitRequestV2', +_INSPECTBRANCHREQUEST = _descriptor.Descriptor( + name='InspectBranchRequest', + full_name='pfs.InspectBranchRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='commit', full_name='pfs.ClearCommitRequestV2.commit', index=0, + name='branch', full_name='pfs.InspectBranchRequest.branch', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, @@ -3041,36 +1533,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6249, - serialized_end=6300, + serialized_start=3127, + serialized_end=3178, ) -_PUTOBJECTREQUEST = _descriptor.Descriptor( - name='PutObjectRequest', - full_name='pfs.PutObjectRequest', +_LISTBRANCHREQUEST = _descriptor.Descriptor( + name='ListBranchRequest', + full_name='pfs.ListBranchRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='value', full_name='pfs.PutObjectRequest.value', index=0, - number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tags', full_name='pfs.PutObjectRequest.tags', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='repo', full_name='pfs.ListBranchRequest.repo', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='block', full_name='pfs.PutObjectRequest.block', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='reverse', full_name='pfs.ListBranchRequest.reverse', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3086,29 +1571,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6302, - serialized_end=6386, + serialized_start=3180, + serialized_end=3241, ) -_CREATEOBJECTREQUEST = _descriptor.Descriptor( - name='CreateObjectRequest', - full_name='pfs.CreateObjectRequest', +_DELETEBRANCHREQUEST = _descriptor.Descriptor( + name='DeleteBranchRequest', + full_name='pfs.DeleteBranchRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='object', full_name='pfs.CreateObjectRequest.object', index=0, + name='branch', full_name='pfs.DeleteBranchRequest.branch', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='block_ref', full_name='pfs.CreateObjectRequest.block_ref', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='force', full_name='pfs.DeleteBranchRequest.force', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3124,43 +1609,57 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6388, - serialized_end=6472, + serialized_start=3243, + serialized_end=3308, ) -_GETOBJECTSREQUEST = _descriptor.Descriptor( - name='GetObjectsRequest', - full_name='pfs.GetObjectsRequest', +_APPENDFILE = _descriptor.Descriptor( + name='AppendFile', + full_name='pfs.AppendFile', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='objects', full_name='pfs.GetObjectsRequest.objects', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='overwrite', full_name='pfs.AppendFile.overwrite', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='offset_bytes', full_name='pfs.GetObjectsRequest.offset_bytes', index=1, - number=2, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='tag', full_name='pfs.AppendFile.tag', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='size_bytes', full_name='pfs.GetObjectsRequest.size_bytes', index=2, - number=3, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='raw_file_source', full_name='pfs.AppendFile.raw_file_source', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='total_size', full_name='pfs.GetObjectsRequest.total_size', index=3, - number=4, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='tar_file_source', full_name='pfs.AppendFile.tar_file_source', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='url_file_source', full_name='pfs.AppendFile.url_file_source', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='trigger', full_name='pfs.CreateBranchRequest.trigger', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3175,33 +1674,43 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='source', full_name='pfs.AppendFile.source', + index=0, containing_type=None, fields=[]), ], - serialized_start=6474, - serialized_end=6585, + serialized_start=3311, + serialized_end=3506, ) -_PUTBLOCKREQUEST = _descriptor.Descriptor( - name='PutBlockRequest', - full_name='pfs.PutBlockRequest', +_RAWFILESOURCE = _descriptor.Descriptor( + name='RawFileSource', + full_name='pfs.RawFileSource', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='block', full_name='pfs.PutBlockRequest.block', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='path', full_name='pfs.RawFileSource.path', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='value', full_name='pfs.PutBlockRequest.value', index=1, + name='data', full_name='pfs.RawFileSource.data', index=1, number=2, type=12, cpp_type=9, label=1, has_default_value=False, default_value=b"", message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='EOF', full_name='pfs.RawFileSource.EOF', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3214,22 +1723,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6587, - serialized_end=6646, + serialized_start=3508, + serialized_end=3564, ) -_GETBLOCKREQUEST = _descriptor.Descriptor( - name='GetBlockRequest', - full_name='pfs.GetBlockRequest', +_TARFILESOURCE = _descriptor.Descriptor( + name='TarFileSource', + full_name='pfs.TarFileSource', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='block', full_name='pfs.GetBlockRequest.block', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='data', full_name='pfs.TarFileSource.data', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3245,43 +1754,36 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6648, - serialized_end=6692, + serialized_start=3566, + serialized_end=3595, ) -_GETBLOCKSREQUEST = _descriptor.Descriptor( - name='GetBlocksRequest', - full_name='pfs.GetBlocksRequest', +_URLFILESOURCE = _descriptor.Descriptor( + name='URLFileSource', + full_name='pfs.URLFileSource', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='blockRefs', full_name='pfs.GetBlocksRequest.blockRefs', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='offset_bytes', full_name='pfs.GetBlocksRequest.offset_bytes', index=1, - number=2, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='path', full_name='pfs.URLFileSource.path', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='size_bytes', full_name='pfs.GetBlocksRequest.size_bytes', index=2, - number=3, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='URL', full_name='pfs.URLFileSource.URL', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='total_size', full_name='pfs.GetBlocksRequest.total_size', index=3, - number=4, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, + name='recursive', full_name='pfs.URLFileSource.recursive', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3297,18 +1799,32 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6694, - serialized_end=6808, + serialized_start=3597, + serialized_end=3658, ) -_LISTBLOCKREQUEST = _descriptor.Descriptor( - name='ListBlockRequest', - full_name='pfs.ListBlockRequest', +_DELETEFILE = _descriptor.Descriptor( + name='DeleteFile', + full_name='pfs.DeleteFile', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ + _descriptor.FieldDescriptor( + name='file', full_name='pfs.DeleteFile.file', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tag', full_name='pfs.DeleteFile.tag', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3321,29 +1837,36 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6810, - serialized_end=6828, + serialized_start=3660, + serialized_end=3699, ) -_TAGOBJECTREQUEST = _descriptor.Descriptor( - name='TagObjectRequest', - full_name='pfs.TagObjectRequest', +_MODIFYFILEREQUEST = _descriptor.Descriptor( + name='ModifyFileRequest', + full_name='pfs.ModifyFileRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='object', full_name='pfs.TagObjectRequest.object', index=0, + name='commit', full_name='pfs.ModifyFileRequest.commit', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tags', full_name='pfs.TagObjectRequest.tags', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='append_file', full_name='pfs.ModifyFileRequest.append_file', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='delete_file', full_name='pfs.ModifyFileRequest.delete_file', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3358,19 +1881,50 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='modification', full_name='pfs.ModifyFileRequest.modification', + index=0, containing_type=None, fields=[]), ], - serialized_start=6830, - serialized_end=6901, + serialized_start=3702, + serialized_end=3846, ) -_LISTOBJECTSREQUEST = _descriptor.Descriptor( - name='ListObjectsRequest', - full_name='pfs.ListObjectsRequest', +_COPYFILEREQUEST = _descriptor.Descriptor( + name='CopyFileRequest', + full_name='pfs.CopyFileRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ + _descriptor.FieldDescriptor( + name='src', full_name='pfs.CopyFileRequest.src', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='dst', full_name='pfs.CopyFileRequest.dst', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='overwrite', full_name='pfs.CopyFileRequest.overwrite', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tag', full_name='pfs.CopyFileRequest.tag', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3383,29 +1937,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6903, - serialized_end=6923, + serialized_start=3848, + serialized_end=3945, ) -_LISTTAGSREQUEST = _descriptor.Descriptor( - name='ListTagsRequest', - full_name='pfs.ListTagsRequest', +_GETFILEREQUEST = _descriptor.Descriptor( + name='GetFileRequest', + full_name='pfs.GetFileRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='prefix', full_name='pfs.ListTagsRequest.prefix', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='file', full_name='pfs.GetFileRequest.file', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='include_object', full_name='pfs.ListTagsRequest.include_object', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='URL', full_name='pfs.GetFileRequest.URL', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3421,32 +1975,25 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6925, - serialized_end=6982, + serialized_start=3947, + serialized_end=4001, ) -_LISTTAGSRESPONSE = _descriptor.Descriptor( - name='ListTagsResponse', - full_name='pfs.ListTagsResponse', +_INSPECTFILEREQUEST = _descriptor.Descriptor( + name='InspectFileRequest', + full_name='pfs.InspectFileRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='tag', full_name='pfs.ListTagsResponse.tag', index=0, + name='file', full_name='pfs.InspectFileRequest.file', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='object', full_name='pfs.ListTagsResponse.object', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3459,22 +2006,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6984, - serialized_end=7054, + serialized_start=4003, + serialized_end=4048, ) -_DELETEOBJECTSREQUEST = _descriptor.Descriptor( - name='DeleteObjectsRequest', - full_name='pfs.DeleteObjectsRequest', +_LISTFILEREQUEST = _descriptor.Descriptor( + name='ListFileRequest', + full_name='pfs.ListFileRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='objects', full_name='pfs.DeleteObjectsRequest.objects', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='file', full_name='pfs.ListFileRequest.file', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='full', full_name='pfs.ListFileRequest.full', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3490,18 +2044,25 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7056, - serialized_end=7108, + serialized_start=4050, + serialized_end=4106, ) -_DELETEOBJECTSRESPONSE = _descriptor.Descriptor( - name='DeleteObjectsResponse', - full_name='pfs.DeleteObjectsResponse', +_WALKFILEREQUEST = _descriptor.Descriptor( + name='WalkFileRequest', + full_name='pfs.WalkFileRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ + _descriptor.FieldDescriptor( + name='file', full_name='pfs.WalkFileRequest.file', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3514,22 +2075,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7110, - serialized_end=7133, + serialized_start=4108, + serialized_end=4150, ) -_DELETETAGSREQUEST = _descriptor.Descriptor( - name='DeleteTagsRequest', - full_name='pfs.DeleteTagsRequest', +_GLOBFILEREQUEST = _descriptor.Descriptor( + name='GlobFileRequest', + full_name='pfs.GlobFileRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='tags', full_name='pfs.DeleteTagsRequest.tags', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='commit', full_name='pfs.GlobFileRequest.commit', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pattern', full_name='pfs.GlobFileRequest.pattern', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3545,18 +2113,39 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7135, - serialized_end=7178, + serialized_start=4152, + serialized_end=4215, ) -_DELETETAGSRESPONSE = _descriptor.Descriptor( - name='DeleteTagsResponse', - full_name='pfs.DeleteTagsResponse', +_DIFFFILEREQUEST = _descriptor.Descriptor( + name='DiffFileRequest', + full_name='pfs.DiffFileRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ + _descriptor.FieldDescriptor( + name='new_file', full_name='pfs.DiffFileRequest.new_file', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='old_file', full_name='pfs.DiffFileRequest.old_file', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='shallow', full_name='pfs.DiffFileRequest.shallow', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3569,25 +2158,32 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7180, - serialized_end=7200, + serialized_start=4217, + serialized_end=4309, ) -_CHECKOBJECTREQUEST = _descriptor.Descriptor( - name='CheckObjectRequest', - full_name='pfs.CheckObjectRequest', +_DIFFFILERESPONSE = _descriptor.Descriptor( + name='DiffFileResponse', + full_name='pfs.DiffFileResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='object', full_name='pfs.CheckObjectRequest.object', index=0, + name='new_file', full_name='pfs.DiffFileResponse.new_file', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='old_file', full_name='pfs.DiffFileResponse.old_file', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3600,20 +2196,20 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7202, - serialized_end=7251, + serialized_start=4311, + serialized_end=4395, ) -_CHECKOBJECTRESPONSE = _descriptor.Descriptor( - name='CheckObjectResponse', - full_name='pfs.CheckObjectResponse', +_FSCKREQUEST = _descriptor.Descriptor( + name='FsckRequest', + full_name='pfs.FsckRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='exists', full_name='pfs.CheckObjectResponse.exists', index=0, + name='fix', full_name='pfs.FsckRequest.fix', index=0, number=1, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, @@ -3631,22 +2227,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7253, - serialized_end=7290, + serialized_start=4397, + serialized_end=4423, ) -_OBJECTS = _descriptor.Descriptor( - name='Objects', - full_name='pfs.Objects', +_FSCKRESPONSE = _descriptor.Descriptor( + name='FsckResponse', + full_name='pfs.FsckResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='objects', full_name='pfs.Objects.objects', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], + name='fix', full_name='pfs.FsckResponse.fix', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='error', full_name='pfs.FsckResponse.error', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3662,32 +2265,25 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7292, - serialized_end=7331, + serialized_start=4425, + serialized_end=4467, ) -_PUTOBJDIRECTREQUEST = _descriptor.Descriptor( - name='PutObjDirectRequest', - full_name='pfs.PutObjDirectRequest', +_CREATEFILESETRESPONSE = _descriptor.Descriptor( + name='CreateFilesetResponse', + full_name='pfs.CreateFilesetResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='obj', full_name='pfs.PutObjDirectRequest.obj', index=0, + name='fileset_id', full_name='pfs.CreateFilesetResponse.fileset_id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='pfs.PutObjDirectRequest.value', index=1, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3700,25 +2296,32 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7333, - serialized_end=7382, + serialized_start=4469, + serialized_end=4512, ) -_GETOBJDIRECTREQUEST = _descriptor.Descriptor( - name='GetObjDirectRequest', - full_name='pfs.GetObjDirectRequest', +_RENEWFILESETREQUEST = _descriptor.Descriptor( + name='RenewFilesetRequest', + full_name='pfs.RenewFilesetRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='obj', full_name='pfs.GetObjDirectRequest.obj', index=0, + name='fileset_id', full_name='pfs.RenewFilesetRequest.fileset_id', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ttl_seconds', full_name='pfs.RenewFilesetRequest.ttl_seconds', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3731,27 +2334,27 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7384, - serialized_end=7418, + serialized_start=4514, + serialized_end=4576, ) -_DELETEOBJDIRECTREQUEST = _descriptor.Descriptor( - name='DeleteObjDirectRequest', - full_name='pfs.DeleteObjDirectRequest', +_ADDFILESETREQUEST = _descriptor.Descriptor( + name='AddFilesetRequest', + full_name='pfs.AddFilesetRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='object', full_name='pfs.DeleteObjDirectRequest.object', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='commit', full_name='pfs.AddFilesetRequest.commit', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='prefix', full_name='pfs.DeleteObjDirectRequest.prefix', index=1, + name='fileset_id', full_name='pfs.AddFilesetRequest.fileset_id', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, @@ -3769,28 +2372,21 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7420, - serialized_end=7476, + serialized_start=4578, + serialized_end=4646, ) -_OBJECTINDEX_OBJECTSENTRY = _descriptor.Descriptor( - name='ObjectsEntry', - full_name='pfs.ObjectIndex.ObjectsEntry', +_GETFILESETREQUEST = _descriptor.Descriptor( + name='GetFilesetRequest', + full_name='pfs.GetFilesetRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='key', full_name='pfs.ObjectIndex.ObjectsEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='pfs.ObjectIndex.ObjectsEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, + name='commit', full_name='pfs.GetFilesetRequest.commit', index=0, + number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -3801,78 +2397,52 @@ nested_types=[], enum_types=[ ], - serialized_options=b'8\001', + serialized_options=None, is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ ], - serialized_start=7584, - serialized_end=7645, + serialized_start=4648, + serialized_end=4696, ) -_OBJECTINDEX_TAGSENTRY = _descriptor.Descriptor( - name='TagsEntry', - full_name='pfs.ObjectIndex.TagsEntry', + +_ACTIVATEAUTHREQUEST = _descriptor.Descriptor( + name='ActivateAuthRequest', + full_name='pfs.ActivateAuthRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='pfs.ObjectIndex.TagsEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='pfs.ObjectIndex.TagsEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ ], - serialized_options=b'8\001', + serialized_options=None, is_extendable=False, syntax='proto3', extension_ranges=[], oneofs=[ ], - serialized_start=7647, - serialized_end=7703, + serialized_start=4698, + serialized_end=4719, ) -_OBJECTINDEX = _descriptor.Descriptor( - name='ObjectIndex', - full_name='pfs.ObjectIndex', + +_ACTIVATEAUTHRESPONSE = _descriptor.Descriptor( + name='ActivateAuthResponse', + full_name='pfs.ActivateAuthResponse', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ - _descriptor.FieldDescriptor( - name='objects', full_name='pfs.ObjectIndex.objects', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tags', full_name='pfs.ObjectIndex.tags', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], - nested_types=[_OBJECTINDEX_OBJECTSENTRY, _OBJECTINDEX_TAGSENTRY, ], + nested_types=[], enum_types=[ ], serialized_options=None, @@ -3881,8 +2451,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7479, - serialized_end=7703, + serialized_start=4721, + serialized_end=4743, ) _BRANCH.fields_by_name['repo'].message_type = _REPO @@ -3891,7 +2461,7 @@ _REPOINFO.fields_by_name['created'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _REPOINFO.fields_by_name['branches'].message_type = _BRANCH _REPOINFO.fields_by_name['auth_info'].message_type = _REPOAUTHINFO -_REPOAUTHINFO.fields_by_name['access_level'].enum_type = client_dot_auth_dot_auth__pb2._SCOPE +_REPOAUTHINFO.fields_by_name['permissions'].enum_type = auth_dot_auth__pb2._PERMISSION _BRANCHINFO.fields_by_name['branch'].message_type = _BRANCH _BRANCHINFO.fields_by_name['head'].message_type = _COMMIT _BRANCHINFO.fields_by_name['provenance'].message_type = _BRANCH @@ -3914,44 +2484,30 @@ _COMMITINFO.fields_by_name['finished'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _COMMITINFO.fields_by_name['provenance'].message_type = _COMMITPROVENANCE _COMMITINFO.fields_by_name['subvenance'].message_type = _COMMITRANGE -_COMMITINFO.fields_by_name['tree'].message_type = _OBJECT -_COMMITINFO.fields_by_name['trees'].message_type = _OBJECT -_COMMITINFO.fields_by_name['datums'].message_type = _OBJECT _FILEINFO.fields_by_name['file'].message_type = _FILE _FILEINFO.fields_by_name['file_type'].enum_type = _FILETYPE _FILEINFO.fields_by_name['committed'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_FILEINFO.fields_by_name['objects'].message_type = _OBJECT -_FILEINFO.fields_by_name['blockRefs'].message_type = _BLOCKREF -_BLOCKREF.fields_by_name['block'].message_type = _BLOCK -_BLOCKREF.fields_by_name['range'].message_type = _BYTERANGE -_OBJECTINFO.fields_by_name['object'].message_type = _OBJECT -_OBJECTINFO.fields_by_name['block_ref'].message_type = _BLOCKREF -_SHARD.fields_by_name['compaction'].message_type = _COMPACTION -_SHARD.fields_by_name['range'].message_type = _PATHRANGE _CREATEREPOREQUEST.fields_by_name['repo'].message_type = _REPO _INSPECTREPOREQUEST.fields_by_name['repo'].message_type = _REPO _LISTREPORESPONSE.fields_by_name['repo_info'].message_type = _REPOINFO _DELETEREPOREQUEST.fields_by_name['repo'].message_type = _REPO _STARTCOMMITREQUEST.fields_by_name['parent'].message_type = _COMMIT _STARTCOMMITREQUEST.fields_by_name['provenance'].message_type = _COMMITPROVENANCE -_BUILDCOMMITREQUEST.fields_by_name['parent'].message_type = _COMMIT -_BUILDCOMMITREQUEST.fields_by_name['origin'].message_type = _COMMITORIGIN -_BUILDCOMMITREQUEST.fields_by_name['provenance'].message_type = _COMMITPROVENANCE -_BUILDCOMMITREQUEST.fields_by_name['tree'].message_type = _OBJECT -_BUILDCOMMITREQUEST.fields_by_name['trees'].message_type = _OBJECT -_BUILDCOMMITREQUEST.fields_by_name['datums'].message_type = _OBJECT -_BUILDCOMMITREQUEST.fields_by_name['started'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_BUILDCOMMITREQUEST.fields_by_name['finished'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _FINISHCOMMITREQUEST.fields_by_name['commit'].message_type = _COMMIT -_FINISHCOMMITREQUEST.fields_by_name['tree'].message_type = _OBJECT -_FINISHCOMMITREQUEST.fields_by_name['trees'].message_type = _OBJECT -_FINISHCOMMITREQUEST.fields_by_name['datums'].message_type = _OBJECT _INSPECTCOMMITREQUEST.fields_by_name['commit'].message_type = _COMMIT _INSPECTCOMMITREQUEST.fields_by_name['block_state'].enum_type = _COMMITSTATE _LISTCOMMITREQUEST.fields_by_name['repo'].message_type = _REPO _LISTCOMMITREQUEST.fields_by_name['from'].message_type = _COMMIT _LISTCOMMITREQUEST.fields_by_name['to'].message_type = _COMMIT _COMMITINFOS.fields_by_name['commit_info'].message_type = _COMMITINFO +_SQUASHCOMMITREQUEST.fields_by_name['commit'].message_type = _COMMIT +_FLUSHCOMMITREQUEST.fields_by_name['commits'].message_type = _COMMIT +_FLUSHCOMMITREQUEST.fields_by_name['to_repos'].message_type = _REPO +_SUBSCRIBECOMMITREQUEST.fields_by_name['repo'].message_type = _REPO +_SUBSCRIBECOMMITREQUEST.fields_by_name['prov'].message_type = _COMMITPROVENANCE +_SUBSCRIBECOMMITREQUEST.fields_by_name['from'].message_type = _COMMIT +_SUBSCRIBECOMMITREQUEST.fields_by_name['state'].enum_type = _COMMITSTATE +_CLEARCOMMITREQUEST.fields_by_name['commit'].message_type = _COMMIT _CREATEBRANCHREQUEST.fields_by_name['head'].message_type = _COMMIT _CREATEBRANCHREQUEST.fields_by_name['branch'].message_type = _BRANCH _CREATEBRANCHREQUEST.fields_by_name['provenance'].message_type = _BRANCH @@ -3959,75 +2515,43 @@ _INSPECTBRANCHREQUEST.fields_by_name['branch'].message_type = _BRANCH _LISTBRANCHREQUEST.fields_by_name['repo'].message_type = _REPO _DELETEBRANCHREQUEST.fields_by_name['branch'].message_type = _BRANCH -_DELETECOMMITREQUEST.fields_by_name['commit'].message_type = _COMMIT -_FLUSHCOMMITREQUEST.fields_by_name['commits'].message_type = _COMMIT -_FLUSHCOMMITREQUEST.fields_by_name['to_repos'].message_type = _REPO -_SUBSCRIBECOMMITREQUEST.fields_by_name['repo'].message_type = _REPO -_SUBSCRIBECOMMITREQUEST.fields_by_name['prov'].message_type = _COMMITPROVENANCE -_SUBSCRIBECOMMITREQUEST.fields_by_name['from'].message_type = _COMMIT -_SUBSCRIBECOMMITREQUEST.fields_by_name['state'].enum_type = _COMMITSTATE -_GETFILEREQUEST.fields_by_name['file'].message_type = _FILE -_PUTFILEREQUEST.fields_by_name['file'].message_type = _FILE -_PUTFILEREQUEST.fields_by_name['delimiter'].enum_type = _DELIMITER -_PUTFILEREQUEST.fields_by_name['overwrite_index'].message_type = _OVERWRITEINDEX -_PUTFILERECORD.fields_by_name['overwrite_index'].message_type = _OVERWRITEINDEX -_PUTFILERECORD.fields_by_name['block_ref'].message_type = _BLOCKREF -_PUTFILERECORDS.fields_by_name['records'].message_type = _PUTFILERECORD -_PUTFILERECORDS.fields_by_name['header'].message_type = _PUTFILERECORD -_PUTFILERECORDS.fields_by_name['footer'].message_type = _PUTFILERECORD +_APPENDFILE.fields_by_name['raw_file_source'].message_type = _RAWFILESOURCE +_APPENDFILE.fields_by_name['tar_file_source'].message_type = _TARFILESOURCE +_APPENDFILE.fields_by_name['url_file_source'].message_type = _URLFILESOURCE +_APPENDFILE.oneofs_by_name['source'].fields.append( + _APPENDFILE.fields_by_name['raw_file_source']) +_APPENDFILE.fields_by_name['raw_file_source'].containing_oneof = _APPENDFILE.oneofs_by_name['source'] +_APPENDFILE.oneofs_by_name['source'].fields.append( + _APPENDFILE.fields_by_name['tar_file_source']) +_APPENDFILE.fields_by_name['tar_file_source'].containing_oneof = _APPENDFILE.oneofs_by_name['source'] +_APPENDFILE.oneofs_by_name['source'].fields.append( + _APPENDFILE.fields_by_name['url_file_source']) +_APPENDFILE.fields_by_name['url_file_source'].containing_oneof = _APPENDFILE.oneofs_by_name['source'] +_MODIFYFILEREQUEST.fields_by_name['commit'].message_type = _COMMIT +_MODIFYFILEREQUEST.fields_by_name['append_file'].message_type = _APPENDFILE +_MODIFYFILEREQUEST.fields_by_name['delete_file'].message_type = _DELETEFILE +_MODIFYFILEREQUEST.oneofs_by_name['modification'].fields.append( + _MODIFYFILEREQUEST.fields_by_name['append_file']) +_MODIFYFILEREQUEST.fields_by_name['append_file'].containing_oneof = _MODIFYFILEREQUEST.oneofs_by_name['modification'] +_MODIFYFILEREQUEST.oneofs_by_name['modification'].fields.append( + _MODIFYFILEREQUEST.fields_by_name['delete_file']) +_MODIFYFILEREQUEST.fields_by_name['delete_file'].containing_oneof = _MODIFYFILEREQUEST.oneofs_by_name['modification'] _COPYFILEREQUEST.fields_by_name['src'].message_type = _FILE _COPYFILEREQUEST.fields_by_name['dst'].message_type = _FILE +_GETFILEREQUEST.fields_by_name['file'].message_type = _FILE _INSPECTFILEREQUEST.fields_by_name['file'].message_type = _FILE _LISTFILEREQUEST.fields_by_name['file'].message_type = _FILE _WALKFILEREQUEST.fields_by_name['file'].message_type = _FILE _GLOBFILEREQUEST.fields_by_name['commit'].message_type = _COMMIT -_FILEINFOS.fields_by_name['file_info'].message_type = _FILEINFO _DIFFFILEREQUEST.fields_by_name['new_file'].message_type = _FILE _DIFFFILEREQUEST.fields_by_name['old_file'].message_type = _FILE -_DIFFFILERESPONSE.fields_by_name['new_files'].message_type = _FILEINFO -_DIFFFILERESPONSE.fields_by_name['old_files'].message_type = _FILEINFO -_DELETEFILEREQUEST.fields_by_name['file'].message_type = _FILE -_FILEOPERATIONREQUESTV2.fields_by_name['commit'].message_type = _COMMIT -_FILEOPERATIONREQUESTV2.fields_by_name['put_tar'].message_type = _PUTTARREQUESTV2 -_FILEOPERATIONREQUESTV2.fields_by_name['delete_files'].message_type = _DELETEFILESREQUESTV2 -_FILEOPERATIONREQUESTV2.oneofs_by_name['operation'].fields.append( - _FILEOPERATIONREQUESTV2.fields_by_name['put_tar']) -_FILEOPERATIONREQUESTV2.fields_by_name['put_tar'].containing_oneof = _FILEOPERATIONREQUESTV2.oneofs_by_name['operation'] -_FILEOPERATIONREQUESTV2.oneofs_by_name['operation'].fields.append( - _FILEOPERATIONREQUESTV2.fields_by_name['delete_files']) -_FILEOPERATIONREQUESTV2.fields_by_name['delete_files'].containing_oneof = _FILEOPERATIONREQUESTV2.oneofs_by_name['operation'] -_GETTARREQUESTV2.fields_by_name['file'].message_type = _FILE -_DIFFFILERESPONSEV2.fields_by_name['old_file'].message_type = _FILEINFO -_DIFFFILERESPONSEV2.fields_by_name['new_file'].message_type = _FILEINFO -_CLEARCOMMITREQUESTV2.fields_by_name['commit'].message_type = _COMMIT -_PUTOBJECTREQUEST.fields_by_name['tags'].message_type = _TAG -_PUTOBJECTREQUEST.fields_by_name['block'].message_type = _BLOCK -_CREATEOBJECTREQUEST.fields_by_name['object'].message_type = _OBJECT -_CREATEOBJECTREQUEST.fields_by_name['block_ref'].message_type = _BLOCKREF -_GETOBJECTSREQUEST.fields_by_name['objects'].message_type = _OBJECT -_PUTBLOCKREQUEST.fields_by_name['block'].message_type = _BLOCK -_GETBLOCKREQUEST.fields_by_name['block'].message_type = _BLOCK -_GETBLOCKSREQUEST.fields_by_name['blockRefs'].message_type = _BLOCKREF -_TAGOBJECTREQUEST.fields_by_name['object'].message_type = _OBJECT -_TAGOBJECTREQUEST.fields_by_name['tags'].message_type = _TAG -_LISTTAGSRESPONSE.fields_by_name['tag'].message_type = _TAG -_LISTTAGSRESPONSE.fields_by_name['object'].message_type = _OBJECT -_DELETEOBJECTSREQUEST.fields_by_name['objects'].message_type = _OBJECT -_DELETETAGSREQUEST.fields_by_name['tags'].message_type = _TAG -_CHECKOBJECTREQUEST.fields_by_name['object'].message_type = _OBJECT -_OBJECTS.fields_by_name['objects'].message_type = _OBJECT -_OBJECTINDEX_OBJECTSENTRY.fields_by_name['value'].message_type = _BLOCKREF -_OBJECTINDEX_OBJECTSENTRY.containing_type = _OBJECTINDEX -_OBJECTINDEX_TAGSENTRY.fields_by_name['value'].message_type = _OBJECT -_OBJECTINDEX_TAGSENTRY.containing_type = _OBJECTINDEX -_OBJECTINDEX.fields_by_name['objects'].message_type = _OBJECTINDEX_OBJECTSENTRY -_OBJECTINDEX.fields_by_name['tags'].message_type = _OBJECTINDEX_TAGSENTRY +_DIFFFILERESPONSE.fields_by_name['new_file'].message_type = _FILEINFO +_DIFFFILERESPONSE.fields_by_name['old_file'].message_type = _FILEINFO +_ADDFILESETREQUEST.fields_by_name['commit'].message_type = _COMMIT +_GETFILESETREQUEST.fields_by_name['commit'].message_type = _COMMIT DESCRIPTOR.message_types_by_name['Repo'] = _REPO DESCRIPTOR.message_types_by_name['Branch'] = _BRANCH DESCRIPTOR.message_types_by_name['File'] = _FILE -DESCRIPTOR.message_types_by_name['Block'] = _BLOCK -DESCRIPTOR.message_types_by_name['Object'] = _OBJECT -DESCRIPTOR.message_types_by_name['Tag'] = _TAG DESCRIPTOR.message_types_by_name['RepoInfo'] = _REPOINFO DESCRIPTOR.message_types_by_name['RepoAuthInfo'] = _REPOAUTHINFO DESCRIPTOR.message_types_by_name['BranchInfo'] = _BRANCHINFO @@ -4039,76 +2563,46 @@ DESCRIPTOR.message_types_by_name['CommitProvenance'] = _COMMITPROVENANCE DESCRIPTOR.message_types_by_name['CommitInfo'] = _COMMITINFO DESCRIPTOR.message_types_by_name['FileInfo'] = _FILEINFO -DESCRIPTOR.message_types_by_name['ByteRange'] = _BYTERANGE -DESCRIPTOR.message_types_by_name['BlockRef'] = _BLOCKREF -DESCRIPTOR.message_types_by_name['ObjectInfo'] = _OBJECTINFO -DESCRIPTOR.message_types_by_name['Compaction'] = _COMPACTION -DESCRIPTOR.message_types_by_name['Shard'] = _SHARD -DESCRIPTOR.message_types_by_name['PathRange'] = _PATHRANGE DESCRIPTOR.message_types_by_name['CreateRepoRequest'] = _CREATEREPOREQUEST DESCRIPTOR.message_types_by_name['InspectRepoRequest'] = _INSPECTREPOREQUEST DESCRIPTOR.message_types_by_name['ListRepoRequest'] = _LISTREPOREQUEST DESCRIPTOR.message_types_by_name['ListRepoResponse'] = _LISTREPORESPONSE DESCRIPTOR.message_types_by_name['DeleteRepoRequest'] = _DELETEREPOREQUEST DESCRIPTOR.message_types_by_name['StartCommitRequest'] = _STARTCOMMITREQUEST -DESCRIPTOR.message_types_by_name['BuildCommitRequest'] = _BUILDCOMMITREQUEST DESCRIPTOR.message_types_by_name['FinishCommitRequest'] = _FINISHCOMMITREQUEST DESCRIPTOR.message_types_by_name['InspectCommitRequest'] = _INSPECTCOMMITREQUEST DESCRIPTOR.message_types_by_name['ListCommitRequest'] = _LISTCOMMITREQUEST DESCRIPTOR.message_types_by_name['CommitInfos'] = _COMMITINFOS +DESCRIPTOR.message_types_by_name['SquashCommitRequest'] = _SQUASHCOMMITREQUEST +DESCRIPTOR.message_types_by_name['FlushCommitRequest'] = _FLUSHCOMMITREQUEST +DESCRIPTOR.message_types_by_name['SubscribeCommitRequest'] = _SUBSCRIBECOMMITREQUEST +DESCRIPTOR.message_types_by_name['ClearCommitRequest'] = _CLEARCOMMITREQUEST DESCRIPTOR.message_types_by_name['CreateBranchRequest'] = _CREATEBRANCHREQUEST DESCRIPTOR.message_types_by_name['InspectBranchRequest'] = _INSPECTBRANCHREQUEST DESCRIPTOR.message_types_by_name['ListBranchRequest'] = _LISTBRANCHREQUEST DESCRIPTOR.message_types_by_name['DeleteBranchRequest'] = _DELETEBRANCHREQUEST -DESCRIPTOR.message_types_by_name['DeleteCommitRequest'] = _DELETECOMMITREQUEST -DESCRIPTOR.message_types_by_name['FlushCommitRequest'] = _FLUSHCOMMITREQUEST -DESCRIPTOR.message_types_by_name['SubscribeCommitRequest'] = _SUBSCRIBECOMMITREQUEST -DESCRIPTOR.message_types_by_name['GetFileRequest'] = _GETFILEREQUEST -DESCRIPTOR.message_types_by_name['OverwriteIndex'] = _OVERWRITEINDEX -DESCRIPTOR.message_types_by_name['PutFileRequest'] = _PUTFILEREQUEST -DESCRIPTOR.message_types_by_name['PutFileRecord'] = _PUTFILERECORD -DESCRIPTOR.message_types_by_name['PutFileRecords'] = _PUTFILERECORDS +DESCRIPTOR.message_types_by_name['AppendFile'] = _APPENDFILE +DESCRIPTOR.message_types_by_name['RawFileSource'] = _RAWFILESOURCE +DESCRIPTOR.message_types_by_name['TarFileSource'] = _TARFILESOURCE +DESCRIPTOR.message_types_by_name['URLFileSource'] = _URLFILESOURCE +DESCRIPTOR.message_types_by_name['DeleteFile'] = _DELETEFILE +DESCRIPTOR.message_types_by_name['ModifyFileRequest'] = _MODIFYFILEREQUEST DESCRIPTOR.message_types_by_name['CopyFileRequest'] = _COPYFILEREQUEST +DESCRIPTOR.message_types_by_name['GetFileRequest'] = _GETFILEREQUEST DESCRIPTOR.message_types_by_name['InspectFileRequest'] = _INSPECTFILEREQUEST DESCRIPTOR.message_types_by_name['ListFileRequest'] = _LISTFILEREQUEST DESCRIPTOR.message_types_by_name['WalkFileRequest'] = _WALKFILEREQUEST DESCRIPTOR.message_types_by_name['GlobFileRequest'] = _GLOBFILEREQUEST -DESCRIPTOR.message_types_by_name['FileInfos'] = _FILEINFOS DESCRIPTOR.message_types_by_name['DiffFileRequest'] = _DIFFFILEREQUEST DESCRIPTOR.message_types_by_name['DiffFileResponse'] = _DIFFFILERESPONSE -DESCRIPTOR.message_types_by_name['DeleteFileRequest'] = _DELETEFILEREQUEST DESCRIPTOR.message_types_by_name['FsckRequest'] = _FSCKREQUEST DESCRIPTOR.message_types_by_name['FsckResponse'] = _FSCKRESPONSE -DESCRIPTOR.message_types_by_name['FileOperationRequestV2'] = _FILEOPERATIONREQUESTV2 -DESCRIPTOR.message_types_by_name['PutTarRequestV2'] = _PUTTARREQUESTV2 -DESCRIPTOR.message_types_by_name['DeleteFilesRequestV2'] = _DELETEFILESREQUESTV2 -DESCRIPTOR.message_types_by_name['GetTarRequestV2'] = _GETTARREQUESTV2 -DESCRIPTOR.message_types_by_name['DiffFileResponseV2'] = _DIFFFILERESPONSEV2 -DESCRIPTOR.message_types_by_name['CreateTmpFileSetResponse'] = _CREATETMPFILESETRESPONSE -DESCRIPTOR.message_types_by_name['RenewTmpFileSetRequest'] = _RENEWTMPFILESETREQUEST -DESCRIPTOR.message_types_by_name['ClearCommitRequestV2'] = _CLEARCOMMITREQUESTV2 -DESCRIPTOR.message_types_by_name['PutObjectRequest'] = _PUTOBJECTREQUEST -DESCRIPTOR.message_types_by_name['CreateObjectRequest'] = _CREATEOBJECTREQUEST -DESCRIPTOR.message_types_by_name['GetObjectsRequest'] = _GETOBJECTSREQUEST -DESCRIPTOR.message_types_by_name['PutBlockRequest'] = _PUTBLOCKREQUEST -DESCRIPTOR.message_types_by_name['GetBlockRequest'] = _GETBLOCKREQUEST -DESCRIPTOR.message_types_by_name['GetBlocksRequest'] = _GETBLOCKSREQUEST -DESCRIPTOR.message_types_by_name['ListBlockRequest'] = _LISTBLOCKREQUEST -DESCRIPTOR.message_types_by_name['TagObjectRequest'] = _TAGOBJECTREQUEST -DESCRIPTOR.message_types_by_name['ListObjectsRequest'] = _LISTOBJECTSREQUEST -DESCRIPTOR.message_types_by_name['ListTagsRequest'] = _LISTTAGSREQUEST -DESCRIPTOR.message_types_by_name['ListTagsResponse'] = _LISTTAGSRESPONSE -DESCRIPTOR.message_types_by_name['DeleteObjectsRequest'] = _DELETEOBJECTSREQUEST -DESCRIPTOR.message_types_by_name['DeleteObjectsResponse'] = _DELETEOBJECTSRESPONSE -DESCRIPTOR.message_types_by_name['DeleteTagsRequest'] = _DELETETAGSREQUEST -DESCRIPTOR.message_types_by_name['DeleteTagsResponse'] = _DELETETAGSRESPONSE -DESCRIPTOR.message_types_by_name['CheckObjectRequest'] = _CHECKOBJECTREQUEST -DESCRIPTOR.message_types_by_name['CheckObjectResponse'] = _CHECKOBJECTRESPONSE -DESCRIPTOR.message_types_by_name['Objects'] = _OBJECTS -DESCRIPTOR.message_types_by_name['PutObjDirectRequest'] = _PUTOBJDIRECTREQUEST -DESCRIPTOR.message_types_by_name['GetObjDirectRequest'] = _GETOBJDIRECTREQUEST -DESCRIPTOR.message_types_by_name['DeleteObjDirectRequest'] = _DELETEOBJDIRECTREQUEST -DESCRIPTOR.message_types_by_name['ObjectIndex'] = _OBJECTINDEX +DESCRIPTOR.message_types_by_name['CreateFilesetResponse'] = _CREATEFILESETRESPONSE +DESCRIPTOR.message_types_by_name['RenewFilesetRequest'] = _RENEWFILESETREQUEST +DESCRIPTOR.message_types_by_name['AddFilesetRequest'] = _ADDFILESETREQUEST +DESCRIPTOR.message_types_by_name['GetFilesetRequest'] = _GETFILESETREQUEST +DESCRIPTOR.message_types_by_name['ActivateAuthRequest'] = _ACTIVATEAUTHREQUEST +DESCRIPTOR.message_types_by_name['ActivateAuthResponse'] = _ACTIVATEAUTHRESPONSE DESCRIPTOR.enum_types_by_name['OriginKind'] = _ORIGINKIND DESCRIPTOR.enum_types_by_name['FileType'] = _FILETYPE DESCRIPTOR.enum_types_by_name['CommitState'] = _COMMITSTATE @@ -4117,633 +2611,384 @@ Repo = _reflection.GeneratedProtocolMessageType('Repo', (_message.Message,), { 'DESCRIPTOR' : _REPO, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.Repo) }) _sym_db.RegisterMessage(Repo) Branch = _reflection.GeneratedProtocolMessageType('Branch', (_message.Message,), { 'DESCRIPTOR' : _BRANCH, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.Branch) }) _sym_db.RegisterMessage(Branch) File = _reflection.GeneratedProtocolMessageType('File', (_message.Message,), { 'DESCRIPTOR' : _FILE, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.File) }) _sym_db.RegisterMessage(File) -Block = _reflection.GeneratedProtocolMessageType('Block', (_message.Message,), { - 'DESCRIPTOR' : _BLOCK, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.Block) - }) -_sym_db.RegisterMessage(Block) - -Object = _reflection.GeneratedProtocolMessageType('Object', (_message.Message,), { - 'DESCRIPTOR' : _OBJECT, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.Object) - }) -_sym_db.RegisterMessage(Object) - -Tag = _reflection.GeneratedProtocolMessageType('Tag', (_message.Message,), { - 'DESCRIPTOR' : _TAG, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.Tag) - }) -_sym_db.RegisterMessage(Tag) - RepoInfo = _reflection.GeneratedProtocolMessageType('RepoInfo', (_message.Message,), { 'DESCRIPTOR' : _REPOINFO, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.RepoInfo) }) _sym_db.RegisterMessage(RepoInfo) RepoAuthInfo = _reflection.GeneratedProtocolMessageType('RepoAuthInfo', (_message.Message,), { 'DESCRIPTOR' : _REPOAUTHINFO, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.RepoAuthInfo) }) _sym_db.RegisterMessage(RepoAuthInfo) BranchInfo = _reflection.GeneratedProtocolMessageType('BranchInfo', (_message.Message,), { 'DESCRIPTOR' : _BRANCHINFO, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.BranchInfo) }) _sym_db.RegisterMessage(BranchInfo) BranchInfos = _reflection.GeneratedProtocolMessageType('BranchInfos', (_message.Message,), { 'DESCRIPTOR' : _BRANCHINFOS, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.BranchInfos) }) _sym_db.RegisterMessage(BranchInfos) Trigger = _reflection.GeneratedProtocolMessageType('Trigger', (_message.Message,), { 'DESCRIPTOR' : _TRIGGER, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.Trigger) }) _sym_db.RegisterMessage(Trigger) CommitOrigin = _reflection.GeneratedProtocolMessageType('CommitOrigin', (_message.Message,), { 'DESCRIPTOR' : _COMMITORIGIN, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.CommitOrigin) }) _sym_db.RegisterMessage(CommitOrigin) Commit = _reflection.GeneratedProtocolMessageType('Commit', (_message.Message,), { 'DESCRIPTOR' : _COMMIT, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.Commit) }) _sym_db.RegisterMessage(Commit) CommitRange = _reflection.GeneratedProtocolMessageType('CommitRange', (_message.Message,), { 'DESCRIPTOR' : _COMMITRANGE, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.CommitRange) }) _sym_db.RegisterMessage(CommitRange) CommitProvenance = _reflection.GeneratedProtocolMessageType('CommitProvenance', (_message.Message,), { 'DESCRIPTOR' : _COMMITPROVENANCE, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.CommitProvenance) }) _sym_db.RegisterMessage(CommitProvenance) CommitInfo = _reflection.GeneratedProtocolMessageType('CommitInfo', (_message.Message,), { 'DESCRIPTOR' : _COMMITINFO, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.CommitInfo) }) _sym_db.RegisterMessage(CommitInfo) FileInfo = _reflection.GeneratedProtocolMessageType('FileInfo', (_message.Message,), { 'DESCRIPTOR' : _FILEINFO, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.FileInfo) }) _sym_db.RegisterMessage(FileInfo) -ByteRange = _reflection.GeneratedProtocolMessageType('ByteRange', (_message.Message,), { - 'DESCRIPTOR' : _BYTERANGE, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ByteRange) - }) -_sym_db.RegisterMessage(ByteRange) - -BlockRef = _reflection.GeneratedProtocolMessageType('BlockRef', (_message.Message,), { - 'DESCRIPTOR' : _BLOCKREF, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.BlockRef) - }) -_sym_db.RegisterMessage(BlockRef) - -ObjectInfo = _reflection.GeneratedProtocolMessageType('ObjectInfo', (_message.Message,), { - 'DESCRIPTOR' : _OBJECTINFO, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ObjectInfo) - }) -_sym_db.RegisterMessage(ObjectInfo) - -Compaction = _reflection.GeneratedProtocolMessageType('Compaction', (_message.Message,), { - 'DESCRIPTOR' : _COMPACTION, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.Compaction) - }) -_sym_db.RegisterMessage(Compaction) - -Shard = _reflection.GeneratedProtocolMessageType('Shard', (_message.Message,), { - 'DESCRIPTOR' : _SHARD, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.Shard) - }) -_sym_db.RegisterMessage(Shard) - -PathRange = _reflection.GeneratedProtocolMessageType('PathRange', (_message.Message,), { - 'DESCRIPTOR' : _PATHRANGE, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.PathRange) - }) -_sym_db.RegisterMessage(PathRange) - CreateRepoRequest = _reflection.GeneratedProtocolMessageType('CreateRepoRequest', (_message.Message,), { 'DESCRIPTOR' : _CREATEREPOREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.CreateRepoRequest) }) _sym_db.RegisterMessage(CreateRepoRequest) InspectRepoRequest = _reflection.GeneratedProtocolMessageType('InspectRepoRequest', (_message.Message,), { 'DESCRIPTOR' : _INSPECTREPOREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.InspectRepoRequest) }) _sym_db.RegisterMessage(InspectRepoRequest) ListRepoRequest = _reflection.GeneratedProtocolMessageType('ListRepoRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTREPOREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.ListRepoRequest) }) _sym_db.RegisterMessage(ListRepoRequest) ListRepoResponse = _reflection.GeneratedProtocolMessageType('ListRepoResponse', (_message.Message,), { 'DESCRIPTOR' : _LISTREPORESPONSE, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.ListRepoResponse) }) _sym_db.RegisterMessage(ListRepoResponse) DeleteRepoRequest = _reflection.GeneratedProtocolMessageType('DeleteRepoRequest', (_message.Message,), { 'DESCRIPTOR' : _DELETEREPOREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.DeleteRepoRequest) }) _sym_db.RegisterMessage(DeleteRepoRequest) StartCommitRequest = _reflection.GeneratedProtocolMessageType('StartCommitRequest', (_message.Message,), { 'DESCRIPTOR' : _STARTCOMMITREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.StartCommitRequest) }) _sym_db.RegisterMessage(StartCommitRequest) -BuildCommitRequest = _reflection.GeneratedProtocolMessageType('BuildCommitRequest', (_message.Message,), { - 'DESCRIPTOR' : _BUILDCOMMITREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.BuildCommitRequest) - }) -_sym_db.RegisterMessage(BuildCommitRequest) - FinishCommitRequest = _reflection.GeneratedProtocolMessageType('FinishCommitRequest', (_message.Message,), { 'DESCRIPTOR' : _FINISHCOMMITREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.FinishCommitRequest) }) _sym_db.RegisterMessage(FinishCommitRequest) InspectCommitRequest = _reflection.GeneratedProtocolMessageType('InspectCommitRequest', (_message.Message,), { 'DESCRIPTOR' : _INSPECTCOMMITREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.InspectCommitRequest) }) _sym_db.RegisterMessage(InspectCommitRequest) ListCommitRequest = _reflection.GeneratedProtocolMessageType('ListCommitRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTCOMMITREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.ListCommitRequest) }) _sym_db.RegisterMessage(ListCommitRequest) CommitInfos = _reflection.GeneratedProtocolMessageType('CommitInfos', (_message.Message,), { 'DESCRIPTOR' : _COMMITINFOS, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.CommitInfos) }) _sym_db.RegisterMessage(CommitInfos) -CreateBranchRequest = _reflection.GeneratedProtocolMessageType('CreateBranchRequest', (_message.Message,), { - 'DESCRIPTOR' : _CREATEBRANCHREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.CreateBranchRequest) - }) -_sym_db.RegisterMessage(CreateBranchRequest) - -InspectBranchRequest = _reflection.GeneratedProtocolMessageType('InspectBranchRequest', (_message.Message,), { - 'DESCRIPTOR' : _INSPECTBRANCHREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.InspectBranchRequest) - }) -_sym_db.RegisterMessage(InspectBranchRequest) - -ListBranchRequest = _reflection.GeneratedProtocolMessageType('ListBranchRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTBRANCHREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ListBranchRequest) - }) -_sym_db.RegisterMessage(ListBranchRequest) - -DeleteBranchRequest = _reflection.GeneratedProtocolMessageType('DeleteBranchRequest', (_message.Message,), { - 'DESCRIPTOR' : _DELETEBRANCHREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DeleteBranchRequest) - }) -_sym_db.RegisterMessage(DeleteBranchRequest) - -DeleteCommitRequest = _reflection.GeneratedProtocolMessageType('DeleteCommitRequest', (_message.Message,), { - 'DESCRIPTOR' : _DELETECOMMITREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DeleteCommitRequest) +SquashCommitRequest = _reflection.GeneratedProtocolMessageType('SquashCommitRequest', (_message.Message,), { + 'DESCRIPTOR' : _SQUASHCOMMITREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.SquashCommitRequest) }) -_sym_db.RegisterMessage(DeleteCommitRequest) +_sym_db.RegisterMessage(SquashCommitRequest) FlushCommitRequest = _reflection.GeneratedProtocolMessageType('FlushCommitRequest', (_message.Message,), { 'DESCRIPTOR' : _FLUSHCOMMITREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.FlushCommitRequest) }) _sym_db.RegisterMessage(FlushCommitRequest) SubscribeCommitRequest = _reflection.GeneratedProtocolMessageType('SubscribeCommitRequest', (_message.Message,), { 'DESCRIPTOR' : _SUBSCRIBECOMMITREQUEST, - '__module__' : 'client.pfs.pfs_pb2' + '__module__' : 'pfs.pfs_pb2' # @@protoc_insertion_point(class_scope:pfs.SubscribeCommitRequest) }) _sym_db.RegisterMessage(SubscribeCommitRequest) -GetFileRequest = _reflection.GeneratedProtocolMessageType('GetFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETFILEREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.GetFileRequest) - }) -_sym_db.RegisterMessage(GetFileRequest) - -OverwriteIndex = _reflection.GeneratedProtocolMessageType('OverwriteIndex', (_message.Message,), { - 'DESCRIPTOR' : _OVERWRITEINDEX, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.OverwriteIndex) - }) -_sym_db.RegisterMessage(OverwriteIndex) - -PutFileRequest = _reflection.GeneratedProtocolMessageType('PutFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _PUTFILEREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.PutFileRequest) - }) -_sym_db.RegisterMessage(PutFileRequest) - -PutFileRecord = _reflection.GeneratedProtocolMessageType('PutFileRecord', (_message.Message,), { - 'DESCRIPTOR' : _PUTFILERECORD, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.PutFileRecord) - }) -_sym_db.RegisterMessage(PutFileRecord) - -PutFileRecords = _reflection.GeneratedProtocolMessageType('PutFileRecords', (_message.Message,), { - 'DESCRIPTOR' : _PUTFILERECORDS, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.PutFileRecords) - }) -_sym_db.RegisterMessage(PutFileRecords) - -CopyFileRequest = _reflection.GeneratedProtocolMessageType('CopyFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _COPYFILEREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.CopyFileRequest) - }) -_sym_db.RegisterMessage(CopyFileRequest) - -InspectFileRequest = _reflection.GeneratedProtocolMessageType('InspectFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _INSPECTFILEREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.InspectFileRequest) - }) -_sym_db.RegisterMessage(InspectFileRequest) - -ListFileRequest = _reflection.GeneratedProtocolMessageType('ListFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTFILEREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ListFileRequest) - }) -_sym_db.RegisterMessage(ListFileRequest) - -WalkFileRequest = _reflection.GeneratedProtocolMessageType('WalkFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _WALKFILEREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.WalkFileRequest) - }) -_sym_db.RegisterMessage(WalkFileRequest) - -GlobFileRequest = _reflection.GeneratedProtocolMessageType('GlobFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _GLOBFILEREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.GlobFileRequest) - }) -_sym_db.RegisterMessage(GlobFileRequest) - -FileInfos = _reflection.GeneratedProtocolMessageType('FileInfos', (_message.Message,), { - 'DESCRIPTOR' : _FILEINFOS, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.FileInfos) - }) -_sym_db.RegisterMessage(FileInfos) - -DiffFileRequest = _reflection.GeneratedProtocolMessageType('DiffFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _DIFFFILEREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DiffFileRequest) - }) -_sym_db.RegisterMessage(DiffFileRequest) - -DiffFileResponse = _reflection.GeneratedProtocolMessageType('DiffFileResponse', (_message.Message,), { - 'DESCRIPTOR' : _DIFFFILERESPONSE, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DiffFileResponse) - }) -_sym_db.RegisterMessage(DiffFileResponse) - -DeleteFileRequest = _reflection.GeneratedProtocolMessageType('DeleteFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _DELETEFILEREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DeleteFileRequest) - }) -_sym_db.RegisterMessage(DeleteFileRequest) - -FsckRequest = _reflection.GeneratedProtocolMessageType('FsckRequest', (_message.Message,), { - 'DESCRIPTOR' : _FSCKREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.FsckRequest) - }) -_sym_db.RegisterMessage(FsckRequest) - -FsckResponse = _reflection.GeneratedProtocolMessageType('FsckResponse', (_message.Message,), { - 'DESCRIPTOR' : _FSCKRESPONSE, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.FsckResponse) - }) -_sym_db.RegisterMessage(FsckResponse) - -FileOperationRequestV2 = _reflection.GeneratedProtocolMessageType('FileOperationRequestV2', (_message.Message,), { - 'DESCRIPTOR' : _FILEOPERATIONREQUESTV2, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.FileOperationRequestV2) - }) -_sym_db.RegisterMessage(FileOperationRequestV2) - -PutTarRequestV2 = _reflection.GeneratedProtocolMessageType('PutTarRequestV2', (_message.Message,), { - 'DESCRIPTOR' : _PUTTARREQUESTV2, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.PutTarRequestV2) - }) -_sym_db.RegisterMessage(PutTarRequestV2) - -DeleteFilesRequestV2 = _reflection.GeneratedProtocolMessageType('DeleteFilesRequestV2', (_message.Message,), { - 'DESCRIPTOR' : _DELETEFILESREQUESTV2, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DeleteFilesRequestV2) - }) -_sym_db.RegisterMessage(DeleteFilesRequestV2) - -GetTarRequestV2 = _reflection.GeneratedProtocolMessageType('GetTarRequestV2', (_message.Message,), { - 'DESCRIPTOR' : _GETTARREQUESTV2, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.GetTarRequestV2) +ClearCommitRequest = _reflection.GeneratedProtocolMessageType('ClearCommitRequest', (_message.Message,), { + 'DESCRIPTOR' : _CLEARCOMMITREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.ClearCommitRequest) }) -_sym_db.RegisterMessage(GetTarRequestV2) +_sym_db.RegisterMessage(ClearCommitRequest) -DiffFileResponseV2 = _reflection.GeneratedProtocolMessageType('DiffFileResponseV2', (_message.Message,), { - 'DESCRIPTOR' : _DIFFFILERESPONSEV2, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DiffFileResponseV2) +CreateBranchRequest = _reflection.GeneratedProtocolMessageType('CreateBranchRequest', (_message.Message,), { + 'DESCRIPTOR' : _CREATEBRANCHREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.CreateBranchRequest) }) -_sym_db.RegisterMessage(DiffFileResponseV2) +_sym_db.RegisterMessage(CreateBranchRequest) -CreateTmpFileSetResponse = _reflection.GeneratedProtocolMessageType('CreateTmpFileSetResponse', (_message.Message,), { - 'DESCRIPTOR' : _CREATETMPFILESETRESPONSE, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.CreateTmpFileSetResponse) +InspectBranchRequest = _reflection.GeneratedProtocolMessageType('InspectBranchRequest', (_message.Message,), { + 'DESCRIPTOR' : _INSPECTBRANCHREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.InspectBranchRequest) }) -_sym_db.RegisterMessage(CreateTmpFileSetResponse) +_sym_db.RegisterMessage(InspectBranchRequest) -RenewTmpFileSetRequest = _reflection.GeneratedProtocolMessageType('RenewTmpFileSetRequest', (_message.Message,), { - 'DESCRIPTOR' : _RENEWTMPFILESETREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.RenewTmpFileSetRequest) +ListBranchRequest = _reflection.GeneratedProtocolMessageType('ListBranchRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTBRANCHREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.ListBranchRequest) }) -_sym_db.RegisterMessage(RenewTmpFileSetRequest) +_sym_db.RegisterMessage(ListBranchRequest) -ClearCommitRequestV2 = _reflection.GeneratedProtocolMessageType('ClearCommitRequestV2', (_message.Message,), { - 'DESCRIPTOR' : _CLEARCOMMITREQUESTV2, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ClearCommitRequestV2) +DeleteBranchRequest = _reflection.GeneratedProtocolMessageType('DeleteBranchRequest', (_message.Message,), { + 'DESCRIPTOR' : _DELETEBRANCHREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.DeleteBranchRequest) }) -_sym_db.RegisterMessage(ClearCommitRequestV2) +_sym_db.RegisterMessage(DeleteBranchRequest) -PutObjectRequest = _reflection.GeneratedProtocolMessageType('PutObjectRequest', (_message.Message,), { - 'DESCRIPTOR' : _PUTOBJECTREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.PutObjectRequest) +AppendFile = _reflection.GeneratedProtocolMessageType('AppendFile', (_message.Message,), { + 'DESCRIPTOR' : _APPENDFILE, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.AppendFile) }) -_sym_db.RegisterMessage(PutObjectRequest) +_sym_db.RegisterMessage(AppendFile) -CreateObjectRequest = _reflection.GeneratedProtocolMessageType('CreateObjectRequest', (_message.Message,), { - 'DESCRIPTOR' : _CREATEOBJECTREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.CreateObjectRequest) +RawFileSource = _reflection.GeneratedProtocolMessageType('RawFileSource', (_message.Message,), { + 'DESCRIPTOR' : _RAWFILESOURCE, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.RawFileSource) }) -_sym_db.RegisterMessage(CreateObjectRequest) +_sym_db.RegisterMessage(RawFileSource) -GetObjectsRequest = _reflection.GeneratedProtocolMessageType('GetObjectsRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETOBJECTSREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.GetObjectsRequest) +TarFileSource = _reflection.GeneratedProtocolMessageType('TarFileSource', (_message.Message,), { + 'DESCRIPTOR' : _TARFILESOURCE, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.TarFileSource) }) -_sym_db.RegisterMessage(GetObjectsRequest) +_sym_db.RegisterMessage(TarFileSource) -PutBlockRequest = _reflection.GeneratedProtocolMessageType('PutBlockRequest', (_message.Message,), { - 'DESCRIPTOR' : _PUTBLOCKREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.PutBlockRequest) +URLFileSource = _reflection.GeneratedProtocolMessageType('URLFileSource', (_message.Message,), { + 'DESCRIPTOR' : _URLFILESOURCE, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.URLFileSource) }) -_sym_db.RegisterMessage(PutBlockRequest) +_sym_db.RegisterMessage(URLFileSource) -GetBlockRequest = _reflection.GeneratedProtocolMessageType('GetBlockRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETBLOCKREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.GetBlockRequest) +DeleteFile = _reflection.GeneratedProtocolMessageType('DeleteFile', (_message.Message,), { + 'DESCRIPTOR' : _DELETEFILE, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.DeleteFile) }) -_sym_db.RegisterMessage(GetBlockRequest) +_sym_db.RegisterMessage(DeleteFile) -GetBlocksRequest = _reflection.GeneratedProtocolMessageType('GetBlocksRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETBLOCKSREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.GetBlocksRequest) +ModifyFileRequest = _reflection.GeneratedProtocolMessageType('ModifyFileRequest', (_message.Message,), { + 'DESCRIPTOR' : _MODIFYFILEREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.ModifyFileRequest) }) -_sym_db.RegisterMessage(GetBlocksRequest) +_sym_db.RegisterMessage(ModifyFileRequest) -ListBlockRequest = _reflection.GeneratedProtocolMessageType('ListBlockRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTBLOCKREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ListBlockRequest) +CopyFileRequest = _reflection.GeneratedProtocolMessageType('CopyFileRequest', (_message.Message,), { + 'DESCRIPTOR' : _COPYFILEREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.CopyFileRequest) }) -_sym_db.RegisterMessage(ListBlockRequest) +_sym_db.RegisterMessage(CopyFileRequest) -TagObjectRequest = _reflection.GeneratedProtocolMessageType('TagObjectRequest', (_message.Message,), { - 'DESCRIPTOR' : _TAGOBJECTREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.TagObjectRequest) +GetFileRequest = _reflection.GeneratedProtocolMessageType('GetFileRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETFILEREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.GetFileRequest) }) -_sym_db.RegisterMessage(TagObjectRequest) +_sym_db.RegisterMessage(GetFileRequest) -ListObjectsRequest = _reflection.GeneratedProtocolMessageType('ListObjectsRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTOBJECTSREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ListObjectsRequest) +InspectFileRequest = _reflection.GeneratedProtocolMessageType('InspectFileRequest', (_message.Message,), { + 'DESCRIPTOR' : _INSPECTFILEREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.InspectFileRequest) }) -_sym_db.RegisterMessage(ListObjectsRequest) +_sym_db.RegisterMessage(InspectFileRequest) -ListTagsRequest = _reflection.GeneratedProtocolMessageType('ListTagsRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTTAGSREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ListTagsRequest) +ListFileRequest = _reflection.GeneratedProtocolMessageType('ListFileRequest', (_message.Message,), { + 'DESCRIPTOR' : _LISTFILEREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.ListFileRequest) }) -_sym_db.RegisterMessage(ListTagsRequest) +_sym_db.RegisterMessage(ListFileRequest) -ListTagsResponse = _reflection.GeneratedProtocolMessageType('ListTagsResponse', (_message.Message,), { - 'DESCRIPTOR' : _LISTTAGSRESPONSE, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ListTagsResponse) +WalkFileRequest = _reflection.GeneratedProtocolMessageType('WalkFileRequest', (_message.Message,), { + 'DESCRIPTOR' : _WALKFILEREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.WalkFileRequest) }) -_sym_db.RegisterMessage(ListTagsResponse) +_sym_db.RegisterMessage(WalkFileRequest) -DeleteObjectsRequest = _reflection.GeneratedProtocolMessageType('DeleteObjectsRequest', (_message.Message,), { - 'DESCRIPTOR' : _DELETEOBJECTSREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DeleteObjectsRequest) +GlobFileRequest = _reflection.GeneratedProtocolMessageType('GlobFileRequest', (_message.Message,), { + 'DESCRIPTOR' : _GLOBFILEREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.GlobFileRequest) }) -_sym_db.RegisterMessage(DeleteObjectsRequest) +_sym_db.RegisterMessage(GlobFileRequest) -DeleteObjectsResponse = _reflection.GeneratedProtocolMessageType('DeleteObjectsResponse', (_message.Message,), { - 'DESCRIPTOR' : _DELETEOBJECTSRESPONSE, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DeleteObjectsResponse) +DiffFileRequest = _reflection.GeneratedProtocolMessageType('DiffFileRequest', (_message.Message,), { + 'DESCRIPTOR' : _DIFFFILEREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.DiffFileRequest) }) -_sym_db.RegisterMessage(DeleteObjectsResponse) +_sym_db.RegisterMessage(DiffFileRequest) -DeleteTagsRequest = _reflection.GeneratedProtocolMessageType('DeleteTagsRequest', (_message.Message,), { - 'DESCRIPTOR' : _DELETETAGSREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DeleteTagsRequest) +DiffFileResponse = _reflection.GeneratedProtocolMessageType('DiffFileResponse', (_message.Message,), { + 'DESCRIPTOR' : _DIFFFILERESPONSE, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.DiffFileResponse) }) -_sym_db.RegisterMessage(DeleteTagsRequest) +_sym_db.RegisterMessage(DiffFileResponse) -DeleteTagsResponse = _reflection.GeneratedProtocolMessageType('DeleteTagsResponse', (_message.Message,), { - 'DESCRIPTOR' : _DELETETAGSRESPONSE, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DeleteTagsResponse) +FsckRequest = _reflection.GeneratedProtocolMessageType('FsckRequest', (_message.Message,), { + 'DESCRIPTOR' : _FSCKREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.FsckRequest) }) -_sym_db.RegisterMessage(DeleteTagsResponse) +_sym_db.RegisterMessage(FsckRequest) -CheckObjectRequest = _reflection.GeneratedProtocolMessageType('CheckObjectRequest', (_message.Message,), { - 'DESCRIPTOR' : _CHECKOBJECTREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.CheckObjectRequest) +FsckResponse = _reflection.GeneratedProtocolMessageType('FsckResponse', (_message.Message,), { + 'DESCRIPTOR' : _FSCKRESPONSE, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.FsckResponse) }) -_sym_db.RegisterMessage(CheckObjectRequest) +_sym_db.RegisterMessage(FsckResponse) -CheckObjectResponse = _reflection.GeneratedProtocolMessageType('CheckObjectResponse', (_message.Message,), { - 'DESCRIPTOR' : _CHECKOBJECTRESPONSE, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.CheckObjectResponse) +CreateFilesetResponse = _reflection.GeneratedProtocolMessageType('CreateFilesetResponse', (_message.Message,), { + 'DESCRIPTOR' : _CREATEFILESETRESPONSE, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.CreateFilesetResponse) }) -_sym_db.RegisterMessage(CheckObjectResponse) +_sym_db.RegisterMessage(CreateFilesetResponse) -Objects = _reflection.GeneratedProtocolMessageType('Objects', (_message.Message,), { - 'DESCRIPTOR' : _OBJECTS, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.Objects) +RenewFilesetRequest = _reflection.GeneratedProtocolMessageType('RenewFilesetRequest', (_message.Message,), { + 'DESCRIPTOR' : _RENEWFILESETREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.RenewFilesetRequest) }) -_sym_db.RegisterMessage(Objects) +_sym_db.RegisterMessage(RenewFilesetRequest) -PutObjDirectRequest = _reflection.GeneratedProtocolMessageType('PutObjDirectRequest', (_message.Message,), { - 'DESCRIPTOR' : _PUTOBJDIRECTREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.PutObjDirectRequest) +AddFilesetRequest = _reflection.GeneratedProtocolMessageType('AddFilesetRequest', (_message.Message,), { + 'DESCRIPTOR' : _ADDFILESETREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.AddFilesetRequest) }) -_sym_db.RegisterMessage(PutObjDirectRequest) +_sym_db.RegisterMessage(AddFilesetRequest) -GetObjDirectRequest = _reflection.GeneratedProtocolMessageType('GetObjDirectRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETOBJDIRECTREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.GetObjDirectRequest) +GetFilesetRequest = _reflection.GeneratedProtocolMessageType('GetFilesetRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETFILESETREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.GetFilesetRequest) }) -_sym_db.RegisterMessage(GetObjDirectRequest) +_sym_db.RegisterMessage(GetFilesetRequest) -DeleteObjDirectRequest = _reflection.GeneratedProtocolMessageType('DeleteObjDirectRequest', (_message.Message,), { - 'DESCRIPTOR' : _DELETEOBJDIRECTREQUEST, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.DeleteObjDirectRequest) +ActivateAuthRequest = _reflection.GeneratedProtocolMessageType('ActivateAuthRequest', (_message.Message,), { + 'DESCRIPTOR' : _ACTIVATEAUTHREQUEST, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.ActivateAuthRequest) }) -_sym_db.RegisterMessage(DeleteObjDirectRequest) - -ObjectIndex = _reflection.GeneratedProtocolMessageType('ObjectIndex', (_message.Message,), { - - 'ObjectsEntry' : _reflection.GeneratedProtocolMessageType('ObjectsEntry', (_message.Message,), { - 'DESCRIPTOR' : _OBJECTINDEX_OBJECTSENTRY, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ObjectIndex.ObjectsEntry) - }) - , +_sym_db.RegisterMessage(ActivateAuthRequest) - 'TagsEntry' : _reflection.GeneratedProtocolMessageType('TagsEntry', (_message.Message,), { - 'DESCRIPTOR' : _OBJECTINDEX_TAGSENTRY, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ObjectIndex.TagsEntry) - }) - , - 'DESCRIPTOR' : _OBJECTINDEX, - '__module__' : 'client.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.ObjectIndex) +ActivateAuthResponse = _reflection.GeneratedProtocolMessageType('ActivateAuthResponse', (_message.Message,), { + 'DESCRIPTOR' : _ACTIVATEAUTHRESPONSE, + '__module__' : 'pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.ActivateAuthResponse) }) -_sym_db.RegisterMessage(ObjectIndex) -_sym_db.RegisterMessage(ObjectIndex.ObjectsEntry) -_sym_db.RegisterMessage(ObjectIndex.TagsEntry) +_sym_db.RegisterMessage(ActivateAuthResponse) DESCRIPTOR._options = None -_OBJECTINDEX_OBJECTSENTRY._options = None -_OBJECTINDEX_TAGSENTRY._options = None _API = _descriptor.ServiceDescriptor( name='API', @@ -4751,8 +2996,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=7909, - serialized_end=10165, + serialized_start=4949, + serialized_end=6888, methods=[ _descriptor.MethodDescriptor( name='CreateRepo', @@ -4823,31 +3068,22 @@ index=7, containing_service=None, input_type=_LISTCOMMITREQUEST, - output_type=_COMMITINFOS, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ListCommitStream', - full_name='pfs.API.ListCommitStream', - index=8, - containing_service=None, - input_type=_LISTCOMMITREQUEST, output_type=_COMMITINFO, serialized_options=None, ), _descriptor.MethodDescriptor( - name='DeleteCommit', - full_name='pfs.API.DeleteCommit', - index=9, + name='SquashCommit', + full_name='pfs.API.SquashCommit', + index=8, containing_service=None, - input_type=_DELETECOMMITREQUEST, + input_type=_SQUASHCOMMITREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=None, ), _descriptor.MethodDescriptor( name='FlushCommit', full_name='pfs.API.FlushCommit', - index=10, + index=9, containing_service=None, input_type=_FLUSHCOMMITREQUEST, output_type=_COMMITINFO, @@ -4856,25 +3092,25 @@ _descriptor.MethodDescriptor( name='SubscribeCommit', full_name='pfs.API.SubscribeCommit', - index=11, + index=10, containing_service=None, input_type=_SUBSCRIBECOMMITREQUEST, output_type=_COMMITINFO, serialized_options=None, ), _descriptor.MethodDescriptor( - name='BuildCommit', - full_name='pfs.API.BuildCommit', - index=12, + name='ClearCommit', + full_name='pfs.API.ClearCommit', + index=11, containing_service=None, - input_type=_BUILDCOMMITREQUEST, - output_type=_COMMIT, + input_type=_CLEARCOMMITREQUEST, + output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=None, ), _descriptor.MethodDescriptor( name='CreateBranch', full_name='pfs.API.CreateBranch', - index=13, + index=12, containing_service=None, input_type=_CREATEBRANCHREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -4883,7 +3119,7 @@ _descriptor.MethodDescriptor( name='InspectBranch', full_name='pfs.API.InspectBranch', - index=14, + index=13, containing_service=None, input_type=_INSPECTBRANCHREQUEST, output_type=_BRANCHINFO, @@ -4892,7 +3128,7 @@ _descriptor.MethodDescriptor( name='ListBranch', full_name='pfs.API.ListBranch', - index=15, + index=14, containing_service=None, input_type=_LISTBRANCHREQUEST, output_type=_BRANCHINFOS, @@ -4901,25 +3137,25 @@ _descriptor.MethodDescriptor( name='DeleteBranch', full_name='pfs.API.DeleteBranch', - index=16, + index=15, containing_service=None, input_type=_DELETEBRANCHREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=None, ), _descriptor.MethodDescriptor( - name='PutFile', - full_name='pfs.API.PutFile', - index=17, + name='ModifyFile', + full_name='pfs.API.ModifyFile', + index=16, containing_service=None, - input_type=_PUTFILEREQUEST, + input_type=_MODIFYFILEREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=None, ), _descriptor.MethodDescriptor( name='CopyFile', full_name='pfs.API.CopyFile', - index=18, + index=17, containing_service=None, input_type=_COPYFILEREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -4928,7 +3164,7 @@ _descriptor.MethodDescriptor( name='GetFile', full_name='pfs.API.GetFile', - index=19, + index=18, containing_service=None, input_type=_GETFILEREQUEST, output_type=google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE, @@ -4937,7 +3173,7 @@ _descriptor.MethodDescriptor( name='InspectFile', full_name='pfs.API.InspectFile', - index=20, + index=19, containing_service=None, input_type=_INSPECTFILEREQUEST, output_type=_FILEINFO, @@ -4946,16 +3182,7 @@ _descriptor.MethodDescriptor( name='ListFile', full_name='pfs.API.ListFile', - index=21, - containing_service=None, - input_type=_LISTFILEREQUEST, - output_type=_FILEINFOS, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ListFileStream', - full_name='pfs.API.ListFileStream', - index=22, + index=20, containing_service=None, input_type=_LISTFILEREQUEST, output_type=_FILEINFO, @@ -4964,7 +3191,7 @@ _descriptor.MethodDescriptor( name='WalkFile', full_name='pfs.API.WalkFile', - index=23, + index=21, containing_service=None, input_type=_WALKFILEREQUEST, output_type=_FILEINFO, @@ -4973,16 +3200,7 @@ _descriptor.MethodDescriptor( name='GlobFile', full_name='pfs.API.GlobFile', - index=24, - containing_service=None, - input_type=_GLOBFILEREQUEST, - output_type=_FILEINFOS, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GlobFileStream', - full_name='pfs.API.GlobFileStream', - index=25, + index=22, containing_service=None, input_type=_GLOBFILEREQUEST, output_type=_FILEINFO, @@ -4991,25 +3209,25 @@ _descriptor.MethodDescriptor( name='DiffFile', full_name='pfs.API.DiffFile', - index=26, + index=23, containing_service=None, input_type=_DIFFFILEREQUEST, output_type=_DIFFFILERESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( - name='DeleteFile', - full_name='pfs.API.DeleteFile', - index=27, + name='ActivateAuth', + full_name='pfs.API.ActivateAuth', + index=24, containing_service=None, - input_type=_DELETEFILEREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, + input_type=_ACTIVATEAUTHREQUEST, + output_type=_ACTIVATEAUTHRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( name='DeleteAll', full_name='pfs.API.DeleteAll', - index=28, + index=25, containing_service=None, input_type=google_dot_protobuf_dot_empty__pb2._EMPTY, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5018,63 +3236,45 @@ _descriptor.MethodDescriptor( name='Fsck', full_name='pfs.API.Fsck', - index=29, + index=26, containing_service=None, input_type=_FSCKREQUEST, output_type=_FSCKRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( - name='FileOperationV2', - full_name='pfs.API.FileOperationV2', - index=30, + name='AddFileset', + full_name='pfs.API.AddFileset', + index=27, containing_service=None, - input_type=_FILEOPERATIONREQUESTV2, + input_type=_ADDFILESETREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=None, ), _descriptor.MethodDescriptor( - name='GetTarV2', - full_name='pfs.API.GetTarV2', - index=31, - containing_service=None, - input_type=_GETTARREQUESTV2, - output_type=google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='DiffFileV2', - full_name='pfs.API.DiffFileV2', - index=32, - containing_service=None, - input_type=_DIFFFILEREQUEST, - output_type=_DIFFFILERESPONSEV2, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='CreateTmpFileSet', - full_name='pfs.API.CreateTmpFileSet', - index=33, + name='GetFileset', + full_name='pfs.API.GetFileset', + index=28, containing_service=None, - input_type=_FILEOPERATIONREQUESTV2, - output_type=_CREATETMPFILESETRESPONSE, + input_type=_GETFILESETREQUEST, + output_type=_CREATEFILESETRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( - name='RenewTmpFileSet', - full_name='pfs.API.RenewTmpFileSet', - index=34, + name='CreateFileset', + full_name='pfs.API.CreateFileset', + index=29, containing_service=None, - input_type=_RENEWTMPFILESETREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, + input_type=_MODIFYFILEREQUEST, + output_type=_CREATEFILESETRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( - name='ClearCommitV2', - full_name='pfs.API.ClearCommitV2', - index=35, + name='RenewFileset', + full_name='pfs.API.RenewFileset', + index=30, containing_service=None, - input_type=_CLEARCOMMITREQUESTV2, + input_type=_RENEWFILESETREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=None, ), @@ -5083,226 +3283,4 @@ DESCRIPTOR.services_by_name['API'] = _API - -_OBJECTAPI = _descriptor.ServiceDescriptor( - name='ObjectAPI', - full_name='pfs.ObjectAPI', - file=DESCRIPTOR, - index=1, - serialized_options=None, - serialized_start=10168, - serialized_end=11620, - methods=[ - _descriptor.MethodDescriptor( - name='PutObject', - full_name='pfs.ObjectAPI.PutObject', - index=0, - containing_service=None, - input_type=_PUTOBJECTREQUEST, - output_type=_OBJECT, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='PutObjectSplit', - full_name='pfs.ObjectAPI.PutObjectSplit', - index=1, - containing_service=None, - input_type=_PUTOBJECTREQUEST, - output_type=_OBJECTS, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='PutObjects', - full_name='pfs.ObjectAPI.PutObjects', - index=2, - containing_service=None, - input_type=_PUTOBJECTREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='CreateObject', - full_name='pfs.ObjectAPI.CreateObject', - index=3, - containing_service=None, - input_type=_CREATEOBJECTREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetObject', - full_name='pfs.ObjectAPI.GetObject', - index=4, - containing_service=None, - input_type=_OBJECT, - output_type=google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetObjects', - full_name='pfs.ObjectAPI.GetObjects', - index=5, - containing_service=None, - input_type=_GETOBJECTSREQUEST, - output_type=google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='PutBlock', - full_name='pfs.ObjectAPI.PutBlock', - index=6, - containing_service=None, - input_type=_PUTBLOCKREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetBlock', - full_name='pfs.ObjectAPI.GetBlock', - index=7, - containing_service=None, - input_type=_GETBLOCKREQUEST, - output_type=google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetBlocks', - full_name='pfs.ObjectAPI.GetBlocks', - index=8, - containing_service=None, - input_type=_GETBLOCKSREQUEST, - output_type=google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ListBlock', - full_name='pfs.ObjectAPI.ListBlock', - index=9, - containing_service=None, - input_type=_LISTBLOCKREQUEST, - output_type=_BLOCK, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='TagObject', - full_name='pfs.ObjectAPI.TagObject', - index=10, - containing_service=None, - input_type=_TAGOBJECTREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='InspectObject', - full_name='pfs.ObjectAPI.InspectObject', - index=11, - containing_service=None, - input_type=_OBJECT, - output_type=_OBJECTINFO, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='CheckObject', - full_name='pfs.ObjectAPI.CheckObject', - index=12, - containing_service=None, - input_type=_CHECKOBJECTREQUEST, - output_type=_CHECKOBJECTRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ListObjects', - full_name='pfs.ObjectAPI.ListObjects', - index=13, - containing_service=None, - input_type=_LISTOBJECTSREQUEST, - output_type=_OBJECTINFO, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='DeleteObjects', - full_name='pfs.ObjectAPI.DeleteObjects', - index=14, - containing_service=None, - input_type=_DELETEOBJECTSREQUEST, - output_type=_DELETEOBJECTSRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetTag', - full_name='pfs.ObjectAPI.GetTag', - index=15, - containing_service=None, - input_type=_TAG, - output_type=google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='InspectTag', - full_name='pfs.ObjectAPI.InspectTag', - index=16, - containing_service=None, - input_type=_TAG, - output_type=_OBJECTINFO, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ListTags', - full_name='pfs.ObjectAPI.ListTags', - index=17, - containing_service=None, - input_type=_LISTTAGSREQUEST, - output_type=_LISTTAGSRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='DeleteTags', - full_name='pfs.ObjectAPI.DeleteTags', - index=18, - containing_service=None, - input_type=_DELETETAGSREQUEST, - output_type=_DELETETAGSRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='Compact', - full_name='pfs.ObjectAPI.Compact', - index=19, - containing_service=None, - input_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='PutObjDirect', - full_name='pfs.ObjectAPI.PutObjDirect', - index=20, - containing_service=None, - input_type=_PUTOBJDIRECTREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetObjDirect', - full_name='pfs.ObjectAPI.GetObjDirect', - index=21, - containing_service=None, - input_type=_GETOBJDIRECTREQUEST, - output_type=google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='DeleteObjDirect', - full_name='pfs.ObjectAPI.DeleteObjDirect', - index=22, - containing_service=None, - input_type=_DELETEOBJDIRECTREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - serialized_options=None, - ), -]) -_sym_db.RegisterServiceDescriptor(_OBJECTAPI) - -DESCRIPTOR.services_by_name['ObjectAPI'] = _OBJECTAPI - # @@protoc_insertion_point(module_scope) diff --git a/src/python_pachyderm/proto/pfs/pfs_pb2_grpc.py b/src/python_pachyderm/proto/pfs/pfs_pb2_grpc.py index 24d3c648..c345e1c3 100644 --- a/src/python_pachyderm/proto/pfs/pfs_pb2_grpc.py +++ b/src/python_pachyderm/proto/pfs/pfs_pb2_grpc.py @@ -1,9 +1,9 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc -from python_pachyderm.proto.pfs import pfs_pb2 as client_dot_pfs_dot_pfs__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 +from pfs import pfs_pb2 as pfs_dot_pfs__pb2 class APIStub(object): @@ -18,143 +18,128 @@ def __init__(self, channel): """ self.CreateRepo = channel.unary_unary( '/pfs.API/CreateRepo', - request_serializer=client_dot_pfs_dot_pfs__pb2.CreateRepoRequest.SerializeToString, + request_serializer=pfs_dot_pfs__pb2.CreateRepoRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.InspectRepo = channel.unary_unary( '/pfs.API/InspectRepo', - request_serializer=client_dot_pfs_dot_pfs__pb2.InspectRepoRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.RepoInfo.FromString, + request_serializer=pfs_dot_pfs__pb2.InspectRepoRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.RepoInfo.FromString, ) self.ListRepo = channel.unary_unary( '/pfs.API/ListRepo', - request_serializer=client_dot_pfs_dot_pfs__pb2.ListRepoRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.ListRepoResponse.FromString, + request_serializer=pfs_dot_pfs__pb2.ListRepoRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.ListRepoResponse.FromString, ) self.DeleteRepo = channel.unary_unary( '/pfs.API/DeleteRepo', - request_serializer=client_dot_pfs_dot_pfs__pb2.DeleteRepoRequest.SerializeToString, + request_serializer=pfs_dot_pfs__pb2.DeleteRepoRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.StartCommit = channel.unary_unary( '/pfs.API/StartCommit', - request_serializer=client_dot_pfs_dot_pfs__pb2.StartCommitRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.Commit.FromString, + request_serializer=pfs_dot_pfs__pb2.StartCommitRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.Commit.FromString, ) self.FinishCommit = channel.unary_unary( '/pfs.API/FinishCommit', - request_serializer=client_dot_pfs_dot_pfs__pb2.FinishCommitRequest.SerializeToString, + request_serializer=pfs_dot_pfs__pb2.FinishCommitRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.InspectCommit = channel.unary_unary( '/pfs.API/InspectCommit', - request_serializer=client_dot_pfs_dot_pfs__pb2.InspectCommitRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.CommitInfo.FromString, + request_serializer=pfs_dot_pfs__pb2.InspectCommitRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.CommitInfo.FromString, ) - self.ListCommit = channel.unary_unary( + self.ListCommit = channel.unary_stream( '/pfs.API/ListCommit', - request_serializer=client_dot_pfs_dot_pfs__pb2.ListCommitRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.CommitInfos.FromString, + request_serializer=pfs_dot_pfs__pb2.ListCommitRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.CommitInfo.FromString, ) - self.ListCommitStream = channel.unary_stream( - '/pfs.API/ListCommitStream', - request_serializer=client_dot_pfs_dot_pfs__pb2.ListCommitRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.CommitInfo.FromString, - ) - self.DeleteCommit = channel.unary_unary( - '/pfs.API/DeleteCommit', - request_serializer=client_dot_pfs_dot_pfs__pb2.DeleteCommitRequest.SerializeToString, + self.SquashCommit = channel.unary_unary( + '/pfs.API/SquashCommit', + request_serializer=pfs_dot_pfs__pb2.SquashCommitRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.FlushCommit = channel.unary_stream( '/pfs.API/FlushCommit', - request_serializer=client_dot_pfs_dot_pfs__pb2.FlushCommitRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.CommitInfo.FromString, + request_serializer=pfs_dot_pfs__pb2.FlushCommitRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.CommitInfo.FromString, ) self.SubscribeCommit = channel.unary_stream( '/pfs.API/SubscribeCommit', - request_serializer=client_dot_pfs_dot_pfs__pb2.SubscribeCommitRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.CommitInfo.FromString, + request_serializer=pfs_dot_pfs__pb2.SubscribeCommitRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.CommitInfo.FromString, ) - self.BuildCommit = channel.unary_unary( - '/pfs.API/BuildCommit', - request_serializer=client_dot_pfs_dot_pfs__pb2.BuildCommitRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.Commit.FromString, + self.ClearCommit = channel.unary_unary( + '/pfs.API/ClearCommit', + request_serializer=pfs_dot_pfs__pb2.ClearCommitRequest.SerializeToString, + response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.CreateBranch = channel.unary_unary( '/pfs.API/CreateBranch', - request_serializer=client_dot_pfs_dot_pfs__pb2.CreateBranchRequest.SerializeToString, + request_serializer=pfs_dot_pfs__pb2.CreateBranchRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.InspectBranch = channel.unary_unary( '/pfs.API/InspectBranch', - request_serializer=client_dot_pfs_dot_pfs__pb2.InspectBranchRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.BranchInfo.FromString, + request_serializer=pfs_dot_pfs__pb2.InspectBranchRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.BranchInfo.FromString, ) self.ListBranch = channel.unary_unary( '/pfs.API/ListBranch', - request_serializer=client_dot_pfs_dot_pfs__pb2.ListBranchRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.BranchInfos.FromString, + request_serializer=pfs_dot_pfs__pb2.ListBranchRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.BranchInfos.FromString, ) self.DeleteBranch = channel.unary_unary( '/pfs.API/DeleteBranch', - request_serializer=client_dot_pfs_dot_pfs__pb2.DeleteBranchRequest.SerializeToString, + request_serializer=pfs_dot_pfs__pb2.DeleteBranchRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) - self.PutFile = channel.stream_unary( - '/pfs.API/PutFile', - request_serializer=client_dot_pfs_dot_pfs__pb2.PutFileRequest.SerializeToString, + self.ModifyFile = channel.stream_unary( + '/pfs.API/ModifyFile', + request_serializer=pfs_dot_pfs__pb2.ModifyFileRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.CopyFile = channel.unary_unary( '/pfs.API/CopyFile', - request_serializer=client_dot_pfs_dot_pfs__pb2.CopyFileRequest.SerializeToString, + request_serializer=pfs_dot_pfs__pb2.CopyFileRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.GetFile = channel.unary_stream( '/pfs.API/GetFile', - request_serializer=client_dot_pfs_dot_pfs__pb2.GetFileRequest.SerializeToString, + request_serializer=pfs_dot_pfs__pb2.GetFileRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, ) self.InspectFile = channel.unary_unary( '/pfs.API/InspectFile', - request_serializer=client_dot_pfs_dot_pfs__pb2.InspectFileRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.FileInfo.FromString, + request_serializer=pfs_dot_pfs__pb2.InspectFileRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.FileInfo.FromString, ) - self.ListFile = channel.unary_unary( + self.ListFile = channel.unary_stream( '/pfs.API/ListFile', - request_serializer=client_dot_pfs_dot_pfs__pb2.ListFileRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.FileInfos.FromString, - ) - self.ListFileStream = channel.unary_stream( - '/pfs.API/ListFileStream', - request_serializer=client_dot_pfs_dot_pfs__pb2.ListFileRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.FileInfo.FromString, + request_serializer=pfs_dot_pfs__pb2.ListFileRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.FileInfo.FromString, ) self.WalkFile = channel.unary_stream( '/pfs.API/WalkFile', - request_serializer=client_dot_pfs_dot_pfs__pb2.WalkFileRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.FileInfo.FromString, + request_serializer=pfs_dot_pfs__pb2.WalkFileRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.FileInfo.FromString, ) - self.GlobFile = channel.unary_unary( + self.GlobFile = channel.unary_stream( '/pfs.API/GlobFile', - request_serializer=client_dot_pfs_dot_pfs__pb2.GlobFileRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.FileInfos.FromString, - ) - self.GlobFileStream = channel.unary_stream( - '/pfs.API/GlobFileStream', - request_serializer=client_dot_pfs_dot_pfs__pb2.GlobFileRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.FileInfo.FromString, + request_serializer=pfs_dot_pfs__pb2.GlobFileRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.FileInfo.FromString, ) - self.DiffFile = channel.unary_unary( + self.DiffFile = channel.unary_stream( '/pfs.API/DiffFile', - request_serializer=client_dot_pfs_dot_pfs__pb2.DiffFileRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.DiffFileResponse.FromString, + request_serializer=pfs_dot_pfs__pb2.DiffFileRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.DiffFileResponse.FromString, ) - self.DeleteFile = channel.unary_unary( - '/pfs.API/DeleteFile', - request_serializer=client_dot_pfs_dot_pfs__pb2.DeleteFileRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + self.ActivateAuth = channel.unary_unary( + '/pfs.API/ActivateAuth', + request_serializer=pfs_dot_pfs__pb2.ActivateAuthRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.ActivateAuthResponse.FromString, ) self.DeleteAll = channel.unary_unary( '/pfs.API/DeleteAll', @@ -163,37 +148,27 @@ def __init__(self, channel): ) self.Fsck = channel.unary_stream( '/pfs.API/Fsck', - request_serializer=client_dot_pfs_dot_pfs__pb2.FsckRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.FsckResponse.FromString, + request_serializer=pfs_dot_pfs__pb2.FsckRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.FsckResponse.FromString, ) - self.FileOperationV2 = channel.stream_unary( - '/pfs.API/FileOperationV2', - request_serializer=client_dot_pfs_dot_pfs__pb2.FileOperationRequestV2.SerializeToString, + self.AddFileset = channel.unary_unary( + '/pfs.API/AddFileset', + request_serializer=pfs_dot_pfs__pb2.AddFilesetRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) - self.GetTarV2 = channel.unary_stream( - '/pfs.API/GetTarV2', - request_serializer=client_dot_pfs_dot_pfs__pb2.GetTarRequestV2.SerializeToString, - response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, - ) - self.DiffFileV2 = channel.unary_stream( - '/pfs.API/DiffFileV2', - request_serializer=client_dot_pfs_dot_pfs__pb2.DiffFileRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.DiffFileResponseV2.FromString, + self.GetFileset = channel.unary_unary( + '/pfs.API/GetFileset', + request_serializer=pfs_dot_pfs__pb2.GetFilesetRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.CreateFilesetResponse.FromString, ) - self.CreateTmpFileSet = channel.stream_unary( - '/pfs.API/CreateTmpFileSet', - request_serializer=client_dot_pfs_dot_pfs__pb2.FileOperationRequestV2.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.CreateTmpFileSetResponse.FromString, + self.CreateFileset = channel.stream_unary( + '/pfs.API/CreateFileset', + request_serializer=pfs_dot_pfs__pb2.ModifyFileRequest.SerializeToString, + response_deserializer=pfs_dot_pfs__pb2.CreateFilesetResponse.FromString, ) - self.RenewTmpFileSet = channel.unary_unary( - '/pfs.API/RenewTmpFileSet', - request_serializer=client_dot_pfs_dot_pfs__pb2.RenewTmpFileSetRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) - self.ClearCommitV2 = channel.unary_unary( - '/pfs.API/ClearCommitV2', - request_serializer=client_dot_pfs_dot_pfs__pb2.ClearCommitRequestV2.SerializeToString, + self.RenewFileset = channel.unary_unary( + '/pfs.API/RenewFileset', + request_serializer=pfs_dot_pfs__pb2.RenewFilesetRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) @@ -203,9 +178,7 @@ class APIServicer(object): pass def CreateRepo(self, request, context): - """Repo rpcs - CreateRepo creates a new repo. - An error is returned if the repo already exists. + """CreateRepo creates a new repo. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -233,8 +206,7 @@ def DeleteRepo(self, request, context): raise NotImplementedError('Method not implemented!') def StartCommit(self, request, context): - """Commit rpcs - StartCommit creates a new write commit from a parent commit. + """StartCommit creates a new write commit from a parent commit. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -255,50 +227,42 @@ def InspectCommit(self, request, context): raise NotImplementedError('Method not implemented!') def ListCommit(self, request, context): - """ListCommit returns info about all commits. This is deprecated in favor of - ListCommitStream. + """ListCommit returns info about all commits. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def ListCommitStream(self, request, context): - """ListCommitStream is like ListCommit, but returns its results in a GRPC stream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def DeleteCommit(self, request, context): - """DeleteCommit deletes a commit. + def SquashCommit(self, request, context): + """SquashCommit squashes a commit into it's parent. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def FlushCommit(self, request, context): - """FlushCommit waits for downstream commits to finish + """FlushCommit waits for downstream commits to finish. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def SubscribeCommit(self, request, context): - """SubscribeCommit subscribes for new commits on a given branch + """SubscribeCommit subscribes for new commits on a given branch. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def BuildCommit(self, request, context): - """BuildCommit builds a commit that's backed by the given tree + def ClearCommit(self, request, context): + """ClearCommit removes all data from the commit. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def CreateBranch(self, request, context): - """CreateBranch creates a new branch + """CreateBranch creates a new branch. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -325,9 +289,8 @@ def DeleteBranch(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def PutFile(self, request_iterator, context): - """File rpcs - PutFile writes the specified file to pfs. + def ModifyFile(self, request_iterator, context): + """ModifyFile performs modifications on a set of files. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -335,6 +298,7 @@ def PutFile(self, request_iterator, context): def CopyFile(self, request, context): """CopyFile copies the contents of one file to another. + TODO: Make this a part of ModifyFile. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -355,17 +319,7 @@ def InspectFile(self, request, context): raise NotImplementedError('Method not implemented!') def ListFile(self, request, context): - """ListFile returns info about all files. This is deprecated in favor of - ListFileStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ListFileStream(self, request, context): - """ListFileStream is a streaming version of ListFile - TODO(msteffen): When the dash has been updated to use ListFileStream, - replace ListFile with this RPC (https://github.com/pachyderm/dash/issues/201) + """ListFile returns info about all files. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -379,17 +333,7 @@ def WalkFile(self, request, context): raise NotImplementedError('Method not implemented!') def GlobFile(self, request, context): - """GlobFile returns info about all files. This is deprecated in favor of - GlobFileStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GlobFileStream(self, request, context): - """GlobFileStream is a streaming version of GlobFile - TODO(msteffen): When the dash has been updated to use GlobFileStream, - replace GlobFile with this RPC (https://github.com/pachyderm/dash/issues/201) + """GlobFile returns info about all files. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -402,65 +346,51 @@ def DiffFile(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def DeleteFile(self, request, context): - """DeleteFile deletes a file. + def ActivateAuth(self, request, context): + """ActivateAuth creates a role binding for all existing repos """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def DeleteAll(self, request, context): - """DeleteAll deletes everything + """DeleteAll deletes everything. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def Fsck(self, request, context): - """Fsck does a file system consistency check for pfs - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def FileOperationV2(self, request_iterator, context): - """RPCs specific to Pachyderm 2. + """Fsck does a file system consistency check for pfs. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def GetTarV2(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def DiffFileV2(self, request, context): - """DiffFileV2 returns the differences between 2 paths at 2 commits. - it streams back one file at a time which is either from the new path, or the old path + def AddFileset(self, request, context): + """Fileset API + AddFileset associates a fileset with a commit """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def CreateTmpFileSet(self, request_iterator, context): - """CreateTmpFileSet creates a new temp fileset + def GetFileset(self, request, context): + """GetFileset returns a fileset with the data from a commit """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def RenewTmpFileSet(self, request, context): - """RenewTmpFileSet prevents the temporary fileset from being deleted for a set amount of time + def CreateFileset(self, request_iterator, context): + """CreateFileset creates a new fileset. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def ClearCommitV2(self, request, context): - """ClearCommitV2 removes all data from the commit. + def RenewFileset(self, request, context): + """RenewFileset prevents a fileset from being deleted for a set amount of time. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -471,143 +401,128 @@ def add_APIServicer_to_server(servicer, server): rpc_method_handlers = { 'CreateRepo': grpc.unary_unary_rpc_method_handler( servicer.CreateRepo, - request_deserializer=client_dot_pfs_dot_pfs__pb2.CreateRepoRequest.FromString, + request_deserializer=pfs_dot_pfs__pb2.CreateRepoRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'InspectRepo': grpc.unary_unary_rpc_method_handler( servicer.InspectRepo, - request_deserializer=client_dot_pfs_dot_pfs__pb2.InspectRepoRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.RepoInfo.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.InspectRepoRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.RepoInfo.SerializeToString, ), 'ListRepo': grpc.unary_unary_rpc_method_handler( servicer.ListRepo, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ListRepoRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.ListRepoResponse.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.ListRepoRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.ListRepoResponse.SerializeToString, ), 'DeleteRepo': grpc.unary_unary_rpc_method_handler( servicer.DeleteRepo, - request_deserializer=client_dot_pfs_dot_pfs__pb2.DeleteRepoRequest.FromString, + request_deserializer=pfs_dot_pfs__pb2.DeleteRepoRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'StartCommit': grpc.unary_unary_rpc_method_handler( servicer.StartCommit, - request_deserializer=client_dot_pfs_dot_pfs__pb2.StartCommitRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.Commit.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.StartCommitRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.Commit.SerializeToString, ), 'FinishCommit': grpc.unary_unary_rpc_method_handler( servicer.FinishCommit, - request_deserializer=client_dot_pfs_dot_pfs__pb2.FinishCommitRequest.FromString, + request_deserializer=pfs_dot_pfs__pb2.FinishCommitRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'InspectCommit': grpc.unary_unary_rpc_method_handler( servicer.InspectCommit, - request_deserializer=client_dot_pfs_dot_pfs__pb2.InspectCommitRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.CommitInfo.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.InspectCommitRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.CommitInfo.SerializeToString, ), - 'ListCommit': grpc.unary_unary_rpc_method_handler( + 'ListCommit': grpc.unary_stream_rpc_method_handler( servicer.ListCommit, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ListCommitRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.CommitInfos.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.ListCommitRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.CommitInfo.SerializeToString, ), - 'ListCommitStream': grpc.unary_stream_rpc_method_handler( - servicer.ListCommitStream, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ListCommitRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.CommitInfo.SerializeToString, - ), - 'DeleteCommit': grpc.unary_unary_rpc_method_handler( - servicer.DeleteCommit, - request_deserializer=client_dot_pfs_dot_pfs__pb2.DeleteCommitRequest.FromString, + 'SquashCommit': grpc.unary_unary_rpc_method_handler( + servicer.SquashCommit, + request_deserializer=pfs_dot_pfs__pb2.SquashCommitRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'FlushCommit': grpc.unary_stream_rpc_method_handler( servicer.FlushCommit, - request_deserializer=client_dot_pfs_dot_pfs__pb2.FlushCommitRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.CommitInfo.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.FlushCommitRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.CommitInfo.SerializeToString, ), 'SubscribeCommit': grpc.unary_stream_rpc_method_handler( servicer.SubscribeCommit, - request_deserializer=client_dot_pfs_dot_pfs__pb2.SubscribeCommitRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.CommitInfo.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.SubscribeCommitRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.CommitInfo.SerializeToString, ), - 'BuildCommit': grpc.unary_unary_rpc_method_handler( - servicer.BuildCommit, - request_deserializer=client_dot_pfs_dot_pfs__pb2.BuildCommitRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.Commit.SerializeToString, + 'ClearCommit': grpc.unary_unary_rpc_method_handler( + servicer.ClearCommit, + request_deserializer=pfs_dot_pfs__pb2.ClearCommitRequest.FromString, + response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'CreateBranch': grpc.unary_unary_rpc_method_handler( servicer.CreateBranch, - request_deserializer=client_dot_pfs_dot_pfs__pb2.CreateBranchRequest.FromString, + request_deserializer=pfs_dot_pfs__pb2.CreateBranchRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'InspectBranch': grpc.unary_unary_rpc_method_handler( servicer.InspectBranch, - request_deserializer=client_dot_pfs_dot_pfs__pb2.InspectBranchRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.BranchInfo.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.InspectBranchRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.BranchInfo.SerializeToString, ), 'ListBranch': grpc.unary_unary_rpc_method_handler( servicer.ListBranch, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ListBranchRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.BranchInfos.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.ListBranchRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.BranchInfos.SerializeToString, ), 'DeleteBranch': grpc.unary_unary_rpc_method_handler( servicer.DeleteBranch, - request_deserializer=client_dot_pfs_dot_pfs__pb2.DeleteBranchRequest.FromString, + request_deserializer=pfs_dot_pfs__pb2.DeleteBranchRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), - 'PutFile': grpc.stream_unary_rpc_method_handler( - servicer.PutFile, - request_deserializer=client_dot_pfs_dot_pfs__pb2.PutFileRequest.FromString, + 'ModifyFile': grpc.stream_unary_rpc_method_handler( + servicer.ModifyFile, + request_deserializer=pfs_dot_pfs__pb2.ModifyFileRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'CopyFile': grpc.unary_unary_rpc_method_handler( servicer.CopyFile, - request_deserializer=client_dot_pfs_dot_pfs__pb2.CopyFileRequest.FromString, + request_deserializer=pfs_dot_pfs__pb2.CopyFileRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'GetFile': grpc.unary_stream_rpc_method_handler( servicer.GetFile, - request_deserializer=client_dot_pfs_dot_pfs__pb2.GetFileRequest.FromString, + request_deserializer=pfs_dot_pfs__pb2.GetFileRequest.FromString, response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, ), 'InspectFile': grpc.unary_unary_rpc_method_handler( servicer.InspectFile, - request_deserializer=client_dot_pfs_dot_pfs__pb2.InspectFileRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.FileInfo.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.InspectFileRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.FileInfo.SerializeToString, ), - 'ListFile': grpc.unary_unary_rpc_method_handler( + 'ListFile': grpc.unary_stream_rpc_method_handler( servicer.ListFile, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ListFileRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.FileInfos.SerializeToString, - ), - 'ListFileStream': grpc.unary_stream_rpc_method_handler( - servicer.ListFileStream, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ListFileRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.FileInfo.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.ListFileRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.FileInfo.SerializeToString, ), 'WalkFile': grpc.unary_stream_rpc_method_handler( servicer.WalkFile, - request_deserializer=client_dot_pfs_dot_pfs__pb2.WalkFileRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.FileInfo.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.WalkFileRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.FileInfo.SerializeToString, ), - 'GlobFile': grpc.unary_unary_rpc_method_handler( + 'GlobFile': grpc.unary_stream_rpc_method_handler( servicer.GlobFile, - request_deserializer=client_dot_pfs_dot_pfs__pb2.GlobFileRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.FileInfos.SerializeToString, - ), - 'GlobFileStream': grpc.unary_stream_rpc_method_handler( - servicer.GlobFileStream, - request_deserializer=client_dot_pfs_dot_pfs__pb2.GlobFileRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.FileInfo.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.GlobFileRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.FileInfo.SerializeToString, ), - 'DiffFile': grpc.unary_unary_rpc_method_handler( + 'DiffFile': grpc.unary_stream_rpc_method_handler( servicer.DiffFile, - request_deserializer=client_dot_pfs_dot_pfs__pb2.DiffFileRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.DiffFileResponse.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.DiffFileRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.DiffFileResponse.SerializeToString, ), - 'DeleteFile': grpc.unary_unary_rpc_method_handler( - servicer.DeleteFile, - request_deserializer=client_dot_pfs_dot_pfs__pb2.DeleteFileRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + 'ActivateAuth': grpc.unary_unary_rpc_method_handler( + servicer.ActivateAuth, + request_deserializer=pfs_dot_pfs__pb2.ActivateAuthRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.ActivateAuthResponse.SerializeToString, ), 'DeleteAll': grpc.unary_unary_rpc_method_handler( servicer.DeleteAll, @@ -616,459 +531,30 @@ def add_APIServicer_to_server(servicer, server): ), 'Fsck': grpc.unary_stream_rpc_method_handler( servicer.Fsck, - request_deserializer=client_dot_pfs_dot_pfs__pb2.FsckRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.FsckResponse.SerializeToString, + request_deserializer=pfs_dot_pfs__pb2.FsckRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.FsckResponse.SerializeToString, ), - 'FileOperationV2': grpc.stream_unary_rpc_method_handler( - servicer.FileOperationV2, - request_deserializer=client_dot_pfs_dot_pfs__pb2.FileOperationRequestV2.FromString, + 'AddFileset': grpc.unary_unary_rpc_method_handler( + servicer.AddFileset, + request_deserializer=pfs_dot_pfs__pb2.AddFilesetRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), - 'GetTarV2': grpc.unary_stream_rpc_method_handler( - servicer.GetTarV2, - request_deserializer=client_dot_pfs_dot_pfs__pb2.GetTarRequestV2.FromString, - response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, - ), - 'DiffFileV2': grpc.unary_stream_rpc_method_handler( - servicer.DiffFileV2, - request_deserializer=client_dot_pfs_dot_pfs__pb2.DiffFileRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.DiffFileResponseV2.SerializeToString, + 'GetFileset': grpc.unary_unary_rpc_method_handler( + servicer.GetFileset, + request_deserializer=pfs_dot_pfs__pb2.GetFilesetRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.CreateFilesetResponse.SerializeToString, ), - 'CreateTmpFileSet': grpc.stream_unary_rpc_method_handler( - servicer.CreateTmpFileSet, - request_deserializer=client_dot_pfs_dot_pfs__pb2.FileOperationRequestV2.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.CreateTmpFileSetResponse.SerializeToString, + 'CreateFileset': grpc.stream_unary_rpc_method_handler( + servicer.CreateFileset, + request_deserializer=pfs_dot_pfs__pb2.ModifyFileRequest.FromString, + response_serializer=pfs_dot_pfs__pb2.CreateFilesetResponse.SerializeToString, ), - 'RenewTmpFileSet': grpc.unary_unary_rpc_method_handler( - servicer.RenewTmpFileSet, - request_deserializer=client_dot_pfs_dot_pfs__pb2.RenewTmpFileSetRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - 'ClearCommitV2': grpc.unary_unary_rpc_method_handler( - servicer.ClearCommitV2, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ClearCommitRequestV2.FromString, + 'RenewFileset': grpc.unary_unary_rpc_method_handler( + servicer.RenewFileset, + request_deserializer=pfs_dot_pfs__pb2.RenewFilesetRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( 'pfs.API', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) - - -class ObjectAPIStub(object): - # missing associated documentation comment in .proto file - pass - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.PutObject = channel.stream_unary( - '/pfs.ObjectAPI/PutObject', - request_serializer=client_dot_pfs_dot_pfs__pb2.PutObjectRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.Object.FromString, - ) - self.PutObjectSplit = channel.stream_unary( - '/pfs.ObjectAPI/PutObjectSplit', - request_serializer=client_dot_pfs_dot_pfs__pb2.PutObjectRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.Objects.FromString, - ) - self.PutObjects = channel.stream_unary( - '/pfs.ObjectAPI/PutObjects', - request_serializer=client_dot_pfs_dot_pfs__pb2.PutObjectRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) - self.CreateObject = channel.unary_unary( - '/pfs.ObjectAPI/CreateObject', - request_serializer=client_dot_pfs_dot_pfs__pb2.CreateObjectRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) - self.GetObject = channel.unary_stream( - '/pfs.ObjectAPI/GetObject', - request_serializer=client_dot_pfs_dot_pfs__pb2.Object.SerializeToString, - response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, - ) - self.GetObjects = channel.unary_stream( - '/pfs.ObjectAPI/GetObjects', - request_serializer=client_dot_pfs_dot_pfs__pb2.GetObjectsRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, - ) - self.PutBlock = channel.stream_unary( - '/pfs.ObjectAPI/PutBlock', - request_serializer=client_dot_pfs_dot_pfs__pb2.PutBlockRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) - self.GetBlock = channel.unary_stream( - '/pfs.ObjectAPI/GetBlock', - request_serializer=client_dot_pfs_dot_pfs__pb2.GetBlockRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, - ) - self.GetBlocks = channel.unary_stream( - '/pfs.ObjectAPI/GetBlocks', - request_serializer=client_dot_pfs_dot_pfs__pb2.GetBlocksRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, - ) - self.ListBlock = channel.unary_stream( - '/pfs.ObjectAPI/ListBlock', - request_serializer=client_dot_pfs_dot_pfs__pb2.ListBlockRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.Block.FromString, - ) - self.TagObject = channel.unary_unary( - '/pfs.ObjectAPI/TagObject', - request_serializer=client_dot_pfs_dot_pfs__pb2.TagObjectRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) - self.InspectObject = channel.unary_unary( - '/pfs.ObjectAPI/InspectObject', - request_serializer=client_dot_pfs_dot_pfs__pb2.Object.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.ObjectInfo.FromString, - ) - self.CheckObject = channel.unary_unary( - '/pfs.ObjectAPI/CheckObject', - request_serializer=client_dot_pfs_dot_pfs__pb2.CheckObjectRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.CheckObjectResponse.FromString, - ) - self.ListObjects = channel.unary_stream( - '/pfs.ObjectAPI/ListObjects', - request_serializer=client_dot_pfs_dot_pfs__pb2.ListObjectsRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.ObjectInfo.FromString, - ) - self.DeleteObjects = channel.unary_unary( - '/pfs.ObjectAPI/DeleteObjects', - request_serializer=client_dot_pfs_dot_pfs__pb2.DeleteObjectsRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.DeleteObjectsResponse.FromString, - ) - self.GetTag = channel.unary_stream( - '/pfs.ObjectAPI/GetTag', - request_serializer=client_dot_pfs_dot_pfs__pb2.Tag.SerializeToString, - response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, - ) - self.InspectTag = channel.unary_unary( - '/pfs.ObjectAPI/InspectTag', - request_serializer=client_dot_pfs_dot_pfs__pb2.Tag.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.ObjectInfo.FromString, - ) - self.ListTags = channel.unary_stream( - '/pfs.ObjectAPI/ListTags', - request_serializer=client_dot_pfs_dot_pfs__pb2.ListTagsRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.ListTagsResponse.FromString, - ) - self.DeleteTags = channel.unary_unary( - '/pfs.ObjectAPI/DeleteTags', - request_serializer=client_dot_pfs_dot_pfs__pb2.DeleteTagsRequest.SerializeToString, - response_deserializer=client_dot_pfs_dot_pfs__pb2.DeleteTagsResponse.FromString, - ) - self.Compact = channel.unary_unary( - '/pfs.ObjectAPI/Compact', - request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) - self.PutObjDirect = channel.stream_unary( - '/pfs.ObjectAPI/PutObjDirect', - request_serializer=client_dot_pfs_dot_pfs__pb2.PutObjDirectRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) - self.GetObjDirect = channel.unary_stream( - '/pfs.ObjectAPI/GetObjDirect', - request_serializer=client_dot_pfs_dot_pfs__pb2.GetObjDirectRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.FromString, - ) - self.DeleteObjDirect = channel.unary_unary( - '/pfs.ObjectAPI/DeleteObjDirect', - request_serializer=client_dot_pfs_dot_pfs__pb2.DeleteObjDirectRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) - - -class ObjectAPIServicer(object): - # missing associated documentation comment in .proto file - pass - - def PutObject(self, request_iterator, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def PutObjectSplit(self, request_iterator, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def PutObjects(self, request_iterator, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def CreateObject(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetObject(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetObjects(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def PutBlock(self, request_iterator, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetBlock(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetBlocks(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ListBlock(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def TagObject(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def InspectObject(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def CheckObject(self, request, context): - """CheckObject checks if an object exists in the blob store without - actually reading the object. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ListObjects(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def DeleteObjects(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetTag(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def InspectTag(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ListTags(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def DeleteTags(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Compact(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def PutObjDirect(self, request_iterator, context): - """PutObjDirect puts an obj directly into object store, bypassing the content - addressing layer. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetObjDirect(self, request, context): - """GetObjDirect gets an obj directly out of object store, bypassing the - content addressing layer. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def DeleteObjDirect(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_ObjectAPIServicer_to_server(servicer, server): - rpc_method_handlers = { - 'PutObject': grpc.stream_unary_rpc_method_handler( - servicer.PutObject, - request_deserializer=client_dot_pfs_dot_pfs__pb2.PutObjectRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.Object.SerializeToString, - ), - 'PutObjectSplit': grpc.stream_unary_rpc_method_handler( - servicer.PutObjectSplit, - request_deserializer=client_dot_pfs_dot_pfs__pb2.PutObjectRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.Objects.SerializeToString, - ), - 'PutObjects': grpc.stream_unary_rpc_method_handler( - servicer.PutObjects, - request_deserializer=client_dot_pfs_dot_pfs__pb2.PutObjectRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - 'CreateObject': grpc.unary_unary_rpc_method_handler( - servicer.CreateObject, - request_deserializer=client_dot_pfs_dot_pfs__pb2.CreateObjectRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - 'GetObject': grpc.unary_stream_rpc_method_handler( - servicer.GetObject, - request_deserializer=client_dot_pfs_dot_pfs__pb2.Object.FromString, - response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, - ), - 'GetObjects': grpc.unary_stream_rpc_method_handler( - servicer.GetObjects, - request_deserializer=client_dot_pfs_dot_pfs__pb2.GetObjectsRequest.FromString, - response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, - ), - 'PutBlock': grpc.stream_unary_rpc_method_handler( - servicer.PutBlock, - request_deserializer=client_dot_pfs_dot_pfs__pb2.PutBlockRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - 'GetBlock': grpc.unary_stream_rpc_method_handler( - servicer.GetBlock, - request_deserializer=client_dot_pfs_dot_pfs__pb2.GetBlockRequest.FromString, - response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, - ), - 'GetBlocks': grpc.unary_stream_rpc_method_handler( - servicer.GetBlocks, - request_deserializer=client_dot_pfs_dot_pfs__pb2.GetBlocksRequest.FromString, - response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, - ), - 'ListBlock': grpc.unary_stream_rpc_method_handler( - servicer.ListBlock, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ListBlockRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.Block.SerializeToString, - ), - 'TagObject': grpc.unary_unary_rpc_method_handler( - servicer.TagObject, - request_deserializer=client_dot_pfs_dot_pfs__pb2.TagObjectRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - 'InspectObject': grpc.unary_unary_rpc_method_handler( - servicer.InspectObject, - request_deserializer=client_dot_pfs_dot_pfs__pb2.Object.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.ObjectInfo.SerializeToString, - ), - 'CheckObject': grpc.unary_unary_rpc_method_handler( - servicer.CheckObject, - request_deserializer=client_dot_pfs_dot_pfs__pb2.CheckObjectRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.CheckObjectResponse.SerializeToString, - ), - 'ListObjects': grpc.unary_stream_rpc_method_handler( - servicer.ListObjects, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ListObjectsRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.ObjectInfo.SerializeToString, - ), - 'DeleteObjects': grpc.unary_unary_rpc_method_handler( - servicer.DeleteObjects, - request_deserializer=client_dot_pfs_dot_pfs__pb2.DeleteObjectsRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.DeleteObjectsResponse.SerializeToString, - ), - 'GetTag': grpc.unary_stream_rpc_method_handler( - servicer.GetTag, - request_deserializer=client_dot_pfs_dot_pfs__pb2.Tag.FromString, - response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, - ), - 'InspectTag': grpc.unary_unary_rpc_method_handler( - servicer.InspectTag, - request_deserializer=client_dot_pfs_dot_pfs__pb2.Tag.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.ObjectInfo.SerializeToString, - ), - 'ListTags': grpc.unary_stream_rpc_method_handler( - servicer.ListTags, - request_deserializer=client_dot_pfs_dot_pfs__pb2.ListTagsRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.ListTagsResponse.SerializeToString, - ), - 'DeleteTags': grpc.unary_unary_rpc_method_handler( - servicer.DeleteTags, - request_deserializer=client_dot_pfs_dot_pfs__pb2.DeleteTagsRequest.FromString, - response_serializer=client_dot_pfs_dot_pfs__pb2.DeleteTagsResponse.SerializeToString, - ), - 'Compact': grpc.unary_unary_rpc_method_handler( - servicer.Compact, - request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - 'PutObjDirect': grpc.stream_unary_rpc_method_handler( - servicer.PutObjDirect, - request_deserializer=client_dot_pfs_dot_pfs__pb2.PutObjDirectRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - 'GetObjDirect': grpc.unary_stream_rpc_method_handler( - servicer.GetObjDirect, - request_deserializer=client_dot_pfs_dot_pfs__pb2.GetObjDirectRequest.FromString, - response_serializer=google_dot_protobuf_dot_wrappers__pb2.BytesValue.SerializeToString, - ), - 'DeleteObjDirect': grpc.unary_unary_rpc_method_handler( - servicer.DeleteObjDirect, - request_deserializer=client_dot_pfs_dot_pfs__pb2.DeleteObjDirectRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'pfs.ObjectAPI', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) diff --git a/src/python_pachyderm/proto/pps/pps_pb2.py b/src/python_pachyderm/proto/pps/pps_pb2.py index c6515c15..d072c8e9 100644 --- a/src/python_pachyderm/proto/pps/pps_pb2.py +++ b/src/python_pachyderm/proto/pps/pps_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: client/pps/pps.proto +# source: pps/pps.proto from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor @@ -15,17 +15,17 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 -from python_pachyderm.proto.pfs import pfs_pb2 as client_dot_pfs_dot_pfs__pb2 +from pfs import pfs_pb2 as pfs_dot_pfs__pb2 DESCRIPTOR = _descriptor.FileDescriptor( - name='client/pps/pps.proto', + name='pps/pps.proto', package='pps', syntax='proto3', - serialized_options=b'Z-github.com/pachyderm/pachyderm/src/client/pps', - serialized_pb=b'\n\x14\x63lient/pps/pps.proto\x12\x03pps\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x14\x63lient/pfs/pfs.proto\"M\n\x0bSecretMount\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x04 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12\x0f\n\x07\x65nv_var\x18\x03 \x01(\t\"\xec\x02\n\tTransform\x12\r\n\x05image\x18\x01 \x01(\t\x12\x0b\n\x03\x63md\x18\x02 \x03(\t\x12\x0f\n\x07\x65rr_cmd\x18\r \x03(\t\x12$\n\x03\x65nv\x18\x03 \x03(\x0b\x32\x17.pps.Transform.EnvEntry\x12!\n\x07secrets\x18\x04 \x03(\x0b\x32\x10.pps.SecretMount\x12\x1a\n\x12image_pull_secrets\x18\t \x03(\t\x12\r\n\x05stdin\x18\x05 \x03(\t\x12\x11\n\terr_stdin\x18\x0e \x03(\t\x12\x1a\n\x12\x61\x63\x63\x65pt_return_code\x18\x06 \x03(\x03\x12\r\n\x05\x64\x65\x62ug\x18\x07 \x01(\x08\x12\x0c\n\x04user\x18\n \x01(\t\x12\x13\n\x0bworking_dir\x18\x0b \x01(\t\x12\x12\n\ndockerfile\x18\x0c \x01(\t\x12\x1d\n\x05\x62uild\x18\x0f \x01(\x0b\x32\x0e.pps.BuildSpec\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\":\n\tBuildSpec\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x10\n\x08language\x18\x02 \x01(\t\x12\r\n\x05image\x18\x03 \x01(\t\"\x17\n\x05TFJob\x12\x0e\n\x06tf_job\x18\x01 \x01(\t\"\x15\n\x06\x45gress\x12\x0b\n\x03URL\x18\x01 \x01(\t\"\x11\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\"\xcd\x01\n\x08Metadata\x12\x33\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1e.pps.Metadata.AnnotationsEntry\x12)\n\x06labels\x18\x02 \x03(\x0b\x32\x19.pps.Metadata.LabelsEntry\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Q\n\x07Service\x12\x15\n\rinternal_port\x18\x01 \x01(\x05\x12\x15\n\rexternal_port\x18\x02 \x01(\x05\x12\n\n\x02ip\x18\x03 \x01(\t\x12\x0c\n\x04type\x18\x04 \x01(\t\"I\n\x05Spout\x12\x11\n\toverwrite\x18\x01 \x01(\x08\x12\x1d\n\x07service\x18\x02 \x01(\x0b\x32\x0c.pps.Service\x12\x0e\n\x06marker\x18\x03 \x01(\t\"\xd9\x01\n\x08PFSInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04repo\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\x12\x0c\n\x04glob\x18\x05 \x01(\t\x12\x0f\n\x07join_on\x18\x08 \x01(\t\x12\x12\n\nouter_join\x18\x0c \x01(\x08\x12\x10\n\x08group_by\x18\x0b \x01(\t\x12\x0c\n\x04lazy\x18\x06 \x01(\x08\x12\x13\n\x0b\x65mpty_files\x18\x07 \x01(\x08\x12\n\n\x02s3\x18\t \x01(\x08\x12\x1d\n\x07trigger\x18\n \x01(\x0b\x32\x0c.pfs.Trigger\"\x83\x01\n\tCronInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04repo\x18\x02 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x03 \x01(\t\x12\x0c\n\x04spec\x18\x04 \x01(\t\x12\x11\n\toverwrite\x18\x06 \x01(\x08\x12)\n\x05start\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"E\n\x08GitInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\"\xc8\x01\n\x05Input\x12\x1a\n\x03pfs\x18\x06 \x01(\x0b\x32\r.pps.PFSInput\x12\x18\n\x04join\x18\x07 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05group\x18\x08 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05\x63ross\x18\x02 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05union\x18\x03 \x03(\x0b\x32\n.pps.Input\x12\x1c\n\x04\x63ron\x18\x04 \x01(\x0b\x32\x0e.pps.CronInput\x12\x1a\n\x03git\x18\x05 \x01(\x0b\x32\r.pps.GitInput\"Q\n\x08JobInput\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04glob\x18\x02 \x01(\t\x12\x0c\n\x04lazy\x18\x03 \x01(\x08\">\n\x0fParallelismSpec\x12\x10\n\x08\x63onstant\x18\x02 \x01(\x04\x12\x13\n\x0b\x63oefficient\x18\x03 \x01(\x01J\x04\x08\x01\x10\x02\" \n\x0cHashtreeSpec\x12\x10\n\x08\x63onstant\x18\x01 \x01(\x04\"\'\n\tInputFile\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\x0c\n\x04hash\x18\x05 \x01(\x0c\"*\n\x05\x44\x61tum\x12\n\n\x02id\x18\x01 \x01(\t\x12\x15\n\x03job\x18\x02 \x01(\x0b\x32\x08.pps.Job\"\xa3\x01\n\tDatumInfo\x12\x19\n\x05\x64\x61tum\x18\x01 \x01(\x0b\x32\n.pps.Datum\x12\x1e\n\x05state\x18\x02 \x01(\x0e\x32\x0f.pps.DatumState\x12 \n\x05stats\x18\x03 \x01(\x0b\x32\x11.pps.ProcessStats\x12\x1c\n\tpfs_state\x18\x04 \x01(\x0b\x32\t.pfs.File\x12\x1b\n\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\r.pfs.FileInfo\"s\n\tAggregate\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\x0c\n\x04mean\x18\x02 \x01(\x01\x12\x0e\n\x06stddev\x18\x03 \x01(\x01\x12\x18\n\x10\x66ifth_percentile\x18\x04 \x01(\x01\x12\x1f\n\x17ninety_fifth_percentile\x18\x05 \x01(\x01\"\xcf\x01\n\x0cProcessStats\x12\x30\n\rdownload_time\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x0cprocess_time\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bupload_time\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x16\n\x0e\x64ownload_bytes\x18\x04 \x01(\x04\x12\x14\n\x0cupload_bytes\x18\x05 \x01(\x04\"\xd7\x01\n\x15\x41ggregateProcessStats\x12%\n\rdownload_time\x18\x01 \x01(\x0b\x32\x0e.pps.Aggregate\x12$\n\x0cprocess_time\x18\x02 \x01(\x0b\x32\x0e.pps.Aggregate\x12#\n\x0bupload_time\x18\x03 \x01(\x0b\x32\x0e.pps.Aggregate\x12&\n\x0e\x64ownload_bytes\x18\x04 \x01(\x0b\x32\x0e.pps.Aggregate\x12$\n\x0cupload_bytes\x18\x05 \x01(\x0b\x32\x0e.pps.Aggregate\"\xe2\x01\n\x0cWorkerStatus\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x1c\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x0e.pps.InputFile\x12+\n\x07started\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x05stats\x18\x05 \x01(\x0b\x32\x11.pps.ProcessStats\x12\x12\n\nqueue_size\x18\x06 \x01(\x03\x12\x16\n\x0e\x64\x61ta_processed\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x08 \x01(\x03\"Z\n\x0cResourceSpec\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x02\x12\x0e\n\x06memory\x18\x02 \x01(\t\x12\x19\n\x03gpu\x18\x05 \x01(\x0b\x32\x0c.pps.GPUSpec\x12\x0c\n\x04\x64isk\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"\'\n\x07GPUSpec\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x03\"\xb7\x03\n\x0b\x45tcdJobInfo\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07restart\x18\x04 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x05 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x06 \x01(\x03\x12\x12\n\ndata_total\x18\x07 \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x08 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x0f \x01(\x03\x12 \n\x05stats\x18\t \x01(\x0b\x32\x11.pps.ProcessStats\x12!\n\x0cstats_commit\x18\n \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\x0b \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18\x0c \x01(\t\x12+\n\x07started\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x90\n\n\x07JobInfo\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12\x1f\n\x08pipeline\x18\x03 \x01(\x0b\x32\r.pps.Pipeline\x12\x18\n\x10pipeline_version\x18\r \x01(\x04\x12 \n\x0bspec_commit\x18/ \x01(\x0b\x32\x0b.pfs.Commit\x12.\n\x10parallelism_spec\x18\x0c \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\x0f \x01(\x0b\x32\x0b.pps.Egress\x12\x1c\n\nparent_job\x18\x06 \x01(\x0b\x32\x08.pps.Job\x12+\n\x07started\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\"\n\routput_commit\x18\t \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\n \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18# \x01(\t\x12\x1d\n\x07service\x18\x0e \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18- \x01(\x0b\x32\n.pps.Spout\x12\x1e\n\x0boutput_repo\x18\x12 \x01(\x0b\x32\t.pfs.Repo\x12\x15\n\routput_branch\x18\x11 \x01(\t\x12\x0f\n\x07restart\x18\x14 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x16 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x1e \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18( \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18. \x01(\x03\x12\x12\n\ndata_total\x18\x17 \x01(\x03\x12 \n\x05stats\x18\x1f \x01(\x0b\x32\x11.pps.ProcessStats\x12(\n\rworker_status\x18\x18 \x03(\x0b\x32\x11.pps.WorkerStatus\x12,\n\x11resource_requests\x18\x19 \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18$ \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18\x30 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\x1a \x01(\x0b\x32\n.pps.Input\x12#\n\nnew_branch\x18\x1b \x01(\x0b\x32\x0f.pfs.BranchInfo\x12!\n\x0cstats_commit\x18\x1d \x01(\x0b\x32\x0b.pfs.Commit\x12\x14\n\x0c\x65nable_stats\x18 \x01(\x08\x12\x0c\n\x04salt\x18! \x01(\t\x12\"\n\nchunk_spec\x18% \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18& \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\' \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0b\x64\x61tum_tries\x18) \x01(\x03\x12,\n\x0fscheduling_spec\x18* \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18+ \x01(\t\x12\x11\n\tpod_patch\x18, \x01(\tJ\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x1c\x10\x1dJ\x04\x08\"\x10#\"7\n\x06Worker\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x05state\x18\x02 \x01(\x0e\x32\x10.pps.WorkerState\"*\n\x08JobInfos\x12\x1e\n\x08job_info\x18\x01 \x03(\x0b\x32\x0c.pps.JobInfo\"\x18\n\x08Pipeline\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xa3\x02\n\x10\x45tcdPipelineInfo\x12!\n\x05state\x18\x01 \x01(\x0e\x32\x12.pps.PipelineState\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12 \n\x0bspec_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x38\n\njob_counts\x18\x03 \x03(\x0b\x32$.pps.EtcdPipelineInfo.JobCountsEntry\x12\x12\n\nauth_token\x18\x05 \x01(\t\x12%\n\x0elast_job_state\x18\x06 \x01(\x0e\x32\r.pps.JobState\x12\x13\n\x0bparallelism\x18\x07 \x01(\x04\x1a\x30\n\x0eJobCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\xbb\n\n\x0cPipelineInfo\x12\n\n\x02id\x18\x11 \x01(\t\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0f\n\x07version\x18\x0b \x01(\x04\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12\x1a\n\x06tf_job\x18. \x01(\x0b\x32\n.pps.TFJob\x12.\n\x10parallelism_spec\x18\n \x01(\x0b\x32\x14.pps.ParallelismSpec\x12(\n\rhashtree_spec\x18* \x01(\x0b\x32\x11.pps.HashtreeSpec\x12\x1b\n\x06\x65gress\x18\x0f \x01(\x0b\x32\x0b.pps.Egress\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12!\n\x05state\x18\x07 \x01(\x0e\x32\x12.pps.PipelineState\x12\x0f\n\x07stopped\x18& \x01(\x08\x12\x14\n\x0crecent_error\x18\x08 \x01(\t\x12\x19\n\x11workers_requested\x18\x31 \x01(\x03\x12\x19\n\x11workers_available\x18\x32 \x01(\x03\x12\x34\n\njob_counts\x18\t \x03(\x0b\x32 .pps.PipelineInfo.JobCountsEntry\x12%\n\x0elast_job_state\x18+ \x01(\x0e\x32\r.pps.JobState\x12\x15\n\routput_branch\x18\x10 \x01(\t\x12,\n\x11resource_requests\x18\x13 \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18\x1f \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18\x33 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\x14 \x01(\x0b\x32\n.pps.Input\x12\x13\n\x0b\x64\x65scription\x18\x15 \x01(\t\x12\x12\n\ncache_size\x18\x17 \x01(\t\x12\x14\n\x0c\x65nable_stats\x18\x18 \x01(\x08\x12\x0c\n\x04salt\x18\x19 \x01(\t\x12\x0e\n\x06reason\x18\x1c \x01(\t\x12\x16\n\x0emax_queue_size\x18\x1d \x01(\x03\x12\x1d\n\x07service\x18\x1e \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18- \x01(\x0b\x32\n.pps.Spout\x12\"\n\nchunk_spec\x18 \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18! \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\" \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bgithook_url\x18# \x01(\t\x12 \n\x0bspec_commit\x18$ \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07standby\x18% \x01(\x08\x12\x13\n\x0b\x64\x61tum_tries\x18\' \x01(\x03\x12,\n\x0fscheduling_spec\x18( \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18) \x01(\t\x12\x11\n\tpod_patch\x18, \x01(\t\x12\x0e\n\x06s3_out\x18/ \x01(\x08\x12\x1f\n\x08metadata\x18\x30 \x01(\x0b\x32\r.pps.Metadata\x1a\x30\n\x0eJobCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x16\x10\x17J\x04\x08\x1a\x10\x1bJ\x04\x08\x1b\x10\x1cJ\x04\x08\x12\x10\x13\"9\n\rPipelineInfos\x12(\n\rpipeline_info\x18\x01 \x03(\x0b\x32\x11.pps.PipelineInfo\"\xa3\x04\n\x10\x43reateJobRequest\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\"\n\routput_commit\x18\x19 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07restart\x18\x1a \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x1b \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x1c \x01(\x03\x12\x12\n\ndata_total\x18\x1d \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x1e \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x1f \x01(\x03\x12 \n\x05stats\x18 \x01(\x0b\x32\x11.pps.ProcessStats\x12!\n\x0cstats_commit\x18! \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\" \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18# \x01(\t\x12+\n\x07started\x18$ \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18% \x01(\x0b\x32\x1a.google.protobuf.TimestampJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x01\x10\x02J\x04\x08\n\x10\x0bJ\x04\x08\x07\x10\x08J\x04\x08\t\x10\nJ\x04\x08\x08\x10\tJ\x04\x08\x0c\x10\rJ\x04\x08\x0b\x10\x0cJ\x04\x08\r\x10\x0eJ\x04\x08\x0e\x10\x0fJ\x04\x08\x15\x10\x16J\x04\x08\x0f\x10\x10J\x04\x08\x10\x10\x11J\x04\x08\x11\x10\x12J\x04\x08\x12\x10\x13J\x04\x08\x13\x10\x14J\x04\x08\x14\x10\x15J\x04\x08\x16\x10\x17J\x04\x08\x17\x10\x18J\x04\x08\x18\x10\x19\"q\n\x11InspectJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x62lock_state\x18\x02 \x01(\x08\x12\x0c\n\x04\x66ull\x18\x04 \x01(\x08\"\xa9\x01\n\x0eListJobRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12!\n\x0cinput_commit\x18\x02 \x03(\x0b\x32\x0b.pfs.Commit\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07history\x18\x04 \x01(\x03\x12\x0c\n\x04\x66ull\x18\x05 \x01(\x08\x12\x10\n\x08jqFilter\x18\x06 \x01(\t\"T\n\x0f\x46lushJobRequest\x12\x1c\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x0b.pfs.Commit\x12#\n\x0cto_pipelines\x18\x02 \x03(\x0b\x32\r.pps.Pipeline\")\n\x10\x44\x65leteJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\"\'\n\x0eStopJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\"\xfe\x01\n\x15UpdateJobStateRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x1c\n\x05state\x18\x02 \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x0f\n\x07restart\x18\x04 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x05 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x06 \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x08 \x01(\x03\x12\x12\n\ndata_total\x18\t \x01(\x03\x12 \n\x05stats\x18\n \x01(\x0b\x32\x11.pps.ProcessStats\"\xf1\x01\n\x0eGetLogsRequest\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x14\n\x0c\x64\x61ta_filters\x18\x03 \x03(\t\x12\x19\n\x05\x64\x61tum\x18\x06 \x01(\x0b\x32\n.pps.Datum\x12\x0e\n\x06master\x18\x05 \x01(\x08\x12\x0e\n\x06\x66ollow\x18\x07 \x01(\x08\x12\x0c\n\x04tail\x18\x08 \x01(\x03\x12\x18\n\x10use_loki_backend\x18\t \x01(\x08\x12(\n\x05since\x18\n \x01(\x0b\x32\x19.google.protobuf.DurationJ\x04\x08\x04\x10\x05\"\xcd\x01\n\nLogMessage\x12\x15\n\rpipeline_name\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x03 \x01(\t\x12\x11\n\tworker_id\x18\x07 \x01(\t\x12\x10\n\x08\x64\x61tum_id\x18\t \x01(\t\x12\x0e\n\x06master\x18\n \x01(\x08\x12\x1c\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x0e.pps.InputFile\x12\x0c\n\x04user\x18\x08 \x01(\x08\x12&\n\x02ts\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07message\x18\x06 \x01(\t\"B\n\x13RestartDatumRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x14\n\x0c\x64\x61ta_filters\x18\x02 \x03(\t\"0\n\x13InspectDatumRequest\x12\x19\n\x05\x64\x61tum\x18\x01 \x01(\x0b\x32\n.pps.Datum\"e\n\x10ListDatumRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x19\n\x05input\x18\x04 \x01(\x0b\x32\n.pps.Input\x12\x11\n\tpage_size\x18\x02 \x01(\x03\x12\x0c\n\x04page\x18\x03 \x01(\x03\"[\n\x11ListDatumResponse\x12#\n\x0b\x64\x61tum_infos\x18\x01 \x03(\x0b\x32\x0e.pps.DatumInfo\x12\x13\n\x0btotal_pages\x18\x02 \x01(\x03\x12\x0c\n\x04page\x18\x03 \x01(\x03\"`\n\x17ListDatumStreamResponse\x12\"\n\ndatum_info\x18\x01 \x01(\x0b\x32\x0e.pps.DatumInfo\x12\x13\n\x0btotal_pages\x18\x02 \x01(\x03\x12\x0c\n\x04page\x18\x03 \x01(\x03\"/\n\tChunkSpec\x12\x0e\n\x06number\x18\x01 \x01(\x03\x12\x12\n\nsize_bytes\x18\x02 \x01(\x03\"\xa0\x01\n\x0eSchedulingSpec\x12<\n\rnode_selector\x18\x01 \x03(\x0b\x32%.pps.SchedulingSpec.NodeSelectorEntry\x12\x1b\n\x13priority_class_name\x18\x02 \x01(\t\x1a\x33\n\x11NodeSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xe0\x07\n\x15\x43reatePipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x1a\n\x06tf_job\x18# \x01(\x0b\x32\n.pps.TFJob\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12.\n\x10parallelism_spec\x18\x07 \x01(\x0b\x32\x14.pps.ParallelismSpec\x12(\n\rhashtree_spec\x18\x1f \x01(\x0b\x32\x11.pps.HashtreeSpec\x12\x1b\n\x06\x65gress\x18\t \x01(\x0b\x32\x0b.pps.Egress\x12\x0e\n\x06update\x18\x05 \x01(\x08\x12\x15\n\routput_branch\x18\n \x01(\t\x12\x0e\n\x06s3_out\x18$ \x01(\x08\x12,\n\x11resource_requests\x18\x0c \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18\x16 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18/ \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\r \x01(\x0b\x32\n.pps.Input\x12\x13\n\x0b\x64\x65scription\x18\x0e \x01(\t\x12\x12\n\ncache_size\x18\x10 \x01(\t\x12\x14\n\x0c\x65nable_stats\x18\x11 \x01(\x08\x12\x11\n\treprocess\x18\x12 \x01(\x08\x12\x16\n\x0emax_queue_size\x18\x14 \x01(\x03\x12\x1d\n\x07service\x18\x15 \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18! \x01(\x0b\x32\n.pps.Spout\x12\"\n\nchunk_spec\x18\x17 \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18\x18 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\x19 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0c\n\x04salt\x18\x1a \x01(\t\x12\x0f\n\x07standby\x18\x1b \x01(\x08\x12\x13\n\x0b\x64\x61tum_tries\x18\x1c \x01(\x03\x12,\n\x0fscheduling_spec\x18\x1d \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18\x1e \x01(\t\x12\x11\n\tpod_patch\x18 \x01(\t\x12 \n\x0bspec_commit\x18\" \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\x08metadata\x18. \x01(\x0b\x32\r.pps.MetadataJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x0b\x10\x0cJ\x04\x08\x0f\x10\x10J\x04\x08\x13\x10\x14\"9\n\x16InspectPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"s\n\x13ListPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0f\n\x07history\x18\x02 \x01(\x03\x12\x18\n\x10\x61llow_incomplete\x18\x03 \x01(\x08\x12\x10\n\x08jqFilter\x18\x04 \x01(\t\"\x8e\x01\n\x15\x44\x65letePipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0b\n\x03\x61ll\x18\x04 \x01(\x08\x12\r\n\x05\x66orce\x18\x05 \x01(\x08\x12\x11\n\tkeep_repo\x18\x06 \x01(\x08\x12\x19\n\x11split_transaction\x18\x07 \x01(\x08J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"7\n\x14StartPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"6\n\x13StopPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"v\n\x12RunPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12)\n\nprovenance\x18\x02 \x03(\x0b\x32\x15.pfs.CommitProvenance\x12\x0e\n\x06job_id\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"1\n\x0eRunCronRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"#\n\x13\x43reateSecretRequest\x12\x0c\n\x04\x66ile\x18\x01 \x01(\x0c\"2\n\x13\x44\x65leteSecretRequest\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\"3\n\x14InspectSecretRequest\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\"\x16\n\x06Secret\x12\x0c\n\x04name\x18\x01 \x01(\t\"o\n\nSecretInfo\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x36\n\x12\x63reation_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"3\n\x0bSecretInfos\x12$\n\x0bsecret_info\x18\x01 \x03(\x0b\x32\x0f.pps.SecretInfo\"-\n\x15GarbageCollectRequest\x12\x14\n\x0cmemory_bytes\x18\x01 \x01(\x03\"\x18\n\x16GarbageCollectResponse\"\x15\n\x13\x41\x63tivateAuthRequest\"\x16\n\x14\x41\x63tivateAuthResponse*\x83\x01\n\x08JobState\x12\x10\n\x0cJOB_STARTING\x10\x00\x12\x0f\n\x0bJOB_RUNNING\x10\x01\x12\x0f\n\x0bJOB_FAILURE\x10\x02\x12\x0f\n\x0bJOB_SUCCESS\x10\x03\x12\x0e\n\nJOB_KILLED\x10\x04\x12\x0f\n\x0bJOB_MERGING\x10\x05\x12\x11\n\rJOB_EGRESSING\x10\x06*O\n\nDatumState\x12\n\n\x06\x46\x41ILED\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\x0b\n\x07SKIPPED\x10\x02\x12\x0c\n\x08STARTING\x10\x03\x12\r\n\tRECOVERED\x10\x04*?\n\x0bWorkerState\x12\x0f\n\x0bPOD_RUNNING\x10\x00\x12\x0f\n\x0bPOD_SUCCESS\x10\x01\x12\x0e\n\nPOD_FAILED\x10\x02*\xad\x01\n\rPipelineState\x12\x15\n\x11PIPELINE_STARTING\x10\x00\x12\x14\n\x10PIPELINE_RUNNING\x10\x01\x12\x17\n\x13PIPELINE_RESTARTING\x10\x02\x12\x14\n\x10PIPELINE_FAILURE\x10\x03\x12\x13\n\x0fPIPELINE_PAUSED\x10\x04\x12\x14\n\x10PIPELINE_STANDBY\x10\x05\x12\x15\n\x11PIPELINE_CRASHING\x10\x06\x32\xf6\r\n\x03\x41PI\x12.\n\tCreateJob\x12\x15.pps.CreateJobRequest\x1a\x08.pps.Job\"\x00\x12\x34\n\nInspectJob\x12\x16.pps.InspectJobRequest\x1a\x0c.pps.JobInfo\"\x00\x12/\n\x07ListJob\x12\x13.pps.ListJobRequest\x1a\r.pps.JobInfos\"\x00\x12\x36\n\rListJobStream\x12\x13.pps.ListJobRequest\x1a\x0c.pps.JobInfo\"\x00\x30\x01\x12\x32\n\x08\x46lushJob\x12\x14.pps.FlushJobRequest\x1a\x0c.pps.JobInfo\"\x00\x30\x01\x12<\n\tDeleteJob\x12\x15.pps.DeleteJobRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\x07StopJob\x12\x13.pps.StopJobRequest\x1a\x16.google.protobuf.Empty\"\x00\x12:\n\x0cInspectDatum\x12\x18.pps.InspectDatumRequest\x1a\x0e.pps.DatumInfo\"\x00\x12<\n\tListDatum\x12\x15.pps.ListDatumRequest\x1a\x16.pps.ListDatumResponse\"\x00\x12J\n\x0fListDatumStream\x12\x15.pps.ListDatumRequest\x1a\x1c.pps.ListDatumStreamResponse\"\x00\x30\x01\x12\x42\n\x0cRestartDatum\x12\x18.pps.RestartDatumRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x46\n\x0e\x43reatePipeline\x12\x1a.pps.CreatePipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x43\n\x0fInspectPipeline\x12\x1b.pps.InspectPipelineRequest\x1a\x11.pps.PipelineInfo\"\x00\x12>\n\x0cListPipeline\x12\x18.pps.ListPipelineRequest\x1a\x12.pps.PipelineInfos\"\x00\x12\x46\n\x0e\x44\x65letePipeline\x12\x1a.pps.DeletePipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x44\n\rStartPipeline\x12\x19.pps.StartPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0cStopPipeline\x12\x18.pps.StopPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12@\n\x0bRunPipeline\x12\x17.pps.RunPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\x07RunCron\x12\x13.pps.RunCronRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x43reateSecret\x12\x18.pps.CreateSecretRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x44\x65leteSecret\x12\x18.pps.DeleteSecretRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\nListSecret\x12\x16.google.protobuf.Empty\x1a\x10.pps.SecretInfos\"\x00\x12=\n\rInspectSecret\x12\x19.pps.InspectSecretRequest\x1a\x0f.pps.SecretInfo\"\x00\x12=\n\tDeleteAll\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x33\n\x07GetLogs\x12\x13.pps.GetLogsRequest\x1a\x0f.pps.LogMessage\"\x00\x30\x01\x12K\n\x0eGarbageCollect\x12\x1a.pps.GarbageCollectRequest\x1a\x1b.pps.GarbageCollectResponse\"\x00\x12\x45\n\x0c\x41\x63tivateAuth\x12\x18.pps.ActivateAuthRequest\x1a\x19.pps.ActivateAuthResponse\"\x00\x12\x46\n\x0eUpdateJobState\x12\x1a.pps.UpdateJobStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x42/Z-github.com/pachyderm/pachyderm/src/client/ppsb\x06proto3' + serialized_options=b'Z)github.com/pachyderm/pachyderm/v2/src/pps', + serialized_pb=b'\n\rpps/pps.proto\x12\x03pps\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\rpfs/pfs.proto\"M\n\x0bSecretMount\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x04 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12\x0f\n\x07\x65nv_var\x18\x03 \x01(\t\"\xec\x02\n\tTransform\x12\r\n\x05image\x18\x01 \x01(\t\x12\x0b\n\x03\x63md\x18\x02 \x03(\t\x12\x0f\n\x07\x65rr_cmd\x18\r \x03(\t\x12$\n\x03\x65nv\x18\x03 \x03(\x0b\x32\x17.pps.Transform.EnvEntry\x12!\n\x07secrets\x18\x04 \x03(\x0b\x32\x10.pps.SecretMount\x12\x1a\n\x12image_pull_secrets\x18\t \x03(\t\x12\r\n\x05stdin\x18\x05 \x03(\t\x12\x11\n\terr_stdin\x18\x0e \x03(\t\x12\x1a\n\x12\x61\x63\x63\x65pt_return_code\x18\x06 \x03(\x03\x12\r\n\x05\x64\x65\x62ug\x18\x07 \x01(\x08\x12\x0c\n\x04user\x18\n \x01(\t\x12\x13\n\x0bworking_dir\x18\x0b \x01(\t\x12\x12\n\ndockerfile\x18\x0c \x01(\t\x12\x1d\n\x05\x62uild\x18\x0f \x01(\x0b\x32\x0e.pps.BuildSpec\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\":\n\tBuildSpec\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x10\n\x08language\x18\x02 \x01(\t\x12\r\n\x05image\x18\x03 \x01(\t\"\x17\n\x05TFJob\x12\x0e\n\x06tf_job\x18\x01 \x01(\t\"\x15\n\x06\x45gress\x12\x0b\n\x03URL\x18\x01 \x01(\t\"\x11\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\"\xcd\x01\n\x08Metadata\x12\x33\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1e.pps.Metadata.AnnotationsEntry\x12)\n\x06labels\x18\x02 \x03(\x0b\x32\x19.pps.Metadata.LabelsEntry\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Q\n\x07Service\x12\x15\n\rinternal_port\x18\x01 \x01(\x05\x12\x15\n\rexternal_port\x18\x02 \x01(\x05\x12\n\n\x02ip\x18\x03 \x01(\t\x12\x0c\n\x04type\x18\x04 \x01(\t\"&\n\x05Spout\x12\x1d\n\x07service\x18\x01 \x01(\x0b\x32\x0c.pps.Service\"\xd9\x01\n\x08PFSInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04repo\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\x12\x0c\n\x04glob\x18\x05 \x01(\t\x12\x0f\n\x07join_on\x18\x08 \x01(\t\x12\x12\n\nouter_join\x18\x0c \x01(\x08\x12\x10\n\x08group_by\x18\x0b \x01(\t\x12\x0c\n\x04lazy\x18\x06 \x01(\x08\x12\x13\n\x0b\x65mpty_files\x18\x07 \x01(\x08\x12\n\n\x02s3\x18\t \x01(\x08\x12\x1d\n\x07trigger\x18\n \x01(\x0b\x32\x0c.pfs.Trigger\"\x83\x01\n\tCronInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04repo\x18\x02 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x03 \x01(\t\x12\x0c\n\x04spec\x18\x04 \x01(\t\x12\x11\n\toverwrite\x18\x06 \x01(\x08\x12)\n\x05start\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"E\n\x08GitInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\"\xc8\x01\n\x05Input\x12\x1a\n\x03pfs\x18\x06 \x01(\x0b\x32\r.pps.PFSInput\x12\x18\n\x04join\x18\x07 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05group\x18\x08 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05\x63ross\x18\x02 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05union\x18\x03 \x03(\x0b\x32\n.pps.Input\x12\x1c\n\x04\x63ron\x18\x04 \x01(\x0b\x32\x0e.pps.CronInput\x12\x1a\n\x03git\x18\x05 \x01(\x0b\x32\r.pps.GitInput\"Q\n\x08JobInput\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04glob\x18\x02 \x01(\t\x12\x0c\n\x04lazy\x18\x03 \x01(\x08\">\n\x0fParallelismSpec\x12\x10\n\x08\x63onstant\x18\x02 \x01(\x04\x12\x13\n\x0b\x63oefficient\x18\x03 \x01(\x01J\x04\x08\x01\x10\x02\"\'\n\tInputFile\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\x0c\n\x04hash\x18\x05 \x01(\x0c\"*\n\x05\x44\x61tum\x12\n\n\x02id\x18\x01 \x01(\t\x12\x15\n\x03job\x18\x02 \x01(\x0b\x32\x08.pps.Job\"\xa3\x01\n\tDatumInfo\x12\x19\n\x05\x64\x61tum\x18\x01 \x01(\x0b\x32\n.pps.Datum\x12\x1e\n\x05state\x18\x02 \x01(\x0e\x32\x0f.pps.DatumState\x12 \n\x05stats\x18\x03 \x01(\x0b\x32\x11.pps.ProcessStats\x12\x1c\n\tpfs_state\x18\x04 \x01(\x0b\x32\t.pfs.File\x12\x1b\n\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\r.pfs.FileInfo\"s\n\tAggregate\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\x0c\n\x04mean\x18\x02 \x01(\x01\x12\x0e\n\x06stddev\x18\x03 \x01(\x01\x12\x18\n\x10\x66ifth_percentile\x18\x04 \x01(\x01\x12\x1f\n\x17ninety_fifth_percentile\x18\x05 \x01(\x01\"\xcf\x01\n\x0cProcessStats\x12\x30\n\rdownload_time\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x0cprocess_time\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bupload_time\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x16\n\x0e\x64ownload_bytes\x18\x04 \x01(\x04\x12\x14\n\x0cupload_bytes\x18\x05 \x01(\x04\"\xd7\x01\n\x15\x41ggregateProcessStats\x12%\n\rdownload_time\x18\x01 \x01(\x0b\x32\x0e.pps.Aggregate\x12$\n\x0cprocess_time\x18\x02 \x01(\x0b\x32\x0e.pps.Aggregate\x12#\n\x0bupload_time\x18\x03 \x01(\x0b\x32\x0e.pps.Aggregate\x12&\n\x0e\x64ownload_bytes\x18\x04 \x01(\x0b\x32\x0e.pps.Aggregate\x12$\n\x0cupload_bytes\x18\x05 \x01(\x0b\x32\x0e.pps.Aggregate\"\xe2\x01\n\x0cWorkerStatus\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x1c\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x0e.pps.InputFile\x12+\n\x07started\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x05stats\x18\x05 \x01(\x0b\x32\x11.pps.ProcessStats\x12\x12\n\nqueue_size\x18\x06 \x01(\x03\x12\x16\n\x0e\x64\x61ta_processed\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x08 \x01(\x03\"Z\n\x0cResourceSpec\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x02\x12\x0e\n\x06memory\x18\x02 \x01(\t\x12\x19\n\x03gpu\x18\x05 \x01(\x0b\x32\x0c.pps.GPUSpec\x12\x0c\n\x04\x64isk\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"\'\n\x07GPUSpec\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x03\"\xb7\x03\n\x0b\x45tcdJobInfo\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07restart\x18\x04 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x05 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x06 \x01(\x03\x12\x12\n\ndata_total\x18\x07 \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x08 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x0f \x01(\x03\x12 \n\x05stats\x18\t \x01(\x0b\x32\x11.pps.ProcessStats\x12!\n\x0cstats_commit\x18\n \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\x0b \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18\x0c \x01(\t\x12+\n\x07started\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x90\n\n\x07JobInfo\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12\x1f\n\x08pipeline\x18\x03 \x01(\x0b\x32\r.pps.Pipeline\x12\x18\n\x10pipeline_version\x18\r \x01(\x04\x12 \n\x0bspec_commit\x18/ \x01(\x0b\x32\x0b.pfs.Commit\x12.\n\x10parallelism_spec\x18\x0c \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\x0f \x01(\x0b\x32\x0b.pps.Egress\x12\x1c\n\nparent_job\x18\x06 \x01(\x0b\x32\x08.pps.Job\x12+\n\x07started\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\"\n\routput_commit\x18\t \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\n \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18# \x01(\t\x12\x1d\n\x07service\x18\x0e \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18- \x01(\x0b\x32\n.pps.Spout\x12\x1e\n\x0boutput_repo\x18\x12 \x01(\x0b\x32\t.pfs.Repo\x12\x15\n\routput_branch\x18\x11 \x01(\t\x12\x0f\n\x07restart\x18\x14 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x16 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x1e \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18( \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18. \x01(\x03\x12\x12\n\ndata_total\x18\x17 \x01(\x03\x12 \n\x05stats\x18\x1f \x01(\x0b\x32\x11.pps.ProcessStats\x12(\n\rworker_status\x18\x18 \x03(\x0b\x32\x11.pps.WorkerStatus\x12,\n\x11resource_requests\x18\x19 \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18$ \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18\x30 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\x1a \x01(\x0b\x32\n.pps.Input\x12#\n\nnew_branch\x18\x1b \x01(\x0b\x32\x0f.pfs.BranchInfo\x12!\n\x0cstats_commit\x18\x1d \x01(\x0b\x32\x0b.pfs.Commit\x12\x14\n\x0c\x65nable_stats\x18 \x01(\x08\x12\x0c\n\x04salt\x18! \x01(\t\x12\"\n\nchunk_spec\x18% \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18& \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\' \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0b\x64\x61tum_tries\x18) \x01(\x03\x12,\n\x0fscheduling_spec\x18* \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18+ \x01(\t\x12\x11\n\tpod_patch\x18, \x01(\tJ\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x1c\x10\x1dJ\x04\x08\"\x10#\"7\n\x06Worker\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x05state\x18\x02 \x01(\x0e\x32\x10.pps.WorkerState\"\x18\n\x08Pipeline\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xa3\x02\n\x10\x45tcdPipelineInfo\x12!\n\x05state\x18\x01 \x01(\x0e\x32\x12.pps.PipelineState\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12 \n\x0bspec_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x38\n\njob_counts\x18\x03 \x03(\x0b\x32$.pps.EtcdPipelineInfo.JobCountsEntry\x12\x12\n\nauth_token\x18\x05 \x01(\t\x12%\n\x0elast_job_state\x18\x06 \x01(\x0e\x32\r.pps.JobState\x12\x13\n\x0bparallelism\x18\x07 \x01(\x04\x1a\x30\n\x0eJobCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\xa2\n\n\x0cPipelineInfo\x12\n\n\x02id\x18\x11 \x01(\t\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0f\n\x07version\x18\x0b \x01(\x04\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12\x1a\n\x06tf_job\x18. \x01(\x0b\x32\n.pps.TFJob\x12.\n\x10parallelism_spec\x18\n \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\x0f \x01(\x0b\x32\x0b.pps.Egress\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12!\n\x05state\x18\x07 \x01(\x0e\x32\x12.pps.PipelineState\x12\x0f\n\x07stopped\x18& \x01(\x08\x12\x14\n\x0crecent_error\x18\x08 \x01(\t\x12\x19\n\x11workers_requested\x18\x31 \x01(\x03\x12\x19\n\x11workers_available\x18\x32 \x01(\x03\x12\x34\n\njob_counts\x18\t \x03(\x0b\x32 .pps.PipelineInfo.JobCountsEntry\x12%\n\x0elast_job_state\x18+ \x01(\x0e\x32\r.pps.JobState\x12\x15\n\routput_branch\x18\x10 \x01(\t\x12,\n\x11resource_requests\x18\x13 \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18\x1f \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18\x33 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\x14 \x01(\x0b\x32\n.pps.Input\x12\x13\n\x0b\x64\x65scription\x18\x15 \x01(\t\x12\x12\n\ncache_size\x18\x17 \x01(\t\x12\x14\n\x0c\x65nable_stats\x18\x18 \x01(\x08\x12\x0c\n\x04salt\x18\x19 \x01(\t\x12\x0e\n\x06reason\x18\x1c \x01(\t\x12\x16\n\x0emax_queue_size\x18\x1d \x01(\x03\x12\x1d\n\x07service\x18\x1e \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18- \x01(\x0b\x32\n.pps.Spout\x12\"\n\nchunk_spec\x18 \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18! \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\" \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bgithook_url\x18# \x01(\t\x12 \n\x0bspec_commit\x18$ \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07standby\x18% \x01(\x08\x12\x13\n\x0b\x64\x61tum_tries\x18\' \x01(\x03\x12,\n\x0fscheduling_spec\x18( \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18) \x01(\t\x12\x11\n\tpod_patch\x18, \x01(\t\x12\x0e\n\x06s3_out\x18/ \x01(\x08\x12\x1f\n\x08metadata\x18\x30 \x01(\x0b\x32\r.pps.Metadata\x12\x0f\n\x07no_skip\x18\x34 \x01(\x08\x1a\x30\n\x0eJobCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x16\x10\x17J\x04\x08\x1a\x10\x1bJ\x04\x08\x1b\x10\x1cJ\x04\x08\x12\x10\x13\"9\n\rPipelineInfos\x12(\n\rpipeline_info\x18\x01 \x03(\x0b\x32\x11.pps.PipelineInfo\"\xa3\x04\n\x10\x43reateJobRequest\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\"\n\routput_commit\x18\x19 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07restart\x18\x1a \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x1b \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x1c \x01(\x03\x12\x12\n\ndata_total\x18\x1d \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x1e \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x1f \x01(\x03\x12 \n\x05stats\x18 \x01(\x0b\x32\x11.pps.ProcessStats\x12!\n\x0cstats_commit\x18! \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\" \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18# \x01(\t\x12+\n\x07started\x18$ \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18% \x01(\x0b\x32\x1a.google.protobuf.TimestampJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x01\x10\x02J\x04\x08\n\x10\x0bJ\x04\x08\x07\x10\x08J\x04\x08\t\x10\nJ\x04\x08\x08\x10\tJ\x04\x08\x0c\x10\rJ\x04\x08\x0b\x10\x0cJ\x04\x08\r\x10\x0eJ\x04\x08\x0e\x10\x0fJ\x04\x08\x15\x10\x16J\x04\x08\x0f\x10\x10J\x04\x08\x10\x10\x11J\x04\x08\x11\x10\x12J\x04\x08\x12\x10\x13J\x04\x08\x13\x10\x14J\x04\x08\x14\x10\x15J\x04\x08\x16\x10\x17J\x04\x08\x17\x10\x18J\x04\x08\x18\x10\x19\"q\n\x11InspectJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x62lock_state\x18\x02 \x01(\x08\x12\x0c\n\x04\x66ull\x18\x04 \x01(\x08\"\xa9\x01\n\x0eListJobRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12!\n\x0cinput_commit\x18\x02 \x03(\x0b\x32\x0b.pfs.Commit\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07history\x18\x04 \x01(\x03\x12\x0c\n\x04\x66ull\x18\x05 \x01(\x08\x12\x10\n\x08jqFilter\x18\x06 \x01(\t\"T\n\x0f\x46lushJobRequest\x12\x1c\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x0b.pfs.Commit\x12#\n\x0cto_pipelines\x18\x02 \x03(\x0b\x32\r.pps.Pipeline\")\n\x10\x44\x65leteJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\"K\n\x0eStopJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\"\n\routput_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\"\xfe\x01\n\x15UpdateJobStateRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x1c\n\x05state\x18\x02 \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x0f\n\x07restart\x18\x04 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x05 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x06 \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x08 \x01(\x03\x12\x12\n\ndata_total\x18\t \x01(\x03\x12 \n\x05stats\x18\n \x01(\x0b\x32\x11.pps.ProcessStats\"\xf1\x01\n\x0eGetLogsRequest\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x14\n\x0c\x64\x61ta_filters\x18\x03 \x03(\t\x12\x19\n\x05\x64\x61tum\x18\x06 \x01(\x0b\x32\n.pps.Datum\x12\x0e\n\x06master\x18\x05 \x01(\x08\x12\x0e\n\x06\x66ollow\x18\x07 \x01(\x08\x12\x0c\n\x04tail\x18\x08 \x01(\x03\x12\x18\n\x10use_loki_backend\x18\t \x01(\x08\x12(\n\x05since\x18\n \x01(\x0b\x32\x19.google.protobuf.DurationJ\x04\x08\x04\x10\x05\"\xcd\x01\n\nLogMessage\x12\x15\n\rpipeline_name\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x03 \x01(\t\x12\x11\n\tworker_id\x18\x07 \x01(\t\x12\x10\n\x08\x64\x61tum_id\x18\t \x01(\t\x12\x0e\n\x06master\x18\n \x01(\x08\x12\x1c\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x0e.pps.InputFile\x12\x0c\n\x04user\x18\x08 \x01(\x08\x12&\n\x02ts\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07message\x18\x06 \x01(\t\"B\n\x13RestartDatumRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x14\n\x0c\x64\x61ta_filters\x18\x02 \x03(\t\"0\n\x13InspectDatumRequest\x12\x19\n\x05\x64\x61tum\x18\x01 \x01(\x0b\x32\n.pps.Datum\")\n\x10ListDatumRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\"/\n\tChunkSpec\x12\x0e\n\x06number\x18\x01 \x01(\x03\x12\x12\n\nsize_bytes\x18\x02 \x01(\x03\"\xa0\x01\n\x0eSchedulingSpec\x12<\n\rnode_selector\x18\x01 \x03(\x0b\x32%.pps.SchedulingSpec.NodeSelectorEntry\x12\x1b\n\x13priority_class_name\x18\x02 \x01(\t\x1a\x33\n\x11NodeSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc7\x07\n\x15\x43reatePipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x1a\n\x06tf_job\x18# \x01(\x0b\x32\n.pps.TFJob\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12.\n\x10parallelism_spec\x18\x07 \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\t \x01(\x0b\x32\x0b.pps.Egress\x12\x0e\n\x06update\x18\x05 \x01(\x08\x12\x15\n\routput_branch\x18\n \x01(\t\x12\x0e\n\x06s3_out\x18$ \x01(\x08\x12,\n\x11resource_requests\x18\x0c \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18\x16 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18/ \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\r \x01(\x0b\x32\n.pps.Input\x12\x13\n\x0b\x64\x65scription\x18\x0e \x01(\t\x12\x12\n\ncache_size\x18\x10 \x01(\t\x12\x14\n\x0c\x65nable_stats\x18\x11 \x01(\x08\x12\x11\n\treprocess\x18\x12 \x01(\x08\x12\x16\n\x0emax_queue_size\x18\x14 \x01(\x03\x12\x1d\n\x07service\x18\x15 \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18! \x01(\x0b\x32\n.pps.Spout\x12\"\n\nchunk_spec\x18\x17 \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18\x18 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\x19 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0c\n\x04salt\x18\x1a \x01(\t\x12\x0f\n\x07standby\x18\x1b \x01(\x08\x12\x13\n\x0b\x64\x61tum_tries\x18\x1c \x01(\x03\x12,\n\x0fscheduling_spec\x18\x1d \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18\x1e \x01(\t\x12\x11\n\tpod_patch\x18 \x01(\t\x12 \n\x0bspec_commit\x18\" \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\x08metadata\x18. \x01(\x0b\x32\r.pps.Metadata\x12\x0f\n\x07no_skip\x18\x30 \x01(\x08J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x0b\x10\x0cJ\x04\x08\x0f\x10\x10J\x04\x08\x13\x10\x14\"9\n\x16InspectPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"s\n\x13ListPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0f\n\x07history\x18\x02 \x01(\x03\x12\x18\n\x10\x61llow_incomplete\x18\x03 \x01(\x08\x12\x10\n\x08jqFilter\x18\x04 \x01(\t\"s\n\x15\x44\x65letePipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0b\n\x03\x61ll\x18\x04 \x01(\x08\x12\r\n\x05\x66orce\x18\x05 \x01(\x08\x12\x11\n\tkeep_repo\x18\x06 \x01(\x08J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"7\n\x14StartPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"6\n\x13StopPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"v\n\x12RunPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12)\n\nprovenance\x18\x02 \x03(\x0b\x32\x15.pfs.CommitProvenance\x12\x0e\n\x06job_id\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"1\n\x0eRunCronRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"#\n\x13\x43reateSecretRequest\x12\x0c\n\x04\x66ile\x18\x01 \x01(\x0c\"2\n\x13\x44\x65leteSecretRequest\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\"3\n\x14InspectSecretRequest\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\"\x16\n\x06Secret\x12\x0c\n\x04name\x18\x01 \x01(\t\"o\n\nSecretInfo\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x36\n\x12\x63reation_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"3\n\x0bSecretInfos\x12$\n\x0bsecret_info\x18\x01 \x03(\x0b\x32\x0f.pps.SecretInfo\"-\n\x15GarbageCollectRequest\x12\x14\n\x0cmemory_bytes\x18\x01 \x01(\x03\"\x18\n\x16GarbageCollectResponse\"\x15\n\x13\x41\x63tivateAuthRequest\"\x16\n\x14\x41\x63tivateAuthResponse*r\n\x08JobState\x12\x10\n\x0cJOB_STARTING\x10\x00\x12\x0f\n\x0bJOB_RUNNING\x10\x01\x12\x0f\n\x0bJOB_FAILURE\x10\x02\x12\x0f\n\x0bJOB_SUCCESS\x10\x03\x12\x0e\n\nJOB_KILLED\x10\x04\x12\x11\n\rJOB_EGRESSING\x10\x06*O\n\nDatumState\x12\n\n\x06\x46\x41ILED\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\x0b\n\x07SKIPPED\x10\x02\x12\x0c\n\x08STARTING\x10\x03\x12\r\n\tRECOVERED\x10\x04*?\n\x0bWorkerState\x12\x0f\n\x0bPOD_RUNNING\x10\x00\x12\x0f\n\x0bPOD_SUCCESS\x10\x01\x12\x0e\n\nPOD_FAILED\x10\x02*\xad\x01\n\rPipelineState\x12\x15\n\x11PIPELINE_STARTING\x10\x00\x12\x14\n\x10PIPELINE_RUNNING\x10\x01\x12\x17\n\x13PIPELINE_RESTARTING\x10\x02\x12\x14\n\x10PIPELINE_FAILURE\x10\x03\x12\x13\n\x0fPIPELINE_PAUSED\x10\x04\x12\x14\n\x10PIPELINE_STANDBY\x10\x05\x12\x15\n\x11PIPELINE_CRASHING\x10\x06\x32\xa0\x0c\n\x03\x41PI\x12.\n\tCreateJob\x12\x15.pps.CreateJobRequest\x1a\x08.pps.Job\"\x00\x12\x34\n\nInspectJob\x12\x16.pps.InspectJobRequest\x1a\x0c.pps.JobInfo\"\x00\x12\x30\n\x07ListJob\x12\x13.pps.ListJobRequest\x1a\x0c.pps.JobInfo\"\x00\x30\x01\x12\x32\n\x08\x46lushJob\x12\x14.pps.FlushJobRequest\x1a\x0c.pps.JobInfo\"\x00\x30\x01\x12<\n\tDeleteJob\x12\x15.pps.DeleteJobRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\x07StopJob\x12\x13.pps.StopJobRequest\x1a\x16.google.protobuf.Empty\"\x00\x12:\n\x0cInspectDatum\x12\x18.pps.InspectDatumRequest\x1a\x0e.pps.DatumInfo\"\x00\x12\x36\n\tListDatum\x12\x15.pps.ListDatumRequest\x1a\x0e.pps.DatumInfo\"\x00\x30\x01\x12\x42\n\x0cRestartDatum\x12\x18.pps.RestartDatumRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x46\n\x0e\x43reatePipeline\x12\x1a.pps.CreatePipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x43\n\x0fInspectPipeline\x12\x1b.pps.InspectPipelineRequest\x1a\x11.pps.PipelineInfo\"\x00\x12>\n\x0cListPipeline\x12\x18.pps.ListPipelineRequest\x1a\x12.pps.PipelineInfos\"\x00\x12\x46\n\x0e\x44\x65letePipeline\x12\x1a.pps.DeletePipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x44\n\rStartPipeline\x12\x19.pps.StartPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0cStopPipeline\x12\x18.pps.StopPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12@\n\x0bRunPipeline\x12\x17.pps.RunPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\x07RunCron\x12\x13.pps.RunCronRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x43reateSecret\x12\x18.pps.CreateSecretRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x44\x65leteSecret\x12\x18.pps.DeleteSecretRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\nListSecret\x12\x16.google.protobuf.Empty\x1a\x10.pps.SecretInfos\"\x00\x12=\n\rInspectSecret\x12\x19.pps.InspectSecretRequest\x1a\x0f.pps.SecretInfo\"\x00\x12=\n\tDeleteAll\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x33\n\x07GetLogs\x12\x13.pps.GetLogsRequest\x1a\x0f.pps.LogMessage\"\x00\x30\x01\x12\x45\n\x0c\x41\x63tivateAuth\x12\x18.pps.ActivateAuthRequest\x1a\x19.pps.ActivateAuthResponse\"\x00\x12\x46\n\x0eUpdateJobState\x12\x1a.pps.UpdateJobStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x42+Z)github.com/pachyderm/pachyderm/v2/src/ppsb\x06proto3' , - dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,client_dot_pfs_dot_pfs__pb2.DESCRIPTOR,]) + dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,pfs_dot_pfs__pb2.DESCRIPTOR,]) _JOBSTATE = _descriptor.EnumDescriptor( name='JobState', @@ -54,18 +54,14 @@ serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='JOB_MERGING', index=5, number=5, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='JOB_EGRESSING', index=6, number=6, + name='JOB_EGRESSING', index=5, number=6, serialized_options=None, type=None), ], containing_type=None, serialized_options=None, - serialized_start=11007, - serialized_end=11138, + serialized_start=10586, + serialized_end=10700, ) _sym_db.RegisterEnumDescriptor(_JOBSTATE) @@ -99,8 +95,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=11140, - serialized_end=11219, + serialized_start=10702, + serialized_end=10781, ) _sym_db.RegisterEnumDescriptor(_DATUMSTATE) @@ -126,8 +122,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=11221, - serialized_end=11284, + serialized_start=10783, + serialized_end=10846, ) _sym_db.RegisterEnumDescriptor(_WORKERSTATE) @@ -169,8 +165,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=11287, - serialized_end=11460, + serialized_start=10849, + serialized_end=11022, ) _sym_db.RegisterEnumDescriptor(_PIPELINESTATE) @@ -180,7 +176,6 @@ JOB_FAILURE = 2 JOB_SUCCESS = 3 JOB_KILLED = 4 -JOB_MERGING = 5 JOB_EGRESSING = 6 FAILED = 0 SUCCESS = 1 @@ -247,8 +242,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=145, - serialized_end=222, + serialized_start=131, + serialized_end=208, ) @@ -285,8 +280,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=547, - serialized_end=589, + serialized_start=533, + serialized_end=575, ) _TRANSFORM = _descriptor.Descriptor( @@ -406,8 +401,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=225, - serialized_end=589, + serialized_start=211, + serialized_end=575, ) @@ -451,8 +446,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=591, - serialized_end=649, + serialized_start=577, + serialized_end=635, ) @@ -482,8 +477,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=651, - serialized_end=674, + serialized_start=637, + serialized_end=660, ) @@ -513,8 +508,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=676, - serialized_end=697, + serialized_start=662, + serialized_end=683, ) @@ -544,8 +539,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=699, - serialized_end=716, + serialized_start=685, + serialized_end=702, ) @@ -582,8 +577,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=827, - serialized_end=877, + serialized_start=813, + serialized_end=863, ) _METADATA_LABELSENTRY = _descriptor.Descriptor( @@ -619,8 +614,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=879, - serialized_end=924, + serialized_start=865, + serialized_end=910, ) _METADATA = _descriptor.Descriptor( @@ -656,8 +651,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=719, - serialized_end=924, + serialized_start=705, + serialized_end=910, ) @@ -708,8 +703,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=926, - serialized_end=1007, + serialized_start=912, + serialized_end=993, ) @@ -721,26 +716,12 @@ containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='overwrite', full_name='pps.Spout.overwrite', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='service', full_name='pps.Spout.service', index=1, - number=2, type=11, cpp_type=10, label=1, + name='service', full_name='pps.Spout.service', index=0, + number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='marker', full_name='pps.Spout.marker', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -753,8 +734,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1009, - serialized_end=1082, + serialized_start=995, + serialized_end=1033, ) @@ -861,8 +842,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1085, - serialized_end=1302, + serialized_start=1036, + serialized_end=1253, ) @@ -927,8 +908,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1305, - serialized_end=1436, + serialized_start=1256, + serialized_end=1387, ) @@ -979,8 +960,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1438, - serialized_end=1507, + serialized_start=1389, + serialized_end=1458, ) @@ -1052,8 +1033,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1510, - serialized_end=1710, + serialized_start=1461, + serialized_end=1661, ) @@ -1104,8 +1085,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1712, - serialized_end=1793, + serialized_start=1663, + serialized_end=1744, ) @@ -1142,39 +1123,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1795, - serialized_end=1857, -) - - -_HASHTREESPEC = _descriptor.Descriptor( - name='HashtreeSpec', - full_name='pps.HashtreeSpec', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='constant', full_name='pps.HashtreeSpec.constant', index=0, - number=1, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1859, - serialized_end=1891, + serialized_start=1746, + serialized_end=1808, ) @@ -1211,8 +1161,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1893, - serialized_end=1932, + serialized_start=1810, + serialized_end=1849, ) @@ -1249,8 +1199,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1934, - serialized_end=1976, + serialized_start=1851, + serialized_end=1893, ) @@ -1308,8 +1258,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1979, - serialized_end=2142, + serialized_start=1896, + serialized_end=2059, ) @@ -1367,8 +1317,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2144, - serialized_end=2259, + serialized_start=2061, + serialized_end=2176, ) @@ -1426,8 +1376,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2262, - serialized_end=2469, + serialized_start=2179, + serialized_end=2386, ) @@ -1485,8 +1435,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2472, - serialized_end=2687, + serialized_start=2389, + serialized_end=2604, ) @@ -1565,8 +1515,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2690, - serialized_end=2916, + serialized_start=2607, + serialized_end=2833, ) @@ -1617,8 +1567,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2918, - serialized_end=3008, + serialized_start=2835, + serialized_end=2925, ) @@ -1655,8 +1605,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3010, - serialized_end=3049, + serialized_start=2927, + serialized_end=2966, ) @@ -1784,8 +1734,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3052, - serialized_end=3491, + serialized_start=2969, + serialized_end=3408, ) @@ -2088,8 +2038,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3494, - serialized_end=4790, + serialized_start=3411, + serialized_end=4707, ) @@ -2126,39 +2076,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4792, - serialized_end=4847, -) - - -_JOBINFOS = _descriptor.Descriptor( - name='JobInfos', - full_name='pps.JobInfos', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='job_info', full_name='pps.JobInfos.job_info', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4849, - serialized_end=4891, + serialized_start=4709, + serialized_end=4764, ) @@ -2188,8 +2107,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4893, - serialized_end=4917, + serialized_start=4766, + serialized_end=4790, ) @@ -2226,8 +2145,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5163, - serialized_end=5211, + serialized_start=5036, + serialized_end=5084, ) _ETCDPIPELINEINFO = _descriptor.Descriptor( @@ -2298,8 +2217,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4920, - serialized_end=5211, + serialized_start=4793, + serialized_end=5084, ) @@ -2336,8 +2255,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5163, - serialized_end=5211, + serialized_start=5036, + serialized_end=5084, ) _PIPELINEINFO = _descriptor.Descriptor( @@ -2390,250 +2309,250 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='hashtree_spec', full_name='pps.PipelineInfo.hashtree_spec', index=6, - number=42, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='egress', full_name='pps.PipelineInfo.egress', index=7, + name='egress', full_name='pps.PipelineInfo.egress', index=6, number=15, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='created_at', full_name='pps.PipelineInfo.created_at', index=8, + name='created_at', full_name='pps.PipelineInfo.created_at', index=7, number=6, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='state', full_name='pps.PipelineInfo.state', index=9, + name='state', full_name='pps.PipelineInfo.state', index=8, number=7, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='stopped', full_name='pps.PipelineInfo.stopped', index=10, + name='stopped', full_name='pps.PipelineInfo.stopped', index=9, number=38, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='recent_error', full_name='pps.PipelineInfo.recent_error', index=11, + name='recent_error', full_name='pps.PipelineInfo.recent_error', index=10, number=8, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='workers_requested', full_name='pps.PipelineInfo.workers_requested', index=12, + name='workers_requested', full_name='pps.PipelineInfo.workers_requested', index=11, number=49, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='workers_available', full_name='pps.PipelineInfo.workers_available', index=13, + name='workers_available', full_name='pps.PipelineInfo.workers_available', index=12, number=50, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='job_counts', full_name='pps.PipelineInfo.job_counts', index=14, + name='job_counts', full_name='pps.PipelineInfo.job_counts', index=13, number=9, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='last_job_state', full_name='pps.PipelineInfo.last_job_state', index=15, + name='last_job_state', full_name='pps.PipelineInfo.last_job_state', index=14, number=43, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='output_branch', full_name='pps.PipelineInfo.output_branch', index=16, + name='output_branch', full_name='pps.PipelineInfo.output_branch', index=15, number=16, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='resource_requests', full_name='pps.PipelineInfo.resource_requests', index=17, + name='resource_requests', full_name='pps.PipelineInfo.resource_requests', index=16, number=19, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='resource_limits', full_name='pps.PipelineInfo.resource_limits', index=18, + name='resource_limits', full_name='pps.PipelineInfo.resource_limits', index=17, number=31, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='sidecar_resource_limits', full_name='pps.PipelineInfo.sidecar_resource_limits', index=19, + name='sidecar_resource_limits', full_name='pps.PipelineInfo.sidecar_resource_limits', index=18, number=51, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='input', full_name='pps.PipelineInfo.input', index=20, + name='input', full_name='pps.PipelineInfo.input', index=19, number=20, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='description', full_name='pps.PipelineInfo.description', index=21, + name='description', full_name='pps.PipelineInfo.description', index=20, number=21, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='cache_size', full_name='pps.PipelineInfo.cache_size', index=22, + name='cache_size', full_name='pps.PipelineInfo.cache_size', index=21, number=23, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='enable_stats', full_name='pps.PipelineInfo.enable_stats', index=23, + name='enable_stats', full_name='pps.PipelineInfo.enable_stats', index=22, number=24, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='salt', full_name='pps.PipelineInfo.salt', index=24, + name='salt', full_name='pps.PipelineInfo.salt', index=23, number=25, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='reason', full_name='pps.PipelineInfo.reason', index=25, + name='reason', full_name='pps.PipelineInfo.reason', index=24, number=28, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='max_queue_size', full_name='pps.PipelineInfo.max_queue_size', index=26, + name='max_queue_size', full_name='pps.PipelineInfo.max_queue_size', index=25, number=29, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='service', full_name='pps.PipelineInfo.service', index=27, + name='service', full_name='pps.PipelineInfo.service', index=26, number=30, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='spout', full_name='pps.PipelineInfo.spout', index=28, + name='spout', full_name='pps.PipelineInfo.spout', index=27, number=45, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='chunk_spec', full_name='pps.PipelineInfo.chunk_spec', index=29, + name='chunk_spec', full_name='pps.PipelineInfo.chunk_spec', index=28, number=32, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='datum_timeout', full_name='pps.PipelineInfo.datum_timeout', index=30, + name='datum_timeout', full_name='pps.PipelineInfo.datum_timeout', index=29, number=33, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='job_timeout', full_name='pps.PipelineInfo.job_timeout', index=31, + name='job_timeout', full_name='pps.PipelineInfo.job_timeout', index=30, number=34, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='githook_url', full_name='pps.PipelineInfo.githook_url', index=32, + name='githook_url', full_name='pps.PipelineInfo.githook_url', index=31, number=35, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='spec_commit', full_name='pps.PipelineInfo.spec_commit', index=33, + name='spec_commit', full_name='pps.PipelineInfo.spec_commit', index=32, number=36, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='standby', full_name='pps.PipelineInfo.standby', index=34, + name='standby', full_name='pps.PipelineInfo.standby', index=33, number=37, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='datum_tries', full_name='pps.PipelineInfo.datum_tries', index=35, + name='datum_tries', full_name='pps.PipelineInfo.datum_tries', index=34, number=39, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='scheduling_spec', full_name='pps.PipelineInfo.scheduling_spec', index=36, + name='scheduling_spec', full_name='pps.PipelineInfo.scheduling_spec', index=35, number=40, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='pod_spec', full_name='pps.PipelineInfo.pod_spec', index=37, + name='pod_spec', full_name='pps.PipelineInfo.pod_spec', index=36, number=41, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='pod_patch', full_name='pps.PipelineInfo.pod_patch', index=38, + name='pod_patch', full_name='pps.PipelineInfo.pod_patch', index=37, number=44, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='s3_out', full_name='pps.PipelineInfo.s3_out', index=39, + name='s3_out', full_name='pps.PipelineInfo.s3_out', index=38, number=47, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='metadata', full_name='pps.PipelineInfo.metadata', index=40, + name='metadata', full_name='pps.PipelineInfo.metadata', index=39, number=48, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='no_skip', full_name='pps.PipelineInfo.no_skip', index=40, + number=52, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -2646,8 +2565,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5214, - serialized_end=6553, + serialized_start=5087, + serialized_end=6401, ) @@ -2677,8 +2596,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6555, - serialized_end=6612, + serialized_start=6403, + serialized_end=6460, ) @@ -2799,8 +2718,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6615, - serialized_end=7162, + serialized_start=6463, + serialized_end=7010, ) @@ -2851,8 +2770,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7164, - serialized_end=7277, + serialized_start=7012, + serialized_end=7125, ) @@ -2917,8 +2836,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7280, - serialized_end=7449, + serialized_start=7128, + serialized_end=7297, ) @@ -2955,8 +2874,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7451, - serialized_end=7535, + serialized_start=7299, + serialized_end=7383, ) @@ -2986,8 +2905,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7537, - serialized_end=7578, + serialized_start=7385, + serialized_end=7426, ) @@ -3005,6 +2924,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='output_commit', full_name='pps.StopJobRequest.output_commit', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3017,8 +2943,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7580, - serialized_end=7619, + serialized_start=7428, + serialized_end=7503, ) @@ -3111,8 +3037,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7622, - serialized_end=7876, + serialized_start=7506, + serialized_end=7760, ) @@ -3198,8 +3124,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7879, - serialized_end=8120, + serialized_start=7763, + serialized_end=8004, ) @@ -3285,8 +3211,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8123, - serialized_end=8328, + serialized_start=8007, + serialized_end=8212, ) @@ -3323,8 +3249,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8330, - serialized_end=8396, + serialized_start=8214, + serialized_end=8280, ) @@ -3354,8 +3280,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8398, - serialized_end=8446, + serialized_start=8282, + serialized_end=8330, ) @@ -3373,27 +3299,6 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='input', full_name='pps.ListDatumRequest.input', index=1, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='page_size', full_name='pps.ListDatumRequest.page_size', index=2, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='page', full_name='pps.ListDatumRequest.page', index=3, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3406,98 +3311,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8448, - serialized_end=8549, -) - - -_LISTDATUMRESPONSE = _descriptor.Descriptor( - name='ListDatumResponse', - full_name='pps.ListDatumResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='datum_infos', full_name='pps.ListDatumResponse.datum_infos', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='total_pages', full_name='pps.ListDatumResponse.total_pages', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='page', full_name='pps.ListDatumResponse.page', index=2, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=8551, - serialized_end=8642, -) - - -_LISTDATUMSTREAMRESPONSE = _descriptor.Descriptor( - name='ListDatumStreamResponse', - full_name='pps.ListDatumStreamResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='datum_info', full_name='pps.ListDatumStreamResponse.datum_info', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='total_pages', full_name='pps.ListDatumStreamResponse.total_pages', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='page', full_name='pps.ListDatumStreamResponse.page', index=2, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=8644, - serialized_end=8740, + serialized_start=8332, + serialized_end=8373, ) @@ -3534,8 +3349,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8742, - serialized_end=8789, + serialized_start=8375, + serialized_end=8422, ) @@ -3572,8 +3387,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8901, - serialized_end=8952, + serialized_start=8534, + serialized_end=8585, ) _SCHEDULINGSPEC = _descriptor.Descriptor( @@ -3609,8 +3424,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8792, - serialized_end=8952, + serialized_start=8425, + serialized_end=8585, ) @@ -3650,194 +3465,194 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='hashtree_spec', full_name='pps.CreatePipelineRequest.hashtree_spec', index=4, - number=31, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='egress', full_name='pps.CreatePipelineRequest.egress', index=5, + name='egress', full_name='pps.CreatePipelineRequest.egress', index=4, number=9, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='update', full_name='pps.CreatePipelineRequest.update', index=6, + name='update', full_name='pps.CreatePipelineRequest.update', index=5, number=5, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='output_branch', full_name='pps.CreatePipelineRequest.output_branch', index=7, + name='output_branch', full_name='pps.CreatePipelineRequest.output_branch', index=6, number=10, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='s3_out', full_name='pps.CreatePipelineRequest.s3_out', index=8, + name='s3_out', full_name='pps.CreatePipelineRequest.s3_out', index=7, number=36, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='resource_requests', full_name='pps.CreatePipelineRequest.resource_requests', index=9, + name='resource_requests', full_name='pps.CreatePipelineRequest.resource_requests', index=8, number=12, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='resource_limits', full_name='pps.CreatePipelineRequest.resource_limits', index=10, + name='resource_limits', full_name='pps.CreatePipelineRequest.resource_limits', index=9, number=22, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='sidecar_resource_limits', full_name='pps.CreatePipelineRequest.sidecar_resource_limits', index=11, + name='sidecar_resource_limits', full_name='pps.CreatePipelineRequest.sidecar_resource_limits', index=10, number=47, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='input', full_name='pps.CreatePipelineRequest.input', index=12, + name='input', full_name='pps.CreatePipelineRequest.input', index=11, number=13, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='description', full_name='pps.CreatePipelineRequest.description', index=13, + name='description', full_name='pps.CreatePipelineRequest.description', index=12, number=14, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='cache_size', full_name='pps.CreatePipelineRequest.cache_size', index=14, + name='cache_size', full_name='pps.CreatePipelineRequest.cache_size', index=13, number=16, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='enable_stats', full_name='pps.CreatePipelineRequest.enable_stats', index=15, + name='enable_stats', full_name='pps.CreatePipelineRequest.enable_stats', index=14, number=17, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='reprocess', full_name='pps.CreatePipelineRequest.reprocess', index=16, + name='reprocess', full_name='pps.CreatePipelineRequest.reprocess', index=15, number=18, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='max_queue_size', full_name='pps.CreatePipelineRequest.max_queue_size', index=17, + name='max_queue_size', full_name='pps.CreatePipelineRequest.max_queue_size', index=16, number=20, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='service', full_name='pps.CreatePipelineRequest.service', index=18, + name='service', full_name='pps.CreatePipelineRequest.service', index=17, number=21, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='spout', full_name='pps.CreatePipelineRequest.spout', index=19, + name='spout', full_name='pps.CreatePipelineRequest.spout', index=18, number=33, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='chunk_spec', full_name='pps.CreatePipelineRequest.chunk_spec', index=20, + name='chunk_spec', full_name='pps.CreatePipelineRequest.chunk_spec', index=19, number=23, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='datum_timeout', full_name='pps.CreatePipelineRequest.datum_timeout', index=21, + name='datum_timeout', full_name='pps.CreatePipelineRequest.datum_timeout', index=20, number=24, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='job_timeout', full_name='pps.CreatePipelineRequest.job_timeout', index=22, + name='job_timeout', full_name='pps.CreatePipelineRequest.job_timeout', index=21, number=25, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='salt', full_name='pps.CreatePipelineRequest.salt', index=23, + name='salt', full_name='pps.CreatePipelineRequest.salt', index=22, number=26, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='standby', full_name='pps.CreatePipelineRequest.standby', index=24, + name='standby', full_name='pps.CreatePipelineRequest.standby', index=23, number=27, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='datum_tries', full_name='pps.CreatePipelineRequest.datum_tries', index=25, + name='datum_tries', full_name='pps.CreatePipelineRequest.datum_tries', index=24, number=28, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='scheduling_spec', full_name='pps.CreatePipelineRequest.scheduling_spec', index=26, + name='scheduling_spec', full_name='pps.CreatePipelineRequest.scheduling_spec', index=25, number=29, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='pod_spec', full_name='pps.CreatePipelineRequest.pod_spec', index=27, + name='pod_spec', full_name='pps.CreatePipelineRequest.pod_spec', index=26, number=30, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='pod_patch', full_name='pps.CreatePipelineRequest.pod_patch', index=28, + name='pod_patch', full_name='pps.CreatePipelineRequest.pod_patch', index=27, number=32, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='spec_commit', full_name='pps.CreatePipelineRequest.spec_commit', index=29, + name='spec_commit', full_name='pps.CreatePipelineRequest.spec_commit', index=28, number=34, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='metadata', full_name='pps.CreatePipelineRequest.metadata', index=30, + name='metadata', full_name='pps.CreatePipelineRequest.metadata', index=29, number=46, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='no_skip', full_name='pps.CreatePipelineRequest.no_skip', index=30, + number=48, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -3850,8 +3665,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8955, - serialized_end=9947, + serialized_start=8588, + serialized_end=9555, ) @@ -3881,8 +3696,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9949, - serialized_end=10006, + serialized_start=9557, + serialized_end=9614, ) @@ -3933,8 +3748,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10008, - serialized_end=10123, + serialized_start=9616, + serialized_end=9731, ) @@ -3992,8 +3807,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10126, - serialized_end=10268, + serialized_start=9733, + serialized_end=9848, ) @@ -4023,8 +3838,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10270, - serialized_end=10325, + serialized_start=9850, + serialized_end=9905, ) @@ -4054,8 +3869,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10327, - serialized_end=10381, + serialized_start=9907, + serialized_end=9961, ) @@ -4099,8 +3914,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10383, - serialized_end=10501, + serialized_start=9963, + serialized_end=10081, ) @@ -4130,8 +3945,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10503, - serialized_end=10552, + serialized_start=10083, + serialized_end=10132, ) @@ -4161,8 +3976,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10554, - serialized_end=10589, + serialized_start=10134, + serialized_end=10169, ) @@ -4192,8 +4007,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10591, - serialized_end=10641, + serialized_start=10171, + serialized_end=10221, ) @@ -4223,8 +4038,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10643, - serialized_end=10694, + serialized_start=10223, + serialized_end=10274, ) @@ -4254,8 +4069,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10696, - serialized_end=10718, + serialized_start=10276, + serialized_end=10298, ) @@ -4299,8 +4114,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10720, - serialized_end=10831, + serialized_start=10300, + serialized_end=10411, ) @@ -4330,8 +4145,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10833, - serialized_end=10884, + serialized_start=10413, + serialized_end=10464, ) @@ -4361,8 +4176,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10886, - serialized_end=10931, + serialized_start=10466, + serialized_end=10511, ) @@ -4385,8 +4200,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10933, - serialized_end=10957, + serialized_start=10513, + serialized_end=10537, ) @@ -4409,8 +4224,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10959, - serialized_end=10980, + serialized_start=10539, + serialized_end=10560, ) @@ -4433,8 +4248,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10982, - serialized_end=11004, + serialized_start=10562, + serialized_end=10584, ) _TRANSFORM_ENVENTRY.containing_type = _TRANSFORM @@ -4446,7 +4261,7 @@ _METADATA.fields_by_name['annotations'].message_type = _METADATA_ANNOTATIONSENTRY _METADATA.fields_by_name['labels'].message_type = _METADATA_LABELSENTRY _SPOUT.fields_by_name['service'].message_type = _SERVICE -_PFSINPUT.fields_by_name['trigger'].message_type = client_dot_pfs_dot_pfs__pb2._TRIGGER +_PFSINPUT.fields_by_name['trigger'].message_type = pfs_dot_pfs__pb2._TRIGGER _CRONINPUT.fields_by_name['start'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _INPUT.fields_by_name['pfs'].message_type = _PFSINPUT _INPUT.fields_by_name['join'].message_type = _INPUT @@ -4455,13 +4270,13 @@ _INPUT.fields_by_name['union'].message_type = _INPUT _INPUT.fields_by_name['cron'].message_type = _CRONINPUT _INPUT.fields_by_name['git'].message_type = _GITINPUT -_JOBINPUT.fields_by_name['commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_JOBINPUT.fields_by_name['commit'].message_type = pfs_dot_pfs__pb2._COMMIT _DATUM.fields_by_name['job'].message_type = _JOB _DATUMINFO.fields_by_name['datum'].message_type = _DATUM _DATUMINFO.fields_by_name['state'].enum_type = _DATUMSTATE _DATUMINFO.fields_by_name['stats'].message_type = _PROCESSSTATS -_DATUMINFO.fields_by_name['pfs_state'].message_type = client_dot_pfs_dot_pfs__pb2._FILE -_DATUMINFO.fields_by_name['data'].message_type = client_dot_pfs_dot_pfs__pb2._FILEINFO +_DATUMINFO.fields_by_name['pfs_state'].message_type = pfs_dot_pfs__pb2._FILE +_DATUMINFO.fields_by_name['data'].message_type = pfs_dot_pfs__pb2._FILEINFO _PROCESSSTATS.fields_by_name['download_time'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _PROCESSSTATS.fields_by_name['process_time'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _PROCESSSTATS.fields_by_name['upload_time'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION @@ -4476,43 +4291,42 @@ _RESOURCESPEC.fields_by_name['gpu'].message_type = _GPUSPEC _ETCDJOBINFO.fields_by_name['job'].message_type = _JOB _ETCDJOBINFO.fields_by_name['pipeline'].message_type = _PIPELINE -_ETCDJOBINFO.fields_by_name['output_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_ETCDJOBINFO.fields_by_name['output_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _ETCDJOBINFO.fields_by_name['stats'].message_type = _PROCESSSTATS -_ETCDJOBINFO.fields_by_name['stats_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_ETCDJOBINFO.fields_by_name['stats_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _ETCDJOBINFO.fields_by_name['state'].enum_type = _JOBSTATE _ETCDJOBINFO.fields_by_name['started'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _ETCDJOBINFO.fields_by_name['finished'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _JOBINFO.fields_by_name['job'].message_type = _JOB _JOBINFO.fields_by_name['transform'].message_type = _TRANSFORM _JOBINFO.fields_by_name['pipeline'].message_type = _PIPELINE -_JOBINFO.fields_by_name['spec_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_JOBINFO.fields_by_name['spec_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _JOBINFO.fields_by_name['parallelism_spec'].message_type = _PARALLELISMSPEC _JOBINFO.fields_by_name['egress'].message_type = _EGRESS _JOBINFO.fields_by_name['parent_job'].message_type = _JOB _JOBINFO.fields_by_name['started'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _JOBINFO.fields_by_name['finished'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP -_JOBINFO.fields_by_name['output_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_JOBINFO.fields_by_name['output_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _JOBINFO.fields_by_name['state'].enum_type = _JOBSTATE _JOBINFO.fields_by_name['service'].message_type = _SERVICE _JOBINFO.fields_by_name['spout'].message_type = _SPOUT -_JOBINFO.fields_by_name['output_repo'].message_type = client_dot_pfs_dot_pfs__pb2._REPO +_JOBINFO.fields_by_name['output_repo'].message_type = pfs_dot_pfs__pb2._REPO _JOBINFO.fields_by_name['stats'].message_type = _PROCESSSTATS _JOBINFO.fields_by_name['worker_status'].message_type = _WORKERSTATUS _JOBINFO.fields_by_name['resource_requests'].message_type = _RESOURCESPEC _JOBINFO.fields_by_name['resource_limits'].message_type = _RESOURCESPEC _JOBINFO.fields_by_name['sidecar_resource_limits'].message_type = _RESOURCESPEC _JOBINFO.fields_by_name['input'].message_type = _INPUT -_JOBINFO.fields_by_name['new_branch'].message_type = client_dot_pfs_dot_pfs__pb2._BRANCHINFO -_JOBINFO.fields_by_name['stats_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_JOBINFO.fields_by_name['new_branch'].message_type = pfs_dot_pfs__pb2._BRANCHINFO +_JOBINFO.fields_by_name['stats_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _JOBINFO.fields_by_name['chunk_spec'].message_type = _CHUNKSPEC _JOBINFO.fields_by_name['datum_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _JOBINFO.fields_by_name['job_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _JOBINFO.fields_by_name['scheduling_spec'].message_type = _SCHEDULINGSPEC _WORKER.fields_by_name['state'].enum_type = _WORKERSTATE -_JOBINFOS.fields_by_name['job_info'].message_type = _JOBINFO _ETCDPIPELINEINFO_JOBCOUNTSENTRY.containing_type = _ETCDPIPELINEINFO _ETCDPIPELINEINFO.fields_by_name['state'].enum_type = _PIPELINESTATE -_ETCDPIPELINEINFO.fields_by_name['spec_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_ETCDPIPELINEINFO.fields_by_name['spec_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _ETCDPIPELINEINFO.fields_by_name['job_counts'].message_type = _ETCDPIPELINEINFO_JOBCOUNTSENTRY _ETCDPIPELINEINFO.fields_by_name['last_job_state'].enum_type = _JOBSTATE _PIPELINEINFO_JOBCOUNTSENTRY.containing_type = _PIPELINEINFO @@ -4520,7 +4334,6 @@ _PIPELINEINFO.fields_by_name['transform'].message_type = _TRANSFORM _PIPELINEINFO.fields_by_name['tf_job'].message_type = _TFJOB _PIPELINEINFO.fields_by_name['parallelism_spec'].message_type = _PARALLELISMSPEC -_PIPELINEINFO.fields_by_name['hashtree_spec'].message_type = _HASHTREESPEC _PIPELINEINFO.fields_by_name['egress'].message_type = _EGRESS _PIPELINEINFO.fields_by_name['created_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _PIPELINEINFO.fields_by_name['state'].enum_type = _PIPELINESTATE @@ -4535,26 +4348,27 @@ _PIPELINEINFO.fields_by_name['chunk_spec'].message_type = _CHUNKSPEC _PIPELINEINFO.fields_by_name['datum_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _PIPELINEINFO.fields_by_name['job_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION -_PIPELINEINFO.fields_by_name['spec_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_PIPELINEINFO.fields_by_name['spec_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _PIPELINEINFO.fields_by_name['scheduling_spec'].message_type = _SCHEDULINGSPEC _PIPELINEINFO.fields_by_name['metadata'].message_type = _METADATA _PIPELINEINFOS.fields_by_name['pipeline_info'].message_type = _PIPELINEINFO _CREATEJOBREQUEST.fields_by_name['pipeline'].message_type = _PIPELINE -_CREATEJOBREQUEST.fields_by_name['output_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_CREATEJOBREQUEST.fields_by_name['output_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _CREATEJOBREQUEST.fields_by_name['stats'].message_type = _PROCESSSTATS -_CREATEJOBREQUEST.fields_by_name['stats_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_CREATEJOBREQUEST.fields_by_name['stats_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _CREATEJOBREQUEST.fields_by_name['state'].enum_type = _JOBSTATE _CREATEJOBREQUEST.fields_by_name['started'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _CREATEJOBREQUEST.fields_by_name['finished'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP _INSPECTJOBREQUEST.fields_by_name['job'].message_type = _JOB -_INSPECTJOBREQUEST.fields_by_name['output_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_INSPECTJOBREQUEST.fields_by_name['output_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _LISTJOBREQUEST.fields_by_name['pipeline'].message_type = _PIPELINE -_LISTJOBREQUEST.fields_by_name['input_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT -_LISTJOBREQUEST.fields_by_name['output_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT -_FLUSHJOBREQUEST.fields_by_name['commits'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_LISTJOBREQUEST.fields_by_name['input_commit'].message_type = pfs_dot_pfs__pb2._COMMIT +_LISTJOBREQUEST.fields_by_name['output_commit'].message_type = pfs_dot_pfs__pb2._COMMIT +_FLUSHJOBREQUEST.fields_by_name['commits'].message_type = pfs_dot_pfs__pb2._COMMIT _FLUSHJOBREQUEST.fields_by_name['to_pipelines'].message_type = _PIPELINE _DELETEJOBREQUEST.fields_by_name['job'].message_type = _JOB _STOPJOBREQUEST.fields_by_name['job'].message_type = _JOB +_STOPJOBREQUEST.fields_by_name['output_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _UPDATEJOBSTATEREQUEST.fields_by_name['job'].message_type = _JOB _UPDATEJOBSTATEREQUEST.fields_by_name['state'].enum_type = _JOBSTATE _UPDATEJOBSTATEREQUEST.fields_by_name['stats'].message_type = _PROCESSSTATS @@ -4567,16 +4381,12 @@ _RESTARTDATUMREQUEST.fields_by_name['job'].message_type = _JOB _INSPECTDATUMREQUEST.fields_by_name['datum'].message_type = _DATUM _LISTDATUMREQUEST.fields_by_name['job'].message_type = _JOB -_LISTDATUMREQUEST.fields_by_name['input'].message_type = _INPUT -_LISTDATUMRESPONSE.fields_by_name['datum_infos'].message_type = _DATUMINFO -_LISTDATUMSTREAMRESPONSE.fields_by_name['datum_info'].message_type = _DATUMINFO _SCHEDULINGSPEC_NODESELECTORENTRY.containing_type = _SCHEDULINGSPEC _SCHEDULINGSPEC.fields_by_name['node_selector'].message_type = _SCHEDULINGSPEC_NODESELECTORENTRY _CREATEPIPELINEREQUEST.fields_by_name['pipeline'].message_type = _PIPELINE _CREATEPIPELINEREQUEST.fields_by_name['tf_job'].message_type = _TFJOB _CREATEPIPELINEREQUEST.fields_by_name['transform'].message_type = _TRANSFORM _CREATEPIPELINEREQUEST.fields_by_name['parallelism_spec'].message_type = _PARALLELISMSPEC -_CREATEPIPELINEREQUEST.fields_by_name['hashtree_spec'].message_type = _HASHTREESPEC _CREATEPIPELINEREQUEST.fields_by_name['egress'].message_type = _EGRESS _CREATEPIPELINEREQUEST.fields_by_name['resource_requests'].message_type = _RESOURCESPEC _CREATEPIPELINEREQUEST.fields_by_name['resource_limits'].message_type = _RESOURCESPEC @@ -4588,7 +4398,7 @@ _CREATEPIPELINEREQUEST.fields_by_name['datum_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _CREATEPIPELINEREQUEST.fields_by_name['job_timeout'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION _CREATEPIPELINEREQUEST.fields_by_name['scheduling_spec'].message_type = _SCHEDULINGSPEC -_CREATEPIPELINEREQUEST.fields_by_name['spec_commit'].message_type = client_dot_pfs_dot_pfs__pb2._COMMIT +_CREATEPIPELINEREQUEST.fields_by_name['spec_commit'].message_type = pfs_dot_pfs__pb2._COMMIT _CREATEPIPELINEREQUEST.fields_by_name['metadata'].message_type = _METADATA _INSPECTPIPELINEREQUEST.fields_by_name['pipeline'].message_type = _PIPELINE _LISTPIPELINEREQUEST.fields_by_name['pipeline'].message_type = _PIPELINE @@ -4596,7 +4406,7 @@ _STARTPIPELINEREQUEST.fields_by_name['pipeline'].message_type = _PIPELINE _STOPPIPELINEREQUEST.fields_by_name['pipeline'].message_type = _PIPELINE _RUNPIPELINEREQUEST.fields_by_name['pipeline'].message_type = _PIPELINE -_RUNPIPELINEREQUEST.fields_by_name['provenance'].message_type = client_dot_pfs_dot_pfs__pb2._COMMITPROVENANCE +_RUNPIPELINEREQUEST.fields_by_name['provenance'].message_type = pfs_dot_pfs__pb2._COMMITPROVENANCE _RUNCRONREQUEST.fields_by_name['pipeline'].message_type = _PIPELINE _DELETESECRETREQUEST.fields_by_name['secret'].message_type = _SECRET _INSPECTSECRETREQUEST.fields_by_name['secret'].message_type = _SECRET @@ -4618,7 +4428,6 @@ DESCRIPTOR.message_types_by_name['Input'] = _INPUT DESCRIPTOR.message_types_by_name['JobInput'] = _JOBINPUT DESCRIPTOR.message_types_by_name['ParallelismSpec'] = _PARALLELISMSPEC -DESCRIPTOR.message_types_by_name['HashtreeSpec'] = _HASHTREESPEC DESCRIPTOR.message_types_by_name['InputFile'] = _INPUTFILE DESCRIPTOR.message_types_by_name['Datum'] = _DATUM DESCRIPTOR.message_types_by_name['DatumInfo'] = _DATUMINFO @@ -4631,7 +4440,6 @@ DESCRIPTOR.message_types_by_name['EtcdJobInfo'] = _ETCDJOBINFO DESCRIPTOR.message_types_by_name['JobInfo'] = _JOBINFO DESCRIPTOR.message_types_by_name['Worker'] = _WORKER -DESCRIPTOR.message_types_by_name['JobInfos'] = _JOBINFOS DESCRIPTOR.message_types_by_name['Pipeline'] = _PIPELINE DESCRIPTOR.message_types_by_name['EtcdPipelineInfo'] = _ETCDPIPELINEINFO DESCRIPTOR.message_types_by_name['PipelineInfo'] = _PIPELINEINFO @@ -4648,8 +4456,6 @@ DESCRIPTOR.message_types_by_name['RestartDatumRequest'] = _RESTARTDATUMREQUEST DESCRIPTOR.message_types_by_name['InspectDatumRequest'] = _INSPECTDATUMREQUEST DESCRIPTOR.message_types_by_name['ListDatumRequest'] = _LISTDATUMREQUEST -DESCRIPTOR.message_types_by_name['ListDatumResponse'] = _LISTDATUMRESPONSE -DESCRIPTOR.message_types_by_name['ListDatumStreamResponse'] = _LISTDATUMSTREAMRESPONSE DESCRIPTOR.message_types_by_name['ChunkSpec'] = _CHUNKSPEC DESCRIPTOR.message_types_by_name['SchedulingSpec'] = _SCHEDULINGSPEC DESCRIPTOR.message_types_by_name['CreatePipelineRequest'] = _CREATEPIPELINEREQUEST @@ -4678,7 +4484,7 @@ SecretMount = _reflection.GeneratedProtocolMessageType('SecretMount', (_message.Message,), { 'DESCRIPTOR' : _SECRETMOUNT, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.SecretMount) }) _sym_db.RegisterMessage(SecretMount) @@ -4687,12 +4493,12 @@ 'EnvEntry' : _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), { 'DESCRIPTOR' : _TRANSFORM_ENVENTRY, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Transform.EnvEntry) }) , 'DESCRIPTOR' : _TRANSFORM, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Transform) }) _sym_db.RegisterMessage(Transform) @@ -4700,28 +4506,28 @@ BuildSpec = _reflection.GeneratedProtocolMessageType('BuildSpec', (_message.Message,), { 'DESCRIPTOR' : _BUILDSPEC, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.BuildSpec) }) _sym_db.RegisterMessage(BuildSpec) TFJob = _reflection.GeneratedProtocolMessageType('TFJob', (_message.Message,), { 'DESCRIPTOR' : _TFJOB, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.TFJob) }) _sym_db.RegisterMessage(TFJob) Egress = _reflection.GeneratedProtocolMessageType('Egress', (_message.Message,), { 'DESCRIPTOR' : _EGRESS, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Egress) }) _sym_db.RegisterMessage(Egress) Job = _reflection.GeneratedProtocolMessageType('Job', (_message.Message,), { 'DESCRIPTOR' : _JOB, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Job) }) _sym_db.RegisterMessage(Job) @@ -4730,19 +4536,19 @@ 'AnnotationsEntry' : _reflection.GeneratedProtocolMessageType('AnnotationsEntry', (_message.Message,), { 'DESCRIPTOR' : _METADATA_ANNOTATIONSENTRY, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Metadata.AnnotationsEntry) }) , 'LabelsEntry' : _reflection.GeneratedProtocolMessageType('LabelsEntry', (_message.Message,), { 'DESCRIPTOR' : _METADATA_LABELSENTRY, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Metadata.LabelsEntry) }) , 'DESCRIPTOR' : _METADATA, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Metadata) }) _sym_db.RegisterMessage(Metadata) @@ -4751,161 +4557,147 @@ Service = _reflection.GeneratedProtocolMessageType('Service', (_message.Message,), { 'DESCRIPTOR' : _SERVICE, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Service) }) _sym_db.RegisterMessage(Service) Spout = _reflection.GeneratedProtocolMessageType('Spout', (_message.Message,), { 'DESCRIPTOR' : _SPOUT, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Spout) }) _sym_db.RegisterMessage(Spout) PFSInput = _reflection.GeneratedProtocolMessageType('PFSInput', (_message.Message,), { 'DESCRIPTOR' : _PFSINPUT, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.PFSInput) }) _sym_db.RegisterMessage(PFSInput) CronInput = _reflection.GeneratedProtocolMessageType('CronInput', (_message.Message,), { 'DESCRIPTOR' : _CRONINPUT, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.CronInput) }) _sym_db.RegisterMessage(CronInput) GitInput = _reflection.GeneratedProtocolMessageType('GitInput', (_message.Message,), { 'DESCRIPTOR' : _GITINPUT, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.GitInput) }) _sym_db.RegisterMessage(GitInput) Input = _reflection.GeneratedProtocolMessageType('Input', (_message.Message,), { 'DESCRIPTOR' : _INPUT, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Input) }) _sym_db.RegisterMessage(Input) JobInput = _reflection.GeneratedProtocolMessageType('JobInput', (_message.Message,), { 'DESCRIPTOR' : _JOBINPUT, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.JobInput) }) _sym_db.RegisterMessage(JobInput) ParallelismSpec = _reflection.GeneratedProtocolMessageType('ParallelismSpec', (_message.Message,), { 'DESCRIPTOR' : _PARALLELISMSPEC, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.ParallelismSpec) }) _sym_db.RegisterMessage(ParallelismSpec) -HashtreeSpec = _reflection.GeneratedProtocolMessageType('HashtreeSpec', (_message.Message,), { - 'DESCRIPTOR' : _HASHTREESPEC, - '__module__' : 'client.pps.pps_pb2' - # @@protoc_insertion_point(class_scope:pps.HashtreeSpec) - }) -_sym_db.RegisterMessage(HashtreeSpec) - InputFile = _reflection.GeneratedProtocolMessageType('InputFile', (_message.Message,), { 'DESCRIPTOR' : _INPUTFILE, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.InputFile) }) _sym_db.RegisterMessage(InputFile) Datum = _reflection.GeneratedProtocolMessageType('Datum', (_message.Message,), { 'DESCRIPTOR' : _DATUM, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Datum) }) _sym_db.RegisterMessage(Datum) DatumInfo = _reflection.GeneratedProtocolMessageType('DatumInfo', (_message.Message,), { 'DESCRIPTOR' : _DATUMINFO, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.DatumInfo) }) _sym_db.RegisterMessage(DatumInfo) Aggregate = _reflection.GeneratedProtocolMessageType('Aggregate', (_message.Message,), { 'DESCRIPTOR' : _AGGREGATE, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Aggregate) }) _sym_db.RegisterMessage(Aggregate) ProcessStats = _reflection.GeneratedProtocolMessageType('ProcessStats', (_message.Message,), { 'DESCRIPTOR' : _PROCESSSTATS, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.ProcessStats) }) _sym_db.RegisterMessage(ProcessStats) AggregateProcessStats = _reflection.GeneratedProtocolMessageType('AggregateProcessStats', (_message.Message,), { 'DESCRIPTOR' : _AGGREGATEPROCESSSTATS, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.AggregateProcessStats) }) _sym_db.RegisterMessage(AggregateProcessStats) WorkerStatus = _reflection.GeneratedProtocolMessageType('WorkerStatus', (_message.Message,), { 'DESCRIPTOR' : _WORKERSTATUS, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.WorkerStatus) }) _sym_db.RegisterMessage(WorkerStatus) ResourceSpec = _reflection.GeneratedProtocolMessageType('ResourceSpec', (_message.Message,), { 'DESCRIPTOR' : _RESOURCESPEC, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.ResourceSpec) }) _sym_db.RegisterMessage(ResourceSpec) GPUSpec = _reflection.GeneratedProtocolMessageType('GPUSpec', (_message.Message,), { 'DESCRIPTOR' : _GPUSPEC, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.GPUSpec) }) _sym_db.RegisterMessage(GPUSpec) EtcdJobInfo = _reflection.GeneratedProtocolMessageType('EtcdJobInfo', (_message.Message,), { 'DESCRIPTOR' : _ETCDJOBINFO, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.EtcdJobInfo) }) _sym_db.RegisterMessage(EtcdJobInfo) JobInfo = _reflection.GeneratedProtocolMessageType('JobInfo', (_message.Message,), { 'DESCRIPTOR' : _JOBINFO, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.JobInfo) }) _sym_db.RegisterMessage(JobInfo) Worker = _reflection.GeneratedProtocolMessageType('Worker', (_message.Message,), { 'DESCRIPTOR' : _WORKER, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Worker) }) _sym_db.RegisterMessage(Worker) -JobInfos = _reflection.GeneratedProtocolMessageType('JobInfos', (_message.Message,), { - 'DESCRIPTOR' : _JOBINFOS, - '__module__' : 'client.pps.pps_pb2' - # @@protoc_insertion_point(class_scope:pps.JobInfos) - }) -_sym_db.RegisterMessage(JobInfos) - Pipeline = _reflection.GeneratedProtocolMessageType('Pipeline', (_message.Message,), { 'DESCRIPTOR' : _PIPELINE, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Pipeline) }) _sym_db.RegisterMessage(Pipeline) @@ -4914,12 +4706,12 @@ 'JobCountsEntry' : _reflection.GeneratedProtocolMessageType('JobCountsEntry', (_message.Message,), { 'DESCRIPTOR' : _ETCDPIPELINEINFO_JOBCOUNTSENTRY, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.EtcdPipelineInfo.JobCountsEntry) }) , 'DESCRIPTOR' : _ETCDPIPELINEINFO, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.EtcdPipelineInfo) }) _sym_db.RegisterMessage(EtcdPipelineInfo) @@ -4929,12 +4721,12 @@ 'JobCountsEntry' : _reflection.GeneratedProtocolMessageType('JobCountsEntry', (_message.Message,), { 'DESCRIPTOR' : _PIPELINEINFO_JOBCOUNTSENTRY, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.PipelineInfo.JobCountsEntry) }) , 'DESCRIPTOR' : _PIPELINEINFO, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.PipelineInfo) }) _sym_db.RegisterMessage(PipelineInfo) @@ -4942,112 +4734,98 @@ PipelineInfos = _reflection.GeneratedProtocolMessageType('PipelineInfos', (_message.Message,), { 'DESCRIPTOR' : _PIPELINEINFOS, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.PipelineInfos) }) _sym_db.RegisterMessage(PipelineInfos) CreateJobRequest = _reflection.GeneratedProtocolMessageType('CreateJobRequest', (_message.Message,), { 'DESCRIPTOR' : _CREATEJOBREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.CreateJobRequest) }) _sym_db.RegisterMessage(CreateJobRequest) InspectJobRequest = _reflection.GeneratedProtocolMessageType('InspectJobRequest', (_message.Message,), { 'DESCRIPTOR' : _INSPECTJOBREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.InspectJobRequest) }) _sym_db.RegisterMessage(InspectJobRequest) ListJobRequest = _reflection.GeneratedProtocolMessageType('ListJobRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTJOBREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.ListJobRequest) }) _sym_db.RegisterMessage(ListJobRequest) FlushJobRequest = _reflection.GeneratedProtocolMessageType('FlushJobRequest', (_message.Message,), { 'DESCRIPTOR' : _FLUSHJOBREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.FlushJobRequest) }) _sym_db.RegisterMessage(FlushJobRequest) DeleteJobRequest = _reflection.GeneratedProtocolMessageType('DeleteJobRequest', (_message.Message,), { 'DESCRIPTOR' : _DELETEJOBREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.DeleteJobRequest) }) _sym_db.RegisterMessage(DeleteJobRequest) StopJobRequest = _reflection.GeneratedProtocolMessageType('StopJobRequest', (_message.Message,), { 'DESCRIPTOR' : _STOPJOBREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.StopJobRequest) }) _sym_db.RegisterMessage(StopJobRequest) UpdateJobStateRequest = _reflection.GeneratedProtocolMessageType('UpdateJobStateRequest', (_message.Message,), { 'DESCRIPTOR' : _UPDATEJOBSTATEREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.UpdateJobStateRequest) }) _sym_db.RegisterMessage(UpdateJobStateRequest) GetLogsRequest = _reflection.GeneratedProtocolMessageType('GetLogsRequest', (_message.Message,), { 'DESCRIPTOR' : _GETLOGSREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.GetLogsRequest) }) _sym_db.RegisterMessage(GetLogsRequest) LogMessage = _reflection.GeneratedProtocolMessageType('LogMessage', (_message.Message,), { 'DESCRIPTOR' : _LOGMESSAGE, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.LogMessage) }) _sym_db.RegisterMessage(LogMessage) RestartDatumRequest = _reflection.GeneratedProtocolMessageType('RestartDatumRequest', (_message.Message,), { 'DESCRIPTOR' : _RESTARTDATUMREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.RestartDatumRequest) }) _sym_db.RegisterMessage(RestartDatumRequest) InspectDatumRequest = _reflection.GeneratedProtocolMessageType('InspectDatumRequest', (_message.Message,), { 'DESCRIPTOR' : _INSPECTDATUMREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.InspectDatumRequest) }) _sym_db.RegisterMessage(InspectDatumRequest) ListDatumRequest = _reflection.GeneratedProtocolMessageType('ListDatumRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTDATUMREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.ListDatumRequest) }) _sym_db.RegisterMessage(ListDatumRequest) -ListDatumResponse = _reflection.GeneratedProtocolMessageType('ListDatumResponse', (_message.Message,), { - 'DESCRIPTOR' : _LISTDATUMRESPONSE, - '__module__' : 'client.pps.pps_pb2' - # @@protoc_insertion_point(class_scope:pps.ListDatumResponse) - }) -_sym_db.RegisterMessage(ListDatumResponse) - -ListDatumStreamResponse = _reflection.GeneratedProtocolMessageType('ListDatumStreamResponse', (_message.Message,), { - 'DESCRIPTOR' : _LISTDATUMSTREAMRESPONSE, - '__module__' : 'client.pps.pps_pb2' - # @@protoc_insertion_point(class_scope:pps.ListDatumStreamResponse) - }) -_sym_db.RegisterMessage(ListDatumStreamResponse) - ChunkSpec = _reflection.GeneratedProtocolMessageType('ChunkSpec', (_message.Message,), { 'DESCRIPTOR' : _CHUNKSPEC, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.ChunkSpec) }) _sym_db.RegisterMessage(ChunkSpec) @@ -5056,12 +4834,12 @@ 'NodeSelectorEntry' : _reflection.GeneratedProtocolMessageType('NodeSelectorEntry', (_message.Message,), { 'DESCRIPTOR' : _SCHEDULINGSPEC_NODESELECTORENTRY, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.SchedulingSpec.NodeSelectorEntry) }) , 'DESCRIPTOR' : _SCHEDULINGSPEC, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.SchedulingSpec) }) _sym_db.RegisterMessage(SchedulingSpec) @@ -5069,126 +4847,126 @@ CreatePipelineRequest = _reflection.GeneratedProtocolMessageType('CreatePipelineRequest', (_message.Message,), { 'DESCRIPTOR' : _CREATEPIPELINEREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.CreatePipelineRequest) }) _sym_db.RegisterMessage(CreatePipelineRequest) InspectPipelineRequest = _reflection.GeneratedProtocolMessageType('InspectPipelineRequest', (_message.Message,), { 'DESCRIPTOR' : _INSPECTPIPELINEREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.InspectPipelineRequest) }) _sym_db.RegisterMessage(InspectPipelineRequest) ListPipelineRequest = _reflection.GeneratedProtocolMessageType('ListPipelineRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTPIPELINEREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.ListPipelineRequest) }) _sym_db.RegisterMessage(ListPipelineRequest) DeletePipelineRequest = _reflection.GeneratedProtocolMessageType('DeletePipelineRequest', (_message.Message,), { 'DESCRIPTOR' : _DELETEPIPELINEREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.DeletePipelineRequest) }) _sym_db.RegisterMessage(DeletePipelineRequest) StartPipelineRequest = _reflection.GeneratedProtocolMessageType('StartPipelineRequest', (_message.Message,), { 'DESCRIPTOR' : _STARTPIPELINEREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.StartPipelineRequest) }) _sym_db.RegisterMessage(StartPipelineRequest) StopPipelineRequest = _reflection.GeneratedProtocolMessageType('StopPipelineRequest', (_message.Message,), { 'DESCRIPTOR' : _STOPPIPELINEREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.StopPipelineRequest) }) _sym_db.RegisterMessage(StopPipelineRequest) RunPipelineRequest = _reflection.GeneratedProtocolMessageType('RunPipelineRequest', (_message.Message,), { 'DESCRIPTOR' : _RUNPIPELINEREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.RunPipelineRequest) }) _sym_db.RegisterMessage(RunPipelineRequest) RunCronRequest = _reflection.GeneratedProtocolMessageType('RunCronRequest', (_message.Message,), { 'DESCRIPTOR' : _RUNCRONREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.RunCronRequest) }) _sym_db.RegisterMessage(RunCronRequest) CreateSecretRequest = _reflection.GeneratedProtocolMessageType('CreateSecretRequest', (_message.Message,), { 'DESCRIPTOR' : _CREATESECRETREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.CreateSecretRequest) }) _sym_db.RegisterMessage(CreateSecretRequest) DeleteSecretRequest = _reflection.GeneratedProtocolMessageType('DeleteSecretRequest', (_message.Message,), { 'DESCRIPTOR' : _DELETESECRETREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.DeleteSecretRequest) }) _sym_db.RegisterMessage(DeleteSecretRequest) InspectSecretRequest = _reflection.GeneratedProtocolMessageType('InspectSecretRequest', (_message.Message,), { 'DESCRIPTOR' : _INSPECTSECRETREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.InspectSecretRequest) }) _sym_db.RegisterMessage(InspectSecretRequest) Secret = _reflection.GeneratedProtocolMessageType('Secret', (_message.Message,), { 'DESCRIPTOR' : _SECRET, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.Secret) }) _sym_db.RegisterMessage(Secret) SecretInfo = _reflection.GeneratedProtocolMessageType('SecretInfo', (_message.Message,), { 'DESCRIPTOR' : _SECRETINFO, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.SecretInfo) }) _sym_db.RegisterMessage(SecretInfo) SecretInfos = _reflection.GeneratedProtocolMessageType('SecretInfos', (_message.Message,), { 'DESCRIPTOR' : _SECRETINFOS, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.SecretInfos) }) _sym_db.RegisterMessage(SecretInfos) GarbageCollectRequest = _reflection.GeneratedProtocolMessageType('GarbageCollectRequest', (_message.Message,), { 'DESCRIPTOR' : _GARBAGECOLLECTREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.GarbageCollectRequest) }) _sym_db.RegisterMessage(GarbageCollectRequest) GarbageCollectResponse = _reflection.GeneratedProtocolMessageType('GarbageCollectResponse', (_message.Message,), { 'DESCRIPTOR' : _GARBAGECOLLECTRESPONSE, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.GarbageCollectResponse) }) _sym_db.RegisterMessage(GarbageCollectResponse) ActivateAuthRequest = _reflection.GeneratedProtocolMessageType('ActivateAuthRequest', (_message.Message,), { 'DESCRIPTOR' : _ACTIVATEAUTHREQUEST, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.ActivateAuthRequest) }) _sym_db.RegisterMessage(ActivateAuthRequest) ActivateAuthResponse = _reflection.GeneratedProtocolMessageType('ActivateAuthResponse', (_message.Message,), { 'DESCRIPTOR' : _ACTIVATEAUTHRESPONSE, - '__module__' : 'client.pps.pps_pb2' + '__module__' : 'pps.pps_pb2' # @@protoc_insertion_point(class_scope:pps.ActivateAuthResponse) }) _sym_db.RegisterMessage(ActivateAuthResponse) @@ -5208,8 +4986,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=11463, - serialized_end=13245, + serialized_start=11025, + serialized_end=12593, methods=[ _descriptor.MethodDescriptor( name='CreateJob', @@ -5235,22 +5013,13 @@ index=2, containing_service=None, input_type=_LISTJOBREQUEST, - output_type=_JOBINFOS, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ListJobStream', - full_name='pps.API.ListJobStream', - index=3, - containing_service=None, - input_type=_LISTJOBREQUEST, output_type=_JOBINFO, serialized_options=None, ), _descriptor.MethodDescriptor( name='FlushJob', full_name='pps.API.FlushJob', - index=4, + index=3, containing_service=None, input_type=_FLUSHJOBREQUEST, output_type=_JOBINFO, @@ -5259,7 +5028,7 @@ _descriptor.MethodDescriptor( name='DeleteJob', full_name='pps.API.DeleteJob', - index=5, + index=4, containing_service=None, input_type=_DELETEJOBREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5268,7 +5037,7 @@ _descriptor.MethodDescriptor( name='StopJob', full_name='pps.API.StopJob', - index=6, + index=5, containing_service=None, input_type=_STOPJOBREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5277,7 +5046,7 @@ _descriptor.MethodDescriptor( name='InspectDatum', full_name='pps.API.InspectDatum', - index=7, + index=6, containing_service=None, input_type=_INSPECTDATUMREQUEST, output_type=_DATUMINFO, @@ -5286,25 +5055,16 @@ _descriptor.MethodDescriptor( name='ListDatum', full_name='pps.API.ListDatum', - index=8, - containing_service=None, - input_type=_LISTDATUMREQUEST, - output_type=_LISTDATUMRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='ListDatumStream', - full_name='pps.API.ListDatumStream', - index=9, + index=7, containing_service=None, input_type=_LISTDATUMREQUEST, - output_type=_LISTDATUMSTREAMRESPONSE, + output_type=_DATUMINFO, serialized_options=None, ), _descriptor.MethodDescriptor( name='RestartDatum', full_name='pps.API.RestartDatum', - index=10, + index=8, containing_service=None, input_type=_RESTARTDATUMREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5313,7 +5073,7 @@ _descriptor.MethodDescriptor( name='CreatePipeline', full_name='pps.API.CreatePipeline', - index=11, + index=9, containing_service=None, input_type=_CREATEPIPELINEREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5322,7 +5082,7 @@ _descriptor.MethodDescriptor( name='InspectPipeline', full_name='pps.API.InspectPipeline', - index=12, + index=10, containing_service=None, input_type=_INSPECTPIPELINEREQUEST, output_type=_PIPELINEINFO, @@ -5331,7 +5091,7 @@ _descriptor.MethodDescriptor( name='ListPipeline', full_name='pps.API.ListPipeline', - index=13, + index=11, containing_service=None, input_type=_LISTPIPELINEREQUEST, output_type=_PIPELINEINFOS, @@ -5340,7 +5100,7 @@ _descriptor.MethodDescriptor( name='DeletePipeline', full_name='pps.API.DeletePipeline', - index=14, + index=12, containing_service=None, input_type=_DELETEPIPELINEREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5349,7 +5109,7 @@ _descriptor.MethodDescriptor( name='StartPipeline', full_name='pps.API.StartPipeline', - index=15, + index=13, containing_service=None, input_type=_STARTPIPELINEREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5358,7 +5118,7 @@ _descriptor.MethodDescriptor( name='StopPipeline', full_name='pps.API.StopPipeline', - index=16, + index=14, containing_service=None, input_type=_STOPPIPELINEREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5367,7 +5127,7 @@ _descriptor.MethodDescriptor( name='RunPipeline', full_name='pps.API.RunPipeline', - index=17, + index=15, containing_service=None, input_type=_RUNPIPELINEREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5376,7 +5136,7 @@ _descriptor.MethodDescriptor( name='RunCron', full_name='pps.API.RunCron', - index=18, + index=16, containing_service=None, input_type=_RUNCRONREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5385,7 +5145,7 @@ _descriptor.MethodDescriptor( name='CreateSecret', full_name='pps.API.CreateSecret', - index=19, + index=17, containing_service=None, input_type=_CREATESECRETREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5394,7 +5154,7 @@ _descriptor.MethodDescriptor( name='DeleteSecret', full_name='pps.API.DeleteSecret', - index=20, + index=18, containing_service=None, input_type=_DELETESECRETREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5403,7 +5163,7 @@ _descriptor.MethodDescriptor( name='ListSecret', full_name='pps.API.ListSecret', - index=21, + index=19, containing_service=None, input_type=google_dot_protobuf_dot_empty__pb2._EMPTY, output_type=_SECRETINFOS, @@ -5412,7 +5172,7 @@ _descriptor.MethodDescriptor( name='InspectSecret', full_name='pps.API.InspectSecret', - index=22, + index=20, containing_service=None, input_type=_INSPECTSECRETREQUEST, output_type=_SECRETINFO, @@ -5421,7 +5181,7 @@ _descriptor.MethodDescriptor( name='DeleteAll', full_name='pps.API.DeleteAll', - index=23, + index=21, containing_service=None, input_type=google_dot_protobuf_dot_empty__pb2._EMPTY, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -5430,25 +5190,16 @@ _descriptor.MethodDescriptor( name='GetLogs', full_name='pps.API.GetLogs', - index=24, + index=22, containing_service=None, input_type=_GETLOGSREQUEST, output_type=_LOGMESSAGE, serialized_options=None, ), - _descriptor.MethodDescriptor( - name='GarbageCollect', - full_name='pps.API.GarbageCollect', - index=25, - containing_service=None, - input_type=_GARBAGECOLLECTREQUEST, - output_type=_GARBAGECOLLECTRESPONSE, - serialized_options=None, - ), _descriptor.MethodDescriptor( name='ActivateAuth', full_name='pps.API.ActivateAuth', - index=26, + index=23, containing_service=None, input_type=_ACTIVATEAUTHREQUEST, output_type=_ACTIVATEAUTHRESPONSE, @@ -5457,7 +5208,7 @@ _descriptor.MethodDescriptor( name='UpdateJobState', full_name='pps.API.UpdateJobState', - index=27, + index=24, containing_service=None, input_type=_UPDATEJOBSTATEREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, diff --git a/src/python_pachyderm/proto/pps/pps_pb2_grpc.py b/src/python_pachyderm/proto/pps/pps_pb2_grpc.py index 5b6863cc..f7757727 100644 --- a/src/python_pachyderm/proto/pps/pps_pb2_grpc.py +++ b/src/python_pachyderm/proto/pps/pps_pb2_grpc.py @@ -1,8 +1,8 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc -from python_pachyderm.proto.pps import pps_pb2 as client_dot_pps_dot_pps__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from pps import pps_pb2 as pps_dot_pps__pb2 class APIStub(object): @@ -17,118 +17,108 @@ def __init__(self, channel): """ self.CreateJob = channel.unary_unary( '/pps.API/CreateJob', - request_serializer=client_dot_pps_dot_pps__pb2.CreateJobRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.Job.FromString, + request_serializer=pps_dot_pps__pb2.CreateJobRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.Job.FromString, ) self.InspectJob = channel.unary_unary( '/pps.API/InspectJob', - request_serializer=client_dot_pps_dot_pps__pb2.InspectJobRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.JobInfo.FromString, + request_serializer=pps_dot_pps__pb2.InspectJobRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.JobInfo.FromString, ) - self.ListJob = channel.unary_unary( + self.ListJob = channel.unary_stream( '/pps.API/ListJob', - request_serializer=client_dot_pps_dot_pps__pb2.ListJobRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.JobInfos.FromString, - ) - self.ListJobStream = channel.unary_stream( - '/pps.API/ListJobStream', - request_serializer=client_dot_pps_dot_pps__pb2.ListJobRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.JobInfo.FromString, + request_serializer=pps_dot_pps__pb2.ListJobRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.JobInfo.FromString, ) self.FlushJob = channel.unary_stream( '/pps.API/FlushJob', - request_serializer=client_dot_pps_dot_pps__pb2.FlushJobRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.JobInfo.FromString, + request_serializer=pps_dot_pps__pb2.FlushJobRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.JobInfo.FromString, ) self.DeleteJob = channel.unary_unary( '/pps.API/DeleteJob', - request_serializer=client_dot_pps_dot_pps__pb2.DeleteJobRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.DeleteJobRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.StopJob = channel.unary_unary( '/pps.API/StopJob', - request_serializer=client_dot_pps_dot_pps__pb2.StopJobRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.StopJobRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.InspectDatum = channel.unary_unary( '/pps.API/InspectDatum', - request_serializer=client_dot_pps_dot_pps__pb2.InspectDatumRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.DatumInfo.FromString, + request_serializer=pps_dot_pps__pb2.InspectDatumRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.DatumInfo.FromString, ) - self.ListDatum = channel.unary_unary( + self.ListDatum = channel.unary_stream( '/pps.API/ListDatum', - request_serializer=client_dot_pps_dot_pps__pb2.ListDatumRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.ListDatumResponse.FromString, - ) - self.ListDatumStream = channel.unary_stream( - '/pps.API/ListDatumStream', - request_serializer=client_dot_pps_dot_pps__pb2.ListDatumRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.ListDatumStreamResponse.FromString, + request_serializer=pps_dot_pps__pb2.ListDatumRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.DatumInfo.FromString, ) self.RestartDatum = channel.unary_unary( '/pps.API/RestartDatum', - request_serializer=client_dot_pps_dot_pps__pb2.RestartDatumRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.RestartDatumRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.CreatePipeline = channel.unary_unary( '/pps.API/CreatePipeline', - request_serializer=client_dot_pps_dot_pps__pb2.CreatePipelineRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.CreatePipelineRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.InspectPipeline = channel.unary_unary( '/pps.API/InspectPipeline', - request_serializer=client_dot_pps_dot_pps__pb2.InspectPipelineRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.PipelineInfo.FromString, + request_serializer=pps_dot_pps__pb2.InspectPipelineRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.PipelineInfo.FromString, ) self.ListPipeline = channel.unary_unary( '/pps.API/ListPipeline', - request_serializer=client_dot_pps_dot_pps__pb2.ListPipelineRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.PipelineInfos.FromString, + request_serializer=pps_dot_pps__pb2.ListPipelineRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.PipelineInfos.FromString, ) self.DeletePipeline = channel.unary_unary( '/pps.API/DeletePipeline', - request_serializer=client_dot_pps_dot_pps__pb2.DeletePipelineRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.DeletePipelineRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.StartPipeline = channel.unary_unary( '/pps.API/StartPipeline', - request_serializer=client_dot_pps_dot_pps__pb2.StartPipelineRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.StartPipelineRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.StopPipeline = channel.unary_unary( '/pps.API/StopPipeline', - request_serializer=client_dot_pps_dot_pps__pb2.StopPipelineRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.StopPipelineRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.RunPipeline = channel.unary_unary( '/pps.API/RunPipeline', - request_serializer=client_dot_pps_dot_pps__pb2.RunPipelineRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.RunPipelineRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.RunCron = channel.unary_unary( '/pps.API/RunCron', - request_serializer=client_dot_pps_dot_pps__pb2.RunCronRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.RunCronRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.CreateSecret = channel.unary_unary( '/pps.API/CreateSecret', - request_serializer=client_dot_pps_dot_pps__pb2.CreateSecretRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.CreateSecretRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.DeleteSecret = channel.unary_unary( '/pps.API/DeleteSecret', - request_serializer=client_dot_pps_dot_pps__pb2.DeleteSecretRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.DeleteSecretRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.ListSecret = channel.unary_unary( '/pps.API/ListSecret', request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.SecretInfos.FromString, + response_deserializer=pps_dot_pps__pb2.SecretInfos.FromString, ) self.InspectSecret = channel.unary_unary( '/pps.API/InspectSecret', - request_serializer=client_dot_pps_dot_pps__pb2.InspectSecretRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.SecretInfo.FromString, + request_serializer=pps_dot_pps__pb2.InspectSecretRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.SecretInfo.FromString, ) self.DeleteAll = channel.unary_unary( '/pps.API/DeleteAll', @@ -137,22 +127,17 @@ def __init__(self, channel): ) self.GetLogs = channel.unary_stream( '/pps.API/GetLogs', - request_serializer=client_dot_pps_dot_pps__pb2.GetLogsRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.LogMessage.FromString, - ) - self.GarbageCollect = channel.unary_unary( - '/pps.API/GarbageCollect', - request_serializer=client_dot_pps_dot_pps__pb2.GarbageCollectRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.GarbageCollectResponse.FromString, + request_serializer=pps_dot_pps__pb2.GetLogsRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.LogMessage.FromString, ) self.ActivateAuth = channel.unary_unary( '/pps.API/ActivateAuth', - request_serializer=client_dot_pps_dot_pps__pb2.ActivateAuthRequest.SerializeToString, - response_deserializer=client_dot_pps_dot_pps__pb2.ActivateAuthResponse.FromString, + request_serializer=pps_dot_pps__pb2.ActivateAuthRequest.SerializeToString, + response_deserializer=pps_dot_pps__pb2.ActivateAuthResponse.FromString, ) self.UpdateJobState = channel.unary_unary( '/pps.API/UpdateJobState', - request_serializer=client_dot_pps_dot_pps__pb2.UpdateJobStateRequest.SerializeToString, + request_serializer=pps_dot_pps__pb2.UpdateJobStateRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) @@ -176,15 +161,7 @@ def InspectJob(self, request, context): raise NotImplementedError('Method not implemented!') def ListJob(self, request, context): - """ListJob returns information about current and past Pachyderm jobs. This is - deprecated in favor of ListJobStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ListJobStream(self, request, context): - """ListJobStream returns information about current and past Pachyderm jobs. + """ListJob returns information about current and past Pachyderm jobs. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -219,15 +196,7 @@ def InspectDatum(self, request, context): raise NotImplementedError('Method not implemented!') def ListDatum(self, request, context): - """ListDatum returns information about each datum fed to a Pachyderm job. This - is deprecated in favor of ListDatumStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ListDatumStream(self, request, context): - """ListDatumStream returns information about each datum fed to a Pachyderm job + """ListDatum returns information about each datum fed to a Pachyderm job """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -338,13 +307,6 @@ def GetLogs(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def GarbageCollect(self, request, context): - """Garbage collection - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def ActivateAuth(self, request, context): """An internal call that causes PPS to put itself into an auth-enabled state (all pipeline have tokens, correct permissions, etcd) @@ -365,118 +327,108 @@ def add_APIServicer_to_server(servicer, server): rpc_method_handlers = { 'CreateJob': grpc.unary_unary_rpc_method_handler( servicer.CreateJob, - request_deserializer=client_dot_pps_dot_pps__pb2.CreateJobRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.Job.SerializeToString, + request_deserializer=pps_dot_pps__pb2.CreateJobRequest.FromString, + response_serializer=pps_dot_pps__pb2.Job.SerializeToString, ), 'InspectJob': grpc.unary_unary_rpc_method_handler( servicer.InspectJob, - request_deserializer=client_dot_pps_dot_pps__pb2.InspectJobRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.JobInfo.SerializeToString, + request_deserializer=pps_dot_pps__pb2.InspectJobRequest.FromString, + response_serializer=pps_dot_pps__pb2.JobInfo.SerializeToString, ), - 'ListJob': grpc.unary_unary_rpc_method_handler( + 'ListJob': grpc.unary_stream_rpc_method_handler( servicer.ListJob, - request_deserializer=client_dot_pps_dot_pps__pb2.ListJobRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.JobInfos.SerializeToString, - ), - 'ListJobStream': grpc.unary_stream_rpc_method_handler( - servicer.ListJobStream, - request_deserializer=client_dot_pps_dot_pps__pb2.ListJobRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.JobInfo.SerializeToString, + request_deserializer=pps_dot_pps__pb2.ListJobRequest.FromString, + response_serializer=pps_dot_pps__pb2.JobInfo.SerializeToString, ), 'FlushJob': grpc.unary_stream_rpc_method_handler( servicer.FlushJob, - request_deserializer=client_dot_pps_dot_pps__pb2.FlushJobRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.JobInfo.SerializeToString, + request_deserializer=pps_dot_pps__pb2.FlushJobRequest.FromString, + response_serializer=pps_dot_pps__pb2.JobInfo.SerializeToString, ), 'DeleteJob': grpc.unary_unary_rpc_method_handler( servicer.DeleteJob, - request_deserializer=client_dot_pps_dot_pps__pb2.DeleteJobRequest.FromString, + request_deserializer=pps_dot_pps__pb2.DeleteJobRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'StopJob': grpc.unary_unary_rpc_method_handler( servicer.StopJob, - request_deserializer=client_dot_pps_dot_pps__pb2.StopJobRequest.FromString, + request_deserializer=pps_dot_pps__pb2.StopJobRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'InspectDatum': grpc.unary_unary_rpc_method_handler( servicer.InspectDatum, - request_deserializer=client_dot_pps_dot_pps__pb2.InspectDatumRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.DatumInfo.SerializeToString, + request_deserializer=pps_dot_pps__pb2.InspectDatumRequest.FromString, + response_serializer=pps_dot_pps__pb2.DatumInfo.SerializeToString, ), - 'ListDatum': grpc.unary_unary_rpc_method_handler( + 'ListDatum': grpc.unary_stream_rpc_method_handler( servicer.ListDatum, - request_deserializer=client_dot_pps_dot_pps__pb2.ListDatumRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.ListDatumResponse.SerializeToString, - ), - 'ListDatumStream': grpc.unary_stream_rpc_method_handler( - servicer.ListDatumStream, - request_deserializer=client_dot_pps_dot_pps__pb2.ListDatumRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.ListDatumStreamResponse.SerializeToString, + request_deserializer=pps_dot_pps__pb2.ListDatumRequest.FromString, + response_serializer=pps_dot_pps__pb2.DatumInfo.SerializeToString, ), 'RestartDatum': grpc.unary_unary_rpc_method_handler( servicer.RestartDatum, - request_deserializer=client_dot_pps_dot_pps__pb2.RestartDatumRequest.FromString, + request_deserializer=pps_dot_pps__pb2.RestartDatumRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'CreatePipeline': grpc.unary_unary_rpc_method_handler( servicer.CreatePipeline, - request_deserializer=client_dot_pps_dot_pps__pb2.CreatePipelineRequest.FromString, + request_deserializer=pps_dot_pps__pb2.CreatePipelineRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'InspectPipeline': grpc.unary_unary_rpc_method_handler( servicer.InspectPipeline, - request_deserializer=client_dot_pps_dot_pps__pb2.InspectPipelineRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.PipelineInfo.SerializeToString, + request_deserializer=pps_dot_pps__pb2.InspectPipelineRequest.FromString, + response_serializer=pps_dot_pps__pb2.PipelineInfo.SerializeToString, ), 'ListPipeline': grpc.unary_unary_rpc_method_handler( servicer.ListPipeline, - request_deserializer=client_dot_pps_dot_pps__pb2.ListPipelineRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.PipelineInfos.SerializeToString, + request_deserializer=pps_dot_pps__pb2.ListPipelineRequest.FromString, + response_serializer=pps_dot_pps__pb2.PipelineInfos.SerializeToString, ), 'DeletePipeline': grpc.unary_unary_rpc_method_handler( servicer.DeletePipeline, - request_deserializer=client_dot_pps_dot_pps__pb2.DeletePipelineRequest.FromString, + request_deserializer=pps_dot_pps__pb2.DeletePipelineRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'StartPipeline': grpc.unary_unary_rpc_method_handler( servicer.StartPipeline, - request_deserializer=client_dot_pps_dot_pps__pb2.StartPipelineRequest.FromString, + request_deserializer=pps_dot_pps__pb2.StartPipelineRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'StopPipeline': grpc.unary_unary_rpc_method_handler( servicer.StopPipeline, - request_deserializer=client_dot_pps_dot_pps__pb2.StopPipelineRequest.FromString, + request_deserializer=pps_dot_pps__pb2.StopPipelineRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'RunPipeline': grpc.unary_unary_rpc_method_handler( servicer.RunPipeline, - request_deserializer=client_dot_pps_dot_pps__pb2.RunPipelineRequest.FromString, + request_deserializer=pps_dot_pps__pb2.RunPipelineRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'RunCron': grpc.unary_unary_rpc_method_handler( servicer.RunCron, - request_deserializer=client_dot_pps_dot_pps__pb2.RunCronRequest.FromString, + request_deserializer=pps_dot_pps__pb2.RunCronRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'CreateSecret': grpc.unary_unary_rpc_method_handler( servicer.CreateSecret, - request_deserializer=client_dot_pps_dot_pps__pb2.CreateSecretRequest.FromString, + request_deserializer=pps_dot_pps__pb2.CreateSecretRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'DeleteSecret': grpc.unary_unary_rpc_method_handler( servicer.DeleteSecret, - request_deserializer=client_dot_pps_dot_pps__pb2.DeleteSecretRequest.FromString, + request_deserializer=pps_dot_pps__pb2.DeleteSecretRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'ListSecret': grpc.unary_unary_rpc_method_handler( servicer.ListSecret, request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.SecretInfos.SerializeToString, + response_serializer=pps_dot_pps__pb2.SecretInfos.SerializeToString, ), 'InspectSecret': grpc.unary_unary_rpc_method_handler( servicer.InspectSecret, - request_deserializer=client_dot_pps_dot_pps__pb2.InspectSecretRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.SecretInfo.SerializeToString, + request_deserializer=pps_dot_pps__pb2.InspectSecretRequest.FromString, + response_serializer=pps_dot_pps__pb2.SecretInfo.SerializeToString, ), 'DeleteAll': grpc.unary_unary_rpc_method_handler( servicer.DeleteAll, @@ -485,22 +437,17 @@ def add_APIServicer_to_server(servicer, server): ), 'GetLogs': grpc.unary_stream_rpc_method_handler( servicer.GetLogs, - request_deserializer=client_dot_pps_dot_pps__pb2.GetLogsRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.LogMessage.SerializeToString, - ), - 'GarbageCollect': grpc.unary_unary_rpc_method_handler( - servicer.GarbageCollect, - request_deserializer=client_dot_pps_dot_pps__pb2.GarbageCollectRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.GarbageCollectResponse.SerializeToString, + request_deserializer=pps_dot_pps__pb2.GetLogsRequest.FromString, + response_serializer=pps_dot_pps__pb2.LogMessage.SerializeToString, ), 'ActivateAuth': grpc.unary_unary_rpc_method_handler( servicer.ActivateAuth, - request_deserializer=client_dot_pps_dot_pps__pb2.ActivateAuthRequest.FromString, - response_serializer=client_dot_pps_dot_pps__pb2.ActivateAuthResponse.SerializeToString, + request_deserializer=pps_dot_pps__pb2.ActivateAuthRequest.FromString, + response_serializer=pps_dot_pps__pb2.ActivateAuthResponse.SerializeToString, ), 'UpdateJobState': grpc.unary_unary_rpc_method_handler( servicer.UpdateJobState, - request_deserializer=client_dot_pps_dot_pps__pb2.UpdateJobStateRequest.FromString, + request_deserializer=pps_dot_pps__pb2.UpdateJobStateRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), } diff --git a/src/python_pachyderm/proto/server/__init__.py b/src/python_pachyderm/proto/server/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/python_pachyderm/proto/server/pfs/__init__.py b/src/python_pachyderm/proto/server/pfs/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/python_pachyderm/proto/server/pfs/server/__init__.py b/src/python_pachyderm/proto/server/pfs/server/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2.py b/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2.py new file mode 100644 index 00000000..c10eb806 --- /dev/null +++ b/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2.py @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: server/pfs/server/pfsserver.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='server/pfs/server/pfsserver.proto', + package='pfsserver', + syntax='proto3', + serialized_options=b'Z7github.com/pachyderm/pachyderm/v2/src/server/pfs/server', + serialized_pb=b'\n!server/pfs/server/pfsserver.proto\x12\tpfsserver\"E\n\x0e\x43ompactionTask\x12\x0e\n\x06inputs\x18\x01 \x03(\t\x12#\n\x05range\x18\x02 \x01(\x0b\x32\x14.pfsserver.PathRange\"\"\n\x14\x43ompactionTaskResult\x12\n\n\x02id\x18\x01 \x01(\t\")\n\tPathRange\x12\r\n\x05lower\x18\x01 \x01(\t\x12\r\n\x05upper\x18\x02 \x01(\tB9Z7github.com/pachyderm/pachyderm/v2/src/server/pfs/serverb\x06proto3' +) + + + + +_COMPACTIONTASK = _descriptor.Descriptor( + name='CompactionTask', + full_name='pfsserver.CompactionTask', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='inputs', full_name='pfsserver.CompactionTask.inputs', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='range', full_name='pfsserver.CompactionTask.range', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=48, + serialized_end=117, +) + + +_COMPACTIONTASKRESULT = _descriptor.Descriptor( + name='CompactionTaskResult', + full_name='pfsserver.CompactionTaskResult', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='pfsserver.CompactionTaskResult.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=119, + serialized_end=153, +) + + +_PATHRANGE = _descriptor.Descriptor( + name='PathRange', + full_name='pfsserver.PathRange', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='lower', full_name='pfsserver.PathRange.lower', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='upper', full_name='pfsserver.PathRange.upper', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=155, + serialized_end=196, +) + +_COMPACTIONTASK.fields_by_name['range'].message_type = _PATHRANGE +DESCRIPTOR.message_types_by_name['CompactionTask'] = _COMPACTIONTASK +DESCRIPTOR.message_types_by_name['CompactionTaskResult'] = _COMPACTIONTASKRESULT +DESCRIPTOR.message_types_by_name['PathRange'] = _PATHRANGE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CompactionTask = _reflection.GeneratedProtocolMessageType('CompactionTask', (_message.Message,), { + 'DESCRIPTOR' : _COMPACTIONTASK, + '__module__' : 'server.pfs.server.pfsserver_pb2' + # @@protoc_insertion_point(class_scope:pfsserver.CompactionTask) + }) +_sym_db.RegisterMessage(CompactionTask) + +CompactionTaskResult = _reflection.GeneratedProtocolMessageType('CompactionTaskResult', (_message.Message,), { + 'DESCRIPTOR' : _COMPACTIONTASKRESULT, + '__module__' : 'server.pfs.server.pfsserver_pb2' + # @@protoc_insertion_point(class_scope:pfsserver.CompactionTaskResult) + }) +_sym_db.RegisterMessage(CompactionTaskResult) + +PathRange = _reflection.GeneratedProtocolMessageType('PathRange', (_message.Message,), { + 'DESCRIPTOR' : _PATHRANGE, + '__module__' : 'server.pfs.server.pfsserver_pb2' + # @@protoc_insertion_point(class_scope:pfsserver.PathRange) + }) +_sym_db.RegisterMessage(PathRange) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2_grpc.py b/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2_grpc.py new file mode 100644 index 00000000..a8943526 --- /dev/null +++ b/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/src/python_pachyderm/proto/server/worker/__init__.py b/src/python_pachyderm/proto/server/worker/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/python_pachyderm/proto/server/worker/common/__init__.py b/src/python_pachyderm/proto/server/worker/common/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/python_pachyderm/proto/server/worker/common/common_pb2.py b/src/python_pachyderm/proto/server/worker/common/common_pb2.py new file mode 100644 index 00000000..810d1801 --- /dev/null +++ b/src/python_pachyderm/proto/server/worker/common/common_pb2.py @@ -0,0 +1,143 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: server/worker/common/common.proto + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from pfs import pfs_pb2 as pfs_dot_pfs__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='server/worker/common/common.proto', + package='common', + syntax='proto3', + serialized_options=b'Z:github.com/pachyderm/pachyderm/v2/src/server/worker/common', + serialized_pb=b'\n!server/worker/common/common.proto\x12\x06\x63ommon\x1a\rpfs/pfs.proto\"\xe2\x01\n\x05Input\x12 \n\tfile_info\x18\x01 \x01(\x0b\x32\r.pfs.FileInfo\x12\"\n\rparent_commit\x18\x05 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07join_on\x18\x08 \x01(\t\x12\x12\n\nouter_join\x18\x0b \x01(\x08\x12\x10\n\x08group_by\x18\n \x01(\t\x12\x0c\n\x04lazy\x18\x03 \x01(\x08\x12\x0e\n\x06\x62ranch\x18\x04 \x01(\t\x12\x0f\n\x07git_url\x18\x06 \x01(\t\x12\x13\n\x0b\x65mpty_files\x18\x07 \x01(\x08\x12\n\n\x02s3\x18\t \x01(\x08\x42 Date: Wed, 24 Mar 2021 14:29:12 -0400 Subject: [PATCH 03/34] Copy all of etc/testing for now --- Makefile | 9 +- etc/testing/artifacts/giphy.gif | Bin 0 -> 565200 bytes .../artifacts/githook-payloads/branch.json | 189 +++ .../artifacts/githook-payloads/master-2.json | 536 ++++++++ .../artifacts/githook-payloads/master.json | 189 +++ .../artifacts/githook-payloads/private.json | 189 +++ .../artifacts/githook-payloads/readme.md | 5 + etc/testing/auth/dex.yaml | 44 + etc/testing/blacklist.txt | 8 + etc/testing/circle_tests.sh | 51 + etc/testing/circle_tests_inner.sh | 126 ++ etc/testing/cleanup.go | 97 ++ .../golden/amazon-deploy-manifest.json | 1146 +++++++++++++++++ .../golden/amazon-deploy-manifest.yaml | 738 +++++++++++ .../golden/custom-deploy-manifest.json | 1129 ++++++++++++++++ .../golden/custom-deploy-manifest.yaml | 725 +++++++++++ .../golden/google-deploy-manifest.json | 1132 ++++++++++++++++ .../golden/google-deploy-manifest.yaml | 724 +++++++++++ .../golden/microsoft-deploy-manifest.json | 1113 ++++++++++++++++ .../golden/microsoft-deploy-manifest.yaml | 710 ++++++++++ .../test/amazon-deploy-manifest.json | 1139 ++++++++++++++++ .../test/amazon-deploy-manifest.yaml | 733 +++++++++++ .../test/custom-deploy-manifest.json | 1122 ++++++++++++++++ .../test/custom-deploy-manifest.yaml | 720 +++++++++++ .../test/google-deploy-manifest.json | 1125 ++++++++++++++++ .../test/google-deploy-manifest.yaml | 719 +++++++++++ .../test/microsoft-deploy-manifest.json | 1106 ++++++++++++++++ .../test/microsoft-deploy-manifest.yaml | 705 ++++++++++ etc/testing/deploy-manifests/validate.sh | 124 ++ etc/testing/entrypoint/Dockerfile | 3 + etc/testing/examples.sh | 156 +++ etc/testing/forward-postgres.sh | 13 + .../images/ubuntu_with_s3_clients/Dockerfile | 19 + .../images/ubuntu_with_s3_clients/Makefile | 16 + etc/testing/introspect/introspect.ipynb | 466 +++++++ etc/testing/kafka/Dockerfile | 5 + etc/testing/kafka/go.mod | 5 + etc/testing/kafka/go.sum | 17 + etc/testing/kafka/main.go | 90 ++ etc/testing/kube_debug.sh | 40 + etc/testing/lint.sh | 43 + etc/testing/migration/README.md | 18 + etc/testing/migration/v1_11/auth.metadata | Bin 0 -> 111203 bytes etc/testing/migration/v1_11/auth.sh | 97 ++ etc/testing/migration/v1_11/deploy.sh | 30 + etc/testing/migration/v1_7/deploy.sh | 32 + etc/testing/migration/v1_7/diagonal.sh | 150 +++ etc/testing/migration/v1_7/sort.metadata | Bin 0 -> 93024 bytes etc/testing/migration/v1_7/sort.sh | 95 ++ etc/testing/minikube_version | 1 + etc/testing/pach-travis-86b9f180aa16.json.enc | Bin 0 -> 2336 bytes etc/testing/passing_test_regex.sh | 31 + etc/testing/pfs_server.sh | 8 + etc/testing/pipeline-build/go/go.mod | 5 + etc/testing/pipeline-build/go/go.sum | 2 + etc/testing/pipeline-build/go/main.go | 49 + etc/testing/pipeline-build/input/1.txt | 1 + etc/testing/pipeline-build/input/11.txt | 1 + etc/testing/pipeline-build/input/111.txt | 1 + etc/testing/pipeline-build/python/.pachignore | 2 + etc/testing/pipeline-build/python/foo.txt | 1 + etc/testing/pipeline-build/python/main.py | 20 + .../pipeline-build/python/requirements.txt | 2 + .../pipeline-build/python_no_deps/main.py | 22 + etc/testing/s3gateway/ignore.conf | 250 ++++ etc/testing/s3gateway/runs/.gitignore | 1 + etc/testing/s3gateway/s3tests.conf | 69 + etc/testing/spout/Dockerfile | 6 + etc/testing/spout/main.go | 53 + etc/testing/start_postgres.sh | 13 + etc/testing/test_tls.sh | 42 + etc/testing/testctl-rsync.sh | 9 + etc/testing/testctl-ssh.sh | 7 + etc/testing/travis.sh | 152 +++ etc/testing/travis_build.sh | 20 + etc/testing/travis_build_check_and_stash.sh | 87 ++ etc/testing/travis_cache.sh | 30 + etc/testing/travis_install.sh | 88 ++ etc/testing/travis_test_check_and_pull.sh | 43 + etc/testing/vault-s3-client/test.sh | 127 ++ 80 files changed, 18786 insertions(+), 5 deletions(-) create mode 100644 etc/testing/artifacts/giphy.gif create mode 100644 etc/testing/artifacts/githook-payloads/branch.json create mode 100644 etc/testing/artifacts/githook-payloads/master-2.json create mode 100644 etc/testing/artifacts/githook-payloads/master.json create mode 100644 etc/testing/artifacts/githook-payloads/private.json create mode 100644 etc/testing/artifacts/githook-payloads/readme.md create mode 100644 etc/testing/auth/dex.yaml create mode 100644 etc/testing/blacklist.txt create mode 100755 etc/testing/circle_tests.sh create mode 100755 etc/testing/circle_tests_inner.sh create mode 100644 etc/testing/cleanup.go create mode 100644 etc/testing/deploy-manifests/golden/amazon-deploy-manifest.json create mode 100644 etc/testing/deploy-manifests/golden/amazon-deploy-manifest.yaml create mode 100644 etc/testing/deploy-manifests/golden/custom-deploy-manifest.json create mode 100644 etc/testing/deploy-manifests/golden/custom-deploy-manifest.yaml create mode 100644 etc/testing/deploy-manifests/golden/google-deploy-manifest.json create mode 100644 etc/testing/deploy-manifests/golden/google-deploy-manifest.yaml create mode 100644 etc/testing/deploy-manifests/golden/microsoft-deploy-manifest.json create mode 100644 etc/testing/deploy-manifests/golden/microsoft-deploy-manifest.yaml create mode 100644 etc/testing/deploy-manifests/test/amazon-deploy-manifest.json create mode 100644 etc/testing/deploy-manifests/test/amazon-deploy-manifest.yaml create mode 100644 etc/testing/deploy-manifests/test/custom-deploy-manifest.json create mode 100644 etc/testing/deploy-manifests/test/custom-deploy-manifest.yaml create mode 100644 etc/testing/deploy-manifests/test/google-deploy-manifest.json create mode 100644 etc/testing/deploy-manifests/test/google-deploy-manifest.yaml create mode 100644 etc/testing/deploy-manifests/test/microsoft-deploy-manifest.json create mode 100644 etc/testing/deploy-manifests/test/microsoft-deploy-manifest.yaml create mode 100755 etc/testing/deploy-manifests/validate.sh create mode 100644 etc/testing/entrypoint/Dockerfile create mode 100755 etc/testing/examples.sh create mode 100755 etc/testing/forward-postgres.sh create mode 100644 etc/testing/images/ubuntu_with_s3_clients/Dockerfile create mode 100644 etc/testing/images/ubuntu_with_s3_clients/Makefile create mode 100644 etc/testing/introspect/introspect.ipynb create mode 100644 etc/testing/kafka/Dockerfile create mode 100644 etc/testing/kafka/go.mod create mode 100644 etc/testing/kafka/go.sum create mode 100644 etc/testing/kafka/main.go create mode 100755 etc/testing/kube_debug.sh create mode 100755 etc/testing/lint.sh create mode 100644 etc/testing/migration/README.md create mode 100644 etc/testing/migration/v1_11/auth.metadata create mode 100755 etc/testing/migration/v1_11/auth.sh create mode 100755 etc/testing/migration/v1_11/deploy.sh create mode 100755 etc/testing/migration/v1_7/deploy.sh create mode 100755 etc/testing/migration/v1_7/diagonal.sh create mode 100644 etc/testing/migration/v1_7/sort.metadata create mode 100755 etc/testing/migration/v1_7/sort.sh create mode 100644 etc/testing/minikube_version create mode 100644 etc/testing/pach-travis-86b9f180aa16.json.enc create mode 100755 etc/testing/passing_test_regex.sh create mode 100755 etc/testing/pfs_server.sh create mode 100644 etc/testing/pipeline-build/go/go.mod create mode 100644 etc/testing/pipeline-build/go/go.sum create mode 100644 etc/testing/pipeline-build/go/main.go create mode 100644 etc/testing/pipeline-build/input/1.txt create mode 100644 etc/testing/pipeline-build/input/11.txt create mode 100644 etc/testing/pipeline-build/input/111.txt create mode 100644 etc/testing/pipeline-build/python/.pachignore create mode 100644 etc/testing/pipeline-build/python/foo.txt create mode 100644 etc/testing/pipeline-build/python/main.py create mode 100644 etc/testing/pipeline-build/python/requirements.txt create mode 100644 etc/testing/pipeline-build/python_no_deps/main.py create mode 100644 etc/testing/s3gateway/ignore.conf create mode 100644 etc/testing/s3gateway/runs/.gitignore create mode 100644 etc/testing/s3gateway/s3tests.conf create mode 100644 etc/testing/spout/Dockerfile create mode 100644 etc/testing/spout/main.go create mode 100755 etc/testing/start_postgres.sh create mode 100755 etc/testing/test_tls.sh create mode 100755 etc/testing/testctl-rsync.sh create mode 100755 etc/testing/testctl-ssh.sh create mode 100755 etc/testing/travis.sh create mode 100755 etc/testing/travis_build.sh create mode 100755 etc/testing/travis_build_check_and_stash.sh create mode 100755 etc/testing/travis_cache.sh create mode 100755 etc/testing/travis_install.sh create mode 100755 etc/testing/travis_test_check_and_pull.sh create mode 100755 etc/testing/vault-s3-client/test.sh diff --git a/Makefile b/Makefile index 7571dd00..b24414bd 100644 --- a/Makefile +++ b/Makefile @@ -35,11 +35,10 @@ init: ci-install: sudo apt-get update sudo apt-get install jq socat - cd proto/pachyderm && \ - sudo etc/testing/travis_cache.sh && \ - sudo etc/testing/travis_install.sh && \ - curl -o /tmp/pachctl.deb -L https://github.com/pachyderm/pachyderm/releases/download/v$(PACHYDERM_VERSION)/pachctl_$(PACHYDERM_VERSION)_amd64.deb && \ - sudo dpkg -i /tmp/pachctl.deb + sudo etc/testing/travis_cache.sh + sudo etc/testing/travis_install.sh + curl -o /tmp/pachctl.deb -L https://github.com/pachyderm/pachyderm/releases/download/v$(PACHYDERM_VERSION)/pachctl_$(PACHYDERM_VERSION)_amd64.deb + sudo dpkg -i /tmp/pachctl.deb pip install tox tox-travis ci-setup: diff --git a/etc/testing/artifacts/giphy.gif b/etc/testing/artifacts/giphy.gif new file mode 100644 index 0000000000000000000000000000000000000000..84983e96897b38f147d0ac9b12e58e83664d3605 GIT binary patch literal 565200 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�{+-!BbDMykM$SFz!|-- zcy9;$v+ zA;BNM__MIdS)~y_fx?YxNZSD^Ad2g)J_<5f`Mem0T(w&BRlZ>dFtP%Cz>C1gQse^2 z9F2hP);!zE%%}3c3KUArmO&}Vus?+>GKFDG$y$6+*322f2+lOF_ea3wG<|m zG3kk*wyV;SH01jAx-cQ=LU04GL`>sSMjQlSrHbl1N8gWRZ~ttA=5|~by%P) z{tmZ4R4wXS`$Oh_q|ComXm@vJO1+b{B0KsA%P1h8mL#}@tc3IdKD69rue$}Y^ z6oTfXGjhFE%Sl<{)Fu{lh;kKf*A&R}?=LwNEumK80>Sb~ZChRE?Mg{1-Mf1B#XikI zV%49hx-jNQAyx5Md8m9{GWlj5mKjVBx(Nxu-5zjWrntvG6gzUkVM;sG@7WYQY~VF<@fp;W2d}2 zDkjCk(H+!oP%<}y^B0~9Y&Gt^w*4^cc8ZHmGWyw>0Npf0{-S4LJ+K+?Z&pT>r_Fvo zZ31R%d*}rWrwAWM(EJ_|Xp}em9?_mydmn@pgHU8PY&iHm*%HXLA`J?A>s7H|e4a2r zi0Y|&KB_PHwTj#ux@il(3&I*@Bx1g}Sp>`GbM~|B34AcfzUXfApJYz>;Lyw+dj?mo_BHq+1R%`Qo>DQ^3TTshqs3aG zjoO^uT8308r>cBdg)|=53W;^W=*tGE)m5wI(Ixf2G%Q_wLHr#l_53EWQr%U8yHGDaye>DmLQ&8x`$z+ZBob~$T zMd?wz)y$OiND!ZLPMX(`V^#^OW^2#tJyYx&ft+wp}i&CqubBb89AB9GBE)?+nvb+Le8E zs$skKZOkXvj;+B~qnBdCebm?NZIw9k$P8ZulS$z~{T6n@-B`B94kcew%pg%uRs<75VT_PdFB z61GvA^LNLvY$T?ZOX+Yd!G-ZGa{o01SV< zm=J|pkzqXLm_qaJM^8+VvP4@?OpX5f92VJ`;ImoOW%fENj#GHLT#=uiz}j-X?dm{2&oMGaSiCh z1i^fNjhQRxxIFWTDO0{H-ZXO2UWy$OmHY>^V>Es;&%ciVL&Ss2Y?F6vMTT08hUK011k< zMV3+w_HFvW<`VU39)0ks5kiE9cHLj_aBkK2s-#kQ$@%S@FK0amI5V~Z60U;0;jAx- zG>kvNam^C)UJ_u{nARvs(}VT0ef^9Wig1b?D!tn&7!#qS0ijz!hEK5i-~J+FqN+H* zGMuR(SM~43ZNPQ!3qr5t-GhvH+fcTiA$)qXcN>s@74QMt9UIP9AP7l_uVmll9f)yy z7gJ`Z=x}ZQO3f&T*?HsxhnNnM<4*%hu!?Qd!P^o=?W1wa<33|E-cZ#jI}VN!=izB6 zJH1}*(A2KsYC+?`ore%cU9aHho_+=N?tY))g{jJ%09O8|V2Z*(m(dUOw}Y&|Rk#{c z$#pf!Uo4O5CX(OYgoQE$LN(rf2yhzrLM2vcsENVmC;hMX>(i@Fg4ihY2#x zC5RP}jtdHQ;fZe&KAi|%4!s>Wre`5-YXFE#RYnz;TXMYbatNLlv3@GURWJ=_IwFFV zue8|gT$@VZ(7ttKT&Ir&ekwt%qveUZf(!>6-P;Oktg+ofu>&~7&H9KJazU*(rf;8C z-Mvb+jTYZ~+bXtgeH3uaF>^)9|9NRka4ttCjd3Aslhx?A$XX-vn^IzN8)^7;-4Fk} zezp6z_wKN6S^IXrXH$($tDF*0BFhHo-|z}G#Vc@be^?P_p+01JVLQ-U2M{^t+)Y>c@G!M3 z$(5m+9dp6RWLKByFWI>TB-=PWPM}N7U{sE|4VJoH zapioJxj*P9!017!s`QybG@`;l=0mae)c1eWDEhW?{~BW4wd9*ubSu)a3&XIiALl;j z!I4ZNF)9fKQsEN&SA70O{%9F958bqLim~=DxqCsE8gnS&$t+_?o!@zEa~9JPnWVbo zaOBs|zBc2K0FrKLHiQAp`HMtQYp*+o&p?TyOt@$k}+r#FhC+efS8s`yshe!@@Gt@im6 zOKaeu^IoW$n%NuNJZ7MqL5EKw{PoO!f^Q~Ilgy(%{(Qw~QChL%_*p<}&MG}Qv;Tin zdfzslgavVonZwy_Ae3^{t|7vncVj4DM7|h)mAz#(&tQHnQ}n6EhZ$RoaoGenu?uGB zFXlB@0;t1zm%TNfAQEdP_El$R^pM5^1)qcpi|gLzqWbk|io z0Y*PwCvLXTnzTH3I$@6U(G*A}3BO88Zxj>OxaGWvT`gvFu?x+b33Jm%GqOlyC=Is7 z<{4@gM%aM|)GprT9=gvN&`ho?h!VFi!o*~{wd$$;$0z2*F7bh+7dTO7^0 z{#??3{9)r`c}X`{4ISFxgbK#0EaGTzCW1haL?nI;qLM^=x#0LR5_za|KinmNA)WNN zHAjQ-R(-CfbZ|#Eu=S2Clg{T>%;0#0Z#fcn{w27)^~;^6VrOl|rUyYbNB2gC(VJ2g zr3~O*CxF$KaWyPn4G5ZzMLu_c)Lsp2(qvITV!$9Co@SM>J4sMZ-aht!==Ev(7(}`2 z6`0HazdLQ&a$k5|6sVtHKUj46Vk$R61Acrm3YU_33t%;)k6E#D!Q=W+R+Y*xn?Fg+ zq`HO{eS64j`$4y_b@N$N*7glL@3k;*7RA|9XQRs3XQK(N;sxwfhTH!664AwfSUyqP z9E#JWI^l{>m9FGAyo#fwa|NGz;WA+t zvdiRdWgMTv?A*>CCuyT~5(ay*BiM-NyskBddA@c5fXxONAi}#C=PLLG@cRZOwM#%? zsW6`a0LZ@;=&ZB1@+me>|u1iif>(ZV)zxnc+_=BNt&3W34`U$!D+O7)O6~-nabpq|HWQdF4ra0S4X8P(H5Y zCjVfp-xt;$s?g5-dXK~0z(HK?S?zm|i*TzI^f=e zXMsoJ_+X_YeUw_z)4?sp*>s}R=NC0xaW2d?ZL0jfqZWpbJkT%v9+F0LDbg}~wqyDa zs~Dp4q;`tK7rq$b)WwnU>5N95Hv;WN{YzI=o6<|qvYryoj336H)ML-LMp0;onflj$e0Fq zC?Bs~luV_LsP+x0G|!TA&S5A-RslXn$ButxvDeRB2q5e3%fI?H2b0!duq{rZYY0qW zl)<$YG#sPaauc!)4EH;HO}}2q%(3*hJ1XyiMC3%wCQg8}Xf)zl#ntWeC8acbbC2(m zY2_U%Pw!{v^UvW0#JV}IN^M~|LbeLa8ez0|a3Mk~i#gEqX{n*t5Bg%oxIy^NS_v;) zPP-``Z{1v*gu=?3+M{dDDF$v@gpjHDM%hcHgX<*s1BNrb&T9&1cNOK26!d<}T_i!e z2n$-m(qO;QtntV*BYDI!1ic6JW4gM-QlfUrbw6P5kpnHz4FJ1J zlKLuRje~A6x@rc=}^*+K=?UB)& zBoqqk@x&tL0-dt5j}8IDP3GbTmX^ztGRz|~y`Stj*C@Vv{5i(=4goYb#M>YICt@;9 z87m&PtUHa(YzDo!rZtpm?k?Np;p6v)saBVJ#W|^9;u$QO{_d+KSH{y{#rX}L+LxGf?;|i&h&9}(G5mR;y%glV$6yUN=2O)JY<)$8l8NTUz zTBHAjB*aBXQ8Ia>XAX+b)!u*cJ&ym7&xOv|oWX#0WxTA5tD;x!*#!0S$H{r?Tg_J) zmNhEl;4v-l%5}Wsq|4z7~UJ-N|JKC14%KKqQWl(w6LwwU0 zz`n7_bkn*pRx}^TsISsWd{<>C-u9wnWuy&7IAs9%LW-}s8hY93CT#NEIA)U?bZa@g zK*E|Cxq|F}11Pm~WQH`__v-}jCC~4JEL>H~T%J^DTy?5ilrcCb1}OW3(qnNbK76nBfjfQ^5@MGW4GJ_j6H$^Xw;AxgLKSd@#fF*$g?R|&n<>H znzvbHKFZ4%c`2Vct96dq?m7Wn*a$s(fR#9-s6RVEK@pvLW@rdM-+bN?pSOb78-C&fo-xdJ9zoPDJG#z@#2z=(wl3l;S5q3$LWVg>Vb0I6xiV-pw`I(csxWf|ymfra|`9Jox0EN!CnLD&?CxneIu@Oq9Oy4zs z?X*VbY~1D5W75MIYg-u_c>0-fVk<=(4vVUxdk1$}0`o z3hd)Eax{NE)7csr0Fa|~)Y2PgSv=BN%yA8xW|-u9oF@8ei5ZFrY=C)tntTXZ;L518 z>TR@Yg8AM^e{HB&k#KGkvggZ5y#$!i2G)+trC~ML=QNr!0Ec`nb#QibICmEAU5sAU zvg3{x35p%rozROls!H3UqR>@{6C4y(AjwU(a<%<3L|l!dCN4C0Ndz4Q?nBuQVR+w0 zzu@}YZe8=WvXKDQP%+Ja6Crg0#Nk&^P@dk2d(!uuPBS7HEB9Z30<~r@8-q zoLBmod!_yvVk59$*KtB`Kv`!6eL=jeOUDcXG0c5?$R6Wx9$61uRy{5_!12~SDRU0p)7{eNMosxhuJFUiVI0d(wTu^#g>AH8c z9;&UZSEomWw+`LqfHE?K!=QUTf&dyhrrLzJbXBr5<)7$cs=7Sq=;!x!jmjRb>11@( zc{?{O9OiCJgYfZV)Q*c(;JFcKSg$P_Qt^F++zy4$tp7;>O|!o%SMZ>GT}#gh z!WTp2m``poNa7SR`tn83_wI^IR=XD^$+Z-S?-GX=cCGoDfomUdRmjuBd9(D^ z_JLb}vuY)WFGi3;l}z3y`VvVu)^Jf`*s6K#+)tt{E!iX*5)mgSD@_hM8@oE4E_(~5 zIpF41nY1Znz#H!8I%sT$#BvE^5jd<^%>(iOdHi#D`Oo#8t^|66>O3S^^l#4G!5DI_ zkXjH(j*%36B-DFVDAe{m+af}jqZN>4#G+0Z$5&>Hoxd|_B5l8vG+YG6%r%)=wQ#-S z>dWZlTXGWjzeiuRQ56uSEycx49tn84|?G3u0^^$$|=4^_}YIVZq4sI2vv@_8SZDfypnqL5BQ#V^tj?0i^Hq< zGQI0A@Of$+4S=eY`CNd_tk^YA3WF*r4ZTaD)C+VBJ~-fO^n}cGs7ndB*mWDJ`wd8v(|l8~R(o_o-6OGij(PaQPa>Hcz0J zUzE)8pN5olrfT1pY#f?M_peO4C-sC1(&t;y0rgv%&+mNe zzHiTj(KnL=?3+R?pNnz{?M;N~Bl;GZD`+N!CvF!m98hvIn(^_BM#3M{Co};wkT>qj zI%FFzPph$(N^k}_)kO2@C$yzmHL2-e){RQ0u~bVY6uXkxX_NfPSZz^aYSmH~YsZy@ z)&(yYl5%zky--m$lh*lu~*DKD_ktg`_7F(Y3rgy%g8vaY_drNEZAETDDks(_|ImFwY4783>{?;K727zp&~8W0pq0YCTpF`!LK3UW<8UZ5%i7_Lbw$ z)iZY7Bdm`rm<9oKD z6WW;#mH|*%jL4f$!p6_N1_|^*Bo;=Ag}S!WU|J{Aaq-*!m1LE?x3?z1 z1QD^qYOAtZ^9M{c=yum4H@iMHX2S3$h&URQY{sS&ZpAaZh} z?EIM@3LVKxbKpm(pz=gW5fC7NyLjWE=o>kWr<|pYjbVQ}6^V|?s_1WgH7kvXN%2M*9_OsZoD?ITyrUJ@ylD{D zIna31+!YTY0NQw!^-(z#_o|~LtJShbC_~K74J9l~p~Xv|mQEs>1S{CP%eQTz`@#+3RisY=R1gG7WWOEN=F*Gh){ej{9P2VJ6T^a}w zS~PV+OOiG#E#c`Sh;l+yS?bCj6KHD6*$u05(387O*&t#nWH)n{8}4<`ecz-F#s<@7 zlyV;rVi&iQ8PksK%j=2ZQpP_yiQ=$dL6Fx8s_|u6PAxD<=cDKsi7-yR(z>==@?PQy zBE4U0bHi0+d~FZ=1}n zrhm0}(2{iC9}6YdfCXp10G_f;rFRm{&(d>3NVLu7Se4AoNw7DID>mN!lB8k8XFs>e z^xJXshI+wDpnI>`*VPmMn)`tTByr~N7y}9Mdoc~k7i3BdT4Q!xm^bPN)PwoX!x-HY zbeh$vMZq-pj~^jwZY9_HL=6u4QerQ4fhqEc%cIbm1>ne%IKwr}LvNtDTog2hNi|XdhpH1|Q?sbVtU2Lj>dFf4 z;oWSjO4n65X?C3!wVnkXHwVc(^UeF%fsZXbhwib)jdLQ9g|Nt;&jpOnPm%2+u<>Q0 zXiORY+sL8wIdj>c?5wCFBz2yL48OO@6(Wn%GpU5G-%&9Y!x)YJ!n_Mci--@~4bhcA zkb&QiRJdPMB@=G@^>lC~jI`*Xai)>)YLnx~s~AAkqB}=r?D!}pg6SDhyhJRvvwbGy zEyXvs$UaTg1=)`@;?f5-=LyIm+d8muxyZ}tc-?#Nj8}BLcLA%+SlkfsIcc+EURu`c3Rk6 z%AHrDixF*8o%6h&w$t!sD9t_FQw>B4DR`WIwcFE320cY4f?DjyOO;({2s<)+b( z!@KOyewr({QD#4xQ8{EO)YRbI0+GR`S$0H1+IzzR0lOQ;j0@0tfh;a<;nN}Jj^OFx z#y#h^k!8^3p!AclIFP%3wcKkn?We2F&VN>xBxP&wERIn<))Q=CJ4#gV9$L&$)-i=` z{v1{m2*LqM>h6HCnR=$JHx8yqHaY?Ng~x;J!keY=;T>N>!KNtMie zmy#B03nz!E4j2HO4M%tFJUc z1j!MMhm2KI7EjCmWtGhO8`z+d41MEfN+)Of$;0fP)?f)e78G)TWNW?b(cV&dE+DVW z>$=3C_BFTW*(X;r-xSkIk@iU5GC{l0@LXX95j4E19P`6$7R>rHVVJuPQ<-8tC1BR{ zw8I0zi;3Q4B!E_KC|h*pAT|#l=krv=DTi_f&?Zg}QI!7vek1@5b{oe9+pO zrAc8K6h3rt)tCh_(ihhYwu0zq^p*czw$s#lnJ`ypSRNi2G2vTdPZ6qZF+W~FpijAL z&1qjcgpDNG7e9FO(XzO#N4Z{i#LIb2?fO-F7sG5SMcnds2Wv3Dn2;Bx)x`S%?(cz9 zpDXq1>B77de!*!;BjGdEtMDX?k4Naz zj&dFye_OLzXYy7d4m5q6@9To-H==-vsJGQ+-!x1>59pO>nyTe4L~-O4cn|~3W)&89 z(zZd9eGMbr5R2iuDdhk2FdHeUrFqvy;Y8Z(@~N$UK_C|X#A2+SyWPj2S@HU~fQQ;s zGRSr|Pkz0%tu?ir?W48pWxmmGC<0RZx3oKy)1SvZT4ARC}t8Bxw)|0K*YRiE#dDR(~RMDQFSB z6uEw`Z{%^}Kl)#m`E(_e)IG}g9O!-H{!&qY$GL%oKq5H8bg*93&t^4PL_Uj|t@dc8 z>1j*7@xIWu61L6E*n3jwa7yXKazG6waM9p`H4P1^dF_HHRa;eGJY{)z=<r*mtr!rT zDjlNJQ6T#bgD57kmB%wapI!c!qe{)o)>q4u4E&O%wDdY=B-EpR)(}ow9;@+qJKCiA}sZjU5KkI3Gt$2`!}Y!I!8lCIoCjt9E!*T zMe|@!NgV|E1#^Y&`xO-cnb7WW>(FtjFcPt__q05WL=wg*8g*Rkhs4L1#I_fvG3trVVWKzPcd00?2A}Q2CABm(V8) z!I8=zlY#Vsi>^*pj(%~j@iMOQ`D)^Kj@cst3JSrGKh<%w@!9PrCUEk_RIMf4$o;VR zk{=;7=@D?v(i$2U3T5osAWBcbPF*2{JDh@I^eSpYSQRN$1Cm|@@YLK zN%Ube3Y;={bO!l!(}(VA>Vrc;Xc-vstBV-+1I`EyNhnm7!X#|$7(oY!mWYix$~D#3 z7rjIL@USr5H9?Er%;V5Jq9H6py3;6uD5L3~t@ypbu1VB&G_f4sNwG&t{bv$#KkRP+ zQz4Fz7fnRkhNRyUCQLey5kz9Mh&nci=m-ElC)?t`m!NXVavB_VT)c@IXfSK+z%$jg%pYuswW8O|YfgHma6{F7Tlz zM}9cAtY|8x5D?MC<6ttCXYk9AtrI{O8xutABVfT%fl%-5kcmhp_DpvA!T0p1c`lwb zPohIc^txp5f~q(G{>FgWqnI=gpzs){P<7;^S{*ITEs?=HJ#dy0yzSwWx+oTj5n!K9sbY96$b&OAYV7O*}q3V@NyMRL9 zcCsfJ^evraxF>J5OI`yut>cyW$Yb*trs%w;cNC(ny`m?cUj{7+i86UOTCDwGj3;ls zCW{tWT&oS260@i)@5#w^(j>V@N_Oz8KmuCF&BWpD%1ZZ!$QDa1R#l>*#AvC=2GR$Z z^a3&$VGa0lYiXmIV75_j=)tX&RUMp#0Op3O z*)N%>$i@`Arnn{(mAgwoiR##ys=jK1T>DWUXnb#8;E9<0NOza2ve+wrxG?;{0s^$^ z<&-F`M}v(mh3|zGjZcwhudAFN<@2mmByXj7V9GotHCZRL-aDzWUIEPSmFJQGO+s5% zQsgC9ol1MT^)W#DZ11<@l@Z~@&llY?!(hSzrDdIBn}(&z{-n~4C4U=`by>_5SOC(D z<;M$hwZ7YBC{-zvX1O0w)WsuMYvqA6;wGk4CM)rsxb%_q<|GmtMK$f|`@Z?& zv?UPBE5P~-O&jk2gZaC)d%Br>A6g9fqy`U0_U14&LKZt#7=*mEz%Y#_ajV$AzFJOT z%vu}7P&8BeSLZ4@f(Fj5n@#sZ)E~TysHg(71z1`oD~aO;4edc-x4c9LGxv^kwDM!h zPSx8n^u-IUooeyneqCz@)0>cifg5rH?4mtai;%Md4Ds}*ZL942+Uq_=7p)Dhn}$u9 zXE$UQFjvC3QiL*Rpin7Fq&i^Bliwg9-|Ez|{_uV)mxN?+{`&cBKdrT$~al<7z zw^O^zq}ekLL!M>gzuW^58YOxQyt56YH}fYE>V=|#FpbubuZ=Q(xmSMFFvg*KsRaoi zou#V+2g|(~j z9hz9V9KIHHs(f1GH@DsmKM=q&dSf-3!$qJYnev<&fTMtG9lchyIo}QF`jW@y*|k>c zEt!i+3I+wThe&TS?C+qRCRRVnv%=t{Jz!4B9Hn6G?doDITEVs-Eia(;^4uZZ;0`75 zv3ph@3+jo)Nq^buz`*vTiaa6fPkZ)Y&*JRBvU_->Rcn(#Nom?s-Yph;mogg)iW*=c z7uk3x3H_cZDfcpfU6DMa?S9w~FwaUt+qDg2k72xnp%17nj6;jtpGS-~AjIV1B$L&m zBoKNrss3knKyWTg#~<~3(Q|v!v8Mj1CGSi5p{GJZjK|~K;&j01X>lk5Q$Sh_q1Scf z2cY|3E0TAk%+>-zinL=c68Hk3zHCGHADJ}N#zDr~7>vlcjJMgNOH9m3fCyOfigQQz z@5yEPH#dty1l6?B9OHqm0l;E@4zeW&o(q3o5T4xh3>D3hgX7;fK%8I0EzZ#tNb z|Hl=z!9~NlMb+~GZ$Sd*Kzo2VkX@PMG}jpwyKL-{(h^2u-Amd-D#$~?dbB)H2QHhe zKX0R`uW3lQ1WU85Q5))8^_}}u4NrxvFrUng|rv*f3i$Hk*_4(^J z2UqqcFPsy}#n3~X1G^1?NN4mVNkV${37^Cf!GaDQmRaDpBD_iJJwTK7PR|8sX<|d$ zHsGy2waMDMtJ|Wp5==I)t!5ch$SE#uKYeq#(|2D(GmwEhuqzGA{58gagFmH#w}2<7 zYQRq+s`zQr*BL>HWsqLJhNV4=BM{!|r?2;px%FLvi8uS>UO(;4S+9X%&7P2t;@GbD1)@BC?0V@ zgsIOg9qe6Jh-B6pZb=u&{?x=G-aC8agh3z2*tTN!`E@`n*iOH=sYOdg>uj;DyeR|r zL+v0zLeAa*fK=~KYI_i{2YAE|eSQW8#sbr@dZLqrg&`0AQy-z=<%!Ss!IFGAQx*mF zEAtAUvI>HBd^!rBexfIAQd0KPUL0l#pPJdWKrvKYcS-V!?~ASO>Xp_v!4J+c2G`3> z3WYDpuwDM;5?PYeFr#6R$jmYa@#M+e)0v1hys)zSzMogZr%89-3YiTX&{TG26j5uoWyB*imtS-o`x$7s8##*K zRjyQ~7M~`Lxv;ZnM{tPM`R&4;`5?%ZZ62{#_pE11oD=NK0;q`AkTp#ont<21stcc4^bnIk8=XJ*1M{x zuoK4r)T~c&eQUszVdD261_DMY-e~=kHStq<5G4nNKv+^< zEfJ%L6Nkp0Qi3W8lg+hbB?A1g3}!QE4s;kZfEwSh7ojsB3i0b+RE~;$p~7)Ld?g=v zRD~4dl5H>VZ{HiIWFVvZ)3=Ag!~&?{yXbKxD`qRlaf6l^=d?m$@%9vh4^)H)1)i^F zBl#Vuo{P{y&Nuda^$JNjNjRXYXhhY6M4qe{ZHgSb1SFr+cP>RDh<3Ud+BU4x*cQS7 zwwB(DBT(FH{eB( zjm?ip4(e%bVXJ>fm02cMbH%fNrWy~)Y@k9+Tf+bfeA2uot6VABdYto9@ z5frqva?=+Ku^{ctld@y+{c?JTUx|h|nVa&SZHnslkTkIef5FUgR4fDlP%9i~r8mM? z4K(9yV^=f%@fN6Nx)7F47XT3GCAJjki>FqQYghznhm@JD$uYQtc5DteiBm`rPN?@0 zs%%(A`*QOOvnW~_%|jJtjqsr-LAPNb{m@F%nxO2WA3ZfmNkJ@)l+*IAr=iO(5rjzy zp9iFH>5Kt+3bb+HqIRK)0s7xfO_RP4#?rHK4z5nH-pmfIQKZ0Mj6BHT!2(I-)Cin> zcnyFe2`z;?R|9j`Iw^==g2SA%ak>!cm@BG&QZ?7sR-5kp?mGpG%qLta#r&ds9Z2;W zjL_%NNHPZ8c5xC)`d?xz0KaeC46L65{BiTir+u{AbW_6r#nIYtYVh?XXGE^Ca!}|` zYry(`e;%L#1EPuXTOXmsP=wT!di`|0d6TkOouZYW8=hLh@^2_L%Rvu75KulfP4Q&9 z400|ORI*n>G>!$}VB}o5J9^xu{0{dc4*S&=IKtRdpM(jN#Sab4M$e&DH;P2qE}Ms( zK@b>hi0Fc;oaUwe7P&bm6S`|^u-0^UgP6|blR5E|KR_ID?!UBR=wFFH=*sKG3vM6; z%;`uu&tu@)#x&xR#*H=y1ppx5v10G-J+rMX2%CZG(0cR{+w(tj99n*5>?AKqdEdn*fSDU9a#4f)mEuWR{8ke(jziWlV5{CCj z?<)uEIK~l6azhw#S=88Xb%UarzG&q3e21$-(2xo^g`@02h^RFE{Yu7nMv3>Rcsq-% zYpEf4+~U@c)+wOBStalX4 z0Q=Ecg3@}^ecW!DjzL3lB$|1nY)^|t!zm~30;kU74u|=}mk|!p*Y@yWwE<&At_w}W zum%8eTs$zaur0nF?JaJf$V~4xbIiyorN#)5RG}YqSZOpfLO_O6eu?9dOCs2dmeD2$U$bSHgs+1wLEC(zn1AJ`|HL8$NOgI&@n6JJ}g2ACA zR3qJV`E#))NmhBJ90ffBLXs?KojR!!_2!IUC?Kh-uIS^Plsp*{xwqLm! zE=vcLOx-4eCa6JKl&MiMV&prC#2L2lnpCk)UQ5+~J9%ne^y<-k4tHbHH0w%1 z%Z{*A?4*0t4Jg}7GpSK3JD2jpM~SBZc2;n1PYXq*+}3`cy_uf&*Sr%7B{C1`z0YgC zr$VXBZrKqjN8GdeApIlo=YM{h3*ipAv{^oO`BtL=@U=Fs(;5fefHI-!S!eGgFCE(@ z>MssI2hOnqziOn3VnEM8P@wyBk?jhwB`Q$ zB0(VeyhebtY%&$}0`&eIQe= z*PtjV9uSQLc*WF%e55?%)gM(;&39M1o>k^WO+QBrP0sZSL@*0SJY(f3YGZQ8GNsR+ za-`O6s9-7KaxqSU%PpF!FSO|j|I-W7^mkDlJ5WB31BGt9Yn&!4NEmbM=%Jh3{?$$7A0TG{@lW9mO)ll6Ew+&^?N1C z$;7)6y{B;j&QfcmQkvn&uvWZ;Kb_g97P1mMz=}tU|CdP=^E-}n5vMwDJu^Fo_#>f7 z9K7pyqQu}^@>@T{cZCB+iT$J7!~q-jqR(#jwN1C;`569+BmAOCpC|_f zb^Q7OF44z(Kf$guN-aHjnxp1;e|vsMA4k=d%QX4v=03o~@(o`O3Y^T~HzcF4`s$H} z@L)0GaQjp=`r8}JLlgYGP4wB`xG^Q6R35iu&Bjj`J-0%j-c4jVoG)C|7>+UtfEpE? zlu8Z6*f0IsMBrqTAZj_C9VF_hiQf#|Yr;l!^_wa? zv6@}-o@E*P))GHvnV*Ozy@4O$Td;6y2%F%DRtx$HKmv7NjY) zr{_AiW1$bA7GS8~Tcrk77ErSLeJ`UUSnRRxB@5f@AfF!Vpy(_OTDptB+w6^g$CYzy zOU!MSUCe)OAaE35CMYoU%_zE05K{n#YVpRfQfPKHJ?lGcqjOcSCt6?d?dqNBaxe@R z3UB~;>>RY@>}lTqd{eQDHbK8A#z^mc`&)IW$Z=@0H-8&ft7scG7c%TD{VmSnSyD=| zrWH@48;Y{6XiLJuQpCqle*Sj+WAs;(S~68Dp1K6#{RM$EmACwb+Lt@C=|(N_v1qdD zd0jRRy`g5|>VsR0N51;?-j>iy#h=6kkbEp(f4W}7?oJsn?K+0K=A9T9jFOVpCCGGx z;@xc}CZfH>1Y0TmQs3-lw7iGK8-1c_=VD%cqJbmo{NR{l{xyfc2M^Tll)ZyNN=8a$ zcIbqw#W@^bD>}OJ?WW!b05>Mfif@*VHg~URl&=S)pQbOhHoRMZTe-OyBMK);k-$I5 zw_!Fs68mH}I=G=AK>Ve$%+7tO_QEc}-cnm;Dd?1=RM_;PR@ELi8}qdz`z2cwgm421a7uDbGR z+cK8-oV3$vCC^#C&uSVQL0pw(J`fBE#UAfm2}vH(NNoQ#gExQ$BFsaPM^-oEOhdl+5z%xWt>PovA{_*N97`J3$&sX zJU>~OH=~PHUTZ|A>b_xfev9rJWYZs^S1wu`&DWGR((ukiA5c-ntT)ek z+vapwOTAywEQ8n8SP(`>Gt5pO76I2P zfnzKv>$LHaFvm4w7Uy{LA9Hu^HQCDWP_#~^CH*md$gXXZjFdD zvltuYdQ3F&Xx&avF^`FxQ%fko^w}XJ#t$+KM|--DAdqoPQUbkw(0 zjM2NTg}A9dPFoIS5+3zNxBBCLWeZQOk_$zagr$$50!E=hUN zj+=@$HFz7nf&a94hC?Jm4XCyDm4wrx=|}~6weB!rsA$7ci%rFe2s};(uihQ;S+e%vDQhoq1hpbx6V>115|4i zEKX+<{-jJ7oVp@YIdDZ(a)3?-DvC19yi zELqi3%ICr%jQ)22o)f>tRsXE>b^4iq^mprm&vPz1JC1UcmH!|%CK4tu`F-X)k|eW7 zBu?tS$?kTkRi(oZmDnom>FXEU2(8loQhyCj8=vg@E=hYo)my_UF?4qMG;p*Q>-#>GavV*DU{=EICFt zcANT^^4rX3Jx7EVeEvQ`5^371#cAa;wve_6ntRUFg!ldH>rprJG|w)$2gH7Lz=zKqVMHLntRyCM49{wtXOgCA#V;w+h;B|13m{C=!9LC1G^Qqjnf3aTEqM=kaAbIsS* za+M45)9ezz~c+wtzokQ+ZphpnM-{^t_4slsH9derOFH z{wrZPp122BzL&2l_D7F9$5brSK66vJWvAuS2?Ob)OS$7AR#g@`-XEf>+hkA9!#=ek zdmTJ|hs-p!seTqrY^ij$1tA{Ok%gJL90a(2=Y-Sp_IRi`2LRo&vJLnE5NS-vUCTnH zE?3Gtsig|C4oX?jMnr4X#^9HxI&5Xbl`pyF!Ue78nAu$+qwm)c50{(u1(PZB&{>YH z)1u0F8WnPchN5rGH)-)UKZUz2nR^$v;nPjA1aZ&c5+E!kRI>VK#mi^tM(jdE8u|2{ z{)ZZ0Tt9j)&1o6Cu)sn=GyWhNwlW@07FhfsBZl zVk$W&zRyWxvXX^-TQ1fA6UV;K(EDO^8r=A)Ze)N-Zz4Mk-*3n`6Cm-$n_O=}x`13h zEdNOt@Xn+qkcHTx5Fpnn6jzomzWa0VWm*8e1E=g4gA52;)IC*?WZ>!<*}qEx)n)$d zP~Mb;t0hU~$kW92svQVi`;XLLHPO%X=0#tWg?huz=5iKlbWAyKLdx~T?k*ZKEH6DN zn&N9>Ep1okbjT)0UI^H~*tC9sH_H|2?^~3F{k=9Mv!$pQ&u{pt0JkuW{H(^s99Z-( zBRsRXAc{ZoHCtB82i?)N;4Z<(_pJWYQ4AJnm3bdS?Zlm&8zjEcB%@-zO^2iTJ$2fs z8*?tz`2mpbmo}9qCvEB=m3HFOBKk*>j%?+m%bUID8y$xPd7rtu7rH6HFbf)DQ9V!7L!Zxld~Fuk zbGn-)`LJu|%t!u(#c+=7GLZ3G&_g3rwSYif4XUSI?ZveX2>cC4)BMN76&2c=#$<&% zG&O3yyu$K2{4}ro?$`d9Rge52qkIL88=r3c$Qb0vo5c!>m7IY4Uv*9^^o21Gq}&Pe zc+%#+AdlS+lKk=+RVZC3F;vwq7c5iLIXp02fD_>NE^pF!k%=)*NVm7$lYmHci>J7h z=(cq$wUm!;SgVH$TFhNVUX{EO?PPtJcLB3N2*ouMx}Yv`%CH}4_cU8tfZ-|$h?9?A|i!Fcy)>Hk(#Cx6G=fLgM%VX z!Q@Z!(4w4mkLB+@Xllk8>JHlcBrR6dQ7BU;&yBv1$tSgReCQX>@EkQtOl{$mV&2@ zxd$B%7{=41xhNScjlMZCwPRVNv5JOnv9Ux{EH}Fza2fy&yZ$R-X8b5n!g8fRSSUBG zcE&}UNlK_IBXddx5OA^Wxdl3WKzfAGy)9T0lRIt9BB08S6doI z{1yyiN=V)4#-%YD${)5Ox_Ru%UBc^dMy0hHi@AHD>-_2Q<4o^;)wtm96YiLNU#8yC zln&i0a)=4oF{4NW*GP-`+0XQB#IQ#p6xsywTwEB6alV|+DWv)&IkvYE9~-op;x(FQ zbK^9vF((FO}Xu_7TUuJpAP`-_UOCXy8#r=H>%)RJ+6O$c~qT#N)YKr%NQgq(el^QX^MNd zjj08Cc1gZ5tto3qgt8AE#DJ))4w>Xx5r)V`{F5;qD2_Z#$3rTkaDX36?`QDm3P(&?J%Yfy>enEdt z_}HCXgd305fT(*phwjj_gVejA(}W@^>2VB5g2~|!aouisf_Ds#PgHYN+e`5n>;llJ z*il%H=61@Tz7Hw9R#Ib=WFdB|nAE6pb<02J$!60GMnc#@I@K!i6Gtyp5r{CJc2JWymgQzayTq=mb(Xco zJq=I;7Czj?|N4M)u`qAqbc6NRhSl~6Bx4*aO95dquqr*<%$MR$>~OUlq0WEK0`{`r z>7p1ia<1JR{kwiBeprMMvGkOhXl-M!Rcy^7IZ9GGr@%fb3c#_gzrX3W!qElbaM zhPnN_`eotHiDypy$(G<$%fDb5pJi4hcF^ru8Lmow&|r8*mEPQx{+x;e3o|x2 z&i>Oq&6#D52r|xXO9hl09EHf}-&d!Q_R%ArB z^udmG%}Tqt>9Kt+%Z&l~?fgBo`L2ahV#J$kqk6Ntt4>YlIN%kC4hs0vm} zE@WEeU@X~oc=$q$L=~4shG--F#zo}3U@hoce?AsPKa~k7v%Fo?;kY^7c6Ik+6fgf9 zlk`7Fk;rZo2rMc}+`IO&wZ?!`2!QS_*h#o{>WBq$xS@Ios#a18eta0+TJz@vawj0( zWd8%3tV#lq_6&mrhHY`m2up84)uaRnQlal^CWw}T}{;QJIl;qp~OPP3pUq2^(` z4e1#n7`qVPiNv7@e#wyhktBWaU?ulOmW_@`E&@3P!KxUg%AezD5ccZUIXSe0U?s$V zY4wsi0mW=e|39R@yChVj9+uk}acr#5@?+fEfM^UZuVS--dH>J_tpg>m5u37>E!F4J zTnUqqO;YO-J=3d%C|&;e?SBiYGm#+C$e8F|U03U~lqjBx_k4dIQ#~Q0Vy2=(CQ?z5 z29Qx?W@qK*WCj-&6&D7A%AZyQR1#H7vRT$!)6zoVgp}WS-T8ddYOr)Rxo8Pp+M&!>JL{=DmS{hX`#uu9E9-x)PN%tp_rQD(w5E+noZ@{e!0-4Q9U+)OdU z)`<2cPn@zA_t7?fc!P58tCi zOvy;$t)cRJ@r7L9C-YU51qSzCE+ptyA}5N0OC`3~K<8WA#6q9Y^lQG12rlF!{Vr*E z&a-pk;^lY2J`+<~oB!=m0z&R5s;2bx<;TQs1$GrGD%3Fk0S$f=Ae%LWW1daWh;9e= zDc*R680)W@x7rYh8R8^S5D|tW6{C>%<|G-`j$Wf>iCq8vh!Yj?{=gchh`=dR9`1?Z zge3}`Q$2~?vbG{XyJAl%Rr>(37JwBFb(TKt2E7(bxf6zo7{2eg;672A`<8F?Oc%t@K*ebkAIpc4TsIqfrC;bLoQtwHYx9scsu$N7P=} zYi(vwSG)kxcb#ECC{LeK8a;U#BROma)1GF%B_x`w^?n8S0sYQkW$*bL^C9q!4z1~L zfP}T5RgpGS#g7;ScXI_e&ON$56z=8w#aaDSN=%C{mq+5@<@uRd?Ol%HX}4!Y0CYxG z3ePXTm*sECCjbz67y%T}df81A&OqJpbG%#Fd;P_Obb)D2E((+gXX0fyo2Z$kpzCG7rRSABAOtfFE6Wg{)(oz z?0`m--u5AzhRp8Bf7z(uK~ESeu>KkcP=Xf;TV|Pa!6l3XN=9~D?Zw`3L1Irfd2;2= z8V7CqknuFo$W~HjKQ=v9RJb`0L~a?!JOrkrIH@fxvBMF3VHgo{$geVnUVv#1EBG4><;zVLm8f-sn)fWNPwQ!9dhe_43- zj|K;!XTpKRS+rCRV--`20u`vn8jXO;M6Vj8sv|5GX+Jd(DFxjk>4YIK^{PAo8NO;9 z!Ok4fXmm@u#G9=UYe06lg|-YKM>U?tuE;mdMaQWb&HK<6tRi^Q87R^{p-r;;@Xsri z2h;%dAmv*kebgcPDY18w^oRp#RU13cr&_c4V*129*sB{BQ9u~LGgkw`uNBy1kopK7Iptoi@|3h9e$gGBVB&AX~x zKX&5adlOT70XYwt7ja;fdoMURvI7}+;oJ;W;-&r%{Wi6SshhxJRL0))0*dU-*2YAi z4rDlEASkev(WjBwW16wsF(>Gl3*a z;O9&)Cku+miq6N4REbb{qL0gW{P@~5A3p8?RS;z;JmCbk_qpgWUN3nFFcP3hOip?m zZURTD;68-cs5@0@Ky!2A{Pt-9qTB8nQzWy4HzU;HFcn}4zx+K1EitkaFmnu!J;3FY zI#c^3IZZdR!Fi6}_2ON9K%BHPe@gIye5{4bD3JOhGpL&UokHQXaUF+AMP=!}IR^*L z!LAO6v&FkJuXeg%4k{-GccKA+siZ1#D$B40CCh2&8;!6kK0j+P7a9Oaq`?B1k!-AQ z%}Ju7rw!yKkks$Bl=@{aY~6=xQU{`BPL6lQ%)`XXd1h67$0&unv(*ymF-Wnw8yQ*AN~0?ERt>xNN4 z*q&lcbMSM2je0G{TK&xOqvw_IvuemW=R4AKV;6Dtd_yLZ%r!^*G&0*yu=S<3d{q#h z`(4l4z-@jla(gsqH<#z}9uR_kdF}lE^cFSC2dc?3K>P%_NP$ zlaazkeHWy06XnN)pi<0@=ozLXl2%_~fe?)Ba zUP)Q9@#E^<-&qu0qWZvlm>J<)7`AU~Lc^^@yAMgN(b|)Dy?*ZVOL0xyYDUei&q2#GZ!rR<>7w z2uy7o{98YehnP34qKK_g&PKKN;)(1gyQlZRW>Y@hN$~YdWy2XsK{v*{BeUfk(~7&> zy6@e^%A~~zDACE{i`3^T-)iLGn-rt~+jyYaoxEe_+r-dEz00QmmF`hIK^&fN^6w$n3+d=&A!8WE@R`7V9Buf zrdXL;`5Mi5w|8MPQ*M|#dzjth!_&dZr7uwoKULGw<9iuTf9^wgH|5$uE@Qh$+W*Ms z&p9>*RMd>M#|LsW-5AFt{CYSO-`gzA)r+9O%UWn0GGchr#bV4NIDul8?x*Oo^yAI*&WRG_e zHBh2NXNOQ?MH6Zw_{50qVQ^EN$F-Qxg_*iw9U!6Cr()v1+h_oRle0MlJJ|hXh{xik zneS>~)ZYa5Is?gf+~z13bD|I;sy;)*BwxYcM<7n^3OFPS2za|JkRB(HjYlVq`F7&f z6)?iw4cNQl6q{mU7fW*SBu`|O?$!-CxEVir!L5iP!6{yQ`fB)yYDoTt-908kJ~N5c znoM-abp;f84v#-EX+T!+-p&Bn(OXf|Ecvw*`5kd?EiB*zJ$hd0k$w?GG>@Xg*x>*h z)NH5DEFv886HoPr8BrD(Rodj2+s{N=DY1^c?59@ zkj4PsuiB)p$E8CBIu`@Z;)wPgMVr3fmG}u2J(TqKS1vPqWEesN%yt#kc!H5uT-GqH z7#8STq`rhC(p39=CZ>DM7>Ai4VrZP4bFvVcro3S%HJbo8>k;JCI(gEiIzK3E;~ad=mgoT8G{A3yU>LuEJ7 zEUxAof1=dDwhV){oNqXk6C5cfL+J@E>>wc^6+qng2tkG$vWS=NsFbl_E?#SKIGvB~ zE5kpe6?6^x9hCX;|Dp%ukmg7c-*?duC-E1Zh3G^@9AjhsC~$f_$gEye3lsX-8f*cF zT+xA)mO{?YLzX!io^M7@6RX^mV3P|B4wL}?L23U|EaMKgA3zJ(v47ZLI>aLdjuA7B z$a!xOa~3zhW)#@ECQ6vwCZGLCl};*DSA@trJWUsz1e@0dSc!_#dkVY)iWj}KmZGqv zKIzkz1BH}OSv*->M-axER>ke7=t#ci;f+lX)rHqe6;e_9)M~D~bq6>c`IxPOg4&I> zKBig=xt#m4g=UpEAjuoJOn@+W>Agfw`xkL4GuY}u*70sW%?kPHP(Hd3RnbD?eD$)7 zk&rRq%)wN1*@x>Rj@gjq+}Dk>Q*|0bo3;(j9rJm12+?6Qo?Ws8hrZk;9T1D3i+p=! z4=K*#G0T_@XV#JK+e7;8Q0>7&(Psr>vMhBLwSsRkExS_|JRl$%XttvwwpO{UE2_Ws zusO)r-}v1sxu2IzLasR@E0fM)@woJ1?zTRrz8>{H0UjPQ{cb+63Q=AaVmu8IGQ+=$ zeDh9VS-9n0nb^Q9me(5%&)@;li*EEwXcrrmA(EbtKZijrh>pn9kO?Z0MB-he4@QQfVQy3}o=PhOtSZIA<1Mw*=WloiZbJ}I%HhLCAG zeTFd&d7NTN?s%VhK4~^ZOaW{)FF+c7U(=SCdZx$A zQ?GOZHS}FHjJm|qErTKV?l#$HF1w_u(&dk4I$?(2jPrUPnXV#r5@OPn6nrPXH&xR> zk92?=c!@|P!k8$XLY3FeQe7!x$%G0rZU!Emf%CxaQ-d@oUL97_Z~)a4gP7xE40ZW; zUY`w3{43Dj>J8en*WgGP`7m+8dEQ&;;P$7Z+qb?e1xPT3C!L>kfsdrx>YN&HC7cB6a|DG{7B<0rEl( zBM7B10tc&z%0qHE_5kU6sP;RG!>onyHbVA^d{w8qcC_y8&W|w$c|$$jXhVw2W}}~b) zt}p;odud!i1Cs};On7>v2iokl;wS0D3iK;6x9lb^Xm-akQtv*DPy;7O8jc388c?fu znJqe0cwrX#-5gVQ@xxR7e0`0Dz?BF}5B<1Jzhdf7X$K6Wl&*p03#qc^dzy;n@cukG zm0pca2CM(V?X1{9la;0w??e~~Afn?XG_C%YHK-`!IZMxk?1y?~a^z>E>xiDvxSxr6`fpR zx>N=Rvh^7P{=gD*!(fh4h@xo4$(#Sv3-R8r^-eu~9o>XLrN1?3Ls(_?y`u*5`pelA z>~QjExb=%)OV|pwYXsoqJ!|`l)sQ*hs-Z*jboS@^XR0F)*CF2kRCL0jvKdQ~n5 zQzR-zxx@0@>=o@>cwK&qfH-mOTkRnF&iLEinb;aRc)KnOORaj5+bRMt1iz60fOju=HSWd6U)w}QmS#B>4<{O^vP z@7#+QcmZ$bGI^NoPmuzhio1_+CV1<4+pCOu-TbTnFI>q0gYiUnKafbdEwT90AVF#A zdTe&W(xRo|Z$?uYU#W`fS2I2MRjA$p{q0hfb_3 z{3_7`4_iX75_jIk=J*>AXm5K$-4b~Hbz!f+XG9BPALs)aX2F{zK=ym61u<7MWBr7t za-KLzSa|pyY_Usp2(Lx@dGia@JSK**^v`>|vMco3anDwZs3-bma6YsP2_o=s7pQ7< zCdd-C`6b3lCv&kuFVRCAj8K=IbB@6RqvttcsB;e?Fd}zgT~qIrMCcgvps}5-AP|oi zLNVrZ{>mElPdbftcD^8fnfvusQ6mY|uc&WMK{LAvGlrK^qptaj)v+VOo`mjMFRH#& zx#u+)DR($v*oiIuf%ng|jR4YrmKwS%r!%#A`qT+Mdm7kM7HhIny281x%Be9@3sP|KS%E)crVv3gw2M+M?* zUM9jp(qypEn6#szt32WAB5RmXU2t8gf~QI76?*YF#d}v5fh|^PMFDyN4hDhVe6Qzu z^IvXYo03oCrGuI?3@@w>YcERBd?^jn`E}OexnZ$M#~NSQl>`>Z#|8wm+DBpE7z+(q zM7BRS8`H~=w?kjbOVmk2|FQ)2-U+&37+J4W&RUU(-=(H!Ax9jfev(d&y==Z;*NT<< z&(H7jMzY0;9NORMMAYwo19koV$>VwB8o1kH!w+&;sC&IPgtg=Eni zB*?|F%n0JH#(!Z`#<%r4S#^dA^1?TNUA`7BVV~Zq@ijQ?&#R~(69zY8u)06q=go&$ zYZ)`0;^5$EJTkE!>D8N?G<1tr+vFvK@2dG0BY77<2@nAuCTzAx{rE{wu8}|_64wmC z^#n3{Ip|zNHo1k+9D4`F7!J(9mElk7=z_#6x}eDfuFm}X3|&tqCPI&giq^W+`mrMF z;_DAK+tdoY-S-Vvhwf8KmH?{u^7f`Uz833V-p||LTR&QKH@l$V1C5e8N|*6qoK@wY zTfsy`4?{OK08}OnmBntbDG9Sqsoe-ZbT7_mJ7kB~Pp0f=*KXN;YyGSIQCvnKxY^%n ziSJSsiA)G^L^)JM5hQf$mwOT(>`f~cPo{zqhLj;Q7>qUq?P5))IvDV>qzG1>ZX76d zXC$7djo+8RWP9Pj5a|LIM?>fnFq37V>T1PVf}Kp zu&p#{tjLw)-|X+6A(JZARH%#Mg<~DG&X~><{j(uO+|aJ6^hFJ;xa#Ld#)-sIwp@Rp zFN`DA%(5JimVP%SpUpFE72Q1+yRWZC!kh7f8OOL1FH}E~nrJ3m=k-Q~dOx^dB5VR2s z5EJT?WI)@FlE9&BBkJN~C-+}pP-;ar2?71~IP&||X0XYQiBKK{yOMwUOp>d=#PqWH z$U9yv{dAInkkMZo`-Dqpl%s&=H0h-jUy83G{ttU|MW#@wT{(y!ho=T$Vuo4x7;fxu_yGZbbx zb)anuEFd<2YatNE&6I*D56Se!UV!bd=NWLyt!V!z1!R5(e^Qowy%s&MoegZ_fGD*~j~kOUW+^PFwq4*6VlnE%+Y!>nX>~ zk3ifnW&mKm^w(6V=EEUE$(_X5j}QY{{2QU2deku4tM(%ey=?#oqm_Ti2 zJ#(3Gs-?CyfHZ&W^H)TqQ-M-9*|jDWix1ofUAExP{lbg{jPl~n%};m6ilx)@D98_JRrP-It!8;K$t!$o#rx20?4cO-_i4D z_#Du4Pm|oVOB#PGG9(1^^!SdkwwE6$3u26NhPIlOr%y*50<6qbR^$IUx76^0=Et*#9h=R3Z~nf2bnVWs<)WW~!%NO` zpBuNA#hw~$YNPtGK!aSSbakI_{EwQ>>p}0QdavA5NmkZuIxqQ{qk_un@m-Fvq68fH z{Kith;Jc{|b{k->6#&kVPGwMJJdryf>)aF$6lnP%0Q@Okg78 z5Nh&?dJ#A%m^2~jBA>-*TecuQsmX9HGf7AOlpWRJ_*l_0#IfTQ&rg~-+rf!Bw}{lu ze@CjV=l3OU@P)s9g^!XiT&`t@bJs&sho}<#1yqKh4NQ(&3q7INslcvQP`)+=hPCkb zoLS}`robP5?u_@V7!x1!H{Gq4FBUczI=*G7EC0~iglr5o7Z*tqo%hVh(e$oS8qnZX z`Dk^O1z@y;Ge2$Bg(QyCKxO-LzACnvYDF7DLTv;M`*2tuh#&lTr~g)fp55=d%yGjN zt!KrCNi-Xg^J0%BXS8zS+0Hi=By8(`UGb&+$>O#o?vqJx{yhWka`VrJqvZK?Nk)&Y z$2@ah7g9AvKzVgk@V?FXU0ytuUbFGvsrZm}z^%~mYcYRV2P*Qd^=)NRBcXoBOb+!?IjH`MDxS!Zu@ud9=`8EcjKk z{s)6<6-&*W@B3_DCIm9jg$TA{56@UtBtxvR7sz!LM9LD2IX| z&{|F|8k|1v4=ba?mLW^}#F|u^isZe{TfdTXt6s7X_wm}A!8i%~5E*2U@C&zaE)0jc zaA9JISLOL6u56LkU?S$6ZqI3oC>umJZX@^NngTR9+fIqD5jSyvlFGH=*L);T*bTGC zJn;!O_19h8;YakdJynWtA6=e@8j3zT?iW?or8E)Bg%4z|Ft`UKJFV!uel2nc3t5Xf0oSjP(;^PE;ET$jrcsp^G2ZR z`sj_d*a!E6+Z^0@9T8JX-m*=z{`3USE^e}eOe6qirqD_vekk4_1r!)kyL-{HfX ze8HUJ)Q*g<0bh}nQ%32*}$e|8e(Dv(M zh66X5w^_3%^@wr=@uN$8j2g{-Zu~A0wy*(XW-UKpDEgJ_0xe+Ik0Y?&5@g|g7unpD z$OYPwuaVi93rN5rM$H48_^x>QzgU5E7Kq+zka2dS?+E^!zp!GoM52{=_0+_h}^gQ zky&eI-sOV<*W1vbBlcrK8QA)@{=QVH?m-8YKZeig4EG(p=-y2H>1z>~51_Ndbt3$I zVH#*4-iYfIY^thEmB52GoPpfG^PTz^@;|cK$J{-FdAwK=vKxVlD|+hPko@4*c=%aY zLI_<~&aFLc_%gb2p<_ROf97J+vXN%oCEkjceb^?LIbQ@iktfWO#DkInGuBeT6Wk*V zXF460q58!Rr(ZK~d6uakSqixS@+pc}4S~L%5BQXY4-cABj-bDX*%b!voh_nJxKIdu zzQBU*yF$@B-202K)QLTzCe6tP_vZAQtDds*SpcYWf0wb6W$bVcs< z4VX01AnuRm-xuc|om_5;t(n&79{u@u>1C|e#p)t-beX9Q^tlt?ebiNsG$Jd2m(zq8 z$%~vi@N_MD52H1DbdBe~Tc~%=|H)abUtq28seTjz^527L0rN9Ol(jr2^j%awlyFscj4j%+YTlUu?5kh>wLWSm^KQO^E|4 zO$b|}nE{g4D+18*W@(Gt*5D`o(fr|g@G$eoR#luRBD?{RKb-viGVUEC^|H`zQuekd^?44h2S-S5(LR%-L9Xx`ZH{=0Fl(n&#VFOonso z!*3Ux`ioDw+=o};c;>Q&ZIse**0lR*Kr(qdtZ9<>gaNAYOzhgiPwA&tcDcUnr8n4e zA0*5$?^isCnOgc>*pgE>>}_q$-z4Qpfg4je0<3MHPFHE>K|qaPoo?nMExER5Ih`lZ zx@awb^8uO$mBkDKKWIH`Ed8B{H`TJ>c`Fd<`iA)%TEN7&Pdh2c?mpubEvi*aM7e&Q zsj;|zy2yl7V`@xLUi3VYucCrSW!ED(;3c06o)5`xCZB z*jb$j=Zh$}EGE1%%2?!Euc#2utZ&`vk?{G=o1t6% z{PXLt*(593i2< zyl_uNM%cFoa#-GK_YEDnGhhAVtQ{>&kW%6K=9x3W=2tH7z<$@Q0H15( zcjq@-Vk!5^XTP3M6c}wq^LAX5Q|VUI=xZAan3sXBn z6Veg`F|lQ7a@mx3d+sGq4gI5ZOdFeff3$VK;;%l0`7%)a`~7)*7Z&#e!M~o(`coW5 zik}r!k)2js+H?Qm2hM}tz@40hUwWgi>X>S-oh&(PQr00Jqq~(^(g;qiw7?8WM^78AY^lq7;LhLmyJKhdwI^%myqvpf^R6OwchN(l?b(lDMD5jzxT5VWl}! z5J#UDhk07u`5(Q=UO)M8f3$5;NKc>E^`~Q-CD)wTB|CZD4lAR{k9Lo`WW*aED z>fMi@FsULKF^*KSEkF7%kCQfMSp>{M@#r0ZX7aLPIGC6*s@n&xq;`?ljIy-9!gG{sPPE{s}|nu9W@D(tZrW2DvU2(5K7MA&0^@{dX+5y2jJ7Cxyo=!W!Qy z#^(^{x=XM3_Y}E3QQST?WbBu1OO|QWOk~=EuZZa2J|{}JZ9zI#te%W39;Br$-OSn2 zrLdKNybs|#j3Ppc(NQLXjm5#k1ylQ*JD)&*n6l|79r*|N!rEnl`5L1Qo7ehw^3xF8 zA(~p5(Mkc$9ot~sXdJ%V+A9e1J3$D%vk7dUlEI8Z{k!G8UTKTn;kZFBqEM$e=BV`6 zadtJ6Cd|FNXKI|o0-B=-Yr1{PO9T|ajs(Zb2;I<)!%EGRQ9hw69d9U|n7M;aN|ioa zvQZ=eG_&22=QJ@F>Z)w#*|8BFi+O(gVJ3GKnkQrF{YEL$`p#ug&EaOVCdbk11t z(VrulPtgbfI~`H~-t%7&?DIx5B%X`j*x|H7_secbcq=OLThfL(0kYBui#B<(&B(VH zxcH_oHgmQj@Bn68p4(@tS7V3kTc&@Azb##Xbe^V(mv<5v^d6NQl|7!PBo`-^h1X7) z*sU34JDih;veG955s=INI&O1sy%P)^_nwnuR;-Gt>HE&=H|Vpi7i`7&(0C*_PG4UJN=0| zmD^NbH)I+bbghb0VolutvgA>9jcwC*uItRx9`T8xY9y(WML8H&r9WRh;wuBH*D0xS zrRDZr8Q#HPWS^Rpz(En1vA=gXs=LIZJ-lf8f~^_vPL|u6UykadJg%Tdy{B`|G5QHG zj^y#)3`KmaGr_0H%-zqCWO(kPDKD>;P8dqoA?~T0Aw{cxq!4A&lRi+$k=d>S10Dqz zT*>BF4k171UR{YP5Fu|lhZQ6>q-VE0+)+MA~O#w%S*wQZH=h3Y=CY&YerIM;)((%no+DP@m1 zT|I04ZTT2gls9tY_U|&>@%grqnGF+2w3{r>HdxqCm@QM7xMz8^-^6kGAPOGnDX?R9+j?Q2Ab}4Apfmn-E<>U4LV(%dpj;bnqd?J>Y$O>OflV zzpt5g@Hkh^}F`Y@Jmm$>$C4Bc;e^B~El5&Ga+ zP>*)W%^pWyw%_CGuBx3ivwF#IWwEKpA*C(dLl?-2eSfJSCsjy&e&b52LQ{6=(^v-Xy4j!D-#d+!EHOXP+g$C1b zsbygf!-2I5_Z>eCCh}DY{9#F_`=)i8^5Gv3Qd8AI(?NOQ1UZJE>Jo8tqzgL5>d<(R z=qJ5w%~Wn!cSQ)5ZcG|NC}8-7dp=CV0t{J`4RyVnCFk8oqvC6VG~QcMsslQPTOa`6A&`Kf z(Gl?T_ic*FTdQE&v_!+>ceS{pF`!ZzGdosG?%1ephZ)?NI1;KA78CVLc(0e1E!uF{ zaST0fWbo_vNp(b&=1I((rU?Zntxgyzqbt4j%KLh+>BTM*C>KpOrV9$fuImO;R;^M9 zR!cLa1=8b6S*7koATbPH#|`JyWj_HKj-maiPJM?dE9xy4MDUM@an33GGC1XM&!|hF-}w1JTl(tfMP| z%7pObI5A>AEJ3W1z@?R%?vyAF9-d3&1w!~A7OOtdO^vJ5BH0FD7q2RPXU|E8m;KQ- zF&M%=KL@Azm6G2G0<}BqD;=@vcU!yv4CXc1W7)pt4$;GBn>wcKkW-=An6rurI_z*8 z?8awoHG0WE+_?1w{qx<4x|EY?>61*hq@*XRZ>S5ipI#QQpTgC!BvOs)0dO<1uJ6aV zmcxP@8B79+mD1S|YzF|ian~EO`^DzAaE*aA)=cTt{!>3Arse5U8_7Gxh_!Q9hix5| zXvY&P(iH+@5apLpH4bUvwuNb6SdHSDnVV-_!8On*&L=g*kj^8(0FZC64%Vg?aVNNW zQe;r1dM2Nm(8VG~;|c;hInEyO6oYJIHwc#nZ#Fm(EmtN}^F&Thn?X%%-AW zK8MLkV{ES9e16rWlsO<0b`~FdZJ-=_NT$MHYmjLXNRf!0th>-bLtT;GnHLm>Au~kL zVACd4#&TFs&NC8OlGSZ79KVtH%B6MMuc;3gPza5o0Qnd+egw)t^=V|Tj7SQ5DiKbh zu)uNU-|{VfBu$Hy#*ma2jl`ZDEt*Lw*tQvE6Z!>(2v^e=8@2<&aHet1RGFv9JRLos z(wr>Ap&%NMRLGSLU@dI2+S5@`a@Y7xz`G~WZ?2xMpVg*wLqD06np40qvzPZN2w~%m zk!Lj)5AR6uvKihdGsY3^!M!#V`GAAdLbM=W-L!RPJi`y5) z_lFgq66tzpZ$<2XXu0`M@b>LDam!x|(f1Zk*DmD6+o06&N4~XMxPkS=;1FA$^^IL% ze_R|AY*X{bcj^AN)(vSk@0xH1@B}oIB@v9y;rDHE5)0w~~$#a1dkGxs9Q|SEcvd52<2va~_J( zw@7788rI0bj+JRa(|hdLYAGP$`7?P%Xm;mE0DHx`OBUG#{zw^lpBZ(5>jO(#+PH0L zeW=9pf7XGWmv>qCX-2GSUvhu9HVY-`b8yN76#sYCti?{WGZ7W#iBJniPt3@!zkH>P zXIVEZkxEC#B@34U_U(f+aDB_`K~3OfSN5z+DYHEzDGR1s*t?fWPflPPn#wQ^~M7ZR;apg5H~2gdymhC}%!i3hdv4 zo+CHGm-WD$UQCrc$wsNx(0^BR+eq)vLS81{w~Pa9Kt4-RiH0u z0`s31O|++E4p*{U#Muz*!@FcE3b3A0TAwXw%`k$St?h2u2MR__W)0NIuDswCP!H464!I z&mbAGevq$aCX-x0GR{PAfVxy?;MnzV`WDsku1|N1-{Q5|D2Ea*8t={ye&Nc~aJxk5{t{=MBx9h4R;c*3WI_hj+IK?K?N zWfUkdOl94rxOrNc9N;JAMVaGi4XG-l%ZUo$X?6LsnEWK$M4%xZC@0fTQ48I1@RLfkYX#Pd%uV!r9W( zxSonMPr>#SZ9g2xzO2NZtBX%q*>(6n^at4bRd%octplCUh6}5J63_nA)T0=vcVx;S z>Y_AV76vj;%O$eihc>$`Z}TgnWoz^8JGhrW@kfJ4awtstB+x)I4f1K7su)KAmnH3L z<;{I;qhw7IWMh1oLoD>&jVqR zQuA_*G`@8%^q$Ow@r7GjN()b$q=}%5my%s=50XXyHZ8vQ@@BSHVs2r0|0O#AAE~X9 z6EXM|UlW-#c-O)$pzHMEgC9{1ai6yx`jdQ~hGk~2K4nM_*W7fbg6shL>r?R}0tNC_t- zRI7BXM=*9DwU0qh<$f2At$pSs{#V8|1u%|JHuIhs^~(+dfd2-n7|+h03OJv3Da1S; zy!=QsD9Ja*KGMIoL7CyDTfK++15u?2R?nOTvyutJd?F|rjQ?sFCG=9ob;6#lk*ody zMgVD%9&@Acf%}i6njHNG2I8)$Bt^Xln@d(|>P2b`FpB0mF{x3mBB)S5x5thNv;i_6 znw<3$OgS)Q!O9)X1J{oSnJ#AD3G9-6!?OiUL|@413!cxLa2sgS z@MEJ;%3=y8{I7E)r@XZL&*?^%T4s_MdnG0kv&VHr#XjEEjRy4!=W#Ty67kJ<1m#bo zBt8P=x&XxaP)r_FHiN73r9fbKaLa+Bs1i^ZDQriyRfFj(1X$aTr910g_|sYml$U1w zDEts$&yfQB6LuQTKsABYqm~hbvC0Qc#itiBWzzmB>9L;fOTpKBt1f=$ryR(@$$XZ* z`PTrRxD6hFra_M`H*TZo>#|cP>Wl@Q+S-s36uma*3#E9k80^^>TM?vIt{xbIYq#MzGw!c;pX7;{f{6UOgO_ ztQ3ur!3p(4RV&~~VXRE4d_F@BZVgIT)=#|`gIRP;dyn2JWhHW&g?#;08A_TBHQm+jof$IVGfE#pP;&$i9OGWCq|uKZ4KI5sq7 z#NX_WP5wzJPSTJN2tcem)MlUjk34Qyjeg2wO1#iZ_M7eZXIMH!B*%0)U|B zyGH^YZz*|6*#hhva;5%|!^32H&(?L{9#4-Ro><*tPYV5A&bKzaQTcKKWNF?X*f+m{ ztoE#4^ZyfGOg>u1KTFLp9EyHz(|Cj7OjrrbUXz29F29r!R){ zP#h1Q4~nO7I3+Zi_IiW3Y6C@8{lcR_EQIhFUI0Bmi>{sYVnZn^+Zs+|mQKb_F4Mgh zaH}>QpO$3(62ZEj3KPz!cb69#K2v$qOFN|0<4HF>I~@rvDKQFcK$DfwE9R>_Zn0bU zRep>J9$3MAiMe-d6NHD`m1cJw;S~;UIlq&P)^~o;@2@H(K@`_Mr47l=`j>!X zUBoNCpt<4c2^#$mpk^TU?vSvxXM?Ge(Y#}L=`m(fcj4txsUOu=$mLUp{}9SQE+>7g zjR&gxdqvIX7`Urd6+Ekx`+#2jq5?%8!daU6xbWCVLQPcZso9OkP!f|d-0IM;16vOK zy06gO_e~Tul5{O>F2rHrV!X>kxYQL`^+O1c8O?=X=5vDAz0#*IU%VJ6y3)ZjJC~(n zJlhv|>nCFK4#(>qUQqKN-4CFU+rSTYh|5&}fbz#RH1RK;4Puxsb2YTioUu|vi>U>O z6TPxG7% z0pLIA;<0(futD)|kI)Zm3iJPwl? z=wrck&jxQycbS@Z^hrNoq0y<=aV?C%TOB*oGi%q$EMi3(i~q)~SC{AtKZ&#Uz#)a{ zFwUU(Kjf-;ShKYH)*@HlPg_)pQ#tT9a@f}B&Vxf05If%YKesq(G25=bD+XPYR_D9# z#SMpLHheLC*7iC3OItP}ar5{a$9oIfr)`q~Jn*UtsM|W%+X12ty8gy{(ak1*&>;pi zz6yB7se2UeW0`3kMjaPbOd}76PlR2toZU^k7L__1op1$qukX-qjsD*Q3x13CfE(c! zrCCMO>hUo6)vZz&5}UXng74YG7Ul-wadA%j>5ByhZ7c-H?yPn_M2B-)$T5 zxieast(a;XbpHw?`r*K*_aicESOO?nc;4)_Y3du(poHP7^X=8Ni0k5&ZAqmSK}yq- z9EBGzO8U^hvNI6e0${ioLVFj2?r?a|X9%qdC)L5Pl?azgz?2+_S9jDcjvqc+o|_O= zuSiIU?zc6a?SuSzuJh#MX>K4pFdroiQc=E4=Co2#22E>?@ppqqd9u}HA78GRdi&qh z-cs&llB&2akPMxuTH@`bJx%3B8h%25%Ekyqka7kV->teaEysx1rGMqm6ekXsod-1z zd<33-#NrN=UxL)nZQp4=Fz=BMn`P4E8kR<;kCS~yR{m%OkPeUEShpH1?R$a_RocA#(pOiMG1mypGbcr znQKPU;U$XqxNmN;3x0R~O#e1q>pVK=Rml1a{AqPOmA7}`BIe+>*cvGI(V6ip4s-C6 zx%=6_khtV4CoRbz|8;8=7R%&Vm7CpsY}|~pK6j1ts_L@AlkqzO0r;#+%kXfXZ^2S5 zOT|!o6aP2^I=alJYX6xd1KWV--cP4vdQ>4to7|^rb#qgJwm1?aN=#r;*dVW;PmXsM z9~GJkg^ef%WAmbbi?SRuP*6Y&T~Xo)0fz-rzyOKn(y*%US%k(Lu72dmBQj&R2hV7W z*=dG}>dl&W>@f$F6-p9#VhjSRsksTR<{M+@T=KSKvlkJWTz<~MK2p5P{u=44<1dVu zzx`m);Q`Y9~S9&=_E)HcbZ}8_I7Ghz+1W zGrbEsFBHKDl4+JN>b`O8@(jsz;ZJXkHqjAqj8s-Tz)RqzG&7@M1fIpiD4Aix7pS9< zRuzzJN_O$7n}|F=c1d%m1uB4`6Sna9<)3O+3JVAt;jym0T%wL(fBM=>?#8*R*AyDp zH)vfD27nvtKkqB86%(gol0CKW!A7)`i#os4?m8XC31Xa|S1_-glEjb%FvgDU*}S>t zPV-bze?Cz1=WGvsC8EzG7mndP4@kcsXCCf=w3!H>ECKmb6gLbF+AD%az-+UPE2_Tl z0*nc4pLGoB&Za2u>O3j}#IdHeXH2=N=9JvP-I-}7ZRd60r7@=9plc$}zMYpS;PbAy z@Y0BGm2(M-4~ac%<2WUtb?6D=;!o(gh!mGVf(c>7#z3pV4rUzD4IpIP3+X)$=Bf0i zVF^dr>mrZEw!&ieBds)_%j;IVVAXI0NE$XTEt-BaDeZc4eo-b;n5{e2ql@9^CDp<4 z#QZ{;jFEHFLM!sCUiR0ZhGtl6e4z^B8e9O1{_Cj&dlrOuMX+$6h(cMN@M0Ba3mF!y zn0W;q-}gT9;M%7<%DN?@b=zq?BwpIA(qHRmaS9>Xy*h#C}>D>)Ps=$ zunb}6{!~LI=Lmkbn`#n|rTMu`MPyxkxmH65{b?YOQt_{kbZGeT<#Lt}2bY0KQ690B zD1NFwEB)y~n;E+thkM>S-d=!057QNRq!D3Ek zoC-H3je^+{F6$&v=BVCwP8*VNZ;BzuBwOT^eE5Uf-lh=kbjduO=Fb{=05g>0D7VM} z4VuX7_yTqw*t?%r#?AQW&&;*g3d1)G2Rro(xK*zKl--fw%eCCdWquc9X+r8PC)4qX{0k zm;B~8x!g}>?$oEd!YG@r*LuWxjovmGN96s~L<^QU*6fX5^8WHmD(ea4aFD`0YzXs? zxtdB6XtF*wU@Nbe6QeiY;Og=F6L;@%Q9r~dKnVP(o97MXJqQ&;^S&j{H+KI=|EwHO$MTfwTviw+S%^zCw6rPBnhOs!m>zeMDT3;no4|s5o$P^8g!hNxHUE<5u=A> zB%wpa_j3lwp{PR>4-V)74eaeG9~^;;5;OKh$imscAwf=$KF}~+trNl}*{V&IMyIuG zJC$2`6oAp62G*DF53=4AazdJ)sc7!>s!7Ud{oz9GFP_ELWCT`T&$cd}t?$-H75J<4 zLWbCNPEured4Y7W5+0>8M@$U$pSznFh34niL76p9Ls@}JMsEVZO-qH=59v!X;iF%b zWyl#C_F`62#h;kC@%~kjDsyg=Z%t%2WkshP8GCE4o4WCR@R_`>Mgk(73E+YscamdT zR24s3@YZ;17Pbl|d|UvBrV48dmw#g1?8pY+7d-o)6~i4mm1FPxI>%&AC?02>hsvU% zNkec|BO-M*Q-qK!lO+oI1_KwQ6QM)_N%;H>sfLZElgP;XCvJkb_LLKA7St!up(cEH zi^|;3@VPvg_*Ca_E864@p53a9n`?PqTSHCM^A^p~tnL7+Q=XpS%{#_7e~dIr7jV6c zqewm%6=jY-|mvi-$-{7PCo+Dm+cP$|kL1i_%yVvJ~JFBOa@-ecQrm--zi}3!5^q6L)Ct zh+~MN&mlnKj6j&Z+)TTw4}QJv#7nh@n3E6BZzinvOZ`;{KYpkCv6+}5)7XAnz~0Rz zq>rMfZ`&A0n$>DGk+swMoOnS5)Slbu(qZBurQA0YhC%e7j?Ey3FChcHaI-}q_!31l zubQH9mSm_Vz!cTxsH5AfK35-enpBBQi;^!q!AsQCcFIQ7+2y^q7>M=PUROd@6;)rqx} zggW1sH9gNEZgPT}ZaVKc5z|VmpTT7QOl*Du(k=P(w)g|MkA13Iuk62nV8q! zp#$rMq7RL6;QN-J#Uq;g0;)%a)fTK*;W2!D?5>b;`7b>gLIW5Rgcm`B88+7>t8v>) zWhDGorOA$vq_s2=B_Ju0u!;W((TC2?l$q58l7*TRZVow?45aU>Px?>=~*Z=N$&svq6}JJ^dB8_WbLCB>juQ7H= z@@ZVBj?)u{WG=UaBH%=3EaqzMNsmSE(*G3Qgj^Hh& zrEyo6=e}8U;b*wE=(ro+Y_7oCl?{OBBi~AAXi`v2`kC)29~vni=!<#jqqW*5*12oV z|IVy`+x*~P#>8j9&6I_&his-jNOcvnVFy?*1lqrkAB{RroPUzFwVkQRXDccCp#)XD z?W_|Hm<3A`jfk~e@3RNY@ZUEDo=VyCRM(0uRg1MFzHeR#Gy?4~5_Tr{=B)M>b0y!&=U4e(H1oLWyfLiI;c(cTF>}Fy;0QlK04=>p-Q3D0 zk?Q6Cua*!p=lW#S6;bz*ZRG<)SJj`gsUN)+3%_ixE+iteM=MtKZf)_HDI|noQ6D^N zPh#(Bt)RA1v^+`4{L|C1qpy2?fC|qhQE4SK2}pb+wCfx3S9(30kGo==n?rz=(iGq7 zY}Hznrg&VPiV0i4v)j>vwOYcQ&fa=4-{jl~o*(f_HP>FM*#0mnQ8{hxj?vrmQYMmU zQu~SRb9*9iYhnrIsI9BtX;6QeTPWAVE8LfTkb429*f)r_&Z#yp`roS;TdLu8b5NfB zAhzWE&s>x3TmYDx<}zSucnZFzoXUl!1FTSHJ3Y9`Fs@ZIYye4Yi;%m&{GzmUmt;D^ zMWjX~bl@8-SscCNt0Q&t7?Il@y^aBq0G4Flf6Puq>joPiPbHhJ#5eVIo^Sd_Z!4#Gi1+Q?io7_>L)gBXuE;l8Og8lThmSbB)EIj<_ z_Ps(KQ2X^GtFbpH9G+`iX{gD^``0TPnPhg>Yt9AL3bi+sr?t{;-A&BzpmtKGURni< zFgk$jgM~%M1e)I>m7AQtYF{)bb?s&N?JDm~tUUGkWu|*)qpE<02u1+F1c<<^tS`+p zP-m9GdkN^2A-Kh6TL7x^o;Od-qScyXpuaYo=$w^nmPa3pg-e~MX0j5%oV!neZl}RI z!NXdx>>FiM*=k5BAKcvTmzm)Owi}v?q7-b=2k+pe1Ne~}iRy61TSK3IacuyssNAe| z>@Y2_XTIJpk{zZ$l6`E@4U*I8D5~E(Qt^k^*t3d1Np;d;J7l4#ZFORQ#%qpZkZs)q_x+d<6LgISJIbl3f9$CNYUZ0cW^_+m*f;*V^ngEoXl<<((_a% z5wBV?sWxgUqM6jmGHIexg$WH}&VQS0zaBz8Cm>cD3+Wbbm7U^!g7>|Gx8KFxcev`m zpoxzhX#ynViAg~O-Z#3lw;|v|LkQ!79Z~_sh<%LpW3}POrHtcq`kyI@#c?QkzkTLB z%p|_1%Vb8C@MGQgmfb7or0PA4Lpkqz7w>EzpJ*|O_8K7Djkxo#duP(mm=~#|a=-Uc z5^IxCRNhUp7hn1cC!FU^)zIQ)e}x{3LX&8jK?~WJGpq7-bqA3Z_Cw}U9fmutGB+`- ziwYu5eZ0PILZ9nC+P6yBhxlkR_ z=vgp-8kiLg-Vi2VPx1t@R*YzRtoiQHg}3QyuKzJEJP%Fa94X^Yc4Y6Fn!1O{Z^S!9 zc}9BG|H}9LRvyo%&$lr9ZgX2^hk~cl(Uj4kJzj@Dl$3G3w-PVSqWa)1Ll}hC=6Dw$v}?;h76`(4iI zM_#h1(nX7G)sgbOoMN=d#w`3O?%_+m^;p-p3*70-fZ#p6CvV?}9N!A^dsv}<6%)QZ zqtJCI?&1CC`_y+E`VE6C5*iq~+Lafyng}?do>{uDeBb%MU(2QdhU^!Z1CPGf({qc$ zMi(wiOwdCQ-Nit2-JesPz{IY#-$ki^J{SGna@@CxzxzHJYv7>soLO(^>;3%wv+(_Q z*+Qo$&{ywo{S3PD?63LH-i||*#0mS-HlE8JW4hni6?BhDU&Oy{#J_-Umuh&rE!|YP zFi@;nMkdioYX!usUMg1dE;0to)9{ry`%#9M9HQ%fwqnmvq?~?~+{r#rnra=-#?JKf z9@ggKeI3gqORdj(FLG08F-Dj!OD!&)i%-T!U1pc(0Nxm#tFn4e)|J#H)uwB{jV|%t z0+z=G>5Fr%YU|F_GiT@)^fvsddlYz`FiknP?tBVuNN3yT?Q{GVsu`W|Rg2;H)>ThH7Db=~(rh>N za7humhLJguQ0v1e?T&MpDC9d-PnRcJnXd3@RU29s22l>bOdqOLab0fMe^yhn+)iW% zJvebGYx8@&KJje+hGV_&QX>8Q-jRw0c@JaF?78w~e(x3FI0q?-AAL9AP{lw$%QXE9 zCfc6y%BXwFj~tHLuh6RZr8)P?hJ_;3`V#83UWW1FXmChX2W6|;Cr*Z_zq;Rg-zgOD zmKRG>S9}1Io#b|QA&f(_POdRZ^+Ow)x4*h`#3i~9M(F>VwZ=Kv8kZ*AEwiEjD)EO+ z|85UL>0uyLMTZvCnl^kNe^++R<4 z&ignPTmVOjx8DT?zG`d_a0x3L4)UyZTUn0h_;n21VuPOLEO*w5?&rQyQO+`E7hSTI ztPZAXu>VzIt8J+o;COdo-ETN7)fTmtKYU51y!xnP$p3w7PD?FP=i<5kf89x5Wc18HxO8=tuRy?M^p) zha@g@1mNX*uT{34GGTTiF#OAyTLvU}_!a%TmV;k9PX0~?{i(~cOeFl43!x`){Mj;^ zxJLD?DwQ$#sNR3wjImWAK`Q!3_8Jnl+ z(9MJVZM&E?^SlITLkxqpx()t^=J7!?vDWf)tV{)30k^_#^+#4#B|PoMj()gU21raR z*60k~HNI=IdA#kc>-hJ>w9KX*en1PTvVU7JWV~+IBW>^lT73zdyv=?SzBu!x%Or@m zFMB$N+T4F;-QO)B7YeA zmZyy4Muqj=D*@vUvW~Yn5+Y3gt+){Ay* z9_-uqaJ?Z>Bm?Pn1_HNrAIz7*)8PKGJ=VX3#2vs4PV3qnhmA1cbN%* zHoKWc@f`Q7X{wFLqW^N)@1|C=JV4vM7pb!P28`SZ*}XQ4CeSEjbyJMd`rNtY-g%3N zd=Q-^mXJlsaaU9y!*w@(bry5cjhM5R9G{j>V9J;!1z>RuPe-o0X_`Ni1}xlcflq^4 zTv2tnM4{3r`7hpnnWS^A-TxRFknvt@^Y<%9U*xA4%Ut9I$EXq~m=R5e8a(t2wYxPy zkhQga8hdOWY>ZTLke8$o?}aK#C1lbhng#3FRHNKx({Q=a8qcc_P8s97oq}m`HH)I= zf{ZITnrNYH5W(Am`y*8X^+foXr;d?aF_y}WBM}Ie6l4J=1h|gVhfb2A&TMib!&lrN z3KodDgnH>HB?TT)v(I(f54r6?-pnHqd!d`Y7ToAsPTh{+MAPIn&bOk^mBVZpgh>%~ zmPin7dcuHmAhEI3GTQ@Q5Fyx^xycS+`w#=fT-Ga*@z@gPLcQoxfEqwDU=C7&xlJ~! z=WFRb%$1Yrxl9xGxTq=#?LQ;}KWHX#Uy*(-6Q-AX`$<{-R~9;-2o_&Zkb9 zEMo&(2{CvJsNN0Izo4l)d6ZuJNukSJL;NGB^vhbS$LnlMufmSC#-DC&ju7a_G6WCj zlZ+6iin4}++6R~LD7ERE6csa+wh8P)Q*feP+Tf9Ek~p`p)EbM()j23zawvU(*Z5NY z%dWuT@ozYBK+)4Xp1w=z^!nQcN#jeRhX*RjcA19E$I^8@&x?)TtM>Bf%$bjK@>kNW zKLyYGpkVv8{%GfNt8v@tLAmk4x?$PAnblPg!8mQ8B3yl7dEw5m_^FJchwa%49H9f! zu^aV(4OfBQf-rvVviF8x{fn$dr_8x*XdB+W$q z{KO@;p6Szr4^UTS60hsr(8XAYy-7r~qz)ZRQl8L2L64EIn%}W=Cu?+@E3?JM-o3Qe zQ&OVCGcuy@rDx`XVEKgw#bHHdAr+N@;F{YtU^XZlKfQzqD};^B8P2CB)aGo*^!Txr zIU4FrPX(am5Y!S9HgmOfcC>bac*_G2f;y8+&epc}_AdQx`Ws`~^iU98WpHlf*E{#3 zvf~c-=`!+j|0^#0RaseZ{=4vBz!BOIoM`hV$-VVerQ%65;Uqld$?sn}?S40Exrni6!PJjh&J5}Qtjj~BU$*F0^!T=d@4 z(6YymxQnjm7s^J-we$49@qrm2TRvMEsD1X_TfMSpT6gz1*|D5)!`+CM1xDDq4<|7+ z%Qm~*1NK%d2grF4?osgHmXh{lN%pRQcqoO1tK$eq{ghKE`{2ZJrB3@<@Z~kDi}peH z?Tz+7RX)pl@EoWz_8(f6!q9W~#;iPOL-QNB@6)odd=GO|-0AVTiU=JMuNIPYdC5s@ zWu}K}lh4{O8lelD_}j=C zqHl*J`}6js00mgQ(uyH8p>T?WNQ0TLeQCKhhdoPA*Q`7i0JH@{%BjgM^9|4HeH?qI z76BY?3aO&zCcfgWP01IUCyxcf;9X4{!2S8L@BIg3cW_X4BX~UI`)DS9(DU9x29}|A z%FOLe!xUVL)`u)E>R_!vtY`!wgk8pB(#2b9riq>-2))mC!lYyE%i7FF#yvEXuKbw# zT6A1n3|guB7FysDrPYU341zLCerMTr*6_GLB6k1mBVM9GTJ*>K?{W}u5`FF7?Yf^9 z07?VPS|$<5!>^u29$~TjI&5kKmtDCptZQhfPcZV#*)H;vdd4tKnoEl7yg+|!tZQJ zT7N?q%tHbwNjLC3OZx>T893TE${yfm+zQzY3udZV(Mh0-g|r1-C_lEgX6J2CNnaUf zryi98=nZu6emzL!l7jNKO0=R!? zKLl_P)(${Qwl+|IQX0feOm1+im3ki2025tJ`(ucf2j%*?z69%7p1Hy&R%ZC)+;LFo zEFd34{J9c5^~4YuVB++p&b%#e@(bHmyAqA%oQZyl+m)EoIRkf!(Ub zfeD?(t0-jrX=eGqz3~_4VFW49S|UJ6;RPhR6HIV=DZRugec^FT8yA{Dq8jZkGSN;K zu$auD(OF@f+S>)u(~!YNeYEQnwag(nYZoWYr~H0K4%!DaI=b}$9>Lu^?|tQ9TC)JDsj$DZ3Ju_C0DwX2a1N}?OnB?Gm3?)j;o?a_x}E#BUG)k8YbXw) zx{7CrTuwY792mSx^vQuj2H4_;l860Sh#PQj&sP@|5lt01RKIx~#Dx*5Xr7Lh9JknF zgGF+7<6FZy`_frxtZKQ_S_ZVhb3PkZO4{sE#4}zieKLuURP(p+i|P5HOtI~GgPj$D z+@TG~Vk54!Zk=knj2Zib16SxN(HdDrsU^deiM;!1Owa{trYINyI9;1oC7HlV7Hk^Y z&?Vg}r;B3v{M9HRQYg!pz{Sx*L_y48Cj?)K>(Ttg_k=!3X&ty}S`y;)^xC`l`PMwu zX76RW*@Pxj_cvr4#TE~Zw1EKEKC8=?G5`gS_YjtbBwM^^zDfny;8?mYW+FJ(5y+yY z{zzew=nv;PYLv9IHe95aL}EDUd~7c`C5yFx8IoM1G*Qp{^MIv1qts@^Vuv0g1Q#I# zdVsT(%w0Ff^inY;QCHVS19cq4)p@6ABgZ{`gJX)vzSuQ1324!Ia^+s`*-j7^+|s74 z2DwUbdTShwiS2umbFGV~VIaU*Q2_KJgW+Xz7!I<&aeA38c{4(m@yd}2(i{k(g94d-6_e)$GU z-SZDs{^erq4pU{_s`B-6?|kGBV7FC>y=B*LC|srapADR<8rXqzpFPPLi0!MXiZti) zGt1JEnbSud)^(<`#nVSQT%>b3?OY`g#E>dL9IYDCXiU=6MuqQd2nN3iJjRt?1yarU ztT@qYoZb_8LjXO1P_%|RVDpPBDquk(1Ta(b{1u*5Yg5V1R57-r+SP^EOpvb&;(WZl z_6mZLzG{FHGK4c{jku<;z*DW};S9v{K39itLL-CFN*b^Szlx!za+&)uZ{XJ*H-?u8 z#J`(UYlx3lH};3_b6BQCH0HS?TxpI6MlDbWfRwL~R-zZ&^IjzDdYR&`UZK4mTs|WO z_vD>_P7JLk*GgTE@rOX3PyugwLCf+|Q+B%LTTN^v+hd-+q}Skh*qnLm@EGzSh=dZ- zGQaJ5sL-eXgd6kY;RvUE*cjLOLBAzsSPBD4#kYxVpNZBQ~O*Ga#cw^W(kWB zza+c+@e!TdV5}9OeiN{yB>93lh!4j|3=%OQ(!*{2ffM5Rd0prD5Y)&`#R#v!VcPWE z+p409Vf7(Wed>Qnnk0h6lzUS17(r!`>s?qp>x2W3u9h%`OO(xsXVYn?HcpNbU(Txi zM3Kkd!W-P7A^ZtIE&*&HjRv8ZdcEriHir|dfJ-$A#kaM0@A4L3b!U%J)WT#2ne&ZtJ(9awoRW}jrIghRr9fa8 zJ4ggdj;DMqTB1bu%^3KJoQM9w^`uP}tpnJOu#*!-_A^_0DNb_uIQWzhay5wN0>`cC zEvWzw{X3Qpo+FNn#5_^*k{%N`>b!T;=eo;E%7&uk5Gbm8B2wgv*ZCY5wQ@=mwf763 ztAV1dVq6IJAgt@2Rr7xg|z8`cen7gGoC8N64@Y zcjMeKCZj{fS#EwvHouXQPq*SFM-~68nQH?IOMg8phR%eTUDreUp!r4^E zd*Bl}55Ka^D*MbvCD=f66dstH8o4VU^YUZxOUvRX3JE_u^Ng9@p6S6CmrH910$*3e z)!5x66!|&1WAr1u_0vpP*fD8)o}5=Oypj6%p`|Cf=JAUe0jIpr2xjy+Xki2gwi~(} zCT`fE*Zkj2Rc))#BgnLYyen4vX$QjyD#(XA7^&nd>n6Bq$r`(olod!laKc#5%%o*r zowLEMK4){%!8B0JwqJ$@N9N^X>_m^4LD0nq8nR-WsiM5Y#Jt(AllkN2xTX>8PI-EgUh`SaZ)Nq&T58co zg7cVTB&imc$6bnNleX6@*{H@$`4vB@EstmAg!Ax_sgnYEkLIXPvE1QUwCyI8OVi&L zP9;9;PuEH^QVhsQtdEMW4;jB27tKzE?XCzF-KtlP^U)kfyBJaa(9;me-n@79xVz~;;qKCE~Nx>Jir6+;DxN|7)~V}#nt}!ipOqrte|LoKBu7UqjY%y>5FvbZ)vUr zc28GiTM&vp5Y-(7^v(kwbRmy}Ipl~5h%4AZcasZVOV9Qr+QGx%T_0J^jvIO{t|}I( z=CsM>XU?(80H_&)0m~1t1beVV?EXYOPiJr;CD5^otB25`HyBF6apAmeC>D|1_vyof ztKzN${ko(d)&i}D<#YRGPP?vonFEbpN^=u{-68VeuGUgE=S?d0V2;$i5!;*st%ni# zz$ICbop^&6^<5;o#YU5XNGr1-?k5o-dF9DsXC>-BJ)0gQ0#L9e8;3m0d_@L=AUSf4 zF%%$J%oYI+e46{NhZ_qdHmPRZL4BbT18r;nY|tTf!MEA4-{s@MnkHL?*K@S+vmecd z1dDQ3h+`J$mv%I`U(nf5&C_@6d0ZwJncZ^pl>6j^2g$COM|8|a#791Go9<#}cr>9n z5zG+bPamN`W2W;b5#W%7;=~$)!*G|N(&ZG%;4hJw-%Jk_JvI~mz!K6c3-*K|0Lttr( z9A2_69FjU#yH=*X9Q3X|If6sB-8eh<8)A2KHQ)5>&Ei;o4{=y|M~^3pg$;-I+I(2` zr0Y;polOl78!u>18}QIjWii5TA?A4cH5h%%T)qGo{yGXXRYv7mS^w`5<8I} zx}mOfW8c&TM&IWyV{fU}acszk1ny>{)QrRnb7f6*M@fQSO$m~AZnR40vV*73qtJ%+0q6nm{}^Y$S7D&Nx*RVatN*~K_OZ4Dxcm6*a`gL-xjD+M(uL6P?(g0g}2%DgHs@=QLSA?bd89S|@c`CrzF6R3 zgPO<8zqxokjMOw-#5#*~+`fY3Wy2U9l3hzXfLfMM-D5`f@?1XOGtoz~e7iX~JIaT| znf&zT%F^*%GkA#RxP(_J_F#rXKG9R?tMY`bGH+ECP#_}3Xt`7%RH>*F2m%-jU#TmJ zwbiL(A67zY1-j^@8~j+o6e|jw&Ii+#-3mQ1KiXhYNVHihao#R)ye&AV=LTdB^sh=l z(SP%<&~doOS;6o0IdZ`0O0w(@Vcx&XPz(BTOW2R@@b zJdIz4*)WH4m89DNUfxkWizGDG&A3hVj?W~u-MbaEq8YDXxaxRq)cg~NlRrFg1p1D{ zg@uv=S-V9;A=Xu-eI>;WdB~V0Gxu!@{RBWe(3@|(c%r9i^|(rHLoOlFu&H))Yb;_w)~#>1uiAYi>Ce90^* zv?SM0ZIOx=ele@AQG|8Ya4T6&>-tFZVTJ3epk)`wg0@Er9&X|qa>ZdU28IVh%uL5@ zTrObu1BZ35jTL(e4}jvn%k|9qOUZUK(Mf9-Ft{LtqgeKq0nr>ukV{0?{EVq-J{L@+ z*$D!6-jTdT%#(Lr`ypI@ckk_A=7`qMrGHY)&pC67tRD0_X&Bf89H|)=gM%tq-k63Y zGA{={uJ@R!$gvp+>V6(Rs9K8>5v+U@gr#ru_>b4#3{(g;VJj^hnb*(MH?rCkA8kO3 zz2{~B%!PbVzTS_Yx6%LjBe*Ko(LIjP@MoW#NPEIbbXa}M8o4r0ZPfP1OVvIiq`>K7 z+9E|Kst_@&m>+slU`uuBH`x;)kFBEp%u<39NB@M|%x&~BD1fyvAl-Jv(HDr(zzF8Q ziKG91yvv74>={8&8ThC&w^1gbSdG(^CPl9Z(Jfx5m_MmUOj|qDpR~~X+_&o4%R6z~ z{C2bp@6QUEUe8x^Lk*Zb4yqSiSL$w5S>{s7T3U5ecW+&86C>%PydqxD)O8hWb~f!; zx=BIdpQ}V8y`L9vj_o)y#H!JLWLh~c?oP8!i*)#QMr(I)zW7UWG&9MPU%SK8lO6FZ zUH0CAZm+-Vv-2?BTbRSgmmh}em{(F_E4Q=w^02-y#43sJPimm zOf#HI5;fyWGAHe%`yEwQ_f;R!0?JGou!sve~QuM%C{lD>VO# z_9p|sIPuKz)v`Nde1A2tZQ6ALV4D-~oBa$NoVh>#d*Vgqd)O+D?a6wZ_ZGu$hAdDO zP`hFzEKE0=?fHKH{qHnTR!m$pT`1Vzan#@7h*tcI@s6E_+t}-sE|dTAu%gP!GyvBP z98>SrjlFx#k3UV&$5GL+abYDl1O$j(xlw1vWM=-lu7=ATKU)yJt^UPBIPKTh?GOaf z>gOf$%rC$!ajT{Aigf}{?1r($_8fvP_bPv*ykW*{gC$lyFU__+<%tH^HVuBD=~iDL ze8y1V6{OAW{c0+W8%Lsm#X(MFGvQuv+STa@{y18t< zDAdw2O=p!mR%dK1o+9D{JXGf56e?)vn%wks#S0-2hCXu;z|DQR=O8nbHyr~H3#maw z;l59kM!a}ot)RZu439M2V_c#}AP6^oQc|HQn>?J4BA|vYOjI=|9}`S2FgTkCFftFy z!5DprFvT=pt_EDB-DMmq9E(pE$=Ck~c^QbK=VG~wRH~15rOaJDkS6y>U=+2=L z>QFJV^B-zys?w=X;w6z+BE#qJm*vHoQ4EO=A!c%kYqG#j0TQq*u-_{ zCZ}$wf(D{l$~^Lu6gTh)sQNevk)g>0XkhAy<}Ab+e%AC1Mr|f&ch7NqL%E5oUrTrk zxh2DeLd$MejyDZZ!-KlE zFLf2tL|nl)o)+H+H;u}&25(6oZ1o=+u6}9?{pRTLAP6xb*+qBorEQ1?EFoNa{vchl za!Qe2svBzVAJjudhouy}k0ub)>jXFA(?u-d(pOa6nA-=X3c9-VUzVaIc&~oUY8h1f z#2Z-fcgk-}c2fg920|S01XbShqV^i5t1uAmxN$VqIKpjPDNy~#BV7XTK%a}bOZ4!K zUu7kI>m27V^#2I*kryF>fW$QK$zN@IQJ_FV_ z1l_B>9dzn{F%_eVcMeclGz5MDo+Q2tMIoA03@Fati}p8wlh_{3Q0%N{Z9>T#NR7709MvyFh`*E zLqGC^{Zr5;9_xkGe7|1pO`)IKzI|M7`zom^i>6#h^=$#T>R?z|mjuVZs6)_CQa4G* z&)jr;r*-Z3<7;PgIdR*coWDbqul@Vx2kBAc154ws0q1W^{c_09Tk8d|Om2H=-Q<2q za#g2w!)9_FGk@@hDo+zp?*e)@e>wPQwB&uh&hyeTZa?wG`lL(_ zSFXUt#(4i9PeNKh5Be*eyJB}$keLM`Gvqv>LT|b)N-YFAU5%HPa_NW;$bJ8Q2{*XQ z{zEskl<~+#J6;|}7TNl2mT9Nm{rR9N<>v7?FB3}TW!@*WMKitj&RG2LYy;#|EhSd} z)3r4!mTRZoAKJN^`rX4V@-qzQ+emB%OvQ6iOzFJry#^TiXmgJW$cnN%)zl|rJxnb3 zCkfI43fdU#5Jk>`e;VNv2qZ;)K~IT)A!Xfo24R0v%B%eh%)uv^mG)oD`jx+W*Kog0 zz;(Y%R8|8YiiEeCr|~R)xS$(X-&Q}!=U@}_n%H|(eXl@U^^Sd!u2_C({=9{HEgM_h z{L_jlxM}MhBh{rh45}R{84=Nxgn`31UWLrk9o#?-*QZnrG+W^WGmDAlaUnV*Ky;XS z{{0x6S8@2^n$;1Hh{(l$K}ItAm-?bkO~a#fn=omKdGjd?MLzl`g@qAcU&)A$(pA&o ztIvI%_aHYDe(pCQ#G(x71wphb8z1r7pQi(HC;~IpKlJ6aX!bV^%q6H)ecQ?iFZmG0OeKGAbjUt)u4RxY=pj4VlaSWIge}Gs0Cj z++#S7OeGoP%23$cew<7(Gdj%wY<8b!ksC*4F-f~PNgDkrHm+`MhH#8%BIu^M1@w?AZztxb)p_)=73ULcKSf{1?ynuG zzkGJ+>s4ls>WL6VqxiSZTwo5LlF4Grs{Db_!UZaFMga0tbWbF|)|`aa`6KW4uTn!dQ5Qe8KzTM7CEPp^MLr;MN6pd~$SF zgmAW3_2oBXi7>(j$Ug-K6fy(;zrBwyjrbUi1=4Y?qNh%8ni|7>O#0uj=}8@D&nGa_ zco-Kdx zQSbRyrQn&$;%ClI%>q%)G9RrJv98OPPyYbpFyQtluoQhfSbvd~%V>+$sqIz&@S?Nz zg2+cAlBwI*U`87oR7Q~iBp{x4q&%FX6c9AH==g|!*+WVd9iha?Q9Y2^N^I@ zbtHMQF`Kp$+rJ0(^t;gc5bgFB)(rIRm5THzLCKk&M%C85(-yHq^_%_ic@JMe6oIer zYMj?FS=|37q1uR9+I~nl zOXvS>?My#Kg2dQ7P^f%MW6S9Go7U`_XYgI93v7xOz9e?`-_+lc4&9nY5?Cz}u-;E@xBhfp>bWJbkN&irLE zBCxn}cBBKD_6a?GZEyV{R@Z6^e@%Zvlu+B~qaRAbtH&Y@5m4z(8c0>135lHE7$3T6 z|Mrl3KcH%Yi<2*|xXGUU+m}cM2Y^D!^n$azJoS$u4dXG+bmbqkHHjo7u~m$gS}=aR zijN~ORmgnuE}4kWx~HI?3AG}_pQOtlKM&6{bkd#+C0;U^LQ}H zjSuLAtuUUY=p)pQwFfLP8q3RM~xU#vw`$cXl1MC-VdY5H&I%n>n+`o9f^n89pQye`sy7`O2@%B2hGhkagnvB!r zO&uYtHIoPP;yucS2wg*?J_bU~TaHb6kJ2Xp!N^(aI3p97$<>b<&6akpi~5oiOj*~( zJeiDKDJc&w8=h9pbwt=g8Qo^|)EVA%rNa<0RofU3O_qus?uy@=b>sVP-r-(4aZQgO z%sj?!zk86}^i*48&Q_wj%DZs6cHNQ0uH&HbmX>&teKonhVs>^oDc#Tw;4F;;k!UMs zJwDR_GAL=P;ha&EyyEAnhJ{rbgZiN^Hh*$)R4bb9pp-o05<@l}$>I+korYF*BGwM; zp8W1ZPmz%+yUWa+yLhKQb?)lTPhEKyf3j@t#FN6BDBbp#%{mhnnCtb-dvJ8tr>)l| z%49VEhYCV{;&KK zZ{K}vC#*RpP{YA{TZas?!&P|b5ubyV5cfG@reY)u5Svx2h2yD0MUJccBO;ZvA~6hk zovt%|MH`y^07v)44TKa+7Nrahvi0-e(V+>~lOP0IatDHjc7R&I2Tx^31oo7*^H)+s zmcdCb9U4xZ2Ds&umOF}cUok*QmR$``(Hmijr&iF$$j`2UNeTwyhRrJdr2*H_QeQl;=yH6Y1? zWLz*gvSW4ODsiNi!A8eP`}+mz&f9orv0X0n;{K1894j@Pr9ScazW zRo%)Ck6jsYqOF3{)Z=+2SC4VCzq5r8hM|RIRcUr+E)lCOmLEkF?!YwED3MAVKsF@f z>d@2&lfaYB$E8^d(d*t8JLlYh>5uGuPxQx&GE_6>);yYJ#ELft=myUiS`J3a&0r(i z&D#usaM78^PhT5$P1<)fu}6Nc_4IK?Vp=wE{%9{cSOACr+o}=r$7Zm%^^mQPo;X14 zaWjEe6M#z)7~0b-8Q=ooUhOz*os)m{?cJ;)jv-l-YHrrQS1Lz_U+gYB2y zU-|mljnD%4z~qnF3q4{hOX18&s|L``xFm%<7HK3I%(abKxP%lIZwy%uWI#T4aq~Xg z+~syWF=d~U#%HwN4sVFViv z5j4f2N=WaBl58lSjCwXxNhTJZgbJ`mWfYxciRK`+^vD063UdQ2_od(S@38@<$@PgjWQqUmW0 zX~z*Je>PMmC<&~AFb4H8hV!0Sj{8%lmqMGn+|L93hooB%JlJ~~K9)!s=HZUX&4+rf z7oiR4@nN1Ig^nQ^?X<+xu|b{@ECTwi9VDr*#c`nJ(d++%fht{=CTEZn6FD{;ubl`0 zxg0joXSr&`8j>P+>2JxxhLDgfL%*Q?VU46?t}q=G_?X5-G_|XEa;lhtQS&xSKJNa% zu<^TvQxcKB%Av`43{Av9($xpF-oO0K*@OAWkk?-%48I056AKYO0xS)wFt{^SR4yiS z`Y4DGebMu*xiB4qvaseBn+~L6RuFrPPmq0Vsgw>i?}5q8qiPO+fV#)0%7*?j~xh+e)kP@VI3ybYDp$ayRyP}>Zt$p5ttqyR9=u+BK05Q zzS_~v&^Vs_{(tB6Y@snLm^q!7eBkyY&9c5zwBS+9wYG_S!?a04EWtfS#}oy9NH_^> zca26jQd4Q=)bCxedXCs_F6$eyC4jb@T$R}44u{(qXP7SL8O%}m_7U25X)C^g#pIGot1> z9E8OhN_M0!R2MoeJ7o>Bl6iOVvd(&U<-rq)q~yrD`2!?XtQ`7{Ot z6IiQ|dE?1O5ZTVBa!uvz0otcUlDw>r`~vTW7<;a**QNFgw%$0r&=hf+cP$AvdoHp1 z1)Xxg6&tZtbHl%M_=)lUJ8mLR3%ly02*Vjqy7~eh1Z2;ly*ssSOjX(s;y+z1eHz;4b(7EH7(<>D4Clx1A_Cj-9ilgL|y+0*@CjaJ8 zNwd;O2+dGZRM3EsDEMGu+5!Oq5P2M%r;^@f$+s{ zRNz13Dz#!>R{(7HN57um0o(LkSQ}P6w3`pTk&E*DyJm2F(a4Pz1@Djlj#-ZPQ66a! z_h4AaJkHv-woE`xk~%V?VjmY<)syCgtl4y+lbs3~tthoIN%==^^0yQ99n0P)-t*{H zeb+h1xl?+oo4%@lRgH@4N$eOCwGB}r@__xogThb3OKwGbsjZ@~XV4-}=@;;i6Jpw0 zp;!YdZ=GkAk|qkdJvqPrsE5Ao(;5?A83_MOp6gbzJboaA)ck>7@&^(&o@; zWj;&5B?p)%jmP=8YUkoYr~ie>O}Z5{-cVnbrNNJ@4f%?W*@JWPISoClelrwCaW4c& zlsYN~>KSI;D{e-Jk_ILI6t3MpX1SL3&34eJV8!$Ag${EifQAhq#P(7XkZwTA1d47; zV0AKibtpjM#3olL5k)xQ{SqpeM~9Tmg@TenWzBN>3Guf0sU!Xq<;OjILP|)#>aj@4WJfgh;3XU@?p=@ z4%~8=Wv`#BrU#a`)m(E%sC_@<_)NJ`~#lU-vm(?EoM{c-4uPTI(kNx5uFcrTbUQi(9NoCl z&1jGs-AK25Mu)^mX+}yZAdQNnk&+Gpr9^BHu$3>*@6X?Gu5+$)opZlmx7?IiUl5@L zK<6Kn8lYM!|HwW5H+u>RG+59!=GDe=a+yOp#F_db&@7BVWWwDegWYh>>|f6;P@Bn zzreI8OvGoe$E0r+z3wYvz*%=3!;aP7oj(bPn@{>)&&%A1+E21!u0GGW;q>HULvzT1 z1Qz)V08z>=U@3Za3BMPr^#Xb+jNGmdF5L@)$DF9(c7MOOaGR5P`RG4mmCn6cKfJ{) z0NoD)KqNcDeH2Kw!XoFa7evY74Li)T=^NzM14bQ?zMdadynQzpmFuSy_ufV5$K0RdDTg-Sn1uKKsFa{2-*|Rush#xpn8Z%+o+_*Cm7UV+w2!zqay5dMZz#*I>>5WRwc@lYpek8uzQo{n)kNhRk zoP0n%%#ITAu6ZjJ_46j|o93^9E!$gS2b6}M&-2x~>+2*k7Tc>=u2vjCE|&FDqQ~J& zumyyLmHp!TpGGpWW?jKC8{|L1$V7ilJ~8FVA%nG(1nPYJjpAbr-@vY1xF`=hyw8As zFu%yx;r=ceGhsUtlG4}aWfZ3Ys*EOwU=GM~VX0bkJ|?As&)tDeg0io*rQkp9Yc-3S zw5}q}8I~Vk$}hsq1TD`lS)UOF0JOOIKjh`WRC^xI)t{=eJUKB|qI=?wnQ8-zj6#IL z`<$7;ZW8-02NPx4eArsitYa;SOS_WJ>7u1p`?#Dvz!xH%X`JAB24Q{UsP*{RSm|XU+HT}s*4X)~}Q1nm||04dmme6-`9gr9v_~h&2y`ixW*Z_H> zz96O=iaDr@+EVci^{`IcPp&uceJXrbpPD%@pswXX^=#dUwy+sMy8K4=Q20Vyz1lk) z?)8z-{EpauE=`!zR+g5aK`v+^Ren&{W|IyNii4B^3B51A(T0{_5pBHTd6qelC4MI3 zeOH;5WIY&DhUMj!;OMoaNX-d5{nozIN7Clb0e;Mwss7DJ zTDi=#fY-A#3J3;MUAcu+RxzSTkt3cwHA05bWZ~VF$YeUjd-!WKdn1zAx)^IK_kb+DG zMr~h%-7S8?wM~YKp=GZgUCA75C(!c}0QJdk2RH9=Qicw7vTN7f)${%0d#F{V;DR#S z)raPyTGUraZ~ZubMNCHA#G8zuO8|QVqh})TUWv`O7lz< zmw+JFTwX)s)!D!9vozi9&>b8zYl~nXeR|xjFsh$DQUH$ zQA4QZq=as3^n5Ou7=qg^#7Uk+$^>l2#l9-8B$2{MK zpAqa&62fOcsIRm2D#S|%+#ms71d<8##F}*kfa=9&)=0s;Y;$wKHub&IWv+X-K8T6G z4`H12rco0KYQie;t-oz+j}P~G_h+QUf<9YT=p1-1al%2r^_t9c;>Q?xP-TNZ2D1$= z)?Jzb?SixysT}~COoN}`k-sC6^YVSqvM>BinJQ``yjh<+zA0wDC*gXU&=MmhJ5;~T zDf_CgYKKnaawESX6I_TB^LC4)kNHASLBDpQUZ?)Ub;7!le>3}A8LEN=a0CF{nHuG&pfFtpAcMD$mKPePQc4Z zIn{(CFL_VGw-kbkjrS6Z*)t5_R-vB7LGXrlG;G|eY(1E5D*79RN(+AimrlTu&P^Q| z4^_0ZMFQ+gBz@nw^V+UqbH3J2p)wUzQa73Ej}1hWDE6`l>RuF-iw=WhoD(DQN|F9m z4Q^Ds?wM~Kh~e^E$#Spn+ZK&8SJef-62jWU%$5Z_c@*u+VG(6~@ou{DKsJKN2Bl_X zP|vvYOXw$qChQH^Pd_bnYdjhYog?~lyrFK{i zPC*3n==gA0_;;T6aRsR#DeZ0m#V!bhpz_*#*_1{>~@oMxz}&jXv?K0GSfDlVz+06PigJ+2P>^C>T3{;}Yu?#Cl@C&##WeSgAr} zm6k2=N=6#|K#YtLGdcTOBl1p1{O1t#fj7l~;Jp?Rn;48tNnt9K zM2nkpK!y&}=IAmeJTTfLEKNAZwl~MYH9`_hZ%NJ6N9Sijkq}Yi{g> zo2{F%o>Elq9VTOvfc0&0~}?(GlY9k)IL)heHW0UkRZVXVp-|D zM^`3r!-q}zE0c2`h8hR2Ae3;HfrV_cyBDpp`em{dD*FoL|DB~<%b6XrXJ}}s&`!q1 zH32OLB5!7j|NBw*Us=^hQ6Lfz9f1Jr%2*)B~jk0$F0e*{M@?=;7j_Fej5gI)yL<7?+h5R$C zrXs^O766c9?CDl4hKY2asl2D|E`R~8snR28za-iJGhW}k`Q4)-r>{Pmck8d$@Dzly zKC_3;cZy#^f-w9+IYbcbJ+YK|E!fcvV-~{t#RK*O0p*&K|NBzD>IaL18HO7N+?ct~ zN&swM@7du5AaOm|Tb=ghWz+;Q&k8IjJVNPlOQ(}3O$ir=P zO)j8|9zcFG1&A4A01^5bZ5{RB-Ml8!O*#jy1xuS}+Fe^iMC|g1d)s00a9R?E8x3S7 z4J+6Hk-NjFCr=S*AV-J0p8Vhu_2e7-;wNuR-+d^)Xq6-nNU^zOaZd@G1DTY9IR^Bp zj(52%7GO?)0J$R)a*tvRJJLBCOTN3Mw7djq?IKcRL6a9s4~UQ(yM^pJ1`23pb86rv zQxNb+ag`#KKO_O zl7F207ym1k`6&Vi(vBkE+WU5%C|gyRP2HDBBLtL=6nN>=BI`(nlC`-zB1x ziJ9TVc;QvrG1MFo14wt68{f>X0$bUZ7^N0ElrxyQ-6Ds%isUlizxw(2>jGp(OrW@y z&uL~XsDa1@Z#+$>iDz50{*c|>wka|7v(P}T0;KM;U`9hQRZrBnlk3vbLYHqu9{Mob z>%~2^K&>j9`@AlW4mPk&TZJRKAv`CV%)*eR)MklL$__&xZY!dv>Tiq=Yer>b!#Y~3>892IjZh*fnz;HWTy26}K{W<^g`3L?wR}bn z=p*>tyCQn55xVAjsbkOM@*$yO#tYOwA#*Q%;+EU*tou}~`}=p@eo{oB-2lzVBc8XE z?l>&|a1gbqvk<_1rBvd>o-q5L}d!Ar^ zrh7K~(o4069Mc6jb)j@Aa=cfLkh>U&Nk69fWr+Tkm`f9(`cw_Vsl*lTP|5mURaJ9b&V)6Wul_ z)3rS2E|j4uN8Jj@P>$WxBJQMfKQY$^a(~|2=G>1An6}SpV^1e^<0+49vv?GTPIOJy{g9j zai^bEj(b!h@`H7f1*=OBw#oyB<^-6N#s3@95g?8qZf|x^38DvJA14pnRUifrsJSxd z-$X>DW?S|;4C#E2|KK$<6*FO9g*l5`-?u0pJumB39sKXk^3=3HLIJp?&GH+gU!>LV zv`(##-kqQEFQVpc zrry6l1VBQHlcwKp-ajeToLvhlr~X_eIeGZX{_Vf@DFgLJrA(1M2f-yMYhF?h)d!0* z>fjvyZYSN|9Fu@Bx~UU2DSHNqauIvHdGhJK1gVNw2}YMDCzM@_TjYY{X}Nk`{u}y& z@zMv}W-ucLOh=+u93{*@*8NILn~}S-ETrmiWO9V%e*Gp%<<4Wh$dP^p9Jl)^!KrRe zyzWf3nlVp9H6mC@!cWQ_z)_dE82{N$YS@XYLo)s8R`JEmvl=UH8Nd;P?>W{z^N5uG#oiZ#2FJlFVDS zvcT75A)||M-YMV?^P)L+XB}z+KEFyopP3X(n9DCv1%C4JY+MO&lx4~5^6o7$i-|DT zI^NB<@myz7zpxjM+dBRGM#G}>=<>brc2LWCoeaezrdFn~#?OMJXc zfD6y0t+D|dUI?L00|WUpn9${O^@&I;5w3EdFxWttrIDMshkW}qm6EipdmvFt;DTD zLcY46GOJJteD2JN6qj8i^?uf8{&7dMNM6XBh$2ZgE=uo{T`W*^z2r$j{vIb7|1and zZ}O-{LJUKx!v5ZIjxR>>9As6)+9QMAwqZJ;BZJbWGcA1M!<87JRL2s=7=T@o-dKmo zZH_FdP6}$H?-LwA2}#OSqUkHh`Kuxf3s!@@Y|y0fMHcIE7?Geb z%6-8E{GaLdXo*XSOElFuv zoB?Iw4YG2tP5w%Vr##U$6wd%+36ToNHMzGW5UZ7uRnQ*FyqE8GX&4U$ft=>Jg@_eP zM>N{R?R9GfA?ea#Gp> z>^kH36(F{EAN1P8iF(dtF6lyk!+uTyUvOtfC5&B>=t>*k9K_1&`EPXXp0W`JW5D0Z z09ZCwF&12Yc({~LY1deo-&8E6(*dMuOfBmW|1lMuNIBndZ=B77iXXM5dfFL;ViluP zq9L4;dqh>B^s;L2-+zz7K58rzV7b>zzq#nZjO#z_KuXU{SK#mdXCg}08??=asiBk3B9!)eF6?B_+`iI z$XScRM8F*PcIb}%(o*7=yeUpeTl)@Dry{8a%N3IdgK{NRp9Oq2sQKZbZ<&}k688|_ z)uIi~vH?Eab@!0%SjqjfkThbYm$HT|1DH~#eVIED-Zhxsu4i}xaqs}v@)llh&k_)o zsCsDOE?xMqr7Y)j?2Tar2ik;`Aku`;c%cX2W(pRSF5ykdj5R4lU`EgM2~I7UR{03G z5-q1sX}?a%okI#~Up!`&;|q|0BDUgcaSs67U3Wwx>bY21hAnRwV;UI<2t$1k87kmp zSA)~A1D{7T)Dfv@rLIoDz-!8i!<)WJ;uRtYVW-WKOc(|TcJLsU732cdzn0jvWrFUO zjtg}(HrPe)#uoS@FHjWsfe!btscMwpqUr#E+AIn!$0nr(QpaVdB&e)`IcATvVTK7F z6dud?zn_~xk=@rRzV5Dt@7A*1H8zq&p5bT6g7VIrhcFgOE3t~p=iQW+B+wbw=(-NB z1Fm(*=fJTMkJ>Z_i+Aa0ZFqE~3#f3c)OdvdNK*CyOpA?l6+StuOlcekyjDd4k%gpS zHr()Ghn_cqnoHBfHsLYTXWbi=BaF;>Pt$7%Y}dUh7PyMJQ|pH*{7N7I)dgTSj8Mn( zh5!{u%9*;;s;|jrJf-Zqmj5rrNG67Tz+f|#74jkZiL6djSd4h2IRoYEGas2a8<9Q5 z6CgFQt+HdGhFZxxl40KvX=2eS@CXJM_vYk|72rwvm7a8mv4UYw1MW0e3}z2+1d0=Q zLa3yDB|Fpg_d}O#nRN_#NEjbwF=Vyu#Z@V19)?7%dnrFfs=Vvi=BEAb#o*zYRt0S> z@UvxVy?=3z@f3k-)sp6@C||cBuHDp(rJRIH(5${Fnmy+1=0>qra#!j@7i!EH#|}YE z-k#Uj+>m~tb;jgiG*BE_c|5Dje}U z4e;&a&`Ome(fz;WtxT}iR17^G0Wk*E%g?R&S zk*NS<`b{oTR!TxKDQ72i|A>GbuZj2ZtK_u{=^9VH&Mg#7&t4_NQ~eTchS^VztG|d* zN>=}T`Six0jVHhkr^Z%lcR$i(4bSC&)^rI+L605249=~2h>PBqHWfsl0UsFQ`(K{Y zqzXZD#WsFXMq|pVeX%K>*KNkRr=?1zS9+9v9?zyP3T+x^936H2)bX6Mp3mD?pzZ(M z`Wl@aPansg^raW;{G|3L`DH9nr5rR4q~IpzMnoc=By=xx@Jp zv5A%K}JbagMVGy_gMe;pmg|@<4~zOeb`P&3JCb&NFhaS?hR$Yj;cPHcf@G^(NCgMvMHg| z&hELlE1TEPo8B1b{E1kpVMO>`O8;c%+P^o>5S&&!vKoDkI)7SoIDD&J!Z}>ZnWm|f zmS>wQf5Vn$Sj_`EnPMdW#L;mB4lbFb!skj!6>{sj{2Aur6?xT#ot;8X)fpSLR^m(n z+B-_iPqJ%wnzxSd&(l*b^GBZV-J9K`?d5AT&gbUA^Q3Ml-+?3L@ql??=g(~){iIYb z*9yIt&v%fucd{(ft6XUHx7m}a$u6dPc_WJ}yOcA}-5dcL5HHCOsYQhK>p-oPi` z!UvLn1r$Od#7O0v{B1vB&pL-clwuhJU$I%GukVbl)eOTb@~0f8ytDS=gG-F_46}bS zqTBA4k|+>UxWUcKie{#At11`We9%!;ee)OrFJ7!SxYwC(tFlx_KE;Yn9~eAjUxwCP zQ?6DSZ@7&Bgwf#69qR0QXd@+DOpLhMk;`Ta<09jFe^=(!RRsXM$qL=h)ZfSoaX3E6 zsMUk|;emY*_tMXmiK1Ei*54e#$#2Rf3dnOy$}k6|S2eaRf}kUpg8{pAHD~0%>f48I zE8NN3pEPk#v{Ngve@O`$wzH{-vFVLrH@I%=_%gH7t(?>G_djV-^}xVyG=K+lwsP~G zT963`r+*EZo-qRYKX#XYa%4~0UavhuOuO;)dW>-I`i*!TLWkeL6TaiEDwG(sRd9Mr^85ydA zRNju_duD;X*?-u_*8bA0!^i0alA|_Kh$GfgyJaI#YgyQHW0xk8ryTUIARs~GRb`^J z(>RY4C?%gl+H$d;4V2T^pp+$^QKSe{3Z_eA%;ueFfir!CHtvQ(u*nSaR|SJXE%a#qxn zse9Brip2!-M)6{kqId!(?)e_BANnZE;$7yTcWX9|3Mt^o&EP~cVDKu~y%R}>;7Y>( zKux({xn*mIVYm%}6=^@YW0v0Y^foEJ+yW@?49Ph^6y?JG*}`HG%tNEm9@AJ7Ywny8 zicqu_wu4aG`l+4dQBm|Wk6!w|+@}$@X#VvIuwQF8EwVC@&^9n^)HMFQG&NH(A^PbxZ00eeOWkm)eVTYc@8Z={k^sh!`GV^chEk#uL z0FhHK4l(4HZMPTdv*PJv*H9umybGU6MkBxuvl^+3H(SY0UGH)=x>GmY+ccv5jNX+z zKB+g>f8Efy@F=hbsR$|axw@(Ah5Oi96=xQE*x|?c$aCUAK2X2Vt8d~{8Xqwa!`(YG z>bOCYb?@v|8je+-0}b+zsbv?(OV_5^**^wDKehqPyUS$5_?D(Cm7p1W;+c~MH0wK! z7D9qJt)j0b7&{17fSHG(`s!=J#OlFUL#t?8V@)plhe?q`E< zeWyEA*P1~S9W;o^DlWin%tr_G4axDHJG3Vg;sSY|H@<~b!R2Z8RGE)WOm{6u?e*vq zr`{TB?+-H3meIB|w(}>PYvQ)kxwf@(S2p{}`!e$#LpwDzmZz_JFYo{BJ@p7)uqG5a zDt;O5WczqZ_gmt_FFU`6L+FvRI3-e=L6@n4q219ycxt?`A&AQC$>$IACT=drlxNqE#_CJCV-Ylxv z<+3%!p6!4Ab3la~ZpE{zaJ|1|pKS=rz^qmenIKJ=5!>OcXQahh+ejrSf7%oG4K?H6weqZIw9LG2rZ*l9 zM*lmcr{Itox%P+lYXi^XL5q_xmD5{}mHQ}#3vo;8z)Y8KUvFtnqwRz2oP#3h2;dF& z4+s`yx+V)(lW26@h0H~H)AcRP}F&T)6;ue zn(T~V2OyiMy}CVT#Yd?b!RABHk2x<&b^klprVlKBLvzlM!95{*Nv-($Mf?$@OYuwDJ?8TX=}udb z{--7?AD7+g=2msy1144`94ep@?Rufi24_;j<9g+DJg!KLvi7QQ3^VK>A7D1f_k)Sx z!3rnY+keSxN*>uiRjQGt!^j5aF@Kx$S0Pd{SOu))ewNb2dV>9D@;>@@p7u!^XI}uF za?V+dQLKZyx|^o@YFBOo03l~wbY#3eWr9~kbk8zA0Djt@Cl}PuM9d^?EA=rhq84D( z;?5JY=#Ru6T(|KdPrbZ=WV73py687XlkpS*pF}RP_8aZ(TcK&AQ+)^Pgsl}Snx^i^ z7fcrl;JD{wg2l4GHB0penJ$LAExfmRL=sXjBh75X-(nM3e0XqEUy0-tZ_0ryjrMQ< zBgM1mvJV5d#meToA1N}5HFrsOa274Y=3kbsVv$MIG$t$I`|MoTo>c-578C4td>bT_ zsU2*pQ(I3xqQ)5+*=2ox?Dfm(eabN%ZRsmC|+%Q~p{M-AK-J-i&+fOI_D~PbN8TI-J$}Q!^!Yk|5CsX@z&dK&=A>(o9e+o0M zI*nA3+9t($$K$Y}h7haVvW$`2D*=v*tjdX0^>${ztd3w*0Xdq=VfLa5Hk|8%HjG==vNTN!p%t^?dPu7;-T2@ce z))pLUX)0(Nrxqx0r>D_ps9~TQB;-_TY8aDqSCT5uLFs9X_tOx%;hP<5bYLjNQ!d$) z7;_iq8U**snViZky!-KsNH)MsP-UsL>!N0Zvgo(@4Ynt+B zMH8XS$}o{qU$rB)=RI$BF~asa4x5TcMUC}xhfN$Lp=)EeOgZ*nj$g4;p5Lwl=glF- z=InIwvy1|olGSPo93#A2hZR6@C<6jgo08q(jK+24xA5 z%GT3@Vas;rmb|`3)niic=I}0=hGA@8dGQJEn;N^7o)y;webKwd82QI^8NLtFWy=*a zO%BtUA922q`sMTU9)O_aFln|=a5&HgpJwtLEWJ9h^hAO(&L9>CDjb%a|{Iq=2kXQSIKHAy^jhy^kTu1F+RaK+jWjatl~Ra9ciQxP-E74dCGvC86_ptJ@K z4dL(D-vyWAA53wd}+k{cJ%4`V> z0Ai6{Fo*qe_fJteP?gI^Al_G-smR=%DHsh>*t|cSU|Mt5ez{irPy_;T6w_Vvd?SyU5{e0J3Fi!17n!-_jX7tnZ zj|R#z2V8u0G};GUjW-L`iOPj^`Y;{vESh|k@Zs>)$w`khx{A=S!kv!gww*OTw}pk= zeV`elu`>9O@xRBt0+XSy7>$K6G!#v>g5qyxSUxiqK1`GSf}7zq6^f8z7;YvgZ5&Wq z3PmybPEER}f3?}<3#Y_hB;y80?)`f2mTshd!2G2%MXHR6E-O97?y}TU!go3K^BXZm zDKcOP_O|$O&v>!`5@IfI{`k7YLofW#aroyhXa^+snv2rp#6G&}rznVHseG0qx)%M! z-&7CwWzUry=akVDc~W4AZ(4K z)`ZG=n;$aqRD}QHITPrp($oKo3(wBYj>yl+k14)aP(TbTDFIi5;oulX0Y)ZRLj#W~ z52GEd3CaZR>DGnz4-Rzo^l+*7bTs=JjT!n~zdbW1#bEKmLdy60YQXI$L(c{bpzM+5 zG*tUZi78a6N5>!1Q|aE^$tygoI4dfpi7sIMnez+8ae}8(Y#|ZMSQ#uy_~DThYIc+X z6K*&$*Ou+h;-iL6eqCoW;ndYLK)YpL4$1ZHGTGc77K1 zJ`rZVF1a`ucJO|0bn=A>4+;(fz3dnUuF|q~xNc0Z;<)44AG(HjT#&6FS+#nmH}Td} zK%`lBOJd)o=ZjC<9^NYMo1Ab`D21Dh<1{g}tYQLdI2TL`6*>P&A$-}^`RRXHU%Gd9 z$LRsX-`0$-%4}bxgP8C^=q(9vFUaO9dR7L=D*%%vmW2j zCGWbQ3J?h*&U*?KvU`)o@vF&?-n?J`$k3q_RoVsuFsNotscTw4WEW#YA=5Ud6@S2GY61w`*Ky0a+%>Y4S7Lme1_z>toc9W_ z4LE_PlYExP>1(rUIsD=mf`=7d9uyaWQso+PNc@xJdxpWJeTM6jDAYurOh3k*39q=A zEWMQud*u<-k4=DaGWD&x(Hi3gAV2~;xx~HLN2nB0564m%f#! z)2r@L1G&(IkJIA(h*{HD=beN*=SLSR_ICM zqjxzaft|Go`Ytmfa0bTEV8NrXYJCzNUkh?cwHf z)V`#skHwR{9NfjeWMadFJmhvRc6-(wA3r{6Op@MZ2B#BgsX)qlFW+qy)8I=0F`I_@ zUVl@L2PMw1dlL}G->|Z&<&WmeWA$$mGxHWw=_Mcxw!5#2nWEGs%Kc6311h73%)Kh# zTeN!ih&~~L-mQyizR@H4j(*^ihn@#z`t`wAL@Giksy|`_nvnqDggZbPmC7i=v9cjl zbc2Z&rSo8mdWfO$fq|nb=UkGuyw*XI1TLH3D#S`$vI96}L;~;6)X)tV3cawK0iPXI z(BC;$e}R+;LquUHc9%+RdI$t5eVwsClkGH;9Z{o$%b-w&c+Xf{2Z@nAo_~xZ#zVNG^4^=$@OsE-VG=-%6Q6_Yp zricP+42S={oP0J<8{n`Gsw%yzqrSwCvO1CPary!~Oj1Bvn<5%9@+D;2>`!;QYDN|F zrB%0oB!CrBWY#&oClr~Q0yS`$m#t-T_8*ewIn~^|_!Dq=L#t_yRAF_Q=aX6eNy8MT zYoJGRmH(p7QkAnYCnVT12%7aV1fz zmOj7*kW`OVv_L23QcYdKsJzNEmQ&X}c^hT!5GXjz^Po^5+nsHWK&m%2=J6o&qD-3@ z$qhroNsZ{GkpW+uYau8rnC|BD_ZqxYfTo~1XZsm%OBPR6LdB!XYWSfz0hMfPrVSVh zBHq@)Hun*m^Spcs7jYOfgT1gumAPXA3|$BDmagF51>EK-?0xu`S_|yEFxUYzXxA{X z*=2u2iA<-ro$v;GsBi-QEK;U@1!{@c!MDHMVVHm7WG2 zzUi_KZ1&O)Z=EG8(9J_K0iN~%=%fHn<2Fgm{%$3gBLbo^`)m*`pM$WtB)7=W zJlM3>N9rBSi)Tx{OledYNpDUH@Gxvf)d2(E(Joxm+P7N!)khiQv*_@5m!R+1Lg~Y1 zj9mF`@KYVF*(3Wd!bbKQB;98)lDmM)mL$Q8Fi%@;sN(!JY61mnq7Mh|v3l>1@%QhJ zFQo@hJp!)y{IX!6Vk1MY;RyBQe4xK!Ht2`c3n&8{l3ltmEow%jIa|c7w}&r~L2#u# z-aElC-e0<>_{QqIE{IKCfW^rdNF^&hEBk=Hwejs>ItP#tpRpvp(c~J~y*qyGZl`R_ zc+#o=H-<1aGH4>KXIt@2gz4G3`Wrvdi$Mvs{i(|m5pyQ=%|V9J>uYxl)Xv#^mD`ecEXjM!a~wLDJKGB>pZK)=I-{2jkLA$0>EdGfL(!IcRN-he={UmY(jPF6N9T3f|_e zuRqIM6vdvRI|@}AIRt!eb`y4@UfBx9Sv?5+QDeW|tqJ`IQBeV{%k2Dc?S(>y4T^px z=SWX{j^j>NNS2;s{j^s?`)V(fq>mx>ITB6EmdMYndRGLtQ*O7%KDIvdU7px^`Zlkm z^x$cRabf4@qs|k)-3&KCk&@uKvI~c$h~o3hk7`g^wn~5u<|PQ%pwRRJZzDyRiSnEY zM7H!fXH{ATP6TW3CydDY&d%j;UVj&IgUFpO|EG}}a;I1tv;q`Q0Y!i}zwyp5CzC9F?}Ib- zy}bk!<-O{4?7^{KZ{=^ZAuc1)fyP){JcQp}M*g=zys33kOTRZ=Z{%kU<4n&q&ac|E zt`wtIiMNwt8>B>4I~)@VVms2bdl>mE^WAYnd;j}ME#Bs~{k$J~V))H*x9hyEV7dP`ax;j$Tmqs^-aZIxxMQ8O zjV6myufcwAz*8H`z&_wshCH3$A9?q zAEVkVLt4PM8Nn3J-%%ZrqQVT(9(}pM0^T1>F<&SGKwXBFe1>o3MFJ=76@>z|`~5AN z%z_)T*}vxf)8!~$@VoEpmF96ajgmvCcjnn{ObQ!z{Oqm}b8e+p@{=O$^B?TSo6gHj z_7B1{mhOiLg^2!SFe?xL&#um3O(v=ZniXxVip?J`iKfXinrEnlhsld7u32C*x$8m-@X{7vA)CPbWsnZBySNQ<8!cA z$VBZWSA;SPSu&j$$@~>@)sL!w((w2jw;ziaYEhNJsxeruw0T1k$Q!`4XdP)Lnj5UD zx~Sc0sk)60l0K<8Y=DL`kp#5cB4 zb=QUc=|rp5XiF!_*2RTuth0S056IQg`brix)G3qN$%7aM92tlcL!CDhYwlyBT4g#Y zUA3DhtuBf6dhld?iiq$8I35JZ;fsjVg-|K^iY_HPgKdiV04|GdNGt^>LJcQPeFG@? zH`uFxKdes~T&fUsXHiu+)9H(ypn{-egofmOoD3ULh5>D{7kaa*u4c2AZC*?o@aoCb$v4(gurj;l{7N4 zmd!RwGl3Ck&v)8J`|GW9>*Nb;ECLuw92v{~_93<&kA%!QWvdD#tjmRI^Vmu)kh9V^ z!D%Tf){*LPUmk(ml|5aN1{)&k9gPY5E$K3yJpt=VbT9&+YWx8U$(~3`W zJXS-OPpOX*TxDV)k1*}W%)_|*3OV-zZZ9iHGYc^h6z$A_j0h73qM&?NI~!5`@T~E5 z{z%LtrM<+VYJTM^O=VYII? zE}Z8WCf{wMRl5WZb9o69=R-ASQddrCysQQC>~`b*g;cxM4?$X3OJS`8bsq-(%C4dM zF5k0XTF2-+@vBDZj`j`4{`o*#`LWpT;3$dF3 zsk(%K+7*Ea)vg1<1e15=ocozWW2W$z+EC`c_cas=7*!xM<@5V$w}W^TrR2g2pYtx- zFtNsk444VYbBh*%7nX$D$u4dCz;hv!#)=`okelE6B~;J#q`*K%G&elNb-+7PL1p}d zHHQ|9X?9Pb3Y>SSH0{!dE@`)}jdyBz)YQ;F4TH<5Q1xovrx-eAoU5)?XUxocgIXB=AmxCVpwu&i6{Jtit5PS6X4jl`N zw^YfKsPK!`7p{^p9Lgyc2tzN)LcxJdcJs1?{|=oSJT-c~_)6JwTHP7H7RLOc#%W@4 zum&(#oZs|+6rBZER9zcD=T4Ij-AI>ohvE#~4&6F*BP}4{(B0ibhln5{AnMQ|Akrux z-6|+3sIPo{Yu(>)pR=BG_TI6C#K{|mFQ^PCY`zU8hGR8i;8H`c;oiOL4M$a0z&oGBjvym%HJ?KB9rqc6FDJE}q4Gs_0Bg2OQRCntd(`;W@uL#IuJy%~2jQvv*x)F*R_-OK1M7ac z9yKh*QBmAb{cW8WjdSkQRK(lShOXB4_%rDlR~&GfXGP34biGi+^2UI&8fMPcU2rnF`xm>6 z5zrOHX1r4D^oo{}@OqH!s-@!{d@SPgb6;KZ_NVVo90@=7J8LeIK4?VyKgsySmJ+Yx z9sVe}Lm-9O?^mu{08f7Q!*ai8={=Im(Q$iz+e476yX0VPJ7Jq6yKa)Hs<9U-$E(M6AGA~J5iXC9LYeo=`Uz4uK!1cz%S2g^o6S$7$#t# zpzG-Pfz#%V5gnlMHIvLCylITsABU3npE9^o=FS(!7AAb;&|eu$sT!mgig5Li5F#(a zyhppYaC5AYz$h74a!x&|Aqb7~->8POv=>Qgj;P>i5dJprt%R`BST%%Yq?J6X#G?Gq(CR3kx*1ko4aK?y0yQB)c%qgrM#O7+v4&+lv6TDojEEnRPX zyLy4rzNWPEi&Wk5titY64qa5_9F#D{@(nuk!in3>X|U)+-$ZaY<3@jn&6bwydp*Xi z`zYxM7Ee^ia}lk%6ugiHS}RhFmGO#FODNI!h78Alz5t{O$2AjUj}A;BWerwCxSIEB zrUnznP$s(YKscu@y1Ji&{^W}kj_OM*To9=8m9ue>@cj%GgDtW9^`xDU_tKFRUfi1TPL-st&dPhaHs(Yvl9)O`|G zIdkMDgK9P(fswS2KYU7OfyID94hkww((8x19brHHj?`g`GlQ-6+Dh+Uyh8>GUuR0(#sZ;E_9o<`!cveQQ%?cO5hO_Z z!{smmKrq;}VBiK1QGs(z@+|<|kRKg6Kv|sCvIz5J^W%@uk7OBgnN>L+viA+EfBw+A z*JsiG?u7NTzSdL!SBLjWzrK4i&>IQ){9EtGtDluKRFEA~ZyC6`3&#eG>9$t~gwf_J z5y-a|3BD~XcmJwmpIU7i141>C0O0#VR6r30R95X-+b63(i(!`4$s+9c2tnU;wAP(+ z>Zu7Gs3H2JpP#6$^>haUehd|_ir~-Ms#d;#c{#rGue3Rszp0PJr2`EzyZGjjwD#&k|4~*12 z_rKxDJiDu@P-}|DsgPR`k<;|NAP1N>F56dY{b@1`YX@iL0M~)=q{viPOrgy*9MrPb zpcCSAbj8-;ZHRv0GtK2DjN|?;F3kdRb$nw528m+(r|i7_&6V=I*0Tj4=?PeLC8}$h z@MM!>x!u1Mb5hEkNKu%4b)ydbILoZ94HI}rVk}@%D4ft|d%1&eAaH@H%m9LVn%|v2 z8*c$cx3)GAqscgc9Sl} zlQcWQii8fOK+%P9C7&R2Ey{IV#=b+4S6jdyn|G#qB|d4CbXhK9c)5EAU@-l=gp&8s zxvBW9n5mu!t>)3)=EWkdw(zhSqAGjs_jo3v^HZb_U;{>C;F}EUG~(?9o-g;&cFek0 zdI41j!fK@8#7HC(Rh-wdiSkNx7PvPqXb;|_0@ts=GZLE|sBV~PyMn-F9Z*R#tQGw+ z^Wbjx(|ErhAf3_;BaZ?A&?D#=`sG1GnE_FCLLD*#5B;qGSQz5`RvmfZLhIv=ejWPy zm9CMbP>7s3yvhn%EACr6#4^Uu4{QKl+b2;pXRfffiDMzkr*Z46I!fOT3I&59pqHdZ zI(B+0ivGA|c)d{G{`L|_VvCVr@NxFQA=^_SltP;U8hoP$1jgpSUF?_bd@*_Rde_#2 z3^=dIe$3(iw$YR~*o{CL=ovYaA=bSsEV&CbS))$r)hz5eZ(l&1E~u^&?apGTNk+#Z zjFEx`34XseiHF~guU$7gK{o^|m>LYAJl$$s=a(;1Cg`0gXc2hD&1Z2M@4{50*P zpv<^Y*$X2naR97}4n#D6G3!2bY5@x;*hQR}zbdjS(;x)UcpIxV*xQs`he{WAVv0xe z@?1HY0*%jf~n=mykIWO>E4<>rF8$SkbBG zQkpH^(|Lf8Ghq+R`SxgMNreEhnHSj+#?HqpU-XeH?+f13cAlw_xi&ZjB6Jo(B!6Mr zKIdG1Sk>(0dN~ngj9%7n)+)nZO?l0RH4t-4?YwY3CfC)))mK$ui7s7Lh$!IYdAQZh zNp`O;L;Wr+3osgZ9LM5w?jgAT*+^-=33!Em#=@$`1)c!EQAeARrQx8DIOb8VXeeba zN}+tDhbla|ba?@KC=9#vdGy11i};sNTD1N$^LvTGSwyhpa}o!ue#fDLgS(uCdVIDi zeuPCmM`#R)u7$H#mjVa4bc1V}tLv}ceSLo?`zz3F2g@Dm-n5-bVMl|h zl|fz$dtWf3i4Bj`Bf3|;!Na)F>!77Sak3>F?=5*fp4r{^urFJOHie#uJc$^yv3hZ2 zhLAnb{??i?#rvZBzfPFmBPQKUN`Yx{X{rj3*e!8e$S9`0XCW7!cHbIc7|u7k?aKh2 zjzoJ`@V}VUr!x}BJHS0&pScs!Nxy{Oepj^96g1y>=lq5HO{?8G>c2k@?}}&VA4in^ z)5)$y7N27Ng!0~It$x?h|Hax>@**J#*uF}y$VE1I_I>Tm<_nqlyFC7o5QnB1_HM_A zPNvef(y}5k9!{U(GYg(f7I~5D=U%z_)%51M9DR}O$Xd(a=gbGWiArPTOhbegN9N-~ zID0~LB06DeDR~k}1UG2|sKJ{p06Px@0;xeQT26`0dsjGFT(1LzkF8IZGbQRbOD`-j zf-n*kAXg4V6lY^;8fo)-j$UH^!N=b<6{Y5r1IHWXY#lf4O% zJrgO0C@av}8fr=}CPvEx&u9nIB*m)2glBaVhEjcZ-mu+!3{;Wjp>3Y9B z=@Q;<;V#uXC{KyP$Aw=VxVhzO=6-wKvNY%k8D<#-7sarUb}O8KddZd#615afE(eoBm~b#vmfp1|;cem>d#mgvw=R;|*LvixxyuDk2$DRBkq3 z2eWj(hNl7bV_@v4Sy6(_>N_rFh8E<6q+w-3%?AsxCiesra%|AI1Y$SL)apYbOkDtN zPdWsU4@b8JlI#V4*9b(}T~4N*VYxk-qo;!l{5#ZP#1V?=NS$_FXVAwA%iWrUNMjJE zne5PGPp6w%CBDtOflS(8_0;5*&6ovM4k@Bp3i`~L8T2ecTZU+xao#-3#6zY!=+c$| zGvh`06(=JXG51W@x|@k%)Y!j_QL2kgn*?AKhPcG&+_}iCBBu19;tk1(&Qr9naO1TZ z{BK*<0%f$B+tsA`5_#m~H^~h!$OU210dG+v1iH87rk-m5dg9W9T4&rDl+$0yyG7X43{c;z(yOKm7SEGj$A z#doMM@Iy>?R}!-+-luxN8o;nj?&>)|fF@YWOAb7R?!$xd!5z6zElj{?b*V=9VFl9g zUVi6wru0KJy`s4+N90+o(IP8JaLoHaXTZa=E+a&%S*%A^tB|6nOjAT`pi5sW#cJOvSy)55`lrx3f7>Ikd$EIw^{jJ4(gc87 zF~z}aHDMlMZ67Tr2*J}LF$WEAzR%E#f}kt>k^i}VM48+=5kR=B_xH!H)v(*p4paEp zX0P{0VoUg;F@zEp@+NM;Y|cyaM!O*Pj5 zFnJpnNa3H8=LdnNin6Dm4Y&$ESL?>hDGS4|wa|zybI;YR_56@jk1Jm6M?Eni1rolQy=)&wL1&@Im)9>S0S5s-@YfeiIWt}* z|IPbPH64+f9X8_yNBgu{ABefxFitnc@G<+#n>WIBg&IkI^e;f5_rS(z1f#F6GX6wZ zS8UW66iE$>m_eywhJC0rshC#g+ykAe~*O)wAo zC|CMOT4)kNxX|qQMi$JQ<69%gEd5`F_bzS~rM$CBGJaI;vsZs5u9{en3lk9@BD`WB zAO&+B>}j1$oEoiSk9c?z=7xR+zmFGyi&VJ_r7S&FBq@8gSJv&`VI`z}s4~1VRtS>h zD&J}j0%hIF#7Y#&F5MeC^yvty{$4aB<{!>2eHYrjMn;q_4zTrKjS*tC=fqL+NjhJb*z`_C+0C^UIhATv#1A1RUvZ$A+r8+37#CQH!xj zan`I4(0R7I*4MdqFs$@Y)oR9a@>1Ofhr_vGdFx2*vxic-0%b-Xtngs$?n<`@wWOop9O_qH zlf`>+O=ehlo+eUw_=_9wfwFVClkZ5G2UHC!fy}CK)(s;i^aT@kGJ* z*jZ)+eN*N|&Z^52-Q#L;hkC>t6z6YBuuU>Lp|ky%EhH&?PTTrWsqK;AlK5vy8X&Pt zG=3?(I1Y(+{l{E0>*qaM9VfUB7g0R75dX~TJ@(&@cJX@>j+BS-8ywCBdgj&`1^%JL zP17aY_=c&N+mGe{?n1MSj|+@DJy`nfX%%nrRBX9(f=*TBHVv$oFs2q0qVLB<$;XYZ z5-Tor2syEpp4wDVq%3n+-AY=uF)9hK@IRMI;s3s0Dzw+?SJ%&K;B?=9(|$1&h}qBF z&#jJ*ZF=9{yvX`mk%6~feNz1bKVYyZ9$W3LT|`K%hscL5lcdvoQdy4%<8B$W2sm#a zi3SA;%_75jF3VCSQSlaBXt0%iY3Ba7GBJg$SA5AUJrCY?Jb33T7;xlb2;>_Hy(p!% z=+%-fkhBtx{LibWteQr=Zmg&sTosd1Dn>$aYnY`?i}w@Z_vS_%!;GdUTr)>@5~k(% zx7$huctmd3mg{z3oB?ZqWgiNyth;#n6O6abbo^nc>9nuA~sHTZpKI2lBxTJ)mhP z&b#g_W^1S8CO7;~3XOg3dwfX}5D)7PbQtLo^!cH7c6muuAsha zzq7JWQp!Q2ina}!^8(x+6##*7SH8?ysDzy;nEe(k9LlMM{@K?FSO{nUcV9YyE#wL7 z9EIQA%w)QmgnrbTH;QA?Xe`kPYf&#Rr`2KW5faL2)NKgMaHSxL%FtyM39yMYLY%I#AZTF%tl1vJjeJe*uQzChM?rT5 zs;}BXxOK-47-%kp2D(0;EAjQ~pztD`49|FY#uRCKKts()q_r6Aa7dNols1~wsYJjk zB>P*sj$E+jB%&E9z3Av&ZHs_QMMK>NP&A~&^VYwM3N^N&PIoqR`(vI%Ryv}<$8!%_ z-pEo?xX30)o6Up>{jL^hjp|G=2`&>|)ms&<51g0h7pTpCnQ;NjO=CCDQK}ZQXV3N7}RP@G?TUK;(HkxW1@$|G!q1p9%fTeU(L3qKbq** z!T(o-LW-HQ@)IaR|5~V|0S&`xY7vuCwhcZvFBPlv8R;3wRSebSwmNSKj>#uXCnMApPQk((}JZX#@aAX zKaBOi6Wg0o6?+U2W)nOMrs~3nnU|jZbdbRBv-}C&G}r&J00Fz8FAVH$rF6%m;Yi<+ z2}NxOeTmwfiaYojQvv!*L3{z2q}qwEV+FL{+ECW$eoI{bBnqxLc*UD!d73g$R}j?1 zloJb5G(rj2kngNxtBN=e^PI|Bcp%b+2SPp0(!=kV8J2Y|Ei}V!iDKKnaF6Hb{oOz6 z*z7r>GghM_Hz9jL9#ca-^V2!cO=iJaSE=mFxUYsbMIr5Qrv&eF5UtEmABa{#GuFj+ zkTXSzo_vGiwb^Qs%1!p;i8cfji^U_5x2HkiKK0rA5H*@FYhV?~BL4B<5H#SX9fv;t z{cP(<*<-^erR6^ST$6#zGn~_CgwAt{p8-VmHXEOqm{Z*jf+G>M#vs%JsD(fMA@`Z( zuc^s81D~q+W}>-=+?~QpZrbf9l@(~wzg{i-JP7}@aOuUi`Ux(K!-KA$H#`z}{EIF4 zJc7ZA;T)Apc)6MUq&#>Vk}PJjwQc=pXOGtB|L*t|la4{>LY|fm9*|T zBX+~O0h|#b{A$+jKWJjM8tadOP1j29Y$Q9UWGi#8DhK6iZSTq#gY1O%&#biEFjS3; z?*kK}fZS4_1hr^x{mT8b@BPDrz8`?#?4_LBzQDwW7i2GmT{t)6eVCD({k571I7^r& zJ{S3q_nN#$ben-bb0+$quE4uUV>$x|4?ESO-YHc;Abl)9Wu-JIZ+;hx~oj@zg4J^ zf9q;sTIQM~+T$S6JNM!Ln3pPr%vwAo4sqop$|T1VAe!kaE_43URVUM@tHPC3`2}x5 zonqu)iqQ*v;*tO9(?@l^+xKf?99^PrRp$*~A+8n9P*ncNc@(R4i`PY&;~DYgfv2Ep zO%J`lqDlE(-b0hjKTDw&;keRJT0#YjqGnrm6KhzmoX_Q-8)mj5j=_d7&Q9a}Wv z?1zI#L;YZe{XnrKm6*4ENMCiW%VXE-GR61E+5OiNU4&|+U%aA4kU?$>dF`Pu;??Yq zqVz*o)??g*U-)AkMAF+?SH9=~kne0H?IMDHE+J++e`a<+-T#ZE zo4SkD&Dj;+yZ1mxgX5EF4fuWqS)ycqhy0_~fQm+@;&*u^U(Z?sUAIHqzI8us% z5s4HX=*6)HVcs3IU_MooGo!?GG$m!0Jrzo}HATiD`O)}2vHPG^t;v-V%qmD+Efo}> zFn==xM!lHFI2iGDH{s5NGsv;K0$6S6t8sFf-DRqBeXSws@|0^ZW-EN#yL-{eA3^Kw@gW1EgFJgx z-{R^_E5j*WWMr`9f9BPUM=VS5Oqh&ox>8lkNxr_GXzo&!T?6U9k%G-WYR@)iuT2MT3zPf1G#Ri_h zISwOPrd--{QfmiTAQ7=bv}f6*fj2c@pM@rtA?|?}1w2WnX9nI{TX2O-u+pSz;J0ac z>s4f3k9@8`I1dJCgZuWnYxE?Y8k)EuvmqBHB{}suL-kWrv@@TX&{`8mL@I4$^=l!?RdPmusq!PF8$Y6!%yn1-ZTEvBURJlH6Qok`o=40s` zPAI(nw7O2TGdc0={h(leIqe)(%Qn044D<}aSs!UeQxhC3cb|6MnJw7uL9iPp5Lm0w zatPE!N89Tn+&eqHx1Gc3#Pz5-;XkEnfU1>Mh1EDY8sJM(znfdny_%?v8p?#G$rD!k8= zy}I@+FYYAG&nLAm0aWN@YGSOciyNW^AeGUh;fSY3!4o2Hnc|(~rgcLFG%s_Qy3dg9 zQBpo!6oDM@$QeIQZp4TLd^SrMf(98G>o*wElcU*eWt`zHQZ_$i4hq6z)(w{ew2fQ1 zD|nOMRjAUVE!1-Xp9Cx9bkg(v^nZ-k`r9N_hAlPLQrA43Aw#pC7eJy_i5F5{abRIC zzL3$BZM%D;l8?)MseCrcq_7l9oFolgi1ZoK>N;K+ND1nb>M`#J_R$KLK?FOq_GY6E z9Kwcv7%qs@ymO94@L1J3Wl$u7a)<8G<3S5B;J=IX=6yw=J7+l-1W&ZT^6oSyrPF(J zJ(OB&RwFtK#>7cFnZezA}wHepPc{UaU{rF+$j+jr)~8DY)`9bOZx(-D>mrsCnOf_vokFK>}UWhQ^wC6cc}%i z5epaTl2Le2>8yf!VcbarHfSLku8=FCSVeIlZTv$}(ls*PMOqWyzmnA4LDI8!+8ferK_@WdxsoJH3QKHAXBWLUs3 zw$eY;jfn#&?k)rHRs)0SRJi1Z?mAPZ@)HuhH~Yyy6|O(FZ_(g@UGdJ#dOeJw4TAaI zf>w)**uoOzV|{8PT09sap|8xk(Lz(5AuQ-{^J>sRyLgnHgIZu?J)aGZ>7h~l(OF>D zc2|F^6oxhl(5WL$tZNC*&}9fTPP89U)C(C5@E&gR(E{Ge14^VtUlfXnqugrPC(Al6 zgqMK=Xd~sqC*QC%03gN2oljqh2*N0Y`sCjrNY;K7d!J$U$qkwQ(by^K=>$aXtBm%@ zOZ2D0#2TKTXk`LpOKzOdkbdW%BLq>pno(UUgwM2wc4CY%^vqiR0 zg`(4i(9T3&!cWP6dr$HdR13C0Twaiqk{~#7YI<8XIMcAK)FW?ix1#CnvOyPmPfIK$E{VL-pC5I?kaUQ z9rZlFRYZXTCT1lMRbW?&TmqZ(z0e#-OpbMRH~$SX=xYEdu|tt5SWLE&{l zd$4l8rG2N&;`Hl(f2hZ*BQV?mE5{rEYac$UY5z~`_T!H3;G&a*4pN1BxzOusMNivO zD;uu!mr@aXMtS;o(XLksSG#INJ7H8(JlhZP`FbWiH`qBq5PG7xhZ7|I&NKQ$szO!W zVksDW=n`blrl0*JErgvqc1ZgY1aAS}G-f>dolZmO(7muxKX0;0sMj^Y*0N{318~Wwi8&&nwzO#Pq(I=&#|$F$*KS~`iJgAcu9#yhRAIJ$;{5V4SUm^Ru z34<@}S9fQXKJdeY*un?%ZwF=2o$o;@^+X9VD&hxr+-8nEgi%u;a0hdUDE{ik_^N!3%TAL+a0NEj?8lt!%KRwCrn^4RB+7 zsX)SYjG+I|ZzkAUnO_=g#0r9;#LJ~!`be^WD0)1Q(ULcOVAi7Q0`GUg0#5GZ-u4aY zt(w|}i`^8-N0*C+-4n*zOL2-hx@=43-96OntwslFKeV1Q@5Frb<(iq&DkOQ(BGBMVWj zE7#{nsSTfjT8cEId2g;DwO?$XF?t~}08>Wy-(cJ3EyeRMmA$KFm$xk6cFm23ZAma! zxeZjdzSEkzyiem9`%>y=s?W^d5asI+&QLctJdhrH43r=J&*3KP;0Y|c+IYIpN+Nl0V#8DT+9hXD=DVk(`=q&XX_QrzjwMf_aFv*QimC2 zPb{b%>%bCd?w9!wUbc%PZjz8BJS_->*nS%37W;Mq@w_zyjWZo-CR-0+h~>L?=jmBa^x z?a4DvOX^=v%;MYD&aHwzsL*>8goqcovNf7=Of9-U3=V zagtAc02y(wWG-ErmSA73G!qEp7h(m}$1&YP) zEU#S#eqfOOqZrdC{x3_OFNjC1ax)rEu9UN z!XZut*EEdd3y4*8W9_J zeIxv%jh=ye!FiEi)@7!xvX*g~ktQ2IW5mKzVNTCal3D^Dh zhL3!da{j-gsmDpt9(FpY7+ES1$;*PQv)+Tjghpy=W;FIdatZ9pDHj{FdBmGSKj6H5 zk$lkyC6jdG`+GR%oh|zQFyb(PA*Xvn?wf>Q5x~~1aI`CKh{vF#l|ii2oRd5QrcM8Z zAFr}55SsCc{ogm86s-4n4R#VihRZ?k-F{Wm#hFu@=HO|+ z@iJ7H&lAqEG+G4!@^NMOd@ewCtr!epD?n6O&<6VyJnEmrgTOR;>wUpuB0go-B-IQH z{0EQ%yoB|J`Hq1+S z`STRW+YuyI7E2weFgOPaND`AlS0Mz#a@i3x-P4(m*wm)cP%=GS6hT7B0UbJRV|LTF zoQ@$ide2n3~_&W5A)aW)Qdo0u0t3$xB8g67*@ zC21#ayta<=6bgoXvGeW$4T=JwBYNEEvOz4mxVv5wYE{Wpdn>OT%4e(7f1JK zjctrSGikWV5MHy0<2E5M3Yz67(T}OKyAm&VT#IG;NVD>;!ai!9o;B!^uCa8 zXuF+t$I_RcGt$NpVD=500n=}vIlvf@;(aR%rIqlzbt0!Q=SP7S$8>ZCewKCmjVUVc z<&0xYX4RfUtcC5Df{JDzT#+iIW*oleb#a*_DX#GM^b2hT1-Np+V0k15Ngv(cf+7+2 zRC?wFtztb;VUPz7oiY?GzWlg^xurR_>K41d5RPI`GW(avlRMj{7h$41TLp^iOBA=) z<9l=K2Gpg5`TtSK*^QAHQZcvCaiWK(+=m!6C*2pj3_7Rqe{BNzPfzXcu@?~eDmUmf zf{BmTLePjoqsSJEQAl{SHsrT--;fa56$wP0ejw4qmv*J}iGX2MVh zFC>^X0bD}r1DM`90gwqcR{tvKQ`km462-~*i88MhW+Y-4RX5ISV9L_8lJ()SDZyTUybT;EKgnQm3s-(a})jxG3lP1U#odvaq(? zxYY_cKNySQaoAzXJCIb)xW&(qf=dsbuBAL3Z+xd%-9vUBqi{erH*7&@VwK?t0xr3- zmqMt`%W$OdB}!5Og1$nm4}fN1chG{-l=O#4O4|joitXaWUb!GS8`6%m46I z8o8(JB*l^$u}mCfq!8o?*veGM#KPiwsQx1u3WEz=r|t;Xr9}Z~db)S5lomIFau1-~ zm51+ko*m`wJ3)Uok}1%pFSeED3I($nHhe9$18G5sPyYGmcQbFIFsiYBaFan7L@OZ6ENb+V(3De&K)K&MGSmiVGl)xCUu+ZZmVF$Wt3)@_6vllO8 zer%nQ!xU#z+ID&C&yTfG#BK}#x!AfLCZE<7r*W5xNmX&B203NXSQRiP^laGY!M=7; zabC`g?h_>*um$$rYUqv@H5v%5WoD$vK>uus*C{{fzcX}N$nE;&Fvm0@M1=mDg|VHc z&GXV39?l2W>3BbwY#SML8AaVO(bKh7QRVogKauf6!$7**r{`MAc+vw4z(vyYIt1D^2_70(Ra2Lt; zgsjoXjUcz)7>76C{S%7U!8f%?f0PuRmgBRhIR)=22BzZ(kb5(cR!AA|(P81c$Afp?YniAYc+`KqT!g0v7O^*STeY$NG^t@_y$7WdR=WBv@ zP}Axi@e^m5?THHFVj7W#^)amkwYs6P-(UI|O02MA1pi~GoPl|X3EBj0XrC)ho@VRB z$d|t`HB)#tNA~5f^58=}#S7NtN7N(XL)&@#HM)Js%{V-p+~K1SYEq*&(f=pyJR2@n6|zcyUq_WF!mp=vl|=c z8KdpVTe)_F=`2*Uvwa zSaNQZno~R90BXo>k25(~wbcmyI)-44$h2o@mW!CH=;DNTF?dGj4HhGP>sGz~;n#Nk zD@8PG@jPF-O8?_T`NeS9S8#K2d^Vh?rY!kD!7Z-OS^8znSZ3?=zoLXoTT&`CW#feT z1&YZ;b)b|Yyd{4D3HD}-W!L`Xc{%tKhm%-N-^(>NOT}6ebA(GX<{{hSaMYOqDWI5P@?W-npxdNd;({$j}~$Ou4I%X&T<-I`EFCkJ;wK zp|O&GN%c9S4xegg<#rL+v-swa#S&HKt*<7vQNNrL4tL zm+}VDb6Pow(XBzs%rU9&H5p4MeLni2a(M&+ubhROIrD8yDntQ2Ls!hg&Pc=x%%-GT zE$qSG*m!t%&VDdV$V-*AVTgO*NSSvUWP@+8Qvn&&EXHynH|$q9s(iV)FB zbQ^T*yi=KuqU+&2QBL0{HoHFTDf!y1yge-T1yPJ@uiZB&#$N zufWbJ;+GUrLg*#e_sUUeCZ}l%sNEl0*IzP?cVDTNN5nd^J|yNK{?jwBk5}PQGsI|N zcZyXUwQiTiaw_Mg_%S3gZN0&mQp(mPvbu&))I6tfGAJ@{BcNq>tk^R-A6LBBG+n#d zyJcQ)l9s9Z8w=@m)YuQZ*_BwlIJ#Z5qNh`q>ov7s)bG&L#3$R57*{Y9ee61QIVLCo zo{`7#kd_&dmPfA{-;=E3RjeJiSga5N7wC}0yF19w#iDS`2>a+TIwDJa!2D3P zZQQV7QD%4)h5L=gAOWT=D|+)h)jZ~uuoDytNyU%7;Xwl zf*m8z^&&2oe!>`2G547+mX=7C`H{@-|HyMgfQghi%S;=FD4M;(dh^>WG!uNoC)wd^ zb}6fT-xT_v{N5vj?{*C%w#O#G7ZrbZcqG14JIWq7Y%XKiO?p>9Fu102CL~owIHzhi zwC|+1dN#fiH}yNYp!&3tmiwu&{#w%3w(B=V&+U7bdM(_S2E@4PNN}*G?f7hiHw$ki8C>2VdP3<(P zxEtP!VzSt-NsJC_Fflw?s=o8|w!JggWW`0P?kFcyJ(Q1v+0u4+a@;~VcFwk8ljTQ) zJGZd+fCjTwzexnoSK5Mp5zDQt%84&jrO`>$P}#i`fW<@x+m=8J58inz+nCNa#AFcN zmRMC=?fMGIsN@&d>035hk^G}qC_?6$AAxrCC$9*VSBe|GXpt*f>jPI6H__Z|p5W{@ zTp#U%@Ea9eDTUKVp`8O+z&x$b0ME6p{dp@vZ@S*=H8!c=26@`5M{}CCS85w zeUx`^MbZXe_|3|wC|lq1ao2OJ`I#?e26Yl27yMX;^b2i&yS_Qd{(3of@I`<>$<{0p zdnH*bR^vIDlaR^0SDML?_@U544HnP!(bfCGd*ziag|Z{XVx17yy8Af{o;q{kSS98{ z#1P-&h5(aaQd5(7T!4d@{bFWR3y6;D*A3qM@@0;9NhqFg#Z`oU& zy><5HY%;P}(Ve|l2uWwJ>@C&VtAvn5SsA55gH#`1f57)Ic>nr-zhBSi z&U$rQZK?H|AhN=~DD4JMSBA>UOhffokk5x2VZY?`?RWM;tmAb|byvT|puSm`_A60; zkIh0fy~3{Ta(sn1s~PxMTW^K6cLiL$XK~EDjoT?~sZ99Q&TqYKzWVlEvxT_N&h}Fj z8ln@#`}y<|_)EW#O@QTkP@6BRST$vjDAZuuniQt^J>i6na!t#D4Zt?dGH!t^(0CN@9+Mnl>a zYV>uZAz+_4Y`TLM23=2e-des$_(wYmmYLCH{2)eT$UE2Q%zjyr{msrzS1-Bf`kgYB zgf<;>w#9?T5A@k;+cSM@TR(c$#l;p<-8f<0_EDM-Q~w%HSpt&^@W(~c*o?c*k7sdG z#NWV_qDjWg7@~=S(GzSv)%Z(@+QYN->A{s;Ymc#giM8LE&OZYlsVR1-ZHI_SuIv>T z6v9m=-iGTg-I8yf(Tm=j43VAT=b@>sW#o0ehcb1$udA-B5l?7f%(VrrAeF+AEZ0oa zodSG<>z#@>K6LCfr0(4<+i2Hx@U?V^G1o5m@+QKi4PEDPgY31bf73ycZSHaH_{)vB z?A@}HTP|-oM3A?9U}H5Q7gYmNU7Tku^P=&RGKIW>A@6@tpNA;=<|Lft;%k*S)oncI zFA@FqFrjD7_p-Lvov)1Eap`R@_>GjHJbm?Ucwa=~RgjvMoJiiK7s0K2&wn+^-R@Oj zA62@%t3leE{ROiD>(pBhYPRRU_*>}bEpS!!XD*a}6bS08Q4dz+HdXfJE6i1>T}n{T ztvYu;v%8{HPs@=%*75{uGf7quNKMOB?a`=UhHRXfMW%O#tq45nwcAhxu9@2fVSO`A ziaI(Ci8pShL698+l~(-9#O`Xz=nAcV`@NNvBL2BPV&UFbpPc2r{jl_9g_|+GKWn@> z%0G<6kTNVZ)j1#h*}NzQKnxUMqX$D-Y99Z^5VP$fzYv5rttVRmC3AE)|>J%x>L!;M5BN<#SP>XLI~`IcTO z)u&e={u5J;v@ajOd${}H9zEacV8KI>=E~P>pZvCGt<5}3$vCPpaoLH!oJ|j{c5LhH@7VoM`VXjsU1`1v5CRXk&g+diBd_IJWBhB2Ya?n+ znhYu~=a>gi7vPpkV)B%%4p-UC{dcX+4-!9&DaN1Q3$7Jrz|3@976rh}6OL9uP(_Q^~{HMV87vPOzZVw3&mBDQD zSQlPV<~zImSNl(myYiJCClzl}*el&bfQY-P5`G*v{giJAf6luxF!)L# z-|Asxid2Eizc9YL!?NPnCYn{MCB1J7;EoIL>J)WQQBJJN*lM8kR@D$ zo0-0NiyXoAP#|QgNGspq_RTRkGBbfEgO+Oko~7MSLuDX=r-BvD3~gJ-?Q>M#_KAbS zu0v#EeLO7`uL7|-oIXKbT4K~lLEjP)Q9&`<624*$QESgsUx|7zL!&AMpC+3?^B%hv z16w}<5wVmiQ^9@#XFXkM7+9^sm6oDHSyon0?0Q9o!_56OvHs&MLKb<*hyNR&N855bBLC7T=f-T!0QR%URLj|>kX^ON~@^4n!$)Tl{__WmQ``cEbr z@&*f;*-b?X$_knvaxgB7QX-T3qBJyC;T3>_wOgJJg&tb_V-1#(c?uKGfJnGMnX^BM zo)aRyBKS-4zdR`BCGw*+K6X{HrjQ?j;LLKuqu6YR>$}MewwV4<2srEzXya*j9=wKT zFx%LeysD{yXs_j(NSHvT_4-e>y)Y`)bhnSo{jTZ9!^cTQAHl99=^%tw=#G7yt_H7Z zkC5Bu*@;+J>E&N8yQ!}YhfoLq5|m1zFt4hsX6DKAuurbOmi@dr;p-^8n?*DYJQ8@3 z#svfX21-UK9CC{1Nth0@6w2JhSPvKM+Fw~AW(Sx-1m)H1GEmP_Enc8EGTU#+G-i?! zf+@HWSB+3k3<0;%Pqe(URY5d$SwEhHik*;o@?@?cNkj!{FbQP%tj=;GV3VYDZe}&yYKCALJ=&C?T1hK^=zFyXDhuWCI=&M_SOWR z>2auocHY!g*;S@$>3XSqckSs!Lj0xkem#aWOGs#vQ=PLoA3(;s@r-KzWMFmRzg^KV zj`lfU(Pq*CLMtX^@%!uW*u*~6gGA~AUOVeUeVdF4oW}A1G4;mq#pwC=ZfqfjW=W0E z_SO%jQ_s`@aL zeB!~|31Trv(dGh+P~c>viy$(^Fow+V(8QJX14c*Qf4gp9SW$$qnrj7b%7yQ}(6M1R zoUwFs@2X&W5yjD%@vay{fB-zmKvzQ6PA+z|d0Gsw{I*K?v>pZgUrT*sCwhU`MA$w? zSegyaWC3$R!&~;Go_{C#Dd}loKb9>2+<<#oU`P=-rx46ueE$)c zm5rT=g@uEam7}SVgN=oWNkdt#Ti!#VSFv9~L&Md=RGpETrGbKVvXK_S$v1S>(BZWa z)Zqq{+tJ)(-Q(GFWuMei|G@b0(7OqrVvu)kM{(Rr`V3Q%L6IgKX0 zfR%Q`qUj+}LOt|72;*i15#yG;`C_4pUGa)?dMcu!$wSIVSoFdl8$qfuDrzZBOC+5#*mxxIkkh?h+-kImt<5>Au%flWmRSkcwgFDtysFPE7j=Z4DY}{a0Hdo0 zW6iA*avzi;f%a!!k@DQ=SZ=9ET|En78fSpa0#zolHhOKDC#Fr1HUOt zb7&!>G%UsU*f&N?5t2*(%a1719}EG6=gN1ib?nz2rqPL2LNdFF$Qy%%cn$B9)G~N+f02oJN*n&kApL z*_Mw8ln#SK=05U?TyNMF>8FxXw)N(Za926lY3M4SrsMZe?uTE(<2ZJp2q*CPF`vn1 z5|v(`PN4w%5#+tNjeqB;T)Jmo)`k4#sdwf6rG{EhA~=8YhQx)ect7G=v2?>T5AF(A z)fDqSfQh1d8!{g0&JnZz{ukZwtO!gk3gzY}X%uxaBY@jlc-=Aj;b)Eh&Gt8=Mb!h9 zNaIB}S#j(XNPqJ}3>ZVDL$}Ir_JvuR^%&wMeqG0@%qCSsH_wD=9u1)R@tIESxQ(Hj z56oYLp8xrjs+nf2_(|^RuZT~)wF>D}L(k>E`W-y8p*RAd+Y*laBa2C$T0O60Y&@g= zY}BfoA#zWWZSNe#G=bi;V|I#)<#?&}OQe_DXpIhd%b9fVNRM9Cu?-!4tMk#HKtb>- z{t7<-&n|kt>`H*}Ez!S%#EVSJ`(NvplxzR1>s?zmU~BS@*uiW8lb`&H>f>{&tepF=H90>giJR!uO{_wMw7l&280em4E*7 zC;{B~-;%*MTSug#N%QZ&^2~aUzY{B;kfE;FaniPtKHF;PhRh-LlwB{ck#d9%WyGQ@ zDj`a*br24~)WGr2Av1+9UegCgU5znC#CIfP;4b`__(RsQlc4!55i8%M3@!4m(uC06 zw|;t~Q?5bD?u@K2Q~f@DejP+R_JGYx7;OBzJaW7m@=0n;|8>K|lNXH1-_X91Ocqp7 zgc(9v7;8PGvdO~oop1q~BN91esUQTh+K)3$^?=`Sin4IDLb`;y+v|zh)!oO)K^@!d zQUbm2ezzuDo#GK6DCp)%L)9_Pg3AYMGOaTi7EK15+S}p_3d%Z!_w*kfZO7z7CqQj= zDkdP9aKsqFE0{U~VMb8d4@!{>s{w|M03L>gY2Bz`gFS<3)U@@q5$=|8j3vWue&*pH zT_!norG^f_&e)N;ez_c<0Mnig5Zfdkto_HH?A6uKgTj zntq4)oP^lPZ|?9&<`(e3l3YJ3^nxBISIcwlTMz+mO99wEBi;|NO~@++PuSZnN?2&j z97_(B`HEg35>4N7Q{Zt!xds2k_ zPo{6an@-Jb^L7zxp%hSIRm2JrhMJ2-yXywX`z@pCIeM&wq2QIRK0-oCz#KQa69}loFeEyB46mn&vLu%JSn~i1g*xm5ItoCx$WTP*mcuxBgHBC7` zJ8HFUVG%E}B(^D)aYyrzj(gQM-Ae{7qs`a6nO+7)zpUN=VNa3Iw7@L-qQ1b>O_9}` zVc06KcvoIJMm$0A!OLMP%A4PGR`TsEHLUdyqIZmY|u6J zk*0^t*)@)TYUJ;}SwBGYw$>~OPwCa6zvo&W|NYE0C(hb6EW1_FyxE)CW;eUXlmor- zphx^ndHnEcYT2ED=2`P08=CrTbgqRogwMbo`_xpZZ^uIKqL(o#_a^6?+=FjYtPQm) z=A2A}4`qr~JGvr5it?i^1>?f*neYrhp2B6h*8XWPYN`7nUV*N!+ryN%P_+Y1{)~W3wzt(BVoMp~TBmLiJ zcefp#hgOY~1g=cQtwV%g8}S~*a^0x?zwqZJdDM5$xP#l4-=hTB8Fens6>X^i@lOGEV@21B|+R=0xFY3wbG7|(Y2>&=v9M(aNc04>&j+co5Uk*`8k z==X88ObpJ=Ls8p?8Kq4u!h~%0DhQw2QHG|d76ZVhK||z?i!L`~GXW3A*DidMfPuNE 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

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -2546,7 +2468,7 @@

Class variables

-

var Extensions

+

var Extensions

@@ -2555,18 +2477,38 @@

Class variables

-
-

var scope

- - - +
+ + +
+

class ActivateAuthResponse

+ + +

A ProtocolMessage

+
+
+
+ + +
+

Ancestors (in MRO)

+ +

Class variables

+
+

var DESCRIPTOR

+ + +
-

var username

+

var Extensions

@@ -2579,7 +2521,7 @@

Class variables

-

class ActivateAuthRequest

+

class ActivateRequest

A ProtocolMessage

@@ -2596,7 +2538,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -2606,7 +2548,27 @@

Class variables

-

var Extensions

+

var Extensions

+ + + + +
+
+ +
+
+

var activation_code

+ + + + +
+
+ +
+
+

var expires

@@ -2619,7 +2581,7 @@

Class variables

-

class ActivateAuthResponse

+

class ActivateResponse

A ProtocolMessage

@@ -2636,7 +2598,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -2646,7 +2608,17 @@

Class variables

-

var Extensions

+

var Extensions

+ + + + +
+
+ +
+
+

var info

@@ -2659,7 +2631,7 @@

Class variables

-

class ActivateRequest

+

class AddClusterRequest

A ProtocolMessage

@@ -2676,7 +2648,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -2686,7 +2658,7 @@

Class variables

-

var Extensions

+

var Extensions

@@ -2696,7 +2668,7 @@

Class variables

-

var activation_code

+

var address

@@ -2706,7 +2678,17 @@

Class variables

-

var expires

+

var id

+ + + + +
+
+ +
+
+

var secret

@@ -2719,7 +2701,7 @@

Class variables

-

class ActivateResponse

+

class AddClusterResponse

A ProtocolMessage

@@ -2736,7 +2718,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -2746,7 +2728,7 @@

Class variables

-

var Extensions

+

var Extensions

@@ -2756,7 +2738,67 @@

Class variables

-

var info

+

var secret

+ + + + +
+
+ +
+
+
+ +
+

class AddFilesetRequest

+ + +

A ProtocolMessage

+
+
+
+ + +
+

Ancestors (in MRO)

+ +

Class variables

+
+

var DESCRIPTOR

+ + + + +
+
+ +
+
+

var Extensions

+ + + + +
+
+ +
+
+

var commit

+ + + + +
+
+ +
+
+

var fileset_id

@@ -2949,7 +2991,7 @@

Class variables

-

class AuthConfig

+

class AppendFile

A ProtocolMessage

@@ -2966,7 +3008,17 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

+ + + + +
+
+ +
+
+

var Extensions

@@ -2976,7 +3028,7 @@

Class variables

-

var Extensions

+

var overwrite

@@ -2986,7 +3038,7 @@

Class variables

-

var SAMLServiceOptions

+

var raw_file_source

@@ -2996,7 +3048,7 @@

Class variables

-

var id_providers

+

var tag

@@ -3006,7 +3058,7 @@

Class variables

-

var live_config_version

+

var tar_file_source

@@ -3016,7 +3068,7 @@

Class variables

-

var saml_svc_options

+

var url_file_source

@@ -3061,16 +3113,6 @@

Class variables

-
-
- -
-
-

var github_token

- - - -
@@ -3091,16 +3133,6 @@

Class variables

-
-
- -
-
-

var one_time_password

- - - -
@@ -3196,7 +3228,7 @@

Class variables

-

var repo

+

var permissions

@@ -3206,7 +3238,7 @@

Class variables

-

var scope

+

var resource

@@ -3261,6 +3293,36 @@

Class variables

+
+
+ +
+
+

var missing

+ + + + +
+
+ +
+
+

var principal

+ + + + +
+
+ +
+
+

var satisfied

+ + + +
@@ -3397,7 +3459,7 @@

Class variables

-

class Block

+

class BoolValue

A ProtocolMessage

@@ -3414,7 +3476,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -3424,7 +3486,7 @@

Class variables

-

var Extensions

+

var Extensions

@@ -3434,7 +3496,7 @@

Class variables

-

var hash

+

var value

@@ -3447,7 +3509,7 @@

Class variables

-

class BlockRef

+

class Branch

A ProtocolMessage

@@ -3464,7 +3526,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -3474,7 +3536,7 @@

Class variables

-

var Extensions

+

var Extensions

@@ -3484,7 +3546,7 @@

Class variables

-

var block

+

var name

@@ -3494,7 +3556,7 @@

Class variables

-

var range

+

var repo

@@ -3507,7 +3569,7 @@

Class variables

-

class BoolValue

+

class BranchInfo

A ProtocolMessage

@@ -3524,7 +3586,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -3534,7 +3596,7 @@

Class variables

-

var Extensions

+

var Extensions

@@ -3544,7 +3606,7 @@

Class variables

-

var value

+

var branch

@@ -3553,28 +3615,28 @@

Class variables

-
-
- -
-

class Branch

- +
+

var direct_provenance

+ + + -

A ProtocolMessage

-
+
+
+

var head

+ -
-

Ancestors (in MRO)

- -

Class variables

+ + +
+
+ +
-

var DESCRIPTOR

+

var name

@@ -3584,7 +3646,7 @@

Class variables

-

var Extensions

+

var provenance

@@ -3594,7 +3656,7 @@

Class variables

-

var name

+

var subvenance

@@ -3604,7 +3666,7 @@

Class variables

-

var repo

+

var trigger

@@ -3617,7 +3679,7 @@

Class variables

-

class BranchInfo

+

class BranchInfos

A ProtocolMessage

@@ -3634,7 +3696,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -3644,7 +3706,7 @@

Class variables

-

var Extensions

+

var Extensions

@@ -3654,7 +3716,7 @@

Class variables

-

var branch

+

var branch_info

@@ -3663,18 +3725,28 @@

Class variables

-
-

var direct_provenance

- - - +
+
+ +
+

class BuildSpec

+ +

A ProtocolMessage

+
-
+ +
+

Ancestors (in MRO)

+ +

Class variables

-

var head

+

var DESCRIPTOR

@@ -3684,7 +3756,7 @@

Class variables

-

var name

+

var Extensions

@@ -3694,7 +3766,7 @@

Class variables

-

var provenance

+

var image

@@ -3704,7 +3776,7 @@

Class variables

-

var subvenance

+

var language

@@ -3714,7 +3786,7 @@

Class variables

-

var trigger

+

var path

@@ -3727,7 +3799,7 @@

Class variables

-

class BranchInfos

+

class BytesValue

A ProtocolMessage

@@ -3744,7 +3816,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

+

var DESCRIPTOR

@@ -3754,7 +3826,7 @@

Class variables

-

var Extensions

+

var Extensions

@@ -3764,7 +3836,7 @@

Class variables

-

var branch_info

+

var value

@@ -3777,7 +3849,7 @@

Class variables

-

class BuildCommitRequest

+

class ChunkSpec

A ProtocolMessage

@@ -3794,37 +3866,7 @@

Ancestors (in MRO)

Class variables

-

var DESCRIPTOR

- - - - -
-
- -
-
-

var Extensions

- - - - -
-
- -
-
-

var ID

- - - - -
-
- -
-
-

var branch

+

var DESCRIPTOR

@@ -3834,7 +3876,7 @@

Class variables

-

var datums

+

var Extensions

@@ -3844,7 +3886,7 @@

Class variables

-

var finished

+

var number

@@ -3854,7 +3896,7 @@

Class variables

-

var origin

+

var size_bytes

@@ -3863,38 +3905,28 @@

Class variables

-
-

var parent

- - - +
+
+ +
+

class ClearCommitRequest

+ -
+

A ProtocolMessage

- -
-
-

var provenance

- - - -
-
-
-

var size_bytes

- - - - -
-
-
+
+

Ancestors (in MRO)

+ +

Class variables

-

var started

+

var DESCRIPTOR

@@ -3904,7 +3936,7 @@

Class variables

-

var tree

+

var Extensions

@@ -3914,7 +3946,7 @@

Class variables

-

var trees

+

var commit

@@ -3927,11 +3959,9 @@

Class variables

-

class BuildSpec

+

class Client

-

A ProtocolMessage

-
@@ -3939,82 +3969,99 @@

Class variables

Ancestors (in MRO)

-

Class variables

-
-

var DESCRIPTOR

+

Static methods

+
+
+

def new_from_config(

cls, config_file=None)

+
+ - + -
-
+

Creates a Pachyderm client from a config file, which can either be +passed in as a file-like object, or if unset, checks the PACH_CONFIG env +var for a path. If that's also unset, it defaults to loading from +'~/.pachyderm/config.json'.

-
-
-

var Extensions

- +

Params:

- - +
    +
  • config_file: An optional file-like object containing the config +json file. If unspecified, we load the config from the default +location ('~/.pachyderm/config.json'.)
  • +
+
-
-
-

var image

+
+ +
+
+

def new_from_pachd_address(

cls, pachd_address, auth_token=None, root_certs=None, transaction_id=None)

+
+ - + -
-
+

Creates a Pachyderm client from a given pachd address.

-
-
-

var language

- +

Params:

- - +
    +
  • auth_token: The authentication token; used if authentication is +enabled on the cluster. Default to None.
  • +
  • root_certs: The PEM-encoded root certificates as byte string. If +unspecified, this will load default certs from certifi.
  • +
  • transaction_id: The ID of the transaction to run operations on.
  • +
+
-
-
-

var path

+
+ +
+
+

def new_in_cluster(

cls, auth_token=None, transaction_id=None)

+
+ - + -
-
+

Creates a Pachyderm client that operates within a Pachyderm cluster.

-
-
-
- -
-

class ByteRange

- - -

A ProtocolMessage

+

Params:

+ +
    +
  • auth_token: The authentication token; used if authentication is +enabled on the cluster. Default to None.
  • +
  • transaction_id: The ID of the transaction to run operations on.
  • +
- -
-

Ancestors (in MRO)

- -

Class variables

+
+ +

Instance variables

-

var DESCRIPTOR

+

var address

@@ -4024,7 +4071,7 @@

Class variables

-

var Extensions

+

var auth_token

@@ -4034,7 +4081,7 @@

Class variables

-

var lower

+

var root_certs

@@ -4044,7 +4091,7 @@

Class variables

-

var upper

+

var transaction_id

@@ -4053,400 +4100,31 @@

Class variables

-
-
- -
-

class BytesValue

- - -

A ProtocolMessage

-
-
-
- - -
-

Ancestors (in MRO)

- -

Class variables

-
-

var DESCRIPTOR

+

Methods

+
+
+

def __init__(

self, host=None, port=None, auth_token=None, root_certs=None, transaction_id=None, tls=None)

+
+ - + -
-
- -
-
-

var Extensions

- - - - -
-
- -
-
-

var value

- - - - -
-
- -
-
-
- -
-

class CheckAuthToken

- - -

A ProtocolMessage

-
-
-
- - -
-

Ancestors (in MRO)

- -

Class variables

-
-

var DESCRIPTOR

- - - - -
-
- -
-
-

var Extensions

- - - - -
-
- -
-
-
- -
-

class CheckObjectRequest

- - -

A ProtocolMessage

-
-
-
- - -
-

Ancestors (in MRO)

- -

Class variables

-
-

var DESCRIPTOR

- - - - -
-
- -
-
-

var Extensions

- - - - -
-
- -
-
-

var object

- - - - -
-
- -
-
-
- -
-

class CheckObjectResponse

- - -

A ProtocolMessage

-
-
-
- - -
-

Ancestors (in MRO)

- -

Class variables

-
-

var DESCRIPTOR

- - - - -
-
- -
-
-

var Extensions

- - - - -
-
- -
-
-

var exists

- - - - -
-
- -
-
-
- -
-

class ChunkSpec

- - -

A ProtocolMessage

-
-
-
- - -
-

Ancestors (in MRO)

- -

Class variables

-
-

var DESCRIPTOR

- - - - -
-
- -
-
-

var Extensions

- - - - -
-
- -
-
-

var number

- - - - -
-
- -
-
-

var size_bytes

- - - - -
-
- -
-
-
- -
-

class ClearCommitRequestV2

- - -

A ProtocolMessage

-
-
-
- - -
-

Ancestors (in MRO)

- -

Class variables

-
-

var DESCRIPTOR

- - - - -
-
- -
-
-

var Extensions

- - - - -
-
- -
-
-

var commit

- - - - -
-
- -
-
-
- -
-

class Client

- - -
-
- - -
-

Ancestors (in MRO)

- -

Static methods

- -
-
-

def new_from_config(

cls, config_file=None)

-
- - - - -

Creates a Pachyderm client from a config file, which can either be -passed in as a file-like object, or if unset, defaults to loading from -'~/.pachyderm/config.json'.

- -

Params:

- -
    -
  • config_file: An optional file-like object containing the config -json file. If unspecified, we load the config from the default -location ('~/.pachyderm/config.json'.)
  • -
-
-
-
- -
- - -
-
-

def new_from_pachd_address(

cls, pachd_address, auth_token=None, root_certs=None, transaction_id=None)

-
- - - - -

Creates a Pachyderm client from a given pachd address.

- -

Params:

- -
    -
  • auth_token: The authentication token; used if authentication is -enabled on the cluster. Default to None.
  • -
  • root_certs: The PEM-encoded root certificates as byte string. If -unspecified, this will load default certs from certifi.
  • -
  • transaction_id: The ID of the transaction to run operations on.
  • -
-
-
-
- -
- - -
-
-

def new_in_cluster(

cls, auth_token=None, transaction_id=None)

-
- - - - -

Creates a Pachyderm client that operates within a Pachyderm cluster.

+

Creates a Pachyderm client.

Params:

    +
  • host: The pachd host. Default is 'localhost', which is used with +pachctl port-forward.
  • +
  • port: The port to connect to. Default is 30650.
  • auth_token: The authentication token; used if authentication is -enabled on the cluster. Default to None.
  • +enabled on the cluster. Defaults to None. +
  • root_certs: The PEM-encoded root certificates as byte string.
  • transaction_id: The ID of the transaction to run operations on.
  • +
  • tls: Specifies whether TLS should be used. If root_certs are +specified, they are used; otherwise, we use the certs provided by +certifi.
@@ -4454,72 +4132,25 @@

Static methods

-

Instance variables

-
-

var address

- - - - -
-
- -
-
-

var auth_token

- - - - -
-
- -
-
-

var root_certs

- - - - -
-
- -
-
-

var transaction_id

- - - - -
-
- -
-

Methods

-
-

def __init__(

self, host=None, port=None, auth_token=None, root_certs=None, transaction_id=None, tls=None)

+
+

def activate_auth(

self, root_token=None)

-

Creates a Pachyderm client.

+

Activates auth. Returns the root token for the cluster, an irrevocable superuser +credential that should be stored securely.

Params:

    -
  • host: The pachd host. Default is 'localhost', which is used with -pachctl port-forward.
  • -
  • port: The port to connect to. Default is 30650.
  • -
  • auth_token: The authentication token; used if authentication is -enabled on the cluster. Defaults to None.
  • -
  • root_certs: The PEM-encoded root certificates as byte string.
  • -
  • transaction_id: The ID of the transaction to run operations on.
  • -
  • tls: Specifies whether TLS should be used. If root_certs are -specified, they are used; otherwise, we use the certs provided by -certifi.
  • +
  • root_token: An optional string. If specified, this string becomes +the Pachyderm cluster root user's token (otherwise, Pachyderm +generates a root token, which is generally safer). Currently this is +only used for testing and Pachyderm internals (migration).
@@ -4529,35 +4160,21 @@

Methods

-
-

def activate_auth(

self, subject, github_token=None)

+
+

def activate_enterprise(

self, license_server, cluster_id, secret)

-

Activates auth, creating an initial set of admins. Returns a string -that can be used for making authenticated requests.

+

Activates enterprise by registering with a license server. Returns a TokenInfo object.

Params:

    -
  • subject: A string. -
      -
    • If set to a github user (i.e. it has a 'github:' prefix or no -prefix) then Pachyderm will confirm that it matches the user -associated with 'github_token'
    • -
    • If set to a robot user (i.e. it has a 'robot:' prefix), then -Pachyderm will generate a new token for the robot user; this token -will be the only way to administer this cluster until more admins -are added.
    • -
  • -
  • An optional string. This is the token returned by GitHub and used to -authenticate the caller. When Pachyderm is deployed locally, setting -this value to a given string will automatically authenticate the -caller as a GitHub user whose username is that string (unless this -"looks like" a GitHub access code, in which case Pachyderm does -retrieve the corresponding GitHub username)
  • +
  • license_server: The Pachyderm Enterprise Server to register with.
  • +
  • cluster_id: The unique ID for this cluster.
  • +
  • secret: The secret for registering this cluster.
@@ -4567,14 +4184,14 @@

Methods

-
-

def activate_enterprise(

self, activation_code, expires=None)

+
+

def activate_license(

self, activation_code, expires=None)

-

Activates enterprise. Returns a TokenInfo object.

+

Activates the license service. Returns a TokenInfo object.

Params:

@@ -4594,25 +4211,22 @@

Methods

-
-

def authenticate_github(

self, github_token)

+
+

def add_cluster(

self, cluster_id, address, secret=None)

-

Authenticates a GitHub user to the Pachyderm cluster. Returns a string -that can be used for making authenticated requests.

+

Register a cluster with the license service.

Params:

    -
  • github_token: A string. This is the token returned by GitHub and -used to authenticate the caller. When Pachyderm is deployed locally, -setting this value to a given string will automatically authenticate -the caller as a GitHub user whose username is that string (unless this -"looks like" a GitHub access code, in which case Pachyderm does -retrieve the corresponding GitHub username.)
  • +
  • cluster_id: A unique ID to identify the cluster.
  • +
  • address: A GRPC address for the license server to reach the cluster.
  • +
  • secret: Optional. A shared secret for the cluster to use to authenticate. +If not specified, a random secret will be generated and returned.
@@ -4669,50 +4283,21 @@

Methods

-
-
-

def authenticate_one_time_password(

self, one_time_password)

-
- - - - -

Authenticates a user to the Pachyderm cluster using a one-time -password. Returns a string that can be used for making authenticated -requests.

- -

Params:

- -
    -
  • one_time_password: A string. This is a short-lived, one-time-use -password generated by Pachyderm, for the purpose of propagating -authentication to new clients (e.g. from the dash to pachd.)
  • -
-
-
-
- -
- -
-

def authorize(

self, repo, scope)

+

def authorize(

self, resource, permissions=None)

-

Authorizes the user to a given repo/scope. Return a bool specifying if -the caller has at least scope-level access to repo.

+

Authorizes the user to a given resource.

Params:

    -
  • repo: A string specifying the repo name that the caller wants -access to.
  • -
  • scope: An int specifying the access level that the caller needs to -perform an action. See the Scope enum for variants.
  • +
  • resource: The resource the user wants access to
  • +
  • permissions: A list of permissions the user wants to test.
@@ -4831,7 +4416,7 @@

Methods

-

def create_branch(

self, repo_name, branch_name, commit=None, provenance=None)

+

def create_branch(

self, repo_name, branch_name, commit=None, provenance=None, trigger=None)

@@ -4848,6 +4433,8 @@

Methods

the head commit of the branch.
  • provenance: An optional iterable of Branch objects representing the branch provenance.
  • +
  • trigger: An optional Trigger object controlling when the head of +branch_name is moved.
  • @@ -4856,9 +4443,41 @@

    Methods

    +
    +
    +

    def create_idp_connector(

    self, connector)

    +
    + + + + +

    Create an IDP connector in the identity server.

    +
    +
    +
    + +
    + + +
    +
    +

    def create_oidc_client(

    self, client)

    +
    + + + + +

    Create an OIDC client in the identity server.

    +
    +
    +
    + +
    + +
    -

    def create_pipeline(

    self, pipeline_name, transform, parallelism_spec=None, hashtree_spec=None, egress=None, update=None, output_branch=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, enable_stats=None, reprocess=None, max_queue_size=None, service=None, chunk_spec=None, datum_timeout=None, job_timeout=None, salt=None, standby=None, datum_tries=None, scheduling_spec=None, pod_patch=None, spout=None, spec_commit=None, metadata=None, s3_out=None, sidecar_resource_limits=None)

    +

    def create_pipeline(

    self, pipeline_name, transform, parallelism_spec=None, egress=None, no_skip=None, update=None, output_branch=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, enable_stats=None, reprocess=None, max_queue_size=None, service=None, chunk_spec=None, datum_timeout=None, job_timeout=None, salt=None, standby=None, datum_tries=None, scheduling_spec=None, pod_patch=None, spout=None, spec_commit=None, metadata=None, s3_out=None, sidecar_resource_limits=None)

    @@ -4874,7 +4493,6 @@

    Methods

  • pipeline_name: A string representing the pipeline name.
  • transform: A Transform object.
  • parallelism_spec: An optional ParallelismSpec object.
  • -
  • hashtree_spec: An optional HashtreeSpec object.
  • egress: An optional Egress object.
  • update: An optional bool specifying whether this should behave as an upsert.
  • @@ -4903,7 +4521,8 @@

    Methods

  • metadata: An optional Metadata object.
  • s3_out: An optional bool specifying whether the output repo should be exposed as an s3 gateway bucket.
  • -
  • sidecar_resource_limits: An optional ResourceSpec setting +
  • sidecar_resource_limits: An optional ResourceSpec setting
  • +
  • no_skip: An optional bool specifying whether to skip already-processed data resource limits for the pipeline sidecar.
  • @@ -4998,7 +4617,7 @@

    Methods

    -

    def create_tf_job_pipeline(

    self, pipeline_name, tf_job, parallelism_spec=None, hashtree_spec=None, egress=None, update=None, output_branch=None, scale_down_threshold=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, enable_stats=None, reprocess=None, max_queue_size=None, service=None, chunk_spec=None, datum_timeout=None, job_timeout=None, salt=None, standby=None, datum_tries=None, scheduling_spec=None, pod_patch=None, spout=None, spec_commit=None)

    +

    def create_tf_job_pipeline(

    self, pipeline_name, tf_job, parallelism_spec=None, no_skip=None, egress=None, update=None, output_branch=None, scale_down_threshold=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, enable_stats=None, reprocess=None, max_queue_size=None, service=None, chunk_spec=None, datum_timeout=None, job_timeout=None, salt=None, standby=None, datum_tries=None, scheduling_spec=None, pod_patch=None, spout=None, spec_commit=None)

    @@ -5016,7 +4635,6 @@

    Methods

    when running in a Kubernetes cluster on which kubeflow has been installed.
  • parallelism_spec: An optional ParallelismSpec object.
  • -
  • hashtree_spec: An optional HashtreeSpec object.
  • egress: An optional Egress object.
  • update: An optional bool specifying whether this should behave as an upsert.
  • @@ -5043,6 +4661,33 @@

    Methods

  • pod_patch: An optional string.
  • spout: An optional Spout object.
  • spec_commit: An optional Commit object.
  • +
  • no_skip: An optional bool specifying whether to skip already-processed data
  • + +
    +
    +
    + +
    + + +
    +
    +

    def create_tmp_file_set(

    self)

    +
    + + + + +

    Creates a temporary fileset (used internally). Currently, +temp-fileset-related APIs are only used for Pachyderm internals (job +merging), so we're avoiding support for these functions until we find a +use for them (feel free to file an issue in +github.com/pachyderm/pachyderm)

    + +

    Params:

    + +
      +
    • fileset_id: A string identifying the fileset.
    @@ -5100,6 +4745,38 @@

    Methods

    +
    +
    +

    def delete_all_identity(

    self)

    +
    + + + + +

    Delete all identity service information.

    +
    +
    +
    + +
    + + +
    +
    +

    def delete_all_license(

    self)

    +
    + + + + +

    Remove all clusters and deactivate the license service.

    +
    +
    +
    + +
    + +

    def delete_all_pipelines(

    self, force=None)

    @@ -5188,20 +4865,19 @@

    Methods

    -
    -

    def delete_commit(

    self, commit)

    +
    +

    def delete_cluster(

    self, cluster_id)

    -

    Deletes a commit.

    +

    Delete a cluster registered with the license service.

    Params:

      -
    • commit: A tuple, string, or Commit object representing the -commit.
    • +
    • cluster_id: The unique ID to identify the cluster.
    @@ -5237,6 +4913,22 @@

    Methods

    +
    +
    +

    def delete_idp_connector(

    self, id)

    +
    + + + + +

    Delete an IDP connector in the identity server.

    +
    +
    +
    + +
    + +

    def delete_job(

    self, job_id)

    @@ -5259,6 +4951,22 @@

    Methods

    +
    +
    +

    def delete_oidc_client(

    self, id)

    +
    + + + + +

    Delete an OIDC client in the identity server.

    +
    +
    +
    + +
    + +

    def delete_pipeline(

    self, pipeline_name, force=None, keep_repo=None)

    @@ -5383,7 +5091,7 @@

    Methods

    -

    def dump(

    self, filter=None)

    +

    def dump(

    self, filter=None, limit=None)

    @@ -5396,6 +5104,8 @@

    Methods

    • recursed: An optional bool.
    • filter: An optional Filter object.
    • +
    • limit: An optional int, limiting the number of commits/jobs returned +for each repo/pipeline in the dump
    @@ -5405,74 +5115,20 @@

    Methods

    -
    -

    def extend_auth_token(

    self, token, ttl)

    -
    - - - - -

    Extends an existing auth token.

    - -

    Params:

    - -
      -
    • token: A string that indicates the Pachyderm token whose TTL is -being extended.
    • -
    • ttl: An int that indicates the approximate remaining lifetime of -this token, in seconds.
    • -
    -
    -
    -
    - -
    - - -
    -
    -

    def extract(

    self, url=None, no_objects=None, no_repos=None, no_pipelines=None)

    +
    +

    def extract_auth_tokens(

    self)

    -

    Extracts cluster data for backup. Yields Op objects.

    - -

    Params:

    - -
      -
    • url: An optional string specifying an object storage URL. If set, -data will be extracted to this URL rather than returned.
    • -
    • no_objects: An optional bool. If true, will cause extract to omit -objects (and tags.)
    • -
    • no_repos: An optional bool. If true, will cause extract to omit -repos, commits and branches.
    • -
    • no_pipelines: An optional bool. If true, will cause extract to -omit pipelines.
    • -
    -
    -
    -
    - -
    - - -
    -
    -

    def extract_pipeline(

    self, pipeline_name)

    -
    - - - - -

    Extracts a pipeline for backup. Returns an Op object.

    - -

    Params:

    - -
      -
    • pipeline_name: A string representing a pipeline name to extract.
    • -
    +

    This maps to an internal function that is only used for migration. +Pachyderm's extract and restore functionality calls +extract_auth_tokens and restore_auth_tokens to move Pachyderm tokens +between clusters during migration. Currently this function is only used +for Pachyderm internals, so we're avoiding support for this function in +python-pachyderm client until we find a use for it (feel free to file an +issue in github.com/pachyderm/pachyderm).

    @@ -5482,7 +5138,7 @@

    Methods

    -

    def finish_commit(

    self, commit, description=None, input_tree_object_hash=None, tree_object_hashes=None, datum_object_hash=None, size_bytes=None, empty=None)

    +

    def finish_commit(

    self, commit, description=None, size_bytes=None, empty=None)

    @@ -5490,7 +5146,7 @@

    Methods

    Ends the process of committing data to a Repo and persists the Commit. Once a Commit is finished the data becomes immutable and -future attempts to write to it with PutFile will error.

    +future attempts to write to it with ModifyFile will error.

    Params:

    @@ -5498,11 +5154,6 @@

    Methods

  • commit: A tuple, string, or Commit object representing the commit.
  • description: An optional string describing this commit.
  • -
  • input_tree_object_hash: An optional string specifying an input tree -object hash.
  • -
  • tree_object_hashes: A list of zero or more strings specifying -object hashes for the output trees.
  • -
  • datum_object_hash: An optional string specifying an object hash.
  • size_bytes: An optional int.
  • empty: An optional bool. If set, the commit will be closed (its finished field will be set to the current time) but its tree will @@ -5616,60 +5267,15 @@

    Methods

    -
    -

    def garbage_collect(

    self, memory_bytes=None)

    -
    - - - - -

    Runs garbage collection.

    - -

    Params:

    - -
      -
    • memory_bytes: An optional int specifying how much memory to use in -computing which objects are alive. A larger number will result in more -precise garbage collection (at the cost of more memory usage).
    • -
    -
    -
    -
    - -
    - - -
    -
    -

    def get_acl(

    self, repo)

    -
    - - - - -

    Gets the ACL of a repo. Returns a GetACLResponse object.

    - -

    Params:

    - -
      -
    • repo: A string specifying the repo to get an ACL for.
    • -
    -
    -
    -
    - -
    - - -
    -
    -

    def get_admins(

    self)

    +
    +

    def get_activation_code(

    self)

    -

    Returns a list of strings specifying the cluster admins.

    +

    Returns the enterprise code used to activate Pachdyerm Enterprise in +this cluster.

    @@ -5693,48 +5299,6 @@

    Methods

    -
    -
    -

    def get_auth_token(

    self, subject, ttl=None)

    -
    - - - - -

    Gets an auth token for a subject. Returns an GetAuthTokenResponse -object.

    - -

    Params:

    - -
      -
    • subject: An optional string. The returned token will allow the -caller to access resources as this subject.
    • -
    • ttl: An optional int that indicates the approximate remaining -lifetime of this token, in seconds.
    • -
    -
    -
    -
    - -
    - - -
    -
    -

    def get_cluster_role_bindings(

    self)

    -
    - - - - -

    Returns the current set of cluster role bindings.

    -
    -
    -
    - -
    - -

    def get_enterprise_state(

    self)

    @@ -5804,9 +5368,41 @@

    Methods

    +
    +
    +

    def get_identity_server_config(

    self)

    +
    + + + + +

    Get the embedded identity server configuration

    +
    +
    +
    + +
    + + +
    +
    +

    def get_idp_connector(

    self, id)

    +
    + + + + +

    Get an IDP connector in the identity server.

    +
    +
    +
    + +
    + +
    -

    def get_job_logs(

    self, job_id, data_filters=None, datum=None, follow=None, tail=None, use_loki_backend=None)

    +

    def get_job_logs(

    self, job_id, data_filters=None, datum=None, follow=None, tail=None, use_loki_backend=None, since=None)

    @@ -5831,6 +5427,8 @@

    Methods

    get tail * total lines back.
  • use_loki_backend: Whether to use loki as a backend for fetching logs. Requires a loki-enabled cluster.
  • +
  • since: An optional Duration object specifying the start time for +returned logs
  • @@ -5840,14 +5438,14 @@

    Methods

    -
    -

    def get_oidc_login(

    self)

    +
    +

    def get_oidc_client(

    self, id)

    -

    Returns the OIDC login configuration.

    +

    Get an OIDC client in the identity server.

    @@ -5856,23 +5454,14 @@

    Methods

    -
    -

    def get_one_time_password(

    self, subject=None, ttl=None)

    +
    +

    def get_oidc_login(

    self)

    -

    If this Client is authenticated as an admin, you can generate a -one-time password for any given subject. If the caller is not an -admin or the subject is not set, a one-time password will be -returned for logged-in subject. Returns a string.

    - -

    Params:

    - -

    subject: A string. -* ttl: An optional int that indicates the approximate remaining -lifetime of this token, in seconds.

    +

    Returns the OIDC login configuration.

    @@ -5882,7 +5471,7 @@

    Methods

    -

    def get_pipeline_logs(

    self, pipeline_name, data_filters=None, master=None, datum=None, follow=None, tail=None, use_loki_backend=None)

    +

    def get_pipeline_logs(

    self, pipeline_name, data_filters=None, master=None, datum=None, follow=None, tail=None, use_loki_backend=None, since=None)

    @@ -5909,6 +5498,8 @@

    Methods

    get tail * total lines back.
  • use_loki_backend: Whether to use loki as a backend for fetching logs. Requires a loki-enabled cluster.
  • +
  • since: An optional Duration object specifying the start time for +returned logs
  • @@ -5932,27 +5523,34 @@

    Methods

    -
    -

    def get_scope(

    self, username, repos)

    +
    +

    def get_robot_token(

    self, robot, ttl=None)

    -

    Gets the auth scope. Returns a list of Scope objects.

    +

    Gets a new auth token for a robot user.

    -

    Params:

    +

    Params: +* robot: The name of the robot user. +* ttl: Optional. The expiration for the token. If empty, the token does not expire.

    +
    +
    +
    -
      -
    • username: A string specifying the principal (some of which belong -to robots rather than users, but the name is preserved for now to -provide compatibility with the pachyderm dash) whose access level is -queried. To query the access level of a robot user, the caller must -prefix username with "robot:". If 'username' has no prefix (i.e. -no ":"), then it's assumed to be a github user's principal.
    • -
    • repos: A list of strings specifying the objects to which -usernames access level is being queried
    • -
    +
    + + +
    +
    +

    def get_role_binding(

    self, resource)

    +
    + + + + +

    Returns the current set of cluster role bindings.

    @@ -6268,6 +5866,22 @@

    Methods

    +
    +
    +

    def list_clusters(

    self)

    +
    + + + + +

    List clusters registered with the license service.

    +
    +
    +
    + +
    + +

    def list_commit(

    self, repo_name, to_commit=None, from_commit=None, number=None, reverse=None)

    @@ -6300,20 +5914,19 @@

    Methods

    -

    def list_datum(

    self, job_id, page_size=None, page=None)

    +

    def list_datum(

    self, job_id=None)

    -

    Lists datums. Yields ListDatumStreamResponse objects.

    +

    Lists datums. Yields DatumInfo objects.

    Params:

      -
    • job_id: The ID of the job.
    • -
    • page_size: An optional int specifying the size of the page.
    • -
    • page: An optional int specifying the page number.
    • +
    • job_id: An optional int specifying the ID of a job. Exactly one of +job_id (real) or input (hypothetical) must be set.
    @@ -6356,7 +5969,7 @@

    Methods

    -

    def list_job(

    self, pipeline_name=None, input_commit=None, output_commit=None, history=None, full=None)

    +

    def list_job(

    self, pipeline_name=None, input_commit=None, output_commit=None, history=None, full=None, jqFilter=None)

    @@ -6388,6 +6001,8 @@

    Methods

    spec. Leaving this None (or False) can make the call significantly faster in clusters with a large number of pipelines and jobs. Note that if input_commit is set, this field is coerced to True. +
  • jqFilter: An optional string containing a jq filter that can +restrict the list of jobs returned, for convenience
  • @@ -6398,7 +6013,7 @@

    Methods

    -

    def list_pipeline(

    self, history=None)

    +

    def list_pipeline(

    self, history=None, allow_incomplete=None, jqFilter=None)

    @@ -6419,6 +6034,13 @@

    Methods

  • 2: etc.
  • -1: Return jobs from all historical versions.
  • +
  • allow_incomplete: An optional boolean that, if set to True, causes +list_pipeline to return PipelineInfos with incomplete data where the +pipeline spec cannot beretrieved. Incomplete PipelineInfos will have a +nil Transform field, but will have the fields present in +EtcdPipelineInfo.
  • +
  • jqFilter: An optional string containing a jq filter that can +restrict the list of jobs returned, for convenience
  • @@ -6476,17 +6098,16 @@

    Methods

    -
    -

    def modify_admins(

    self, add=None, remove=None)

    +
    +

    def modify_file_client(

    *args, **kwds)

    -

    Adds and/or removes admins. -Params: -* add: An optional list of strings specifying admins to add. -* remove: An optional list of strings specifying admins to remove.

    +

    A context manager that gives a ModifyFileClient. When the context +manager exits, any operations enqueued from the ModifyFileClient are +executed in a single, atomic ModifyFile call.

    @@ -6495,22 +6116,21 @@

    Methods

    -
    -

    def modify_cluster_role_binding(

    self, principal, roles=None)

    +
    +

    def modify_members(

    self, group, add=None, remove=None)

    -

    Sets the list of admin roles for a principal.

    +

    Adds and/or removes members of a group.

    Params:

      -
    • principal: A string specifying the principal.
    • -
    • roles: An optional ClusterRoles object specifying cluster-wide -permissions the principal has. If unspecified, all roles are revoked -for the principal.
    • +
    • group: A string.
    • +
    • add: An optional list of strings specifying members to add.
    • +
    • remove: An optional list of strings specifying members to remove.
    @@ -6520,21 +6140,21 @@

    Methods

    -
    -

    def modify_members(

    self, group, add=None, remove=None)

    +
    +

    def modify_role_binding(

    self, resource, principal, roles=None)

    -

    Adds and/or removes members of a group.

    +

    Sets the roles for a given principal on a resource.

    Params:

      -
    • group: A string.
    • -
    • add: An optional list of strings specifying members to add.
    • -
    • remove: An optional list of strings specifying members to remove.
    • +
    • resource: The resource to grant the roles on.
    • +
    • principal: A string specifying the principal.
    • +
    • roles: A list of roles to grant. If empty, all roles are revoked.
    @@ -6611,24 +6231,6 @@

    Methods

    -
    -
    -

    def put_file_client(

    *args, **kwds)

    -
    - - - - -

    A context manager that gives a PutFileClient. When the context -manager exits, any operations enqueued from the PutFileClient are -executed in a single, atomic PutFile call.

    -
    -
    -
    - -
    - -

    def put_file_url(

    self, commit, path, url, delimiter=None, recursive=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    @@ -6674,20 +6276,25 @@

    Methods

    -
    -

    def restart_datum(

    self, job_id, data_filters=None)

    +
    +

    def renew_tmp_file_set(

    self, fileset_id, ttl_seconds)

    -

    Restarts a datum.

    +

    Renews a temporary fileset (used internally). Currently, +temp-fileset-related APIs are only used for Pachyderm internals (job +merging), so we're avoiding support for these functions until we find a +use for them (feel free to file an issue in +github.com/pachyderm/pachyderm)

    Params:

      -
    • job_id: The ID of the job.
    • -
    • data_filters: An optional iterable of strings.
    • +
    • fileset_id: A string identifying the fileset.
    • +
    • ttl_seconds: A int determining the number of seconds to keep alive +the temporary fileset
    @@ -6697,19 +6304,20 @@

    Methods

    -
    -

    def restore(

    self, requests)

    +
    +

    def restart_datum(

    self, job_id, data_filters=None)

    -

    Restores a cluster.

    +

    Restarts a datum.

    Params:

      -
    • requests: A generator of RestoreRequest objects.
    • +
    • job_id: The ID of the job.
    • +
    • data_filters: An optional iterable of strings.
    @@ -6719,21 +6327,20 @@

    Methods

    -
    -

    def revoke_auth_token(

    self, token)

    +
    +

    def restore_auth_token(

    self, token=None)

    -

    Revokes an auth token.

    - -

    Params:

    - -
      -
    • token: A string that indicates the Pachyderm token that is being -revoked.
    • -
    +

    This maps to an internal function that is only used for migration. +Pachyderm's extract and restore functionality calls +extract_auth_tokens and restore_auth_tokens to move Pachyderm tokens +between clusters during migration. Currently this function is only used +for Pachyderm internals, so we're avoiding support for this function in +python-pachyderm client until we find a use for it (feel free to file an +issue in github.com/pachyderm/pachyderm).

    @@ -6742,20 +6349,20 @@

    Methods

    -
    -

    def run_cron(

    self, pipeline_name)

    +
    +

    def revoke_auth_token(

    self, token)

    -

    Explicitly triggers a pipeline with one or more cron inputs to run -now.

    +

    Revokes an auth token.

    Params:

      -
    • pipeline_name: A string representing the pipeline name.
    • +
    • token: A string that indicates the Pachyderm token that is being +revoked.
    @@ -6765,22 +6372,20 @@

    Methods

    -
    -

    def run_pipeline(

    self, pipeline_name, provenance=None, job_id=None)

    +
    +

    def run_cron(

    self, pipeline_name)

    -

    Runs a pipeline.

    +

    Explicitly triggers a pipeline with one or more cron inputs to run +now.

    Params:

      -
    • pipeline_name: A string representing the pipeline name.
    • -
    • provenance: An optional iterable of CommitProvenance objects -representing the pipeline execution provenance.
    • -
    • job_id: An optional string specifying a specific job ID to run.
    • +
    • pipeline_name: A string representing the pipeline name.
    @@ -6790,20 +6395,22 @@

    Methods

    -
    -

    def set_acl(

    self, repo, entries)

    +
    +

    def run_pipeline(

    self, pipeline_name, provenance=None, job_id=None)

    -

    Sets the ACL of a repo.

    +

    Runs a pipeline.

    Params:

      -
    • repo: A string specifying the repo to set an ACL on.
    • -
    • entries: A list of ACLEntry objects.
    • +
    • pipeline_name: A string representing the pipeline name.
    • +
    • provenance: An optional iterable of CommitProvenance objects +representing the pipeline execution provenance.
    • +
    • job_id: An optional string specifying a specific job ID to run.
    @@ -6858,28 +6465,19 @@

    Methods

    -
    -

    def set_scope(

    self, username, repo, scope)

    +
    +

    def set_identity_server_config(

    self, config)

    -

    Set the auth scope.

    +

    Configure the embedded identity server.

    Params:

      -
    • username: A string specifying the principal (some of which belong -to robots rather than users, but the name is preserved for now to -provide compatibility with the pachyderm dash) whose access level is -queried. To query the access level of a robot user, the caller must -prefix username with "robot:". If 'username' has no prefix (i.e. -no ":"), then it's assumed to be a github user's principal.
    • -
    • repo: A string specifying the object to which usernames access -level is being granted/revoked.
    • -
    • scope: An int specifying the access level that username will now -have. See the Scope enum for variants.
    • +
    • issuer: The issuer for the identity server.
    @@ -6897,7 +6495,7 @@

    Methods

    Begins the process of committing data to a Repo. Once started you can -write to the Commit with PutFile and when all the data has been +write to the Commit with ModifyFile and when all the data has been written you must finish the Commit with FinishCommit. NOTE, data is not persisted until FinishCommit is called. A Commit object is returned.

    @@ -7054,6 +6652,61 @@

    Methods

    +
    +
    +

    def update_cluster(

    self, cluster_id, address)

    +
    + + + + +

    Update a cluster registered with the license service.

    + +

    Params:

    + +
      +
    • cluster_id: The unique ID to identify the cluster.
    • +
    • address: A GRPC address for the license server to reach the cluster.
    • +
    +
    +
    +
    + +
    + + +
    +
    +

    def update_idp_connector(

    self, connector)

    +
    + + + + +

    Update an IDP connector in the identity server.

    +
    +
    +
    + +
    + + +
    +
    +

    def update_oidc_client(

    self, client)

    +
    + + + + +

    Update an OIDC client in the identity server.

    +
    +
    +
    + +
    + +

    def walk_file(

    self, commit, path)

    @@ -7158,10 +6811,10 @@

    Class variables

    -

    class ClusterRole

    +

    class ClusterStatus

    -

    An enumeration.

    +

    A ProtocolMessage

    @@ -7170,11 +6823,12 @@

    Class variables

    Ancestors (in MRO)

    Class variables

    -

    var FS

    +

    var DESCRIPTOR

    @@ -7184,7 +6838,7 @@

    Class variables

    -

    var SUPER

    +

    var Extensions

    @@ -7194,7 +6848,7 @@

    Class variables

    -

    var UNDEFINED

    +

    var address

    @@ -7204,7 +6858,7 @@

    Class variables

    -

    var name

    +

    var auth_enabled

    @@ -7214,7 +6868,7 @@

    Class variables

    -

    var value

    +

    var created_at

    @@ -7223,28 +6877,8 @@

    Class variables

    -
    -
    - -
    -

    class ClusterRoles

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var id

    @@ -7254,7 +6888,7 @@

    Class variables

    -

    var Extensions

    +

    var last_heartbeat

    @@ -7264,7 +6898,7 @@

    Class variables

    -

    var roles

    +

    var version

    @@ -7399,16 +7033,6 @@

    Class variables

    -
    -
    - -
    -
    -

    var datums

    - - - -
    @@ -7529,26 +7153,6 @@

    Class variables

    -
    -
    - -
    -
    -

    var tree

    - - - - -
    -
    - -
    -
    -

    var trees

    - - - -
    @@ -7846,10 +7450,10 @@

    Class variables

    -

    class Compaction

    +

    class ConfigError

    -

    A ProtocolMessage

    +

    Error for issues related to the pachyderm config file

    @@ -7858,12 +7462,12 @@

    Class variables

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var args

    @@ -7872,34 +7476,31 @@

    Class variables

    -
    -

    var Extensions

    +

    Methods

    +
    +
    +

    def __init__(

    self, message)

    +
    + - + -
    +

    Initialize self. See help(type(self)) for accurate signature.

    - -
    -
    -

    var input_prefixes

    - - - -
    -
    +
    +
    -

    class ConfigError

    +

    class CopyFileRequest

    -

    Error for issues related to the pachyderm config file

    +

    A ProtocolMessage

    @@ -7908,12 +7509,12 @@

    Class variables

    Ancestors (in MRO)

    Class variables

    -

    var args

    +

    var DESCRIPTOR

    @@ -7922,28 +7523,61 @@

    Class variables

    -

    Methods

    +
    +

    var Extensions

    -
    -
    -

    def __init__(

    self, message)

    -
    - - + -

    Initialize self. See help(type(self)) for accurate signature.

    +
    +
    + +
    +
    +

    var dst

    + + + + +
    + +
    +
    +

    var overwrite

    + + + +
    -
    +
    +
    +

    var src

    + + + + +
    +
    + +
    +
    +

    var tag

    + + + +
    +
    + +
    -

    class CopyFileRequest

    +

    class CreateBranchRequest

    A ProtocolMessage

    @@ -7960,7 +7594,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -7970,7 +7604,57 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var branch

    + + + + +
    +
    + +
    +
    +

    var head

    + + + + +
    +
    + +
    +
    +

    var provenance

    + + + + +
    +
    + +
    +
    +

    var s_branch

    + + + + +
    +
    + +
    +
    +

    var trigger

    @@ -7978,9 +7662,29 @@

    Class variables

    -
    +
    +
    +
    + +
    +

    class CreateFilesetResponse

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var dst

    +

    var DESCRIPTOR

    @@ -7990,7 +7694,7 @@

    Class variables

    -

    var overwrite

    +

    var Extensions

    @@ -8000,7 +7704,7 @@

    Class variables

    -

    var src

    +

    var fileset_id

    @@ -8013,7 +7717,7 @@

    Class variables

    -

    class CreateBranchRequest

    +

    class CreateIDPConnectorRequest

    A ProtocolMessage

    @@ -8030,7 +7734,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -8040,7 +7744,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -8050,7 +7754,7 @@

    Class variables

    -

    var branch

    +

    var connector

    @@ -8059,28 +7763,28 @@

    Class variables

    -
    -

    var head

    - - - +
    +
    + +
    +

    class CreateIDPConnectorResponse

    + -
    +

    A ProtocolMessage

    - -
    -
    -

    var provenance

    - - - -
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var s_branch

    +

    var DESCRIPTOR

    @@ -8090,7 +7794,7 @@

    Class variables

    -

    var trigger

    +

    var Extensions

    @@ -8283,7 +7987,7 @@

    Class variables

    -

    class CreateObjectRequest

    +

    class CreateOIDCClientRequest

    A ProtocolMessage

    @@ -8300,7 +8004,27 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var client

    @@ -8309,8 +8033,28 @@

    Class variables

    +
    +
    + +
    +

    class CreateOIDCClientResponse

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -8320,7 +8064,7 @@

    Class variables

    -

    var block_ref

    +

    var Extensions

    @@ -8330,7 +8074,7 @@

    Class variables

    -

    var object

    +

    var client

    @@ -8450,7 +8194,7 @@

    Class variables

    -

    var hashtree_spec

    +

    var input

    @@ -8460,7 +8204,7 @@

    Class variables

    -

    var input

    +

    var job_timeout

    @@ -8470,7 +8214,7 @@

    Class variables

    -

    var job_timeout

    +

    var max_queue_size

    @@ -8480,7 +8224,7 @@

    Class variables

    -

    var max_queue_size

    +

    var metadata

    @@ -8490,7 +8234,7 @@

    Class variables

    -

    var metadata

    +

    var no_skip

    @@ -8805,56 +8549,6 @@

    Class variables

    -
    -
    - -
    -
    -
    - -
    -

    class CreateTmpFileSetResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var fileset_id

    - - - -
    @@ -9322,7 +9016,7 @@

    Class variables

    -

    class DeleteBranchRequest

    +

    class DeleteAllResponse

    A ProtocolMessage

    @@ -9339,27 +9033,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var branch

    +

    var DESCRIPTOR

    @@ -9369,7 +9043,7 @@

    Class variables

    -

    var force

    +

    var Extensions

    @@ -9382,7 +9056,7 @@

    Class variables

    -

    class DeleteCommitRequest

    +

    class DeleteBranchRequest

    A ProtocolMessage

    @@ -9399,7 +9073,17 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    @@ -9409,7 +9093,7 @@

    Class variables

    -

    var Extensions

    +

    var branch

    @@ -9419,7 +9103,7 @@

    Class variables

    -

    var commit

    +

    var force

    @@ -9432,7 +9116,7 @@

    Class variables

    -

    class DeleteFileRequest

    +

    class DeleteClusterRequest

    A ProtocolMessage

    @@ -9449,7 +9133,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -9459,7 +9143,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -9469,7 +9153,7 @@

    Class variables

    -

    var file

    +

    var id

    @@ -9482,7 +9166,7 @@

    Class variables

    -

    class DeleteFilesRequestV2

    +

    class DeleteClusterResponse

    A ProtocolMessage

    @@ -9499,27 +9183,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var files

    +

    var DESCRIPTOR

    @@ -9529,7 +9193,7 @@

    Class variables

    -

    var tag

    +

    var Extensions

    @@ -9542,7 +9206,7 @@

    Class variables

    -

    class DeleteJobRequest

    +

    class DeleteFile

    A ProtocolMessage

    @@ -9559,7 +9223,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -9569,7 +9233,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -9579,7 +9243,17 @@

    Class variables

    -

    var job

    +

    var file

    + + + + +
    +
    + +
    +
    +

    var tag

    @@ -9592,7 +9266,7 @@

    Class variables

    -

    class DeleteObjDirectRequest

    +

    class DeleteIDPConnectorRequest

    A ProtocolMessage

    @@ -9609,17 +9283,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -9629,7 +9293,7 @@

    Class variables

    -

    var object

    +

    var Extensions

    @@ -9639,7 +9303,7 @@

    Class variables

    -

    var prefix

    +

    var id

    @@ -9652,7 +9316,7 @@

    Class variables

    -

    class DeleteObjectsRequest

    +

    class DeleteIDPConnectorResponse

    A ProtocolMessage

    @@ -9669,17 +9333,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -9689,7 +9343,7 @@

    Class variables

    -

    var objects

    +

    var Extensions

    @@ -9702,7 +9356,7 @@

    Class variables

    -

    class DeleteObjectsResponse

    +

    class DeleteJobRequest

    A ProtocolMessage

    @@ -9719,7 +9373,17 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    @@ -9729,7 +9393,7 @@

    Class variables

    -

    var Extensions

    +

    var job

    @@ -9742,7 +9406,7 @@

    Class variables

    -

    class DeletePipelineRequest

    +

    class DeleteOIDCClientRequest

    A ProtocolMessage

    @@ -9754,22 +9418,12 @@

    Class variables

    Ancestors (in MRO)

    -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    +
  • google.protobuf.pyext._message.CMessage
  • +
  • google.protobuf.message.Message
  • + +

    Class variables

    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -9779,7 +9433,7 @@

    Class variables

    -

    var all

    +

    var Extensions

    @@ -9789,7 +9443,7 @@

    Class variables

    -

    var force

    +

    var id

    @@ -9798,18 +9452,28 @@

    Class variables

    -
    -

    var keep_repo

    - - - +
    +
    + +
    +

    class DeleteOIDCClientResponse

    + +

    A ProtocolMessage

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var pipeline

    +

    var DESCRIPTOR

    @@ -9819,7 +9483,7 @@

    Class variables

    -

    var split_transaction

    +

    var Extensions

    @@ -9832,7 +9496,7 @@

    Class variables

    -

    class DeleteRepoRequest

    +

    class DeletePipelineRequest

    A ProtocolMessage

    @@ -9849,7 +9513,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -9859,7 +9523,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -9869,7 +9533,7 @@

    Class variables

    -

    var all

    +

    var all

    @@ -9879,7 +9543,7 @@

    Class variables

    -

    var force

    +

    var force

    @@ -9889,7 +9553,7 @@

    Class variables

    -

    var repo

    +

    var keep_repo

    @@ -9899,7 +9563,7 @@

    Class variables

    -

    var split_transaction

    +

    var pipeline

    @@ -9912,7 +9576,7 @@

    Class variables

    -

    class DeleteSecretRequest

    +

    class DeleteRepoRequest

    A ProtocolMessage

    @@ -9929,17 +9593,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -9949,7 +9603,7 @@

    Class variables

    -

    var secret

    +

    var Extensions

    @@ -9958,28 +9612,8 @@

    Class variables

    -
    -
    - -
    -

    class DeleteTagsRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var all

    @@ -9989,7 +9623,7 @@

    Class variables

    -

    var Extensions

    +

    var force

    @@ -9999,7 +9633,7 @@

    Class variables

    -

    var tags

    +

    var repo

    @@ -10012,7 +9646,7 @@

    Class variables

    -

    class DeleteTagsResponse

    +

    class DeleteSecretRequest

    A ProtocolMessage

    @@ -10029,7 +9663,17 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    @@ -10039,7 +9683,7 @@

    Class variables

    -

    var Extensions

    +

    var secret

    @@ -10298,67 +9942,7 @@

    Class variables

    -

    var new_files

    - - - - -
    -
    - -
    -
    -

    var old_files

    - - - - -
    -
    - -
    -
    -
    - -
    -

    class DiffFileResponseV2

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var new_file

    +

    var new_file

    @@ -10368,7 +9952,7 @@

    Class variables

    -

    var old_file

    +

    var old_file

    @@ -10661,135 +10245,45 @@

    Methods

    -
    - - -
    -
    -

    def ToSeconds(

    self)

    -
    - - - - -

    Converts a Duration to seconds.

    -
    -
    -
    - -
    - - -
    -
    -

    def ToTimedelta(

    self)

    -
    - - - - -

    Converts Duration to timedelta.

    -
    -
    -
    - -
    - -
    -
    - -
    -

    class Egress

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var URL

    - - - - -
    -
    - -
    -
    -
    - -
    -

    class Empty

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - +
    + +
    +
    +

    def ToSeconds(

    self)

    +
    + + + +

    Converts a Duration to seconds.

    +
    -
    -
    -

    var Extensions

    +
    + +
    +
    +

    def ToTimedelta(

    self)

    +
    + - + +

    Converts Duration to timedelta.

    +
    -
    +
    +
    -

    class EnterpriseRecord

    +

    class Egress

    A ProtocolMessage

    @@ -10806,17 +10300,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -10826,7 +10310,7 @@

    Class variables

    -

    var activation_code

    +

    var Extensions

    @@ -10836,7 +10320,7 @@

    Class variables

    -

    var expires

    +

    var URL

    @@ -10849,7 +10333,7 @@

    Class variables

    -

    class EtcdJobInfo

    +

    class Empty

    A ProtocolMessage

    @@ -10866,77 +10350,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var data_failed

    - - - - -
    -
    - -
    -
    -

    var data_processed

    - - - - -
    -
    - -
    -
    -

    var data_recovered

    - - - - -
    -
    - -
    -
    -

    var data_skipped

    - - - - -
    -
    - -
    -
    -

    var data_total

    - - - - -
    -
    - -
    -
    -

    var finished

    +

    var DESCRIPTOR

    @@ -10946,7 +10360,7 @@

    Class variables

    -

    var job

    +

    var Extensions

    @@ -10955,38 +10369,28 @@

    Class variables

    -
    -

    var output_commit

    - - - +
    +
    + +
    +

    class EnterpriseConfig

    + -
    +

    A ProtocolMessage

    - -
    -
    -

    var pipeline

    - - - -
    -
    -
    -

    var reason

    - - - - -
    -
    -
    +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var restart

    +

    var DESCRIPTOR

    @@ -10996,7 +10400,7 @@

    Class variables

    -

    var started

    +

    var Extensions

    @@ -11006,7 +10410,7 @@

    Class variables

    -

    var state

    +

    var id

    @@ -11016,7 +10420,7 @@

    Class variables

    -

    var stats

    +

    var license_server

    @@ -11026,7 +10430,7 @@

    Class variables

    -

    var stats_commit

    +

    var secret

    @@ -11039,7 +10443,7 @@

    Class variables

    -

    class EtcdPipelineInfo

    +

    class EnterpriseRecord

    A ProtocolMessage

    @@ -11056,7 +10460,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -11066,7 +10470,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -11076,7 +10480,7 @@

    Class variables

    -

    var JobCountsEntry

    +

    var heartbeat_failed

    @@ -11086,7 +10490,7 @@

    Class variables

    -

    var auth_token

    +

    var last_heartbeat

    @@ -11096,7 +10500,7 @@

    Class variables

    -

    var job_counts

    +

    var license

    @@ -11105,28 +10509,28 @@

    Class variables

    -
    -

    var last_job_state

    - - - +
    +
    + +
    +

    class EtcdJobInfo

    + -
    +

    A ProtocolMessage

    - -
    -
    -

    var parallelism

    - - - -
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var reason

    +

    var DESCRIPTOR

    @@ -11136,7 +10540,7 @@

    Class variables

    -

    var spec_commit

    +

    var Extensions

    @@ -11146,7 +10550,7 @@

    Class variables

    -

    var state

    +

    var data_failed

    @@ -11155,28 +10559,8 @@

    Class variables

    -
    -
    - -
    -

    class ExtendAuthTokenRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var data_processed

    @@ -11186,7 +10570,7 @@

    Class variables

    -

    var Extensions

    +

    var data_recovered

    @@ -11196,7 +10580,7 @@

    Class variables

    -

    var token

    +

    var data_skipped

    @@ -11206,7 +10590,7 @@

    Class variables

    -

    var ttl

    +

    var data_total

    @@ -11215,28 +10599,8 @@

    Class variables

    -
    -
    - -
    -

    class ExtendAuthTokenResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var finished

    @@ -11246,7 +10610,7 @@

    Class variables

    -

    var Extensions

    +

    var job

    @@ -11255,28 +10619,8 @@

    Class variables

    -
    -
    - -
    -

    class ExtractAuthTokensRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var output_commit

    @@ -11286,7 +10630,7 @@

    Class variables

    -

    var Extensions

    +

    var pipeline

    @@ -11295,28 +10639,8 @@

    Class variables

    -
    -
    - -
    -

    class ExtractAuthTokensResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var reason

    @@ -11326,7 +10650,7 @@

    Class variables

    -

    var Extensions

    +

    var restart

    @@ -11336,7 +10660,7 @@

    Class variables

    -

    var tokens

    +

    var started

    @@ -11345,28 +10669,8 @@

    Class variables

    -
    -
    - -
    -

    class ExtractPipelineRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var state

    @@ -11376,7 +10680,7 @@

    Class variables

    -

    var Extensions

    +

    var stats

    @@ -11386,7 +10690,7 @@

    Class variables

    -

    var pipeline

    +

    var stats_commit

    @@ -11399,7 +10703,7 @@

    Class variables

    -

    class ExtractRequest

    +

    class EtcdPipelineInfo

    A ProtocolMessage

    @@ -11416,7 +10720,27 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var JobCountsEntry

    @@ -11426,7 +10750,7 @@

    Class variables

    -

    var Extensions

    +

    var auth_token

    @@ -11436,7 +10760,7 @@

    Class variables

    -

    var URL

    +

    var job_counts

    @@ -11446,7 +10770,7 @@

    Class variables

    -

    var no_auth

    +

    var last_job_state

    @@ -11456,7 +10780,7 @@

    Class variables

    -

    var no_enterprise

    +

    var parallelism

    @@ -11466,7 +10790,7 @@

    Class variables

    -

    var no_objects

    +

    var reason

    @@ -11476,7 +10800,7 @@

    Class variables

    -

    var no_pipelines

    +

    var spec_commit

    @@ -11486,7 +10810,7 @@

    Class variables

    -

    var no_repos

    +

    var state

    @@ -11499,7 +10823,7 @@

    Class variables

    -

    class File

    +

    class ExtendAuthTokenRequest

    A ProtocolMessage

    @@ -11516,7 +10840,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -11526,7 +10850,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -11536,7 +10860,7 @@

    Class variables

    -

    var commit

    +

    var token

    @@ -11546,7 +10870,7 @@

    Class variables

    -

    var path

    +

    var ttl

    @@ -11559,7 +10883,7 @@

    Class variables

    -

    class FileInfo

    +

    class ExtendAuthTokenResponse

    A ProtocolMessage

    @@ -11576,7 +10900,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -11586,7 +10910,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -11595,28 +10919,28 @@

    Class variables

    -
    -

    var blockRefs

    - - - +
    +
    + +
    +

    class ExtractAuthTokensRequest

    + -
    +

    A ProtocolMessage

    - -
    -
    -

    var children

    - - - -
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var committed

    +

    var DESCRIPTOR

    @@ -11626,7 +10950,7 @@

    Class variables

    -

    var file

    +

    var Extensions

    @@ -11635,18 +10959,28 @@

    Class variables

    -
    -

    var file_type

    - - - +
    +
    + +
    +

    class ExtractAuthTokensResponse

    + +

    A ProtocolMessage

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var hash

    +

    var DESCRIPTOR

    @@ -11656,7 +10990,7 @@

    Class variables

    -

    var objects

    +

    var Extensions

    @@ -11666,7 +11000,7 @@

    Class variables

    -

    var size_bytes

    +

    var tokens

    @@ -11679,7 +11013,7 @@

    Class variables

    -

    class FileInfos

    +

    class File

    A ProtocolMessage

    @@ -11696,7 +11030,17 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    @@ -11706,7 +11050,7 @@

    Class variables

    -

    var Extensions

    +

    var commit

    @@ -11716,7 +11060,7 @@

    Class variables

    -

    var file_info

    +

    var path

    @@ -11729,7 +11073,7 @@

    Class variables

    -

    class FileOperationRequestV2

    +

    class FileInfo

    A ProtocolMessage

    @@ -11746,7 +11090,27 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var committed

    @@ -11756,7 +11120,7 @@

    Class variables

    -

    var Extensions

    +

    var file

    @@ -11766,7 +11130,7 @@

    Class variables

    -

    var commit

    +

    var file_type

    @@ -11776,7 +11140,7 @@

    Class variables

    -

    var delete_files

    +

    var hash

    @@ -11786,7 +11150,7 @@

    Class variables

    -

    var put_tar

    +

    var size_bytes

    @@ -11876,46 +11240,16 @@

    Class variables

    - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var commit

    - - - - -
    -
    - -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var datums

    +

    var DESCRIPTOR

    @@ -11925,7 +11259,7 @@

    Class variables

    -

    var description

    +

    var Extensions

    @@ -11935,7 +11269,7 @@

    Class variables

    -

    var empty

    +

    var commit

    @@ -11945,7 +11279,7 @@

    Class variables

    -

    var size_bytes

    +

    var description

    @@ -11955,7 +11289,7 @@

    Class variables

    -

    var tree

    +

    var empty

    @@ -11965,7 +11299,7 @@

    Class variables

    -

    var trees

    +

    var size_bytes

    @@ -12450,116 +11784,6 @@

    Class variables

    -
    -
    - -
    -
    -
    - -
    -

    class GetACLRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var repo

    - - - - -
    -
    - -
    -
    -
    - -
    -

    class GetACLResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var entries

    - - - - -
    -
    - -
    -
    -

    var robot_entries

    - - - -
    @@ -12678,7 +11902,7 @@

    Class variables

    -

    class GetAdminsRequest

    +

    class GetAuthTokenRequest

    A ProtocolMessage

    @@ -12695,17 +11919,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -12714,28 +11928,8 @@

    Class variables

    -
    -
    - -
    -

    class GetAdminsResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var Extensions

    @@ -12745,7 +11939,7 @@

    Class variables

    -

    var Extensions

    +

    var subject

    @@ -12755,7 +11949,7 @@

    Class variables

    -

    var admins

    +

    var ttl

    @@ -12768,7 +11962,7 @@

    Class variables

    -

    class GetAuthTokenRequest

    +

    class GetAuthTokenResponse

    A ProtocolMessage

    @@ -12785,7 +11979,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -12795,7 +11989,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -12805,7 +11999,7 @@

    Class variables

    -

    var subject

    +

    var subject

    @@ -12815,7 +12009,7 @@

    Class variables

    -

    var ttl

    +

    var token

    @@ -12828,7 +12022,7 @@

    Class variables

    -

    class GetAuthTokenResponse

    +

    class GetConfigurationRequest

    A ProtocolMessage

    @@ -12845,27 +12039,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var subject

    +

    var DESCRIPTOR

    @@ -12875,7 +12049,7 @@

    Class variables

    -

    var token

    +

    var Extensions

    @@ -12888,7 +12062,7 @@

    Class variables

    -

    class GetBlockRequest

    +

    class GetConfigurationResponse

    A ProtocolMessage

    @@ -12905,7 +12079,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -12915,7 +12089,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -12925,7 +12099,7 @@

    Class variables

    -

    var block

    +

    var configuration

    @@ -12938,7 +12112,7 @@

    Class variables

    -

    class GetBlocksRequest

    +

    class GetFileRequest

    A ProtocolMessage

    @@ -12955,27 +12129,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var blockRefs

    +

    var DESCRIPTOR

    @@ -12985,7 +12139,7 @@

    Class variables

    -

    var offset_bytes

    +

    var Extensions

    @@ -12995,7 +12149,7 @@

    Class variables

    -

    var size_bytes

    +

    var URL

    @@ -13005,7 +12159,7 @@

    Class variables

    -

    var total_size

    +

    var file

    @@ -13018,7 +12172,7 @@

    Class variables

    -

    class GetClusterRoleBindingsRequest

    +

    class GetFilesetRequest

    A ProtocolMessage

    @@ -13035,7 +12189,17 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    @@ -13045,7 +12209,7 @@

    Class variables

    -

    var Extensions

    +

    var commit

    @@ -13058,7 +12222,7 @@

    Class variables

    -

    class GetClusterRoleBindingsResponse

    +

    class GetGroupsRequest

    A ProtocolMessage

    @@ -13075,17 +12239,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var BindingsEntry

    - - - - -
    -
    - -
    -
    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -13095,7 +12249,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -13105,7 +12259,7 @@

    Class variables

    -

    var bindings

    +

    var username

    @@ -13118,7 +12272,7 @@

    Class variables

    -

    class GetConfigurationRequest

    +

    class GetGroupsResponse

    A ProtocolMessage

    @@ -13135,7 +12289,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -13145,7 +12299,17 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var groups

    @@ -13158,7 +12322,7 @@

    Class variables

    -

    class GetConfigurationResponse

    +

    class GetIDPConnectorRequest

    A ProtocolMessage

    @@ -13175,7 +12339,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -13185,7 +12349,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -13195,7 +12359,7 @@

    Class variables

    -

    var configuration

    +

    var id

    @@ -13208,7 +12372,7 @@

    Class variables

    -

    class GetFileRequest

    +

    class GetIDPConnectorResponse

    A ProtocolMessage

    @@ -13225,27 +12389,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var file

    +

    var DESCRIPTOR

    @@ -13255,7 +12399,7 @@

    Class variables

    -

    var offset_bytes

    +

    var Extensions

    @@ -13265,7 +12409,7 @@

    Class variables

    -

    var size_bytes

    +

    var connector

    @@ -13278,7 +12422,7 @@

    Class variables

    -

    class GetGroupsRequest

    +

    class GetIdentityServerConfigRequest

    A ProtocolMessage

    @@ -13295,17 +12439,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -13315,7 +12449,7 @@

    Class variables

    -

    var username

    +

    var Extensions

    @@ -13328,7 +12462,7 @@

    Class variables

    -

    class GetGroupsResponse

    +

    class GetIdentityServerConfigResponse

    A ProtocolMessage

    @@ -13345,7 +12479,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -13355,7 +12489,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -13365,7 +12499,7 @@

    Class variables

    -

    var groups

    +

    var config

    @@ -13508,7 +12642,7 @@

    Class variables

    -

    class GetOIDCLoginRequest

    +

    class GetOIDCClientRequest

    A ProtocolMessage

    @@ -13525,7 +12659,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -13535,7 +12669,17 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var id

    @@ -13548,7 +12692,7 @@

    Class variables

    -

    class GetOIDCLoginResponse

    +

    class GetOIDCClientResponse

    A ProtocolMessage

    @@ -13565,17 +12709,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -13585,7 +12719,7 @@

    Class variables

    -

    var login_url

    +

    var Extensions

    @@ -13595,7 +12729,7 @@

    Class variables

    -

    var state

    +

    var client

    @@ -13608,7 +12742,7 @@

    Class variables

    -

    class GetObjDirectRequest

    +

    class GetOIDCLoginRequest

    A ProtocolMessage

    @@ -13625,17 +12759,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -13645,7 +12769,7 @@

    Class variables

    -

    var obj

    +

    var Extensions

    @@ -13658,7 +12782,7 @@

    Class variables

    -

    class GetObjectsRequest

    +

    class GetOIDCLoginResponse

    A ProtocolMessage

    @@ -13675,27 +12799,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var objects

    +

    var DESCRIPTOR

    @@ -13705,7 +12809,7 @@

    Class variables

    -

    var offset_bytes

    +

    var Extensions

    @@ -13715,7 +12819,7 @@

    Class variables

    -

    var size_bytes

    +

    var login_url

    @@ -13725,7 +12829,7 @@

    Class variables

    -

    var total_size

    +

    var state

    @@ -13738,7 +12842,7 @@

    Class variables

    -

    class GetOneTimePasswordRequest

    +

    class GetRobotTokenRequest

    A ProtocolMessage

    @@ -13755,7 +12859,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -13765,7 +12869,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -13775,7 +12879,7 @@

    Class variables

    -

    var subject

    +

    var robot

    @@ -13785,7 +12889,7 @@

    Class variables

    -

    var ttl

    +

    var ttl

    @@ -13798,7 +12902,7 @@

    Class variables

    -

    class GetOneTimePasswordResponse

    +

    class GetRobotTokenResponse

    A ProtocolMessage

    @@ -13815,17 +12919,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -13835,7 +12929,7 @@

    Class variables

    -

    var code

    +

    var Extensions

    @@ -13845,7 +12939,7 @@

    Class variables

    -

    var otp_expiration

    +

    var token

    @@ -13858,7 +12952,7 @@

    Class variables

    -

    class GetScopeRequest

    +

    class GetRoleBindingRequest

    A ProtocolMessage

    @@ -13875,17 +12969,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -13895,7 +12979,7 @@

    Class variables

    -

    var repos

    +

    var Extensions

    @@ -13905,7 +12989,7 @@

    Class variables

    -

    var username

    +

    var resource

    @@ -13918,7 +13002,7 @@

    Class variables

    -

    class GetScopeResponse

    +

    class GetRoleBindingResponse

    A ProtocolMessage

    @@ -13935,7 +13019,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -13945,7 +13029,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -13955,7 +13039,7 @@

    Class variables

    -

    var scopes

    +

    var binding

    @@ -14070,56 +13154,6 @@

    Class variables

    -
    -
    - -
    -
    -
    - -
    -

    class GetTarRequestV2

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var file

    - - - -
    @@ -14498,7 +13532,87 @@

    Class variables

    -

    class HashtreeSpec

    +

    class HeartbeatRequest

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    +
    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var auth_enabled

    + + + + +
    +
    + +
    +
    +

    var id

    + + + + +
    +
    + +
    +
    +

    var secret

    + + + + +
    +
    + +
    +
    +

    var version

    + + + + +
    +
    + +
    +
    +
    + +
    +

    class HeartbeatResponse

    A ProtocolMessage

    @@ -14515,7 +13629,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -14525,7 +13639,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -14535,7 +13649,7 @@

    Class variables

    -

    var constant

    +

    var license

    @@ -14548,7 +13662,7 @@

    Class variables

    -

    class IDProvider

    +

    class IDPConnector

    A ProtocolMessage

    @@ -14565,7 +13679,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -14575,7 +13689,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -14585,7 +13699,7 @@

    Class variables

    -

    var GitHubOptions

    +

    var configVersion

    @@ -14595,7 +13709,7 @@

    Class variables

    -

    var OIDCOptions

    +

    var id

    @@ -14605,7 +13719,7 @@

    Class variables

    -

    var SAMLOptions

    +

    var jsonConfig

    @@ -14615,7 +13729,7 @@

    Class variables

    -

    var description

    +

    var name

    @@ -14625,7 +13739,7 @@

    Class variables

    -

    var github

    +

    var type

    @@ -14634,8 +13748,28 @@

    Class variables

    +
    +
    + +
    +

    class IdentityServerConfig

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var name

    +

    var DESCRIPTOR

    @@ -14645,7 +13779,7 @@

    Class variables

    -

    var oidc

    +

    var Extensions

    @@ -14655,7 +13789,7 @@

    Class variables

    -

    var saml

    +

    var issuer

    @@ -15438,264 +14572,14 @@

    Class variables

    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var id

    - - - - -
    -
    - -
    -
    -
    - -
    -

    class JobInfo

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var chunk_spec

    - - - - -
    -
    - -
    -
    -

    var data_failed

    - - - - -
    -
    - -
    -
    -

    var data_processed

    - - - - -
    -
    - -
    -
    -

    var data_recovered

    - - - - -
    -
    - -
    -
    -

    var data_skipped

    - - - - -
    -
    - -
    -
    -

    var data_total

    - - - - -
    -
    - -
    -
    -

    var datum_timeout

    - - - - -
    -
    - -
    -
    -

    var datum_tries

    - - - - -
    -
    - -
    -
    -

    var egress

    - - - - -
    -
    - -
    -
    -

    var enable_stats

    - - - - -
    -
    - -
    -
    -

    var finished

    - - - - -
    -
    - -
    -
    -

    var input

    - - - - -
    -
    - -
    -
    -

    var job

    - - - - -
    -
    - -
    -
    -

    var job_timeout

    - - - - -
    -
    - -
    -
    -

    var new_branch

    - - - - -
    -
    - -
    -
    -

    var output_branch

    - - - - -
    -
    - -
    -
    -

    var output_commit

    - - - - -
    -
    - -
    -
    -

    var output_repo

    - - - - -
    -
    - -
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var parallelism_spec

    +

    var DESCRIPTOR

    @@ -15705,7 +14589,7 @@

    Class variables

    -

    var parent_job

    +

    var Extensions

    @@ -15715,7 +14599,7 @@

    Class variables

    -

    var pipeline

    +

    var id

    @@ -15724,18 +14608,28 @@

    Class variables

    -
    -

    var pipeline_version

    - - - +
    +
    + +
    +

    class JobInfo

    + +

    A ProtocolMessage

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var pod_patch

    +

    var DESCRIPTOR

    @@ -15745,7 +14639,7 @@

    Class variables

    -

    var pod_spec

    +

    var Extensions

    @@ -15755,7 +14649,7 @@

    Class variables

    -

    var reason

    +

    var chunk_spec

    @@ -15765,7 +14659,7 @@

    Class variables

    -

    var resource_limits

    +

    var data_failed

    @@ -15775,7 +14669,7 @@

    Class variables

    -

    var resource_requests

    +

    var data_processed

    @@ -15785,7 +14679,7 @@

    Class variables

    -

    var restart

    +

    var data_recovered

    @@ -15795,7 +14689,7 @@

    Class variables

    -

    var salt

    +

    var data_skipped

    @@ -15805,7 +14699,7 @@

    Class variables

    -

    var scheduling_spec

    +

    var data_total

    @@ -15815,7 +14709,7 @@

    Class variables

    -

    var service

    +

    var datum_timeout

    @@ -15825,7 +14719,7 @@

    Class variables

    -

    var sidecar_resource_limits

    +

    var datum_tries

    @@ -15835,7 +14729,7 @@

    Class variables

    -

    var spec_commit

    +

    var egress

    @@ -15845,7 +14739,7 @@

    Class variables

    -

    var spout

    +

    var enable_stats

    @@ -15855,7 +14749,7 @@

    Class variables

    -

    var started

    +

    var finished

    @@ -15865,7 +14759,7 @@

    Class variables

    -

    var state

    +

    var input

    @@ -15875,7 +14769,7 @@

    Class variables

    -

    var stats

    +

    var job

    @@ -15885,7 +14779,7 @@

    Class variables

    -

    var stats_commit

    +

    var job_timeout

    @@ -15895,7 +14789,7 @@

    Class variables

    -

    var transform

    +

    var new_branch

    @@ -15905,7 +14799,7 @@

    Class variables

    -

    var worker_status

    +

    var output_branch

    @@ -15914,28 +14808,8 @@

    Class variables

    -
    -
    - -
    -

    class JobInfos

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var output_commit

    @@ -15945,7 +14819,7 @@

    Class variables

    -

    var Extensions

    +

    var output_repo

    @@ -15955,7 +14829,7 @@

    Class variables

    -

    var job_info

    +

    var parallelism_spec

    @@ -15964,28 +14838,8 @@

    Class variables

    -
    -
    - -
    -

    class JobInput

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var parent_job

    @@ -15995,7 +14849,7 @@

    Class variables

    -

    var Extensions

    +

    var pipeline

    @@ -16005,7 +14859,7 @@

    Class variables

    -

    var commit

    +

    var pipeline_version

    @@ -16015,7 +14869,7 @@

    Class variables

    -

    var glob

    +

    var pod_patch

    @@ -16025,7 +14879,7 @@

    Class variables

    -

    var lazy

    +

    var pod_spec

    @@ -16035,7 +14889,7 @@

    Class variables

    -

    var name

    +

    var reason

    @@ -16044,27 +14898,8 @@

    Class variables

    -
    -
    - -
    -

    class JobState

    - - -

    An enumeration.

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var JOB_EGRESSING

    +

    var resource_limits

    @@ -16074,7 +14909,7 @@

    Class variables

    -

    var JOB_FAILURE

    +

    var resource_requests

    @@ -16084,7 +14919,7 @@

    Class variables

    -

    var JOB_KILLED

    +

    var restart

    @@ -16094,7 +14929,7 @@

    Class variables

    -

    var JOB_MERGING

    +

    var salt

    @@ -16104,7 +14939,7 @@

    Class variables

    -

    var JOB_RUNNING

    +

    var scheduling_spec

    @@ -16114,7 +14949,7 @@

    Class variables

    -

    var JOB_STARTING

    +

    var service

    @@ -16124,7 +14959,7 @@

    Class variables

    -

    var JOB_SUCCESS

    +

    var sidecar_resource_limits

    @@ -16134,7 +14969,7 @@

    Class variables

    -

    var name

    +

    var spec_commit

    @@ -16144,7 +14979,7 @@

    Class variables

    -

    var value

    +

    var spout

    @@ -16153,28 +14988,8 @@

    Class variables

    -
    -
    - -
    -

    class ListBlockRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var started

    @@ -16184,7 +14999,7 @@

    Class variables

    -

    var Extensions

    +

    var state

    @@ -16193,28 +15008,8 @@

    Class variables

    -
    -
    - -
    -

    class ListBranchRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var stats

    @@ -16224,7 +15019,7 @@

    Class variables

    -

    var Extensions

    +

    var stats_commit

    @@ -16234,7 +15029,7 @@

    Class variables

    -

    var repo

    +

    var transform

    @@ -16244,7 +15039,7 @@

    Class variables

    -

    var reverse

    +

    var worker_status

    @@ -16257,7 +15052,7 @@

    Class variables

    -

    class ListCommitRequest

    +

    class JobInput

    A ProtocolMessage

    @@ -16274,17 +15069,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -16294,7 +15079,7 @@

    Class variables

    -

    var from

    +

    var Extensions

    @@ -16304,7 +15089,7 @@

    Class variables

    -

    var number

    +

    var commit

    @@ -16314,7 +15099,7 @@

    Class variables

    -

    var repo

    +

    var glob

    @@ -16324,7 +15109,7 @@

    Class variables

    -

    var reverse

    +

    var lazy

    @@ -16334,7 +15119,7 @@

    Class variables

    -

    var to

    +

    var name

    @@ -16347,10 +15132,10 @@

    Class variables

    -

    class ListDatumRequest

    +

    class JobState

    -

    A ProtocolMessage

    +

    An enumeration.

    @@ -16359,12 +15144,31 @@

    Class variables

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var JOB_EGRESSING

    + + + + +
    +
    + +
    +
    +

    var JOB_FAILURE

    + + + + +
    +
    + +
    +
    +

    var JOB_KILLED

    @@ -16374,7 +15178,7 @@

    Class variables

    -

    var Extensions

    +

    var JOB_RUNNING

    @@ -16384,7 +15188,7 @@

    Class variables

    -

    var input

    +

    var JOB_STARTING

    @@ -16394,7 +15198,7 @@

    Class variables

    -

    var job

    +

    var JOB_SUCCESS

    @@ -16404,7 +15208,7 @@

    Class variables

    -

    var page

    +

    var name

    @@ -16414,7 +15218,7 @@

    Class variables

    -

    var page_size

    +

    var value

    @@ -16427,7 +15231,7 @@

    Class variables

    -

    class ListDatumResponse

    +

    class LicenseRecord

    A ProtocolMessage

    @@ -16444,17 +15248,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -16464,7 +15258,7 @@

    Class variables

    -

    var datum_infos

    +

    var Extensions

    @@ -16474,7 +15268,7 @@

    Class variables

    -

    var page

    +

    var activation_code

    @@ -16484,7 +15278,7 @@

    Class variables

    -

    var total_pages

    +

    var expires

    @@ -16497,7 +15291,7 @@

    Class variables

    -

    class ListDatumStreamResponse

    +

    class ListBranchRequest

    A ProtocolMessage

    @@ -16514,17 +15308,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -16534,7 +15318,7 @@

    Class variables

    -

    var datum_info

    +

    var Extensions

    @@ -16544,7 +15328,7 @@

    Class variables

    -

    var page

    +

    var repo

    @@ -16554,7 +15338,7 @@

    Class variables

    -

    var total_pages

    +

    var reverse

    @@ -16567,7 +15351,7 @@

    Class variables

    -

    class ListFileRequest

    +

    class ListClustersRequest

    A ProtocolMessage

    @@ -16584,7 +15368,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -16594,7 +15378,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -16603,8 +15387,28 @@

    Class variables

    +
    +
    + +
    +

    class ListClustersResponse

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var file

    +

    var DESCRIPTOR

    @@ -16614,7 +15418,7 @@

    Class variables

    -

    var full

    +

    var Extensions

    @@ -16624,7 +15428,7 @@

    Class variables

    -

    var history

    +

    var clusters

    @@ -16637,7 +15441,7 @@

    Class variables

    -

    class ListJobRequest

    +

    class ListCommitRequest

    A ProtocolMessage

    @@ -16654,17 +15458,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -16674,7 +15468,7 @@

    Class variables

    -

    var full

    +

    var Extensions

    @@ -16684,7 +15478,7 @@

    Class variables

    -

    var history

    +

    var from

    @@ -16694,7 +15488,7 @@

    Class variables

    -

    var input_commit

    +

    var number

    @@ -16704,7 +15498,7 @@

    Class variables

    -

    var jqFilter

    +

    var repo

    @@ -16714,7 +15508,7 @@

    Class variables

    -

    var output_commit

    +

    var reverse

    @@ -16724,7 +15518,7 @@

    Class variables

    -

    var pipeline

    +

    var to

    @@ -16737,7 +15531,7 @@

    Class variables

    -

    class ListObjectsRequest

    +

    class ListDatumRequest

    A ProtocolMessage

    @@ -16754,7 +15548,17 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    @@ -16764,7 +15568,7 @@

    Class variables

    -

    var Extensions

    +

    var job

    @@ -16777,7 +15581,7 @@

    Class variables

    -

    class ListPipelineRequest

    +

    class ListFileRequest

    A ProtocolMessage

    @@ -16794,27 +15598,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var allow_incomplete

    +

    var DESCRIPTOR

    @@ -16824,7 +15608,7 @@

    Class variables

    -

    var history

    +

    var Extensions

    @@ -16834,7 +15618,7 @@

    Class variables

    -

    var jqFilter

    +

    var file

    @@ -16844,7 +15628,7 @@

    Class variables

    -

    var pipeline

    +

    var full

    @@ -16857,7 +15641,7 @@

    Class variables

    -

    class ListRepoRequest

    +

    class ListIDPConnectorsRequest

    A ProtocolMessage

    @@ -16874,7 +15658,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -16884,7 +15668,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -16897,7 +15681,7 @@

    Class variables

    -

    class ListRepoResponse

    +

    class ListIDPConnectorsResponse

    A ProtocolMessage

    @@ -16914,7 +15698,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -16924,7 +15708,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -16934,7 +15718,7 @@

    Class variables

    -

    var repo_info

    +

    var connectors

    @@ -16947,7 +15731,7 @@

    Class variables

    -

    class ListTagsRequest

    +

    class ListJobRequest

    A ProtocolMessage

    @@ -16964,7 +15748,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -16974,7 +15758,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -16984,7 +15768,7 @@

    Class variables

    -

    var include_object

    +

    var full

    @@ -16994,7 +15778,7 @@

    Class variables

    -

    var prefix

    +

    var history

    @@ -17003,28 +15787,8 @@

    Class variables

    -
    -
    - -
    -

    class ListTagsResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var input_commit

    @@ -17034,7 +15798,7 @@

    Class variables

    -

    var Extensions

    +

    var jqFilter

    @@ -17044,7 +15808,7 @@

    Class variables

    -

    var object

    +

    var output_commit

    @@ -17054,7 +15818,7 @@

    Class variables

    -

    var tag

    +

    var pipeline

    @@ -17067,7 +15831,7 @@

    Class variables

    -

    class ListTransactionRequest

    +

    class ListOIDCClientsRequest

    A ProtocolMessage

    @@ -17084,7 +15848,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -17094,7 +15858,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -17107,7 +15871,7 @@

    Class variables

    -

    class LogMessage

    +

    class ListOIDCClientsResponse

    A ProtocolMessage

    @@ -17124,7 +15888,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -17134,7 +15898,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -17144,7 +15908,7 @@

    Class variables

    -

    var data

    +

    var clients

    @@ -17153,28 +15917,28 @@

    Class variables

    -
    -

    var datum_id

    - - - +
    +
    + +
    +

    class ListPipelineRequest

    + -
    +

    A ProtocolMessage

    - -
    -
    -

    var job_id

    - - - -
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var master

    +

    var DESCRIPTOR

    @@ -17184,7 +15948,7 @@

    Class variables

    -

    var message

    +

    var Extensions

    @@ -17194,7 +15958,7 @@

    Class variables

    -

    var pipeline_name

    +

    var allow_incomplete

    @@ -17204,7 +15968,7 @@

    Class variables

    -

    var ts

    +

    var history

    @@ -17214,7 +15978,7 @@

    Class variables

    -

    var user

    +

    var jqFilter

    @@ -17224,7 +15988,7 @@

    Class variables

    -

    var worker_id

    +

    var pipeline

    @@ -17237,7 +16001,7 @@

    Class variables

    -

    class Metadata

    +

    class ListRepoRequest

    A ProtocolMessage

    @@ -17254,47 +16018,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var AnnotationsEntry

    - - - - -
    -
    - -
    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var LabelsEntry

    - - - - -
    -
    - -
    -
    -

    var annotations

    +

    var DESCRIPTOR

    @@ -17304,7 +16028,7 @@

    Class variables

    -

    var labels

    +

    var Extensions

    @@ -17317,7 +16041,7 @@

    Class variables

    -

    class ModifyAdminsRequest

    +

    class ListRepoResponse

    A ProtocolMessage

    @@ -17334,17 +16058,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -17354,7 +16068,7 @@

    Class variables

    -

    var add

    +

    var Extensions

    @@ -17364,7 +16078,7 @@

    Class variables

    -

    var remove

    +

    var repo_info

    @@ -17377,7 +16091,7 @@

    Class variables

    -

    class ModifyAdminsResponse

    +

    class ListTransactionRequest

    A ProtocolMessage

    @@ -17394,7 +16108,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -17404,7 +16118,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -17417,7 +16131,7 @@

    Class variables

    -

    class ModifyClusterRoleBindingRequest

    +

    class LogMessage

    A ProtocolMessage

    @@ -17434,7 +16148,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -17444,7 +16158,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -17454,7 +16168,7 @@

    Class variables

    -

    var principal

    +

    var data

    @@ -17464,7 +16178,7 @@

    Class variables

    -

    var roles

    +

    var datum_id

    @@ -17473,28 +16187,8 @@

    Class variables

    -
    -
    - -
    -

    class ModifyClusterRoleBindingResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var job_id

    @@ -17504,7 +16198,7 @@

    Class variables

    -

    var Extensions

    +

    var master

    @@ -17513,28 +16207,8 @@

    Class variables

    -
    -
    - -
    -

    class ModifyMembersRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var message

    @@ -17544,7 +16218,7 @@

    Class variables

    -

    var Extensions

    +

    var pipeline_name

    @@ -17554,7 +16228,7 @@

    Class variables

    -

    var add

    +

    var ts

    @@ -17564,7 +16238,7 @@

    Class variables

    -

    var group

    +

    var user

    @@ -17574,7 +16248,7 @@

    Class variables

    -

    var remove

    +

    var worker_id

    @@ -17587,7 +16261,7 @@

    Class variables

    -

    class ModifyMembersResponse

    +

    class Metadata

    A ProtocolMessage

    @@ -17604,7 +16278,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var AnnotationsEntry

    @@ -17614,7 +16288,7 @@

    Class variables

    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -17623,28 +16297,8 @@

    Class variables

    -
    -
    - -
    -

    class OTPInfo

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var Extensions

    @@ -17654,7 +16308,7 @@

    Class variables

    -

    var Extensions

    +

    var LabelsEntry

    @@ -17664,7 +16318,7 @@

    Class variables

    -

    var session_expiration

    +

    var annotations

    @@ -17674,7 +16328,7 @@

    Class variables

    -

    var subject

    +

    var labels

    @@ -17687,57 +16341,246 @@

    Class variables

    -

    class Object

    +

    class ModifyFileClient

    -

    A ProtocolMessage

    +

    ModifyFileClient puts or deletes PFS files atomically.

    -

    Ancestors (in MRO)

    - -

    Class variables

    +

    Instance variables

    -

    var DESCRIPTOR

    +

    var commit

    + + + + +
    +
    + +
    +

    Methods

    + +
    +
    +

    def __init__(

    self, commit)

    +
    + + + + +

    Initialize self. See help(type(self)) for accurate signature.

    +
    +
    +
    + +
    + + +
    +
    +

    def delete_file(

    self, path)

    +
    + + + + +

    Deletes a file.

    + +

    Params:

    + +
      +
    • commit: A tuple, string, or Commit object representing the +commit.
    • +
    • path: The path to the file.
    • +
    +
    +
    +
    + +
    + + +
    +
    +

    def put_file_from_bytes(

    self, path, value, overwrite=False, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +
    + + + + +

    Uploads a PFS file from a bytestring.

    + +

    Params:

    + +
      +
    • path: A string specifying the path in the repo the file(s) will be +written to.
    • +
    • value: The file contents as a bytestring.
    • +
    • overwrite: Optional. When true, the existing file is replaced with +new data. When false, the new data is appended to the existing file.
    • +
    • delimiter: An optional int. causes data to be broken up into +separate files by the delimiter. e.g. if you used +Delimiter.CSV.value, a separate PFS file will be created for each +row in the input CSV file, rather than one large CSV file.
    • +
    • target_file_datums: An optional int. Specifies the target number of +datums in each written file. It may be lower if data does not split +evenly, but will never be higher, unless the value is 0.
    • +
    • target_file_bytes: An optional int. Specifies the target number of +bytes in each written file, files may have more or fewer bytes than +the target.
    • +
    • overwrite_index: An optional int. This is the object index where +the write starts from. All existing objects starting from the index +are deleted.
    • +
    • header_records: An optional int for splitting data whendelimiter +is notNONE(orSQL`). It specifies the number of records that are +converted to a header and applied to all file shards.
    • +
    +
    +
    +
    + +
    + +
    +
    +

    def put_file_from_fileobj(

    self, path, value, overwrite=False, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +
    + + + + +

    Uploads a PFS file from a file-like object.

    + +

    Params:

    + +
      +
    • path: A string specifying the path in the repo the file(s) will be +written to.
    • +
    • value: The file-like object.
    • +
    • overwrite: Optional. When true, the existing file is replaced with +new data. When false, the new data is appended to the existing file.
    • +
    • delimiter: An optional int. causes data to be broken up into +separate files by the delimiter. e.g. if you used +Delimiter.CSV.value, a separate PFS file will be created for each +row in the input CSV file, rather than one large CSV file.
    • +
    • target_file_datums: An optional int. Specifies the target number of +datums in each written file. It may be lower if data does not split +evenly, but will never be higher, unless the value is 0.
    • +
    • target_file_bytes: An optional int. Specifies the target number of +bytes in each written file, files may have more or fewer bytes than +the target.
    • +
    • overwrite_index: An optional int. This is the object index where +the write starts from. All existing objects starting from the index +are deleted.
    • +
    • header_records: An optional int for splitting data whendelimiter +is notNONE(orSQL`). It specifies the number of records that are +converted to a header and applied to all file shards.
    • +
    +
    +
    +
    +
    + +
    +
    +

    def put_file_from_filepath(

    self, pfs_path, local_path, overwrite=False, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +
    + + + +

    Uploads a PFS file from a local path at a specified path. This will +lazily open files, which will prevent too many files from being +opened, or too much memory being consumed, when atomically putting +many files.

    + +

    Params:

    + +
      +
    • pfs_path: A string specifying the path in the repo the file(s) +will be written to.
    • +
    • local_path: A string specifying the local file path.
    • +
    • overwrite: Optional. When true, the existing file is replaced with +new data. When false, the new data is appended to the existing file.
    • +
    • delimiter: An optional int. causes data to be broken up into +separate files by the delimiter. e.g. if you used +Delimiter.CSV.value, a separate PFS file will be created for each +row in the input CSV file, rather than one large CSV file.
    • +
    • target_file_datums: An optional int. Specifies the target number of +datums in each written file. It may be lower if data does not split +evenly, but will never be higher, unless the value is 0.
    • +
    • target_file_bytes: An optional int. Specifies the target number of +bytes in each written file, files may have more or fewer bytes than +the target.
    • +
    • overwrite_index: An optional int. This is the object index where +the write starts from. All existing objects starting from the index +are deleted.
    • +
    • header_records: An optional int for splitting data whendelimiter +is notNONE(orSQL`). It specifies the number of records that are +converted to a header and applied to all file shards.
    • +
    +
    -
    -
    -

    var Extensions

    +
    + +
    +
    +

    def put_file_from_url(

    self, path, url, overwrite=False, delimiter=None, recursive=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +
    + - + -
    -
    +

    Puts a file using the content found at a URL. The URL is sent to the +server which performs the request.

    -
    -
    -

    var hash

    - +

    Params:

    - - +
      +
    • path: A string specifying the path to the file.
    • +
    • url: A string specifying the url of the file to put.
    • +
    • overwrite: Optional. When true, the existing file is replaced with +new data. When false, the new data is appended to the existing file.
    • +
    • delimiter: An optional int. causes data to be broken up into +separate files by the delimiter. e.g. if you used +Delimiter.CSV.value, a separate PFS file will be created for each +row in the input CSV file, rather than one large CSV file.
    • +
    • recursive: allow for recursive scraping of some types URLs, for +example on s3:// URLs.
    • +
    • target_file_datums: An optional int. Specifies the target number of +datums in each written file. It may be lower if data does not split +evenly, but will never be higher, unless the value is 0.
    • +
    • target_file_bytes: An optional int. Specifies the target number of +bytes in each written file, files may have more or fewer bytes than +the target.
    • +
    • overwrite_index: An optional int. This is the object index where +the write starts from. All existing objects starting from the index +are deleted.
    • +
    • header_records: An optional int for splitting data whendelimiter +is notNONE(orSQL`). It specifies the number of records that are +converted to a header and applied to all file shards.
    • +
    +
    -
    +
    +
    -

    class ObjectIndex

    +

    class ModifyFileRequest

    A ProtocolMessage

    @@ -17754,17 +16597,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -17774,7 +16607,7 @@

    Class variables

    -

    var ObjectsEntry

    +

    var Extensions

    @@ -17784,7 +16617,7 @@

    Class variables

    -

    var TagsEntry

    +

    var append_file

    @@ -17794,7 +16627,7 @@

    Class variables

    -

    var objects

    +

    var commit

    @@ -17804,7 +16637,7 @@

    Class variables

    -

    var tags

    +

    var delete_file

    @@ -17817,7 +16650,7 @@

    Class variables

    -

    class ObjectInfo

    +

    class ModifyMembersRequest

    A ProtocolMessage

    @@ -17834,7 +16667,17 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    @@ -17844,7 +16687,7 @@

    Class variables

    -

    var Extensions

    +

    var add

    @@ -17854,7 +16697,7 @@

    Class variables

    -

    var block_ref

    +

    var group

    @@ -17864,7 +16707,7 @@

    Class variables

    -

    var object

    +

    var remove

    @@ -17877,7 +16720,7 @@

    Class variables

    -

    class Objects

    +

    class ModifyMembersResponse

    A ProtocolMessage

    @@ -17894,17 +16737,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -17914,7 +16747,7 @@

    Class variables

    -

    var objects

    +

    var Extensions

    @@ -17927,7 +16760,7 @@

    Class variables

    -

    class Op

    +

    class ModifyRoleBindingRequest

    A ProtocolMessage

    @@ -17944,37 +16777,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var op1_10

    - - - - -
    -
    - -
    -
    -

    var op1_11

    +

    var DESCRIPTOR

    @@ -17984,7 +16787,7 @@

    Class variables

    -

    var op1_12

    +

    var Extensions

    @@ -17994,7 +16797,7 @@

    Class variables

    -

    var op1_7

    +

    var principal

    @@ -18004,7 +16807,7 @@

    Class variables

    -

    var op1_8

    +

    var resource

    @@ -18014,7 +16817,7 @@

    Class variables

    -

    var op1_9

    +

    var roles

    @@ -18027,7 +16830,7 @@

    Class variables

    -

    class Op1_10

    +

    class ModifyRoleBindingResponse

    A ProtocolMessage

    @@ -18044,7 +16847,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -18054,7 +16857,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -18063,28 +16866,28 @@

    Class variables

    -
    -

    var block

    - - - +
    +
    + +
    +

    class OIDCClient

    + -
    +

    A ProtocolMessage

    - -
    -
    -

    var branch

    - - - -
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var commit

    +

    var DESCRIPTOR

    @@ -18094,7 +16897,7 @@

    Class variables

    -

    var create_object

    +

    var Extensions

    @@ -18104,7 +16907,7 @@

    Class variables

    -

    var job

    +

    var id

    @@ -18114,7 +16917,7 @@

    Class variables

    -

    var object

    +

    var name

    @@ -18124,7 +16927,7 @@

    Class variables

    -

    var pipeline

    +

    var redirect_uris

    @@ -18134,7 +16937,7 @@

    Class variables

    -

    var repo

    +

    var secret

    @@ -18144,7 +16947,7 @@

    Class variables

    -

    var tag

    +

    var trusted_peers

    @@ -18157,7 +16960,7 @@

    Class variables

    -

    class Op1_11

    +

    class OIDCConfig

    A ProtocolMessage

    @@ -18174,7 +16977,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -18184,7 +16987,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -18194,7 +16997,7 @@

    Class variables

    -

    var activate_auth

    +

    var additional_scopes

    @@ -18204,7 +17007,7 @@

    Class variables

    -

    var activate_enterprise

    +

    var client_id

    @@ -18214,7 +17017,7 @@

    Class variables

    -

    var block

    +

    var client_secret

    @@ -18224,7 +17027,7 @@

    Class variables

    -

    var branch

    +

    var ignore_email_verified

    @@ -18234,7 +17037,7 @@

    Class variables

    -

    var check_auth_token

    +

    var issuer

    @@ -18244,7 +17047,7 @@

    Class variables

    -

    var commit

    +

    var localhost_issuer

    @@ -18254,7 +17057,7 @@

    Class variables

    -

    var create_object

    +

    var redirect_uri

    @@ -18263,18 +17066,27 @@

    Class variables

    -
    -

    var job

    - - - +
    +
    + +
    +

    class OriginKind

    + +

    An enumeration.

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var object

    +

    var AUTO

    @@ -18284,7 +17096,7 @@

    Class variables

    -

    var pipeline

    +

    var FSCK

    @@ -18294,7 +17106,7 @@

    Class variables

    -

    var repo

    +

    var USER

    @@ -18304,7 +17116,7 @@

    Class variables

    -

    var restore_auth_token

    +

    var name

    @@ -18314,7 +17126,7 @@

    Class variables

    -

    var set_acl

    +

    var value

    @@ -18323,41 +17135,62 @@

    Class variables

    -
    -

    var set_auth_config

    - - - +
    +
    + +
    +

    class PFSFile

    + +

    The contents of a file stored in PFS. You can treat these as file-like objects, +like so:

    + +
    source_file = client.get_file("montage/master", "/montage.png")
    +with open("montage.png", "wb") as dest_file:
    +    shutil.copyfileobj(source_file, dest_file)
    +
    +
    -
    -
    -

    var set_cluster_role_binding

    - +
    +

    Methods

    +
    +
    +

    def __init__(

    self, stream)

    +
    + + + +

    Initialize self. See help(type(self)) for accurate signature.

    +
    -
    -
    -

    var tag

    +
    + +
    +
    +

    def read(

    self, size=-1)

    +
    + - +
    -
    +
    +
    -

    class Op1_12

    +

    class PFSInput

    A ProtocolMessage

    @@ -18374,47 +17207,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var activate_auth

    - - - - -
    -
    - -
    -
    -

    var activate_enterprise

    - - - - -
    -
    - -
    -
    -

    var block

    +

    var DESCRIPTOR

    @@ -18424,7 +17217,7 @@

    Class variables

    -

    var branch

    +

    var Extensions

    @@ -18434,7 +17227,7 @@

    Class variables

    -

    var check_auth_token

    +

    var branch

    @@ -18444,7 +17237,7 @@

    Class variables

    -

    var commit

    +

    var commit

    @@ -18454,7 +17247,7 @@

    Class variables

    -

    var create_object

    +

    var empty_files

    @@ -18464,7 +17257,7 @@

    Class variables

    -

    var job

    +

    var glob

    @@ -18474,7 +17267,7 @@

    Class variables

    -

    var object

    +

    var group_by

    @@ -18484,7 +17277,7 @@

    Class variables

    -

    var pipeline

    +

    var join_on

    @@ -18494,7 +17287,7 @@

    Class variables

    -

    var repo

    +

    var lazy

    @@ -18504,7 +17297,7 @@

    Class variables

    -

    var restore_auth_token

    +

    var name

    @@ -18514,7 +17307,7 @@

    Class variables

    -

    var set_acl

    +

    var outer_join

    @@ -18524,7 +17317,7 @@

    Class variables

    -

    var set_auth_config

    +

    var repo

    @@ -18534,7 +17327,7 @@

    Class variables

    -

    var set_cluster_role_binding

    +

    var s3

    @@ -18544,7 +17337,7 @@

    Class variables

    -

    var tag

    +

    var trigger

    @@ -18557,7 +17350,7 @@

    Class variables

    -

    class Op1_7

    +

    class ParallelismSpec

    A ProtocolMessage

    @@ -18574,7 +17367,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -18584,7 +17377,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -18594,7 +17387,7 @@

    Class variables

    -

    var branch

    +

    var coefficient

    @@ -18604,7 +17397,7 @@

    Class variables

    -

    var commit

    +

    var constant

    @@ -18613,18 +17406,27 @@

    Class variables

    -
    -

    var object

    - - - +
    +
    + +
    +

    class Permission

    + +

    An enumeration.

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var pipeline

    +

    var CLUSTER_AUTH_ACTIVATE

    @@ -18634,7 +17436,7 @@

    Class variables

    -

    var repo

    +

    var CLUSTER_AUTH_DEACTIVATE

    @@ -18644,7 +17446,7 @@

    Class variables

    -

    var tag

    +

    var CLUSTER_AUTH_EXTEND_TOKEN

    @@ -18653,28 +17455,8 @@

    Class variables

    -
    -
    - -
    -

    class Op1_8

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var CLUSTER_AUTH_EXTRACT_TOKENS

    @@ -18684,7 +17466,7 @@

    Class variables

    -

    var Extensions

    +

    var CLUSTER_AUTH_GET_CONFIG

    @@ -18694,7 +17476,7 @@

    Class variables

    -

    var branch

    +

    var CLUSTER_AUTH_GET_GROUPS

    @@ -18704,7 +17486,7 @@

    Class variables

    -

    var commit

    +

    var CLUSTER_AUTH_GET_GROUP_USERS

    @@ -18714,7 +17496,7 @@

    Class variables

    -

    var object

    +

    var CLUSTER_AUTH_GET_ROBOT_TOKEN

    @@ -18724,7 +17506,7 @@

    Class variables

    -

    var pipeline

    +

    var CLUSTER_AUTH_GET_TOKEN

    @@ -18734,7 +17516,7 @@

    Class variables

    -

    var repo

    +

    var CLUSTER_AUTH_MODIFY_GROUP_MEMBERS

    @@ -18744,7 +17526,7 @@

    Class variables

    -

    var tag

    +

    var CLUSTER_AUTH_RESTORE_TOKEN

    @@ -18753,28 +17535,8 @@

    Class variables

    -
    -
    - -
    -

    class Op1_9

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var CLUSTER_AUTH_SET_CONFIG

    @@ -18784,7 +17546,7 @@

    Class variables

    -

    var Extensions

    +

    var CLUSTER_DEBUG_DUMP

    @@ -18794,7 +17556,7 @@

    Class variables

    -

    var block

    +

    var CLUSTER_DELETE_ALL

    @@ -18804,7 +17566,7 @@

    Class variables

    -

    var branch

    +

    var CLUSTER_ENTERPRISE_ACTIVATE

    @@ -18814,7 +17576,7 @@

    Class variables

    -

    var commit

    +

    var CLUSTER_ENTERPRISE_DEACTIVATE

    @@ -18824,7 +17586,7 @@

    Class variables

    -

    var create_object

    +

    var CLUSTER_ENTERPRISE_GET_CODE

    @@ -18834,7 +17596,7 @@

    Class variables

    -

    var job

    +

    var CLUSTER_ENTERPRISE_HEARTBEAT

    @@ -18844,7 +17606,7 @@

    Class variables

    -

    var object

    +

    var CLUSTER_GET_BINDINGS

    @@ -18854,7 +17616,7 @@

    Class variables

    -

    var pipeline

    +

    var CLUSTER_IDENTITY_CREATE_IDP

    @@ -18864,7 +17626,7 @@

    Class variables

    -

    var repo

    +

    var CLUSTER_IDENTITY_CREATE_OIDC_CLIENT

    @@ -18874,7 +17636,7 @@

    Class variables

    -

    var tag

    +

    var CLUSTER_IDENTITY_DELETE_IDP

    @@ -18883,27 +17645,8 @@

    Class variables

    -
    -
    - -
    -

    class OriginKind

    - - -

    An enumeration.

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var AUTO

    +

    var CLUSTER_IDENTITY_DELETE_OIDC_CLIENT

    @@ -18913,7 +17656,7 @@

    Class variables

    -

    var FSCK

    +

    var CLUSTER_IDENTITY_GET_CONFIG

    @@ -18923,7 +17666,7 @@

    Class variables

    -

    var USER

    +

    var CLUSTER_IDENTITY_GET_IDP

    @@ -18933,7 +17676,7 @@

    Class variables

    -

    var name

    +

    var CLUSTER_IDENTITY_GET_OIDC_CLIENT

    @@ -18943,7 +17686,7 @@

    Class variables

    -

    var value

    +

    var CLUSTER_IDENTITY_LIST_IDPS

    @@ -18952,28 +17695,8 @@

    Class variables

    -
    -
    - -
    -

    class OverwriteIndex

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var CLUSTER_IDENTITY_LIST_OIDC_CLIENTS

    @@ -18983,7 +17706,7 @@

    Class variables

    -

    var Extensions

    +

    var CLUSTER_IDENTITY_SET_CONFIG

    @@ -18993,7 +17716,7 @@

    Class variables

    -

    var index

    +

    var CLUSTER_IDENTITY_UPDATE_IDP

    @@ -19002,37 +17725,8 @@

    Class variables

    -
    -
    - -
    -

    class PFSFile

    - - -

    The contents of a file stored in PFS. You can treat these as either -file-like objects, like so:

    - -
    source_file = client.get_file("montage/master", "/montage.png")
    -with open("montage.png", "wb") as dest_file:
    -    shutil.copyfileobj(source_file, dest_file)
    -
    - -

    Or as an iterator of bytes, like so:

    - -
    source_file = client.get_file("montage/master", "/montage.png")
    -with open("montage.png", "wb") as dest_file:
    -    for chunk in source_file:
    -        dest_file.write(chunk)
    -
    -
    -
    -
    - - -
    -

    Instance variables

    -

    var buf

    +

    var CLUSTER_IDENTITY_UPDATE_OIDC_CLIENT

    @@ -19042,7 +17736,7 @@

    Instance variables

    -

    var res

    +

    var CLUSTER_LICENSE_ACTIVATE

    @@ -19051,73 +17745,38 @@

    Instance variables

    -

    Methods

    +
    +

    var CLUSTER_LICENSE_ADD_CLUSTER

    -
    -
    -

    def __init__(

    self, res)

    -
    - - + -

    Initialize self. See help(type(self)) for accurate signature.

    -
    -
    - +
    +
    +

    var CLUSTER_LICENSE_DELETE_CLUSTER

    -
    -
    -

    def close(

    self)

    -
    - - +
    -
    - +
    +
    +

    var CLUSTER_LICENSE_GET_CODE

    -
    -
    -

    def read(

    self, size=-1)

    -
    - - - - -
    -
    -
    - -
    -
    - -
    -

    class PFSInput

    - + -

    A ProtocolMessage

    -
    - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    +
    -

    var DESCRIPTOR

    +

    var CLUSTER_LICENSE_LIST_CLUSTERS

    @@ -19127,7 +17786,7 @@

    Class variables

    -

    var Extensions

    +

    var CLUSTER_LICENSE_UPDATE_CLUSTER

    @@ -19137,7 +17796,7 @@

    Class variables

    -

    var branch

    +

    var CLUSTER_MODIFY_BINDINGS

    @@ -19147,7 +17806,7 @@

    Class variables

    -

    var commit

    +

    var PIPELINE_LIST_JOB

    @@ -19157,7 +17816,7 @@

    Class variables

    -

    var empty_files

    +

    var REPO_ADD_PIPELINE_READER

    @@ -19167,7 +17826,7 @@

    Class variables

    -

    var glob

    +

    var REPO_ADD_PIPELINE_WRITER

    @@ -19177,7 +17836,7 @@

    Class variables

    -

    var group_by

    +

    var REPO_CREATE_BRANCH

    @@ -19187,7 +17846,7 @@

    Class variables

    -

    var join_on

    +

    var REPO_DELETE

    @@ -19197,7 +17856,7 @@

    Class variables

    -

    var lazy

    +

    var REPO_DELETE_BRANCH

    @@ -19207,7 +17866,7 @@

    Class variables

    -

    var name

    +

    var REPO_DELETE_COMMIT

    @@ -19217,7 +17876,7 @@

    Class variables

    -

    var outer_join

    +

    var REPO_INSPECT_COMMIT

    @@ -19227,7 +17886,7 @@

    Class variables

    -

    var repo

    +

    var REPO_INSPECT_FILE

    @@ -19237,7 +17896,7 @@

    Class variables

    -

    var s3

    +

    var REPO_LIST_BRANCH

    @@ -19247,7 +17906,7 @@

    Class variables

    -

    var trigger

    +

    var REPO_LIST_COMMIT

    @@ -19256,28 +17915,8 @@

    Class variables

    -
    -
    - -
    -

    class ParallelismSpec

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var REPO_LIST_FILE

    @@ -19287,7 +17926,7 @@

    Class variables

    -

    var Extensions

    +

    var REPO_MODIFY_BINDINGS

    @@ -19297,7 +17936,7 @@

    Class variables

    -

    var coefficient

    +

    var REPO_READ

    @@ -19307,7 +17946,7 @@

    Class variables

    -

    var constant

    +

    var REPO_REMOVE_PIPELINE_READER

    @@ -19316,28 +17955,8 @@

    Class variables

    -
    -
    - -
    -

    class PathRange

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var REPO_WRITE

    @@ -19347,7 +17966,7 @@

    Class variables

    -

    var Extensions

    +

    var UNKNOWN

    @@ -19357,7 +17976,7 @@

    Class variables

    -

    var lower

    +

    var name

    @@ -19367,7 +17986,7 @@

    Class variables

    -

    var upper

    +

    var value

    @@ -19567,7 +18186,7 @@

    Class variables

    -

    var hashtree_spec

    +

    var id

    @@ -19577,7 +18196,7 @@

    Class variables

    -

    var id

    +

    var input

    @@ -19587,7 +18206,7 @@

    Class variables

    -

    var input

    +

    var job_counts

    @@ -19597,7 +18216,7 @@

    Class variables

    -

    var job_counts

    +

    var job_timeout

    @@ -19607,7 +18226,7 @@

    Class variables

    -

    var job_timeout

    +

    var last_job_state

    @@ -19617,7 +18236,7 @@

    Class variables

    -

    var last_job_state

    +

    var max_queue_size

    @@ -19627,7 +18246,7 @@

    Class variables

    -

    var max_queue_size

    +

    var metadata

    @@ -19637,7 +18256,7 @@

    Class variables

    -

    var metadata

    +

    var no_skip

    @@ -20107,327 +18726,39 @@

    Class variables

    var process_time

    - - - - -
    -
    - -
    -
    -

    var upload_bytes

    - - - - -
    -
    - -
    -
    -

    var upload_time

    - - - - -
    -
    - -
    -
    -
    - -
    -

    class PutBlockRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var block

    - - - - -
    -
    - -
    -
    -

    var value

    - - - - -
    -
    - -
    -
    -
    - -
    -

    class PutFileClient

    - - -

    PutFileClient puts or deletes PFS files atomically.

    -
    -
    -
    - - -
    -

    Methods

    - -
    -
    -

    def __init__(

    self)

    -
    - - - - -

    Initialize self. See help(type(self)) for accurate signature.

    -
    -
    -
    - -
    - - -
    -
    -

    def delete_file(

    self, commit, path)

    -
    - - - - -

    Deletes a file.

    - -

    Params:

    - -
      -
    • commit: A tuple, string, or Commit object representing the -commit.
    • -
    • path: The path to the file.
    • -
    -
    -
    -
    - -
    - - -
    -
    -

    def put_file_from_bytes(

    self, commit, path, value, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    -
    - - - - -

    Uploads a PFS file from a bytestring.

    - -

    Params:

    - -
      -
    • commit: A tuple, string, or Commit object representing the -commit.
    • -
    • path: A string specifying the path in the repo the file(s) will be -written to.
    • -
    • value: The file contents as a bytestring.
    • -
    • delimiter: An optional int. causes data to be broken up into -separate files by the delimiter. e.g. if you used -Delimiter.CSV.value, a separate PFS file will be created for each -row in the input CSV file, rather than one large CSV file.
    • -
    • target_file_datums: An optional int. Specifies the target number of -datums in each written file. It may be lower if data does not split -evenly, but will never be higher, unless the value is 0.
    • -
    • target_file_bytes: An optional int. Specifies the target number of -bytes in each written file, files may have more or fewer bytes than -the target.
    • -
    • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
    • -
    • header_records: An optional int for splitting data whendelimiter -is notNONE(orSQL`). It specifies the number of records that are -converted to a header and applied to all file shards.
    • -
    -
    -
    -
    - -
    - - -
    -
    -

    def put_file_from_fileobj(

    self, commit, path, value, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    -
    - - - - -

    Uploads a PFS file from a file-like object.

    - -

    Params:

    - -
      -
    • commit: A tuple, string, or Commit object representing the -commit.
    • -
    • path: A string specifying the path in the repo the file(s) will be -written to.
    • -
    • value: The file-like object.
    • -
    • delimiter: An optional int. causes data to be broken up into -separate files by the delimiter. e.g. if you used -Delimiter.CSV.value, a separate PFS file will be created for each -row in the input CSV file, rather than one large CSV file.
    • -
    • target_file_datums: An optional int. Specifies the target number of -datums in each written file. It may be lower if data does not split -evenly, but will never be higher, unless the value is 0.
    • -
    • target_file_bytes: An optional int. Specifies the target number of -bytes in each written file, files may have more or fewer bytes than -the target.
    • -
    • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
    • -
    • header_records: An optional int for splitting data whendelimiter -is notNONE(orSQL`). It specifies the number of records that are -converted to a header and applied to all file shards.
    • -
    -
    -
    -
    - -
    - - -
    -
    -

    def put_file_from_filepath(

    self, commit, pfs_path, local_path, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    -
    - - - - -

    Uploads a PFS file from a local path at a specified path. This will -lazily open files, which will prevent too many files from being -opened, or too much memory being consumed, when atomically putting -many files.

    - -

    Params:

    - -
      -
    • commit: A tuple, string, or Commit object representing the -commit.
    • -
    • pfs_path: A string specifying the path in the repo the file(s) -will be written to.
    • -
    • local_path: A string specifying the local file path.
    • -
    • delimiter: An optional int. causes data to be broken up into -separate files by the delimiter. e.g. if you used -Delimiter.CSV.value, a separate PFS file will be created for each -row in the input CSV file, rather than one large CSV file.
    • -
    • target_file_datums: An optional int. Specifies the target number of -datums in each written file. It may be lower if data does not split -evenly, but will never be higher, unless the value is 0.
    • -
    • target_file_bytes: An optional int. Specifies the target number of -bytes in each written file, files may have more or fewer bytes than -the target.
    • -
    • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
    • -
    • header_records: An optional int for splitting data whendelimiter -is notNONE(orSQL`). It specifies the number of records that are -converted to a header and applied to all file shards.
    • -
    -
    + + + +
    -
    - +
    +
    +

    var upload_bytes

    -
    -
    -

    def put_file_from_url(

    self, commit, path, url, delimiter=None, recursive=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    -
    - - + -

    Puts a file using the content found at a URL. The URL is sent to the -server which performs the request.

    +
    +
    -

    Params:

    +
    +
    +

    var upload_time

    + -
      -
    • commit: A tuple, string, or Commit object representing the -commit.
    • -
    • path: A string specifying the path to the file.
    • -
    • url: A string specifying the url of the file to put.
    • -
    • delimiter: An optional int. causes data to be broken up into -separate files by the delimiter. e.g. if you used -Delimiter.CSV.value, a separate PFS file will be created for each -row in the input CSV file, rather than one large CSV file.
    • -
    • recursive: allow for recursive scraping of some types URLs, for -example on s3:// URLs.
    • -
    • target_file_datums: An optional int. Specifies the target number of -datums in each written file. It may be lower if data does not split -evenly, but will never be higher, unless the value is 0.
    • -
    • target_file_bytes: An optional int. Specifies the target number of -bytes in each written file, files may have more or fewer bytes than -the target.
    • -
    • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
    • -
    • header_records: An optional int for splitting data whendelimiter -is notNONE(orSQL`). It specifies the number of records that are -converted to a header and applied to all file shards.
    • -
    -
    + +
    -
    - +
    -

    class PutFileRecord

    +

    class RawFileSource

    A ProtocolMessage

    @@ -20444,7 +18775,37 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var EOF

    + + + + +
    +
    + +
    +
    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var data

    @@ -20454,7 +18815,7 @@

    Class variables

    -

    var Extensions

    +

    var path

    @@ -20463,8 +18824,28 @@

    Class variables

    +
    +
    + +
    +

    class RenewFilesetRequest

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var block_ref

    +

    var DESCRIPTOR

    @@ -20474,7 +18855,7 @@

    Class variables

    -

    var object_hash

    +

    var Extensions

    @@ -20484,7 +18865,7 @@

    Class variables

    -

    var overwrite_index

    +

    var fileset_id

    @@ -20494,7 +18875,7 @@

    Class variables

    -

    var size_bytes

    +

    var ttl_seconds

    @@ -20507,7 +18888,7 @@

    Class variables

    -

    class PutFileRecords

    +

    class Repo

    A ProtocolMessage

    @@ -20524,7 +18905,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -20534,7 +18915,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -20544,7 +18925,7 @@

    Class variables

    -

    var footer

    +

    var name

    @@ -20553,18 +18934,28 @@

    Class variables

    -
    -

    var header

    - - - +
    +
    + +
    +

    class RepoAuthInfo

    + +

    A ProtocolMessage

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var records

    +

    var DESCRIPTOR

    @@ -20574,7 +18965,7 @@

    Class variables

    -

    var split

    +

    var Extensions

    @@ -20584,7 +18975,7 @@

    Class variables

    -

    var tombstone

    +

    var permissions

    @@ -20597,7 +18988,7 @@

    Class variables

    -

    class PutFileRequest

    +

    class RepoInfo

    A ProtocolMessage

    @@ -20614,7 +19005,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -20624,7 +19015,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -20634,7 +19025,7 @@

    Class variables

    -

    var delete

    +

    var auth_info

    @@ -20644,7 +19035,7 @@

    Class variables

    -

    var delimiter

    +

    var branches

    @@ -20654,7 +19045,7 @@

    Class variables

    -

    var file

    +

    var created

    @@ -20664,7 +19055,7 @@

    Class variables

    -

    var header_records

    +

    var description

    @@ -20674,7 +19065,7 @@

    Class variables

    -

    var overwrite_index

    +

    var repo

    @@ -20684,7 +19075,7 @@

    Class variables

    -

    var recursive

    +

    var size_bytes

    @@ -20693,8 +19084,28 @@

    Class variables

    +
    +
    + +
    +

    class Resource

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var target_file_bytes

    +

    var DESCRIPTOR

    @@ -20704,7 +19115,7 @@

    Class variables

    -

    var target_file_datums

    +

    var Extensions

    @@ -20714,7 +19125,7 @@

    Class variables

    -

    var url

    +

    var name

    @@ -20724,7 +19135,7 @@

    Class variables

    -

    var value

    +

    var type

    @@ -20737,7 +19148,7 @@

    Class variables

    -

    class PutObjDirectRequest

    +

    class ResourceSpec

    A ProtocolMessage

    @@ -20754,7 +19165,27 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var cpu

    @@ -20764,7 +19195,7 @@

    Class variables

    -

    var Extensions

    +

    var disk

    @@ -20774,7 +19205,7 @@

    Class variables

    -

    var obj

    +

    var gpu

    @@ -20784,7 +19215,7 @@

    Class variables

    -

    var value

    +

    var memory

    @@ -20797,10 +19228,10 @@

    Class variables

    -

    class PutObjectRequest

    +

    class ResourceType

    -

    A ProtocolMessage

    +

    An enumeration.

    @@ -20809,12 +19240,51 @@

    Class variables

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var CLUSTER

    + + + + +
    +
    + +
    +
    +

    var REPO

    + + + + +
    +
    + +
    +
    +

    var RESOURCE_TYPE_UNKNOWN

    + + + + +
    +
    + +
    +
    +

    var name

    + + + + +
    +
    + +
    +
    +

    var value

    @@ -20823,8 +19293,28 @@

    Class variables

    +
    +
    + +
    +

    class RestartDatumRequest

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -20834,7 +19324,7 @@

    Class variables

    -

    var block

    +

    var Extensions

    @@ -20844,7 +19334,7 @@

    Class variables

    -

    var tags

    +

    var data_filters

    @@ -20854,7 +19344,7 @@

    Class variables

    -

    var value

    +

    var job

    @@ -20867,7 +19357,7 @@

    Class variables

    -

    class PutTarRequestV2

    +

    class RestoreAuthTokenRequest

    A ProtocolMessage

    @@ -20884,7 +19374,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -20894,7 +19384,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -20904,7 +19394,7 @@

    Class variables

    -

    var data

    +

    var token

    @@ -20912,9 +19402,29 @@

    Class variables

    -
    +
    +
    +
    + +
    +

    class RestoreAuthTokenResponse

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var overwrite

    +

    var DESCRIPTOR

    @@ -20924,7 +19434,7 @@

    Class variables

    -

    var tag

    +

    var Extensions

    @@ -20937,7 +19447,7 @@

    Class variables

    -

    class RenewTmpFileSetRequest

    +

    class RevokeAuthTokenRequest

    A ProtocolMessage

    @@ -20954,17 +19464,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -20974,7 +19474,7 @@

    Class variables

    -

    var fileset_id

    +

    var Extensions

    @@ -20984,7 +19484,7 @@

    Class variables

    -

    var ttl_seconds

    +

    var token

    @@ -20997,7 +19497,7 @@

    Class variables

    -

    class Repo

    +

    class RevokeAuthTokenResponse

    A ProtocolMessage

    @@ -21014,17 +19514,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -21034,7 +19524,7 @@

    Class variables

    -

    var name

    +

    var Extensions

    @@ -21047,7 +19537,7 @@

    Class variables

    -

    class RepoAuthInfo

    +

    class RoleBinding

    A ProtocolMessage

    @@ -21064,7 +19554,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -21074,7 +19564,7 @@

    Class variables

    -

    var Extensions

    +

    var EntriesEntry

    @@ -21084,7 +19574,17 @@

    Class variables

    -

    var access_level

    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var entries

    @@ -21097,7 +19597,7 @@

    Class variables

    -

    class RepoInfo

    +

    class Roles

    A ProtocolMessage

    @@ -21114,7 +19614,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -21124,7 +19624,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -21134,7 +19634,7 @@

    Class variables

    -

    var auth_info

    +

    var RolesEntry

    @@ -21144,7 +19644,7 @@

    Class variables

    -

    var branches

    +

    var roles

    @@ -21153,18 +19653,28 @@

    Class variables

    -
    -

    var created

    - - - +
    +
    + +
    +

    class RpcError

    + +

    Raised by the gRPC library to indicate non-OK-status RPC termination.

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var description

    +

    var args

    @@ -21173,8 +19683,28 @@

    Class variables

    +
    +
    + +
    +

    class RunCronRequest

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var repo

    +

    var DESCRIPTOR

    @@ -21184,7 +19714,7 @@

    Class variables

    -

    var size_bytes

    +

    var Extensions

    @@ -21194,7 +19724,7 @@

    Class variables

    -

    var tombstone

    +

    var pipeline

    @@ -21207,7 +19737,7 @@

    Class variables

    -

    class ResourceSpec

    +

    class RunPipelineRequest

    A ProtocolMessage

    @@ -21224,17 +19754,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -21244,7 +19764,7 @@

    Class variables

    -

    var cpu

    +

    var Extensions

    @@ -21254,7 +19774,7 @@

    Class variables

    -

    var disk

    +

    var job_id

    @@ -21264,7 +19784,7 @@

    Class variables

    -

    var gpu

    +

    var pipeline

    @@ -21274,7 +19794,7 @@

    Class variables

    -

    var memory

    +

    var provenance

    @@ -21287,7 +19807,7 @@

    Class variables

    -

    class RestartDatumRequest

    +

    class SchedulingSpec

    A ProtocolMessage

    @@ -21304,7 +19824,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -21314,7 +19834,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -21324,7 +19844,7 @@

    Class variables

    -

    var data_filters

    +

    var NodeSelectorEntry

    @@ -21334,7 +19854,17 @@

    Class variables

    -

    var job

    +

    var node_selector

    + + + + +
    +
    + +
    +
    +

    var priority_class_name

    @@ -21347,7 +19877,7 @@

    Class variables

    -

    class RestoreAuthTokenRequest

    +

    class Secret

    A ProtocolMessage

    @@ -21364,7 +19894,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -21374,7 +19904,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -21384,7 +19914,7 @@

    Class variables

    -

    var token

    +

    var name

    @@ -21397,7 +19927,7 @@

    Class variables

    -

    class RestoreAuthTokenResponse

    +

    class SecretInfo

    A ProtocolMessage

    @@ -21414,17 +19944,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -21433,28 +19953,8 @@

    Class variables

    -
    -
    - -
    -

    class RestoreRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var Extensions

    @@ -21464,7 +19964,7 @@

    Class variables

    -

    var Extensions

    +

    var creation_timestamp

    @@ -21474,7 +19974,7 @@

    Class variables

    -

    var URL

    +

    var secret

    @@ -21484,7 +19984,7 @@

    Class variables

    -

    var op

    +

    var type

    @@ -21497,7 +19997,7 @@

    Class variables

    -

    class RevokeAuthTokenRequest

    +

    class SecretInfos

    A ProtocolMessage

    @@ -21514,7 +20014,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -21524,7 +20024,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -21534,7 +20034,7 @@

    Class variables

    -

    var token

    +

    var secret_info

    @@ -21547,7 +20047,7 @@

    Class variables

    -

    class RevokeAuthTokenResponse

    +

    class SecretMount

    A ProtocolMessage

    @@ -21564,7 +20064,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -21574,7 +20074,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -21583,28 +20083,8 @@

    Class variables

    -
    -
    - -
    -

    class RpcError

    - - -

    Raised by the gRPC library to indicate non-OK-status RPC termination.

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var args

    +

    var env_var

    @@ -21613,28 +20093,8 @@

    Class variables

    -
    -
    - -
    -

    class RunCronRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var key

    @@ -21644,7 +20104,7 @@

    Class variables

    -

    var Extensions

    +

    var mount_path

    @@ -21654,7 +20114,7 @@

    Class variables

    -

    var pipeline

    +

    var name

    @@ -21667,7 +20127,7 @@

    Class variables

    -

    class RunPipelineRequest

    +

    class Service

    A ProtocolMessage

    @@ -21684,7 +20144,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -21694,7 +20154,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -21704,7 +20164,7 @@

    Class variables

    -

    var job_id

    +

    var external_port

    @@ -21714,7 +20174,7 @@

    Class variables

    -

    var pipeline

    +

    var internal_port

    @@ -21724,7 +20184,17 @@

    Class variables

    -

    var provenance

    +

    var ip

    + + + + +
    +
    + +
    +
    +

    var type

    @@ -21737,7 +20207,7 @@

    Class variables

    -

    class SchedulingSpec

    +

    class SessionInfo

    A ProtocolMessage

    @@ -21754,7 +20224,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -21764,7 +20234,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -21774,7 +20244,7 @@

    Class variables

    -

    var NodeSelectorEntry

    +

    var conversion_err

    @@ -21784,7 +20254,7 @@

    Class variables

    -

    var node_selector

    +

    var email

    @@ -21794,7 +20264,7 @@

    Class variables

    -

    var priority_class_name

    +

    var nonce

    @@ -21807,10 +20277,10 @@

    Class variables

    -

    class Scope

    +

    class SetConfigurationRequest

    -

    An enumeration.

    +

    A ProtocolMessage

    @@ -21819,41 +20289,12 @@

    Class variables

    Ancestors (in MRO)

    Class variables

    -

    var NONE

    - - - - -
    -
    - -
    -
    -

    var OWNER

    - - - - -
    -
    - -
    -
    -

    var READER

    - - - - -
    -
    - -
    -
    -

    var WRITER

    +

    var DESCRIPTOR

    @@ -21863,7 +20304,7 @@

    Class variables

    -

    var name

    +

    var Extensions

    @@ -21873,7 +20314,7 @@

    Class variables

    -

    var value

    +

    var configuration

    @@ -21886,7 +20327,7 @@

    Class variables

    -

    class Secret

    +

    class SetConfigurationResponse

    A ProtocolMessage

    @@ -21903,17 +20344,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -21923,7 +20354,7 @@

    Class variables

    -

    var name

    +

    var Extensions

    @@ -21936,7 +20367,7 @@

    Class variables

    -

    class SecretInfo

    +

    class SetGroupsForUserRequest

    A ProtocolMessage

    @@ -21953,17 +20384,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -21973,7 +20394,7 @@

    Class variables

    -

    var creation_timestamp

    +

    var Extensions

    @@ -21983,7 +20404,7 @@

    Class variables

    -

    var secret

    +

    var groups

    @@ -21993,7 +20414,7 @@

    Class variables

    -

    var type

    +

    var username

    @@ -22006,7 +20427,7 @@

    Class variables

    -

    class SecretInfos

    +

    class SetGroupsForUserResponse

    A ProtocolMessage

    @@ -22023,17 +20444,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -22043,7 +20454,7 @@

    Class variables

    -

    var secret_info

    +

    var Extensions

    @@ -22056,7 +20467,7 @@

    Class variables

    -

    class SecretMount

    +

    class SetIdentityServerConfigRequest

    A ProtocolMessage

    @@ -22073,7 +20484,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -22083,7 +20494,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -22093,7 +20504,7 @@

    Class variables

    -

    var env_var

    +

    var config

    @@ -22102,18 +20513,28 @@

    Class variables

    -
    -

    var key

    - - - +
    +
    + +
    +

    class SetIdentityServerConfigResponse

    + +

    A ProtocolMessage

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var mount_path

    +

    var DESCRIPTOR

    @@ -22123,7 +20544,7 @@

    Class variables

    -

    var name

    +

    var Extensions

    @@ -22136,7 +20557,7 @@

    Class variables

    -

    class Service

    +

    class Spout

    A ProtocolMessage

    @@ -22153,7 +20574,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -22163,7 +20584,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -22173,7 +20594,7 @@

    Class variables

    -

    var external_port

    +

    var service

    @@ -22182,18 +20603,23 @@

    Class variables

    -
    -

    var internal_port

    - - - +
    +
    + +
    +

    class SpoutCommit

    + +

    Represents a commit on a spout, permitting the addition of files.

    +
    -
    + +
    +

    Instance variables

    -

    var ip

    +

    var marker_filename

    @@ -22202,108 +20628,156 @@

    Class variables

    -
    -

    var type

    +

    Methods

    +
    +
    +

    def __init__(

    self, pipe, marker_filename=None)

    +
    + - + +

    Initialize self. See help(type(self)) for accurate signature.

    +
    -
    -
    -
    - -
    -

    class SessionInfo

    - +
    -

    A ProtocolMessage

    + +
    +
    +

    def close(

    self)

    +
    + + + + +

    Closes the commit

    - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    +
    + +
    +
    +

    def put_file_from_bytes(

    self, path, bytes)

    +
    + - + +

    Adds a file to the spout from a bytestring.

    + +

    Params:

    + +
      +
    • path: The path to the file in the spout.
    • +
    • bytes: The bytestring representing the file contents.
    • +
    +
    -
    -
    -

    var Extensions

    +
    + +
    +
    +

    def put_file_from_fileobj(

    self, path, size, fileobj)

    +
    + - + +

    Adds a file to the spout from a file-like object.

    + +

    Params:

    + +
      +
    • path: The path to the file in the spout.
    • +
    • size: The size of the file.
    • +
    • fileobj: The file-like object to add.
    • +
    +
    -
    -
    -

    var conversion_err

    +
    + +
    +
    +

    def put_marker_from_bytes(

    self, bytes)

    +
    + - + -
    -
    +

    Adds to the marker from a bytestring.

    -
    -
    -

    var email

    - +

    Params:

    - - +
      +
    • bytes: The bytestring representing the file contents.
    • +
    +
    -
    -
    -

    var nonce

    +
    + +
    +
    +

    def put_marker_from_fileobj(

    self, size, fileobj)

    +
    + - + +

    Writes to the marker file from a file-like object.

    + +

    Params:

    + +
      +
    • size: The size of the file.
    • +
    • fileobj: The file-like object to add.
    • +
    +
    -
    +
    +
    -

    class SetACLRequest

    +

    class SpoutManager

    -

    A ProtocolMessage

    +

    A convenience context manager for creating spouts, allowing you to create +spout code like:

    + +
    spout = SpoutManager()
    +while True:
    +    with spout.commit() as commit:
    +        commit.put_file_from_bytes("foo", b"#")
    +    time.sleep(1.0)
    +
    -

    Ancestors (in MRO)

    - -

    Class variables

    +

    Instance variables

    -

    var DESCRIPTOR

    +

    var marker_filename

    @@ -22313,7 +20787,7 @@

    Class variables

    -

    var Extensions

    +

    var pfs_directory

    @@ -22322,71 +20796,85 @@

    Class variables

    -
    -

    var entries

    +

    Methods

    +
    +
    +

    def __init__(

    self, marker_filename=None, pfs_directory='/pfs')

    +
    + - + +

    Creates a new spout manager.

    + +

    Params:

    + +
      +
    • marker_filename: The name of the file for storing markers. If +unspecified, marker-related operations will fail.
    • +
    • pfs_directory: The directory for PFS content. Usually this +shouldn't be explicitly specified, unless the spout manager is being +tested outside of a real Pachyderm pipeline.
    • +
    +
    -
    -
    -

    var repo

    +
    + +
    +
    +

    def close(

    self)

    +
    + - +
    -
    -
    -
    - -
    -

    class SetACLResponse

    - +
    -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    +
    +
    +

    def commit(

    *args, **kwds)

    +
    + - + +

    Opens a commit on the spout. When the context manager exits, any added +files will be committed.

    +
    -
    -
    -

    var Extensions

    +
    + +
    +
    +

    def marker(

    *args, **kwds)

    +
    + - + +

    Gets the marker file as a context manager.

    +
    -
    +
    +
    -

    class SetConfigurationRequest

    +

    class SquashCommitRequest

    A ProtocolMessage

    @@ -22403,27 +20891,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var configuration

    +

    var DESCRIPTOR

    @@ -22432,28 +20900,8 @@

    Class variables

    -
    -
    - -
    -

    class SetConfigurationResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var Extensions

    @@ -22463,7 +20911,7 @@

    Class variables

    -

    var Extensions

    +

    var commit

    @@ -22476,7 +20924,7 @@

    Class variables

    -

    class SetGroupsForUserRequest

    +

    class StartCommitRequest

    A ProtocolMessage

    @@ -22493,7 +20941,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -22503,7 +20951,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -22513,7 +20961,7 @@

    Class variables

    -

    var groups

    +

    var branch

    @@ -22523,7 +20971,7 @@

    Class variables

    -

    var username

    +

    var description

    @@ -22532,28 +20980,8 @@

    Class variables

    -
    -
    - -
    -

    class SetGroupsForUserResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var parent

    @@ -22563,7 +20991,7 @@

    Class variables

    -

    var Extensions

    +

    var provenance

    @@ -22576,7 +21004,7 @@

    Class variables

    -

    class SetScopeRequest

    +

    class StartPipelineRequest

    A ProtocolMessage

    @@ -22587,33 +21015,13 @@

    Class variables

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    + +

    Class variables

    -

    var repo

    +

    var DESCRIPTOR

    @@ -22623,7 +21031,7 @@

    Class variables

    -

    var scope

    +

    var Extensions

    @@ -22633,7 +21041,7 @@

    Class variables

    -

    var username

    +

    var pipeline

    @@ -22646,7 +21054,7 @@

    Class variables

    -

    class SetScopeResponse

    +

    class StartTransactionRequest

    A ProtocolMessage

    @@ -22663,7 +21071,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -22673,7 +21081,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -22686,10 +21094,10 @@

    Class variables

    -

    class Shard

    +

    class State

    -

    A ProtocolMessage

    +

    An enumeration.

    @@ -22698,12 +21106,21 @@

    Class variables

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var ACTIVE

    + + + + +
    +
    + +
    +
    +

    var EXPIRED

    @@ -22713,7 +21130,7 @@

    Class variables

    -

    var Extensions

    +

    var HEARTBEAT_FAILED

    @@ -22723,7 +21140,7 @@

    Class variables

    -

    var compaction

    +

    var NONE

    @@ -22733,7 +21150,7 @@

    Class variables

    -

    var output_path

    +

    var name

    @@ -22743,7 +21160,7 @@

    Class variables

    -

    var range

    +

    var value

    @@ -22756,7 +21173,7 @@

    Class variables

    -

    class Spout

    +

    class StopJobRequest

    A ProtocolMessage

    @@ -22773,17 +21190,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -22793,7 +21200,7 @@

    Class variables

    -

    var marker

    +

    var Extensions

    @@ -22803,7 +21210,7 @@

    Class variables

    -

    var overwrite

    +

    var job

    @@ -22813,7 +21220,7 @@

    Class variables

    -

    var service

    +

    var output_commit

    @@ -22826,19 +21233,24 @@

    Class variables

    -

    class SpoutCommit

    +

    class StopPipelineRequest

    -

    Represents a commit on a spout, permitting the addition of files.

    +

    A ProtocolMessage

    -

    Instance variables

    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var marker_filename

    +

    var DESCRIPTOR

    @@ -22847,166 +21259,48 @@

    Instance variables

    -

    Methods

    - -
    -
    -

    def __init__(

    self, pipe, marker_filename=None)

    -
    - - - - -

    Initialize self. See help(type(self)) for accurate signature.

    -
    -
    -
    - -
    - - -
    -
    -

    def close(

    self)

    -
    - - - - -

    Closes the commit

    -
    -
    -
    - -
    - +
    +

    var Extensions

    -
    -
    -

    def put_file_from_bytes(

    self, path, bytes)

    -
    - - - - -

    Adds a file to the spout from a bytestring.

    - -

    Params:

    - -
      -
    • path: The path to the file in the spout.
    • -
    • bytes: The bytestring representing the file contents.
    • -
    -
    -
    -
    -
    - -
    -
    -

    def put_file_from_fileobj(

    self, path, size, fileobj)

    -
    - - - -

    Adds a file to the spout from a file-like object.

    - -

    Params:

    - -
      -
    • path: The path to the file in the spout.
    • -
    • size: The size of the file.
    • -
    • fileobj: The file-like object to add.
    • -
    -
    -
    - +
    +
    +

    var pipeline

    -
    -
    -

    def put_marker_from_bytes(

    self, bytes)

    -
    - - - -

    Adds to the marker from a bytestring.

    - -

    Params:

    - -
      -
    • bytes: The bytestring representing the file contents.
    • -
    -
    -
    -
    - -
    - -
    -
    -

    def put_marker_from_fileobj(

    self, size, fileobj)

    -
    - - - -

    Writes to the marker file from a file-like object.

    - -

    Params:

    - -
      -
    • size: The size of the file.
    • -
    • fileobj: The file-like object to add.
    • -
    -
    -
    - +
    -

    class SpoutManager

    +

    class StringValue

    -

    A convenience context manager for creating spouts, allowing you to create -spout code like:

    - -
    spout = SpoutManager()
    -while True:
    -    with spout.commit() as commit:
    -        commit.put_file_from_bytes("foo", b"#")
    -    time.sleep(1.0)
    -
    +

    A ProtocolMessage

    -

    Instance variables

    -
    -

    var marker_filename

    - - - - -
    -
    - -
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var pfs_directory

    +

    var DESCRIPTOR

    @@ -23015,85 +21309,31 @@

    Instance variables

    -

    Methods

    - -
    -
    -

    def __init__(

    self, marker_filename=None, pfs_directory='/pfs')

    -
    - - - - -

    Creates a new spout manager.

    - -

    Params:

    - -
      -
    • marker_filename: The name of the file for storing markers. If -unspecified, marker-related operations will fail.
    • -
    • pfs_directory: The directory for PFS content. Usually this -shouldn't be explicitly specified, unless the spout manager is being -tested outside of a real Pachyderm pipeline.
    • -
    -
    -
    -
    - -
    - - -
    -
    -

    def close(

    self)

    -
    - - - - -
    -
    - -
    - - -
    -
    -

    def commit(

    *args, **kwds)

    -
    - +
    +

    var Extensions

    + - + -

    Opens a commit on the spout. When the context manager exits, any added -files will be committed.

    -
    -
    - +
    +
    +

    var value

    -
    -
    -

    def marker(

    *args, **kwds)

    -
    - - + -

    Gets the marker file as a context manager.

    -
    -
    - +
    -

    class StartCommitRequest

    +

    class SubscribeCommitRequest

    A ProtocolMessage

    @@ -23110,7 +21350,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -23120,7 +21360,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -23130,7 +21370,7 @@

    Class variables

    -

    var branch

    +

    var branch

    @@ -23140,7 +21380,7 @@

    Class variables

    -

    var description

    +

    var from

    @@ -23150,7 +21390,7 @@

    Class variables

    -

    var parent

    +

    var prov

    @@ -23160,7 +21400,17 @@

    Class variables

    -

    var provenance

    +

    var repo

    + + + + +
    +
    + +
    +
    +

    var state

    @@ -23173,7 +21423,7 @@

    Class variables

    -

    class StartPipelineRequest

    +

    class TFJob

    A ProtocolMessage

    @@ -23190,7 +21440,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -23200,7 +21450,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -23210,7 +21460,7 @@

    Class variables

    -

    var pipeline

    +

    var tf_job

    @@ -23223,7 +21473,7 @@

    Class variables

    -

    class StartTransactionRequest

    +

    class TarFileSource

    A ProtocolMessage

    @@ -23240,7 +21490,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -23250,7 +21500,17 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var data

    @@ -23263,10 +21523,10 @@

    Class variables

    -

    class State

    +

    class Timestamp

    -

    An enumeration.

    +

    A ProtocolMessage

    @@ -23275,11 +21535,13 @@

    Class variables

    Ancestors (in MRO)

    Class variables

    -

    var ACTIVE

    +

    var DESCRIPTOR

    @@ -23289,7 +21551,7 @@

    Class variables

    -

    var EXPIRED

    +

    var Extensions

    @@ -23299,7 +21561,7 @@

    Class variables

    -

    var NONE

    +

    var nanos

    @@ -23309,7 +21571,7 @@

    Class variables

    -

    var name

    +

    var seconds

    @@ -23318,121 +21580,233 @@

    Class variables

    -
    -

    var value

    +

    Methods

    +
    +
    +

    def FromDatetime(

    self, dt)

    +
    + - + +

    Converts datetime to Timestamp.

    +
    -
    -
    -
    - -
    -

    class StopJobRequest

    - +
    -

    A ProtocolMessage

    + +
    +
    +

    def FromJsonString(

    self, value)

    +
    + + + + +

    Parse a RFC 3339 date string format to Timestamp.

    + +

    Args: + value: A date string. Any fractional digits (or none) and any offset are + accepted as long as they fit into nano-seconds precision. + Example of accepted format: '1972-01-01T10:00:20.021-05:00'

    + +

    Raises: + ValueError: On parsing problems.

    - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    +
    + +
    +
    +

    def FromMicroseconds(

    self, micros)

    +
    + - + +

    Converts microseconds since epoch to Timestamp.

    +
    -
    -
    -

    var Extensions

    +
    + +
    +
    +

    def FromMilliseconds(

    self, millis)

    +
    + + + + +

    Converts milliseconds since epoch to Timestamp.

    +
    +
    +
    +
    + +
    +
    +

    def FromNanoseconds(

    self, nanos)

    +
    + + + +

    Converts nanoseconds since epoch to Timestamp.

    +
    -
    -
    -

    var job

    +
    + +
    +
    +

    def FromSeconds(

    self, seconds)

    +
    + + + + +

    Converts seconds since epoch to Timestamp.

    +
    +
    +
    +
    + +
    +
    +

    def GetCurrentTime(

    self)

    +
    + + + +

    Get the current UTC into Timestamp.

    +
    -
    -
    -
    - -
    -

    class StopPipelineRequest

    - +
    -

    A ProtocolMessage

    + +
    +
    +

    def ToDatetime(

    self)

    +
    + + + + +

    Converts Timestamp to datetime.

    +
    + + +
    +
    +

    def ToJsonString(

    self)

    +
    + + + + +

    Converts Timestamp to RFC 3339 date string format.

    -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    +

    Returns: + A string converted from timestamp. The string is always Z-normalized + and uses 3, 6 or 9 fractional digits as required to represent the + exact time. Example of the return format: '1972-01-01T10:00:20.021Z'

    +
    +
    +
    + +
    + +
    +
    +

    def ToMicroseconds(

    self)

    +
    + - + +

    Converts Timestamp to microseconds since epoch.

    +
    -
    -
    -

    var Extensions

    +
    + +
    +
    +

    def ToMilliseconds(

    self)

    +
    + - + +

    Converts Timestamp to milliseconds since epoch.

    +
    -
    -
    -

    var pipeline

    +
    + +
    +
    +

    def ToNanoseconds(

    self)

    +
    + + + + +

    Converts Timestamp to nanoseconds since epoch.

    +
    +
    +
    +
    + +
    +
    +

    def ToSeconds(

    self)

    +
    + + + +

    Converts Timestamp to seconds since epoch.

    +
    -
    +
    +
    -

    class StringValue

    +

    class TokenInfo

    A ProtocolMessage

    @@ -23449,7 +21823,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -23459,7 +21833,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -23469,7 +21843,7 @@

    Class variables

    -

    var value

    +

    var expires

    @@ -23482,7 +21856,7 @@

    Class variables

    -

    class SubscribeCommitRequest

    +

    class Transaction

    A ProtocolMessage

    @@ -23499,47 +21873,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var branch

    - - - - -
    -
    - -
    -
    -

    var from

    - - - - -
    -
    - -
    -
    -

    var prov

    +

    var DESCRIPTOR

    @@ -23549,7 +21883,7 @@

    Class variables

    -

    var repo

    +

    var Extensions

    @@ -23559,7 +21893,7 @@

    Class variables

    -

    var state

    +

    var id

    @@ -23572,7 +21906,7 @@

    Class variables

    -

    class TFJob

    +

    class TransactionInfo

    A ProtocolMessage

    @@ -23589,7 +21923,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -23599,7 +21933,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -23609,7 +21943,7 @@

    Class variables

    -

    var tf_job

    +

    var requests

    @@ -23618,28 +21952,8 @@

    Class variables

    -
    -
    - -
    -

    class Tag

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var responses

    @@ -23649,7 +21963,7 @@

    Class variables

    -

    var Extensions

    +

    var started

    @@ -23659,7 +21973,7 @@

    Class variables

    -

    var name

    +

    var transaction

    @@ -23672,7 +21986,7 @@

    Class variables

    -

    class TagObjectRequest

    +

    class TransactionInfos

    A ProtocolMessage

    @@ -23689,17 +22003,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    +

    var DESCRIPTOR

    @@ -23709,7 +22013,7 @@

    Class variables

    -

    var object

    +

    var Extensions

    @@ -23719,7 +22023,7 @@

    Class variables

    -

    var tags

    +

    var transaction_info

    @@ -23732,7 +22036,7 @@

    Class variables

    -

    class Timestamp

    +

    class TransactionRequest

    A ProtocolMessage

    @@ -23746,11 +22050,10 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -23760,7 +22063,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -23770,7 +22073,7 @@

    Class variables

    -

    var nanos

    +

    var create_branch

    @@ -23780,7 +22083,7 @@

    Class variables

    -

    var seconds

    +

    var create_pipeline

    @@ -23789,233 +22092,91 @@

    Class variables

    -

    Methods

    - -
    -
    -

    def FromDatetime(

    self, dt)

    -
    - - - - -

    Converts datetime to Timestamp.

    -
    -
    -
    - -
    - - -
    -
    -

    def FromJsonString(

    self, value)

    -
    - - - - -

    Parse a RFC 3339 date string format to Timestamp.

    - -

    Args: - value: A date string. Any fractional digits (or none) and any offset are - accepted as long as they fit into nano-seconds precision. - Example of accepted format: '1972-01-01T10:00:20.021-05:00'

    - -

    Raises: - ValueError: On parsing problems.

    -
    -
    -
    - -
    - - -
    -
    -

    def FromMicroseconds(

    self, micros)

    -
    - - - - -

    Converts microseconds since epoch to Timestamp.

    -
    -
    -
    - -
    - - -
    -
    -

    def FromMilliseconds(

    self, millis)

    -
    - - - - -

    Converts milliseconds since epoch to Timestamp.

    -
    -
    -
    - -
    - - -
    -
    -

    def FromNanoseconds(

    self, nanos)

    -
    - - - - -

    Converts nanoseconds since epoch to Timestamp.

    -
    -
    -
    - -
    - +
    +

    var create_repo

    -
    -
    -

    def FromSeconds(

    self, seconds)

    -
    - - + -

    Converts seconds since epoch to Timestamp.

    -
    -
    - +
    +
    +

    var delete_all

    -
    -
    -

    def GetCurrentTime(

    self)

    -
    - - + -

    Get the current UTC into Timestamp.

    -
    -
    - +
    +
    +

    var delete_branch

    -
    -
    -

    def ToDatetime(

    self)

    -
    - - + -

    Converts Timestamp to datetime.

    -
    -
    - +
    +
    +

    var delete_repo

    -
    -
    -

    def ToJsonString(

    self)

    -
    - - + -

    Converts Timestamp to RFC 3339 date string format.

    - -

    Returns: - A string converted from timestamp. The string is always Z-normalized - and uses 3, 6 or 9 fractional digits as required to represent the - exact time. Example of the return format: '1972-01-01T10:00:20.021Z'

    -
    -
    - +
    +
    +

    var finish_commit

    -
    -
    -

    def ToMicroseconds(

    self)

    -
    - - + -

    Converts Timestamp to microseconds since epoch.

    -
    -
    - +
    +
    +

    var squash_commit

    -
    -
    -

    def ToMilliseconds(

    self)

    -
    - - + -

    Converts Timestamp to milliseconds since epoch.

    -
    -
    - +
    +
    +

    var start_commit

    -
    -
    -

    def ToNanoseconds(

    self)

    -
    - - + -

    Converts Timestamp to nanoseconds since epoch.

    -
    -
    - +
    +
    +

    var update_job_state

    -
    -
    -

    def ToSeconds(

    self)

    -
    - - + -

    Converts Timestamp to seconds since epoch.

    -
    -
    - +
    -

    class TokenInfo

    +

    class TransactionResponse

    A ProtocolMessage

    @@ -24032,7 +22193,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -24042,7 +22203,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -24052,7 +22213,7 @@

    Class variables

    -

    var expires

    +

    var commit

    @@ -24065,7 +22226,7 @@

    Class variables

    -

    class Transaction

    +

    class Transform

    A ProtocolMessage

    @@ -24082,7 +22243,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -24092,7 +22253,7 @@

    Class variables

    -

    var Extensions

    +

    var EnvEntry

    @@ -24102,7 +22263,7 @@

    Class variables

    -

    var id

    +

    var Extensions

    @@ -24111,28 +22272,28 @@

    Class variables

    -
    -
    - -
    -

    class TransactionInfo

    - +
    +

    var accept_return_code

    + + + -

    A ProtocolMessage

    -
    +
    +
    +

    var build

    + -
    -

    Ancestors (in MRO)

    - -

    Class variables

    + + +
    +
    + +
    -

    var DESCRIPTOR

    +

    var cmd

    @@ -24142,7 +22303,7 @@

    Class variables

    -

    var Extensions

    +

    var debug

    @@ -24152,7 +22313,7 @@

    Class variables

    -

    var requests

    +

    var dockerfile

    @@ -24162,7 +22323,7 @@

    Class variables

    -

    var responses

    +

    var env

    @@ -24172,7 +22333,7 @@

    Class variables

    -

    var started

    +

    var err_cmd

    @@ -24182,7 +22343,7 @@

    Class variables

    -

    var transaction

    +

    var err_stdin

    @@ -24191,28 +22352,38 @@

    Class variables

    -
    -
    - -
    -

    class TransactionInfos

    - +
    +

    var image

    + + + -

    A ProtocolMessage

    +
    + +
    +
    +

    var image_pull_secrets

    + + + +
    +
    +
    +

    var secrets

    + -
    -

    Ancestors (in MRO)

    - -

    Class variables

    + + +
    +
    + +
    -

    var DESCRIPTOR

    +

    var stdin

    @@ -24222,7 +22393,7 @@

    Class variables

    -

    var Extensions

    +

    var user

    @@ -24232,7 +22403,7 @@

    Class variables

    -

    var transaction_info

    +

    var working_dir

    @@ -24245,7 +22416,7 @@

    Class variables

    -

    class TransactionRequest

    +

    class Trigger

    A ProtocolMessage

    @@ -24262,7 +22433,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -24272,7 +22443,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -24282,7 +22453,7 @@

    Class variables

    -

    var create_branch

    +

    var all

    @@ -24292,7 +22463,7 @@

    Class variables

    -

    var create_pipeline

    +

    var branch

    @@ -24302,7 +22473,7 @@

    Class variables

    -

    var create_repo

    +

    var commits

    @@ -24312,7 +22483,7 @@

    Class variables

    -

    var delete_all

    +

    var cron_spec

    @@ -24322,7 +22493,7 @@

    Class variables

    -

    var delete_branch

    +

    var size

    @@ -24331,28 +22502,28 @@

    Class variables

    -
    -

    var delete_commit

    - - - +
    +
    + +
    +

    class UInt32Value

    + -
    +

    A ProtocolMessage

    - -
    -
    -

    var delete_repo

    - - - -
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var finish_commit

    +

    var DESCRIPTOR

    @@ -24362,7 +22533,7 @@

    Class variables

    -

    var start_commit

    +

    var Extensions

    @@ -24372,7 +22543,7 @@

    Class variables

    -

    var update_job_state

    +

    var value

    @@ -24385,7 +22556,7 @@

    Class variables

    -

    class TransactionResponse

    +

    class UInt64Value

    A ProtocolMessage

    @@ -24402,7 +22573,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -24412,7 +22583,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -24422,7 +22593,7 @@

    Class variables

    -

    var commit

    +

    var value

    @@ -24435,7 +22606,7 @@

    Class variables

    -

    class Transform

    +

    class URLFileSource

    A ProtocolMessage

    @@ -24452,7 +22623,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -24462,7 +22633,7 @@

    Class variables

    -

    var EnvEntry

    +

    var Extensions

    @@ -24472,7 +22643,7 @@

    Class variables

    -

    var Extensions

    +

    var URL

    @@ -24482,7 +22653,7 @@

    Class variables

    -

    var accept_return_code

    +

    var path

    @@ -24492,7 +22663,7 @@

    Class variables

    -

    var build

    +

    var recursive

    @@ -24501,18 +22672,28 @@

    Class variables

    -
    -

    var cmd

    - - - +
    +
    + +
    +

    class UpdateClusterRequest

    + +

    A ProtocolMessage

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var debug

    +

    var DESCRIPTOR

    @@ -24522,7 +22703,7 @@

    Class variables

    -

    var dockerfile

    +

    var Extensions

    @@ -24532,7 +22713,7 @@

    Class variables

    -

    var env

    +

    var address

    @@ -24542,7 +22723,7 @@

    Class variables

    -

    var err_cmd

    +

    var id

    @@ -24551,18 +22732,28 @@

    Class variables

    -
    -

    var err_stdin

    - - - +
    +
    + +
    +

    class UpdateClusterResponse

    + +

    A ProtocolMessage

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var image

    +

    var DESCRIPTOR

    @@ -24572,7 +22763,7 @@

    Class variables

    -

    var image_pull_secrets

    +

    var Extensions

    @@ -24581,18 +22772,28 @@

    Class variables

    -
    -

    var secrets

    - - - +
    +
    + +
    +

    class UpdateIDPConnectorRequest

    + +

    A ProtocolMessage

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var stdin

    +

    var DESCRIPTOR

    @@ -24602,7 +22803,7 @@

    Class variables

    -

    var user

    +

    var Extensions

    @@ -24612,7 +22813,7 @@

    Class variables

    -

    var working_dir

    +

    var connector

    @@ -24625,7 +22826,7 @@

    Class variables

    -

    class Trigger

    +

    class UpdateIDPConnectorResponse

    A ProtocolMessage

    @@ -24642,7 +22843,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -24652,7 +22853,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -24661,8 +22862,28 @@

    Class variables

    +
    +
    + +
    +

    class UpdateJobStateRequest

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var all

    +

    var DESCRIPTOR

    @@ -24672,7 +22893,7 @@

    Class variables

    -

    var branch

    +

    var Extensions

    @@ -24682,7 +22903,7 @@

    Class variables

    -

    var commits

    +

    var data_failed

    @@ -24692,7 +22913,7 @@

    Class variables

    -

    var cron_spec

    +

    var data_processed

    @@ -24702,7 +22923,7 @@

    Class variables

    -

    var size

    +

    var data_recovered

    @@ -24711,28 +22932,8 @@

    Class variables

    -
    -
    - -
    -

    class UInt32Value

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -

    var DESCRIPTOR

    +

    var data_skipped

    @@ -24742,7 +22943,7 @@

    Class variables

    -

    var Extensions

    +

    var data_total

    @@ -24752,7 +22953,7 @@

    Class variables

    -

    var value

    +

    var job

    @@ -24761,28 +22962,18 @@

    Class variables

    -
    -
    - -
    -

    class UInt64Value

    - +
    +

    var reason

    + + + -

    A ProtocolMessage

    -
    - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    +
    -

    var DESCRIPTOR

    +

    var restart

    @@ -24792,7 +22983,7 @@

    Class variables

    -

    var Extensions

    +

    var state

    @@ -24802,7 +22993,7 @@

    Class variables

    -

    var value

    +

    var stats

    @@ -24815,7 +23006,7 @@

    Class variables

    -

    class UpdateJobStateRequest

    +

    class UpdateOIDCClientRequest

    A ProtocolMessage

    @@ -24832,7 +23023,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -24842,7 +23033,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -24852,7 +23043,7 @@

    Class variables

    -

    var data_failed

    +

    var client

    @@ -24861,28 +23052,28 @@

    Class variables

    -
    -

    var data_processed

    - - - +
    +
    + +
    +

    class UpdateOIDCClientResponse

    + -
    +

    A ProtocolMessage

    - -
    -
    -

    var data_recovered

    - - - -
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var data_skipped

    +

    var DESCRIPTOR

    @@ -24892,7 +23083,7 @@

    Class variables

    -

    var data_total

    +

    var Extensions

    @@ -24901,18 +23092,28 @@

    Class variables

    -
    -

    var job

    - - - +
    +
    + +
    +

    class User

    + +

    A ProtocolMessage

    +
    -
    + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    -

    var reason

    +

    var DESCRIPTOR

    @@ -24922,7 +23123,7 @@

    Class variables

    -

    var restart

    +

    var Extensions

    @@ -24932,7 +23133,7 @@

    Class variables

    -

    var state

    +

    var email

    @@ -24942,7 +23143,7 @@

    Class variables

    -

    var stats

    +

    var last_authenticated

    @@ -25217,26 +23418,6 @@

    Class variables

    -
    -
    - -
    -
    -

    var cluster_roles

    - - - - -
    -
    - -
    -
    -

    var is_admin

    - - - -
    From d8b996f3a336baeba37ad2cab00ecfcb6a360490 Mon Sep 17 00:00:00 2001 From: A Gardner <3100188+actgardner@users.noreply.github.com> Date: Tue, 30 Mar 2021 10:35:36 -0400 Subject: [PATCH 27/34] Linter passes --- etc/proto_lint/proto_lint.py | 72 +++++++----- src/python_pachyderm/mixin/admin.py | 3 +- src/python_pachyderm/mixin/auth.py | 14 +-- src/python_pachyderm/mixin/enterprise.py | 9 +- src/python_pachyderm/mixin/identity.py | 15 ++- src/python_pachyderm/mixin/license.py | 27 +++-- src/python_pachyderm/mixin/pfs.py | 137 +++++++++++------------ src/python_pachyderm/mixin/pps.py | 10 +- src/python_pachyderm/service.py | 2 + 9 files changed, 160 insertions(+), 129 deletions(-) diff --git a/etc/proto_lint/proto_lint.py b/etc/proto_lint/proto_lint.py index 807ad386..8e4a5256 100755 --- a/etc/proto_lint/proto_lint.py +++ b/etc/proto_lint/proto_lint.py @@ -23,6 +23,8 @@ Service.DEBUG: mixin.debug.DebugMixin, Service.ENTERPRISE: mixin.enterprise.EnterpriseMixin, Service.HEALTH: mixin.health.HealthMixin, + Service.IDENTITY: mixin.identity.IdentityMixin, + Service.LICENSE: mixin.license.LicenseMixin, Service.PFS: mixin.pfs.PFSMixin, Service.PPS: mixin.pps.PPSMixin, Service.TRANSACTION: mixin.transaction.TransactionMixin, @@ -66,16 +68,15 @@ "build_commit", "put_tar", "get_tar", - # ignore storage v2 for now - "get_tar_conditional_v2", - "file_operation_v2", - "list_file_v2", - "glob_file_v2", - "get_tar_v2", - "walk_file_v2", - "inspect_file_v2", - "clear_commit_v2", - "diff_file_v2", + "activate_auth", + # TODO: add these new API methods + "renew_fileset", + "squash_commit", + "clear_commit", + "modify_file", + "add_fileset", + "get_fileset", + "create_fileset", ], Service.PPS: [ # the following are ignored because they're for internal use only @@ -83,6 +84,18 @@ "create_job", "update_job_state", ], + Service.AUTH: [ + "get_auth_token", + "extend_auth_token", + ], + Service.ENTERPRISE: [ + # internal RPC only + "heartbeat", + ], + Service.LICENSE: [ + # internal RPC only + "heartbeat", + ], } # Mapping of what the linter would by default expect a proto name to be, to @@ -91,7 +104,7 @@ Service.AUTH: { "activate": ["activate_auth"], "deactivate": ["deactivate_auth"], - "authenticate": ["authenticate_github", "authenticate_oidc", "authenticate_one_time_password"], + "authenticate": ["authenticate_oidc"], "get_a_c_l": ["get_acl"], "set_a_c_l": ["set_acl"], "get_o_i_d_c_login": ["get_oidc_login"], @@ -106,6 +119,23 @@ "get_state": ["get_enterprise_state"], "deactivate": ["deactivate_enterprise"], }, + Service.LICENSE: { + "activate": ["activate_license"], + "delete_all": ["delete_all_license"], + }, + Service.IDENTITY: { + "get_i_d_p_connector": ["get_idp_connector"], + "delete_i_d_p_connector": ["delete_idp_connector"], + "list_i_d_p_connectors": ["list_idp_connectors"], + "create_i_d_p_connector": ["create_idp_connector"], + "update_i_d_p_connector": ["update_idp_connector"], + "get_o_i_d_c_client": ["get_oidc_client"], + "delete_o_i_d_c_client": ["delete_oidc_client"], + "list_o_i_d_c_clients": ["list_oidc_clients"], + "create_o_i_d_c_client": ["create_oidc_client"], + "update_o_i_d_c_client": ["update_oidc_client"], + "delete_all": ["delete_all_identity"], + }, Service.PFS: { "put_file": ["put_file_bytes", "put_file_url"], }, @@ -132,27 +162,7 @@ # * We can also specify that a method has an argument that isn't in the # protos: `(None, "ignored_arg_name")` RENAMED_ARGS = { - # admin - "extract_pipeline": [ - ("pipeline", "pipeline_name"), - ], - "extract": [ - ("URL", "url"), - ], - "restore": [ - (("op", "URL"), "requests"), - ], # auth - "authenticate_github": [ - ("one_time_password", None), - ("oidc_state", None), - ("id_token", None), - ], - "authenticate_one_time_password": [ - ("github_token", None), - ("oidc_state", None), - ("id_token", None), - ], "authenticate_oidc": [ ("github_token", None), ("one_time_password", None), diff --git a/src/python_pachyderm/mixin/admin.py b/src/python_pachyderm/mixin/admin.py index c62bf3d2..1b555a18 100644 --- a/src/python_pachyderm/mixin/admin.py +++ b/src/python_pachyderm/mixin/admin.py @@ -1,10 +1,9 @@ from python_pachyderm.proto.admin import admin_pb2_grpc as admin_grpc -from python_pachyderm.proto.pps import pps_pb2 as pps_proto from python_pachyderm.service import Service class AdminMixin: - + def inspect_cluster(self): """ Inspects a cluster. Returns a `ClusterInfo` object. diff --git a/src/python_pachyderm/mixin/auth.py b/src/python_pachyderm/mixin/auth.py index 1078f48e..c3fbb68a 100644 --- a/src/python_pachyderm/mixin/auth.py +++ b/src/python_pachyderm/mixin/auth.py @@ -1,12 +1,11 @@ -import warnings from python_pachyderm.service import Service class AuthMixin: def activate_auth(self, root_token=None): """ - Activates auth. Returns the root token for the cluster, an irrevocable superuser - credential that should be stored securely. + Activates auth. Returns the root token for the cluster, an + irrevocable superuser credential that should be stored securely. Params: @@ -48,10 +47,10 @@ def get_role_binding(self, resource): def modify_role_binding(self, resource, principal, roles=None): """ - Sets the roles for a given principal on a resource. + Sets the roles for a given principal on a resource. Params: - + * `resource`: The resource to grant the roles on. * `principal`: A string specifying the principal. * `roles`: A list of roles to grant. If empty, all roles are revoked. @@ -94,7 +93,7 @@ def authorize(self, resource, permissions=None): Params: - * `resource`: The resource the user wants access to + * `resource`: The resource the user wants access to * `permissions`: A list of permissions the user wants to test. """ return self._req(Service.AUTH, "Authorize", resource=resource, permissions=permissions) @@ -111,7 +110,8 @@ def get_robot_token(self, robot, ttl=None): Params: * `robot`: The name of the robot user. - * `ttl`: Optional. The expiration for the token. If empty, the token does not expire. + * `ttl`: Optional. The expiration for the token. + If empty, the token does not expire. """ return self._req(Service.AUTH, "GetRobotToken", robot=robot, ttl=ttl).token diff --git a/src/python_pachyderm/mixin/enterprise.py b/src/python_pachyderm/mixin/enterprise.py index 82f53a89..55708bb4 100644 --- a/src/python_pachyderm/mixin/enterprise.py +++ b/src/python_pachyderm/mixin/enterprise.py @@ -2,17 +2,18 @@ class EnterpriseMixin: - def activate_enterprise(self, license_server, cluster_id, secret): + def activate_enterprise(self, license_server, id, secret): """ - Activates enterprise by registering with a license server. Returns a `TokenInfo` object. + Activates enterprise by registering with a license server. + Returns a `TokenInfo` object. Params: * `license_server`: The Pachyderm Enterprise Server to register with. - * `cluster_id`: The unique ID for this cluster. + * `id`: The unique ID for this cluster. * `secret`: The secret for registering this cluster. """ - return self._req(Service.ENTERPRISE, "Activate", license_server=license_server, id=cluster_id, secret=secret) + return self._req(Service.ENTERPRISE, "Activate", license_server=license_server, id=id, secret=secret) def get_enterprise_state(self): """ diff --git a/src/python_pachyderm/mixin/identity.py b/src/python_pachyderm/mixin/identity.py index ac790c31..3a377a11 100644 --- a/src/python_pachyderm/mixin/identity.py +++ b/src/python_pachyderm/mixin/identity.py @@ -1,4 +1,3 @@ -import warnings from python_pachyderm.service import Service @@ -8,7 +7,7 @@ def set_identity_server_config(self, config): Configure the embedded identity server. Params: - + * `issuer`: The issuer for the identity server. """ return self._req(Service.IDENTITY, "SetIdentityServerConfig", config=config) @@ -25,6 +24,12 @@ def create_idp_connector(self, connector): """ return self._req(Service.IDENTITY, "CreateIDPConnector", connector=connector) + def list_idp_connectors(self): + """ + List IDP connectors in the identity server. + """ + return self._req(Service.IDENTITY, "ListIDPConnectors") + def update_idp_connector(self, connector): """ Update an IDP connector in the identity server. @@ -67,6 +72,12 @@ def delete_oidc_client(self, id): """ return self._req(Service.IDENTITY, "DeleteOIDCClient", id=id) + def list_oidc_clients(self): + """ + List OIDC clients in the identity server. + """ + return self._req(Service.IDENTITY, "ListOIDCClients") + def delete_all_identity(self): """ Delete all identity service information. diff --git a/src/python_pachyderm/mixin/license.py b/src/python_pachyderm/mixin/license.py index 96201133..8d24fdfb 100644 --- a/src/python_pachyderm/mixin/license.py +++ b/src/python_pachyderm/mixin/license.py @@ -17,39 +17,40 @@ def activate_license(self, activation_code, expires=None): """ return self._req(Service.LICENSE, "Activate", activation_code=activation_code, expires=expires) - def add_cluster(self, cluster_id, address, secret=None): + def add_cluster(self, id, address, secret=None): """ Register a cluster with the license service. Params: - * `cluster_id`: A unique ID to identify the cluster. + * `id`: A unique ID to identify the cluster. * `address`: A GRPC address for the license server to reach the cluster. - * `secret`: Optional. A shared secret for the cluster to use to authenticate. + * `secret`: Optional. A shared secret for the cluster to use + to authenticate. If not specified, a random secret will be generated and returned. """ - return self._req(Service.LICENSE, "AddCluster", id=cluster_id, address=address, secret=secret) + return self._req(Service.LICENSE, "AddCluster", id=id, address=address, secret=secret) - def update_cluster(self, cluster_id, address): + def update_cluster(self, id, address): """ Update a cluster registered with the license service. Params: - * `cluster_id`: The unique ID to identify the cluster. + * `id`: The unique ID to identify the cluster. * `address`: A GRPC address for the license server to reach the cluster. """ - return self._req(Service.LICENSE, "UpdateCluster", id=cluster_id, address=address) + return self._req(Service.LICENSE, "UpdateCluster", id=id, address=address) - def delete_cluster(self, cluster_id): + def delete_cluster(self, id): """ Delete a cluster registered with the license service. Params: - * `cluster_id`: The unique ID to identify the cluster. + * `id`: The unique ID to identify the cluster. """ - return self._req(Service.LICENSE, "DeleteCluster", id=cluster_id) + return self._req(Service.LICENSE, "DeleteCluster", id=id) def list_clusters(self): """ @@ -57,6 +58,12 @@ def list_clusters(self): """ return self._req(Service.LICENSE, "ListClusters") + def get_activation_code(self): + """ + Returns the enterprise code used to activate the server. + """ + return self._req(Service.LICENSE, "GetActivationCode") + def delete_all_license(self): """ Remove all clusters and deactivate the license service. diff --git a/src/python_pachyderm/mixin/pfs.py b/src/python_pachyderm/mixin/pfs.py index 212a1cfd..031539c4 100644 --- a/src/python_pachyderm/mixin/pfs.py +++ b/src/python_pachyderm/mixin/pfs.py @@ -1,7 +1,5 @@ import io -import warnings import itertools -import collections import tarfile from contextlib import contextmanager @@ -12,9 +10,10 @@ BUFFER_SIZE = 19 * 1024 * 1024 + class FileTarstream: """ - Implements a file-like interface over a GRPC byte stream, + Implements a file-like interface over a GRPC byte stream, so we can use tarfile to decode the file contents. """ def __init__(self, res): @@ -54,12 +53,12 @@ def read(self, size=-1): pass return b"".join(buf) - + class PFSFile: """ - The contents of a file stored in PFS. You can treat these as file-like objects, - like so: + The contents of a file stored in PFS. You can treat these as + file-like objects, like so: ``` source_file = client.get_file("montage/master", "/montage.png") @@ -75,6 +74,7 @@ def __init__(self, stream): def read(self, size=-1): return self._file.read(size) + class PFSMixin: def create_repo(self, repo_name, description=None, update=None): """ @@ -411,20 +411,20 @@ def put_file_bytes(self, commit, path, value, delimiter=None, target_file_datums if hasattr(value, "read"): return pfc.put_file_from_fileobj( path, value, - #delimiter=delimiter, - #target_file_datums=target_file_datums, - #target_file_bytes=target_file_bytes, - #overwrite_index=overwrite_index, - #header_records=header_records, + # delimiter=delimiter, + # target_file_datums=target_file_datums, + # target_file_bytes=target_file_bytes, + # overwrite_index=overwrite_index, + # header_records=header_records, ) else: return pfc.put_file_from_bytes( path, value, - #delimiter=delimiter, - #target_file_datums=target_file_datums, - #target_file_bytes=target_file_bytes, - #overwrite_index=overwrite_index, - #header_records=header_records, + # delimiter=delimiter, + # target_file_datums=target_file_datums, + # target_file_bytes=target_file_bytes, + # overwrite_index=overwrite_index, + # header_records=header_records, ) def put_file_url(self, commit, path, url, delimiter=None, recursive=None, target_file_datums=None, @@ -462,15 +462,15 @@ def put_file_url(self, commit, path, url, delimiter=None, recursive=None, target with self.modify_file_client(commit) as pfc: pfc.put_file_from_url( path, url, - #delimiter=delimiter, recursive=recursive, - #target_file_datums=target_file_datums, - #target_file_bytes=target_file_bytes, - #overwrite_index=overwrite_index, - #header_records=header_records, + # delimiter=delimiter, + # target_file_datums=target_file_datums, + # target_file_bytes=target_file_bytes, + # overwrite_index=overwrite_index, + # header_records=header_records, ) - def copy_file(self, source_commit, source_path, dest_commit, dest_path, overwrite=None): + def copy_file(self, source_commit, source_path, dest_commit, dest_path, overwrite=None, tag=None): """ Efficiently copies files already in PFS. Note that the destination repo cannot be an output repo, or the copy operation will (as of @@ -492,9 +492,10 @@ def copy_file(self, source_commit, source_path, dest_commit, dest_path, overwrit src=pfs_proto.File(commit=commit_from(source_commit), path=source_path), dst=pfs_proto.File(commit=commit_from(dest_commit), path=dest_path), overwrite=overwrite, + tag=tag, ) - def get_file(self, commit, path, offset_bytes=None, size_bytes=None): + def get_file(self, commit, path, URL=None): """ Returns a `PFSFile` object, containing the contents of a file stored in PFS. @@ -504,18 +505,10 @@ def get_file(self, commit, path, offset_bytes=None, size_bytes=None): * `commit`: A tuple, string, or `Commit` object representing the commit. * `path`: A string specifying the path of the file. - * `offset_bytes`: An optional int. Specifies a number of bytes that - should be skipped in the beginning of the file. - * `size_bytes`: An optional int. limits the total amount of data - returned, note you will get fewer bytes than size if you pass a value - larger than the size of the file. If size is set to 0 then all of the - data will be returned. """ res = self._req( Service.PFS, "GetFile", - file=pfs_proto.File(commit=commit_from(commit), path=path), - #offset_bytes=offset_bytes, - #size_bytes=size_bytes, + file=pfs_proto.File(commit=commit_from(commit), path=path, url=URL), ) return PFSFile(FileTarstream(res)) @@ -531,7 +524,7 @@ def inspect_file(self, commit, path): """ return self._req(Service.PFS, "InspectFile", file=pfs_proto.File(commit=commit_from(commit), path=path)) - def list_file(self, commit, path, history=None, include_contents=None): + def list_file(self, commit, path, include_contents=None): """ Lists the files in a directory. @@ -540,20 +533,14 @@ def list_file(self, commit, path, history=None, include_contents=None): * `commit`: A tuple, string, or `Commit` object representing the commit. * `path`: The path to the directory. - * `history`: An optional int that indicates to return jobs from - historical versions of pipelines. Semantics are: - 0: Return jobs from the current version of the pipeline or pipelines. - 1: Return the above and jobs from the next most recent version - 2: etc. - -1: Return jobs from all historical versions. * `include_contents`: An optional bool. If `True`, file contents are included. """ return self._req( Service.PFS, "ListFile", file=pfs_proto.File(commit=commit_from(commit), path=path), - #history=history, full=include_contents, + # history=history, ) def walk_file(self, commit, path): @@ -676,7 +663,7 @@ def _reqs(self): yield put_file_req(commit_from(self.commit)) for op in self._ops: for r in op.reqs(): - yield r + yield r def put_file_from_filepath(self, pfs_path, local_path, overwrite=False, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None): @@ -691,7 +678,7 @@ def put_file_from_filepath(self, pfs_path, local_path, overwrite=False, delimite * `pfs_path`: A string specifying the path in the repo the file(s) will be written to. * `local_path`: A string specifying the local file path. - * `overwrite`: Optional. When true, the existing file is replaced with + * `overwrite`: Optional. When true, the existing file is replaced with new data. When false, the new data is appended to the existing file. * `delimiter`: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used @@ -712,11 +699,12 @@ def put_file_from_filepath(self, pfs_path, local_path, overwrite=False, delimite """ self._ops.append(AtomicModifyFilepathOp( pfs_path, local_path, overwrite - #delimiter=delimiter, - #target_file_datums=target_file_datums, - #target_file_bytes=target_file_bytes, - #overwrite_index=pfs_proto.OverwriteIndex(index=overwrite_index) if overwrite_index is not None else None, - #header_records=header_records, + # delimiter=delimiter, + # target_file_datums=target_file_datums, + # target_file_bytes=target_file_bytes, + # overwrite_index=pfs_proto.OverwriteIndex(index=overwrite_index) + # if overwrite_index is not None else None, + # header_records=header_records, )) def put_file_from_fileobj(self, path, value, overwrite=False, delimiter=None, target_file_datums=None, @@ -729,7 +717,7 @@ def put_file_from_fileobj(self, path, value, overwrite=False, delimiter=None, ta * `path`: A string specifying the path in the repo the file(s) will be written to. * `value`: The file-like object. - * `overwrite`: Optional. When true, the existing file is replaced with + * `overwrite`: Optional. When true, the existing file is replaced with new data. When false, the new data is appended to the existing file. * `delimiter`: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used @@ -750,11 +738,12 @@ def put_file_from_fileobj(self, path, value, overwrite=False, delimiter=None, ta """ self._ops.append(AtomicModifyFileobjOp( path, value, overwrite, - #delimiter=delimiter, - #target_file_datums=target_file_datums, - #target_file_bytes=target_file_bytes, - #overwrite_index=pfs_proto.OverwriteIndex(index=overwrite_index) if overwrite_index is not None else None, - #header_records=header_records, + # delimiter=delimiter, + # target_file_datums=target_file_datums, + # target_file_bytes=target_file_bytes, + # overwrite_index=pfs_proto.OverwriteIndex(index=overwrite_index) + # if overwrite_index is not None else None, + # header_records=header_records, )) def put_file_from_bytes(self, path, value, overwrite=False, delimiter=None, target_file_datums=None, @@ -767,7 +756,7 @@ def put_file_from_bytes(self, path, value, overwrite=False, delimiter=None, targ * `path`: A string specifying the path in the repo the file(s) will be written to. * `value`: The file contents as a bytestring. - * `overwrite`: Optional. When true, the existing file is replaced with + * `overwrite`: Optional. When true, the existing file is replaced with new data. When false, the new data is appended to the existing file. * `delimiter`: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used @@ -788,11 +777,11 @@ def put_file_from_bytes(self, path, value, overwrite=False, delimiter=None, targ """ self.put_file_from_fileobj( path, io.BytesIO(value), overwrite, - #delimiter=delimiter, - #target_file_datums=target_file_datums, - #target_file_bytes=target_file_bytes, - #overwrite_index=overwrite_index, - #header_records=header_records, + # delimiter=delimiter, + # target_file_datums=target_file_datums, + # target_file_bytes=target_file_bytes, + # overwrite_index=overwrite_index, + # header_records=header_records, ) def put_file_from_url(self, path, url, overwrite=False, delimiter=None, recursive=None, target_file_datums=None, @@ -805,7 +794,7 @@ def put_file_from_url(self, path, url, overwrite=False, delimiter=None, recursiv * `path`: A string specifying the path to the file. * `url`: A string specifying the url of the file to put. - * `overwrite`: Optional. When true, the existing file is replaced with + * `overwrite`: Optional. When true, the existing file is replaced with new data. When false, the new data is appended to the existing file. * `delimiter`: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used @@ -829,11 +818,12 @@ def put_file_from_url(self, path, url, overwrite=False, delimiter=None, recursiv self._ops.append(AtomicModifyFileURLOp( path, url, overwrite, recursive=recursive, - #delimiter=delimiter, - #target_file_datums=target_file_datums, - #target_file_bytes=target_file_bytes, - #overwrite_index=pfs_proto.OverwriteIndex(index=overwrite_index) if overwrite_index is not None else None, - #header_records=header_records, + # delimiter=delimiter, + # target_file_datums=target_file_datums, + # target_file_bytes=target_file_bytes, + # overwrite_index=pfs_proto.OverwriteIndex(index=overwrite_index) + # if overwrite_index is not None else None, + # header_records=header_records, )) def delete_file(self, path): @@ -859,8 +849,8 @@ def __init__(self, path): def reqs(self): """ - Yields one or more protobuf `ModifyFileRequests`, which are then enqueued - into the request's channel. + Yields one or more protobuf `ModifyFileRequests`, which are then + enqueued into the request's channel. """ pass @@ -900,6 +890,7 @@ def reqs(self): return yield put_file_req(path=self.path, chunk=chunk, overwrite=self.overwrite) + class AtomicModifyFileURLOp(AtomicOp): """A `ModifyFile` operation to put a file from a URL.""" def __init__(self, path, url, overwrite, recursive=False, **kwargs): @@ -909,7 +900,11 @@ def __init__(self, path, url, overwrite, recursive=False, **kwargs): self.overwrite = overwrite def reqs(self): - yield pfs_proto.ModifyFileRequest(append_file=pfs_proto.AppendFile(url_file_source=pfs_proto.URLFileSource(path=self.path, URL=self.url, recursive=self.recursive), overwrite=self.overwrite)) + yield pfs_proto.ModifyFileRequest(append_file=pfs_proto.AppendFile( + url_file_source=pfs_proto.URLFileSource(path=self.path, URL=self.url, recursive=self.recursive), + overwrite=self.overwrite + )) + class AtomicDeleteFileOp(AtomicOp): """A `ModifyFile` operation to delete a file.""" @@ -919,5 +914,9 @@ def __init__(self, pfs_path): def reqs(self): yield pfs_proto.ModifyFileRequest(delete_file=pfs_proto.DeleteFile(file=self.path)) + def put_file_req(commit=None, path=None, chunk=None, overwrite=False, eof=False): - return pfs_proto.ModifyFileRequest(commit=commit, append_file=pfs_proto.AppendFile(raw_file_source=pfs_proto.RawFileSource(path=path, data=chunk, EOF=eof))) + return pfs_proto.ModifyFileRequest( + commit=commit, + append_file=pfs_proto.AppendFile(raw_file_source=pfs_proto.RawFileSource(path=path, data=chunk, EOF=eof)) + ) diff --git a/src/python_pachyderm/mixin/pps.py b/src/python_pachyderm/mixin/pps.py index fb201762..403bb47d 100644 --- a/src/python_pachyderm/mixin/pps.py +++ b/src/python_pachyderm/mixin/pps.py @@ -107,7 +107,7 @@ def delete_job(self, job_id): """ return self._req(Service.PPS, "DeleteJob", job=pps_proto.Job(id=job_id)) - def stop_job(self, job_id): + def stop_job(self, job_id, output_commit=None): """ Stops a job by its ID. @@ -115,7 +115,7 @@ def stop_job(self, job_id): * `job_id`: The ID of the job to stop. """ - return self._req(Service.PPS, "StopJob", job=pps_proto.Job(id=job_id)) + return self._req(Service.PPS, "StopJob", job=pps_proto.Job(id=job_id), output_commit=commit_from(output_commit)) def inspect_datum(self, job_id, datum_id): """ @@ -204,7 +204,8 @@ def create_pipeline(self, pipeline_name, transform, parallelism_spec=None, egres * `s3_out`: An optional bool specifying whether the output repo should be exposed as an s3 gateway bucket. * `sidecar_resource_limits`: An optional `ResourceSpec` setting - * `no_skip`: An optional bool specifying whether to skip already-processed data + * `no_skip`: An optional bool specifying whether to skip + already-processed data resource limits for the pipeline sidecar. """ @@ -380,7 +381,8 @@ def create_tf_job_pipeline(self, pipeline_name, tf_job, parallelism_spec=None, n * `pod_patch`: An optional string. * `spout`: An optional `Spout` object. * `spec_commit`: An optional `Commit` object. - * `no_skip`: An optional bool specifying whether to skip already-processed data + * `no_skip`: An optional bool specifying whether to skip + already-processed data """ return self._req( Service.PPS, "CreatePipeline", diff --git a/src/python_pachyderm/service.py b/src/python_pachyderm/service.py index eae6c4f9..a98ccc29 100644 --- a/src/python_pachyderm/service.py +++ b/src/python_pachyderm/service.py @@ -23,6 +23,7 @@ from python_pachyderm.proto.identity import identity_pb2 as identity_proto from python_pachyderm.proto.identity import identity_pb2_grpc as identity_grpc + class Service(Enum): ADMIN = 0 AUTH = 1 @@ -80,6 +81,7 @@ def proto_module(self): Service.AUTH: auth_proto, Service.DEBUG: debug_proto, Service.ENTERPRISE: enterprise_proto, + Service.HEALTH: health_proto, Service.IDENTITY: identity_proto, Service.LICENSE: license_proto, Service.PFS: pfs_proto, From 783fd436e75b0e168aeaf011ccf247092436d79e Mon Sep 17 00:00:00 2001 From: A Gardner <3100188+actgardner@users.noreply.github.com> Date: Mon, 12 Apr 2021 15:55:03 -0400 Subject: [PATCH 28/34] Bump version and re-enable examples --- .travis.yml | 13 ++++++------- version.json | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8eafeaa5..d67e84b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ env: global: - PATH=$HOME/cached-deps:$PATH jobs: - - PACHYDERM_VERSION=2.0.0-alpha.8 + - PACHYDERM_VERSION=2.0.0-alpha.12 jobs: include: @@ -23,12 +23,11 @@ jobs: - python: 3.8 env: - TOXENV=lint - - PACHYDERM_VERSION=2.0.0-alpha.8 - # Re-enable examples once 1.12.6 is released with libgl in the python build image - #- python: 3.8 - # env: - # - TOXENV=examples - # - PACHYDERM_VERSION=1.12.4 + - PACHYDERM_VERSION=2.0.0-alpha.12 + - python: 3.8 + env: + - TOXENV=examples + - PACHYDERM_VERSION=2.0.0-alpha.12 install: - make ci-install before_script: diff --git a/version.json b/version.json index 4a4c0d38..c15de6ca 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "pachyderm": "2.0.0-alpha.8", - "python-pachyderm": "7.0.0-alpha.1" + "pachyderm": "2.0.0-alpha.12", + "python-pachyderm": "7.0.0-alpha.2" } From cdeaed092392d73b0eb811adb52d808705886e20 Mon Sep 17 00:00:00 2001 From: A Gardner <3100188+actgardner@users.noreply.github.com> Date: Tue, 20 Apr 2021 09:52:08 -0400 Subject: [PATCH 29/34] Update pachyderm 2.0 API to newest alpha --- proto/pachyderm | 2 +- src/python_pachyderm/mixin/pfs.py | 107 ++-- src/python_pachyderm/proto/auth/auth_pb2.py | 538 +++++------------- .../proto/auth/auth_pb2_grpc.py | 34 -- src/python_pachyderm/proto/pfs/pfs_pb2.py | 357 ++++++------ .../proto/pfs/pfs_pb2_grpc.py | 58 +- src/python_pachyderm/proto/pps/pps_pb2.py | 172 +++--- src/python_pachyderm/proto/server/__init__.py | 0 .../proto/server/pfs/__init__.py | 0 .../proto/server/pfs/server/__init__.py | 0 .../proto/server/pfs/server/pfsserver_pb2.py | 162 ------ .../server/pfs/server/pfsserver_pb2_grpc.py | 3 - .../proto/server/worker/__init__.py | 0 .../proto/server/worker/common/__init__.py | 0 .../proto/server/worker/common/common_pb2.py | 143 ----- .../server/worker/common/common_pb2_grpc.py | 3 - .../proto/server/worker/datum/__init__.py | 0 .../proto/server/worker/datum/datum_pb2.py | 217 ------- .../server/worker/datum/datum_pb2_grpc.py | 3 - .../proto/server/worker/pipeline/__init__.py | 0 .../worker/pipeline/transform/__init__.py | 0 .../pipeline/transform/transform_pb2.py | 103 ---- .../pipeline/transform/transform_pb2_grpc.py | 3 - .../proto/server/worker/server/__init__.py | 0 .../proto/server/worker/server/service_pb2.py | 151 ----- .../server/worker/server/service_pb2_grpc.py | 65 --- tests/test_pfs.py | 130 ++--- 27 files changed, 542 insertions(+), 1709 deletions(-) delete mode 100644 src/python_pachyderm/proto/server/__init__.py delete mode 100644 src/python_pachyderm/proto/server/pfs/__init__.py delete mode 100644 src/python_pachyderm/proto/server/pfs/server/__init__.py delete mode 100644 src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2.py delete mode 100644 src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2_grpc.py delete mode 100644 src/python_pachyderm/proto/server/worker/__init__.py delete mode 100644 src/python_pachyderm/proto/server/worker/common/__init__.py delete mode 100644 src/python_pachyderm/proto/server/worker/common/common_pb2.py delete mode 100644 src/python_pachyderm/proto/server/worker/common/common_pb2_grpc.py delete mode 100644 src/python_pachyderm/proto/server/worker/datum/__init__.py delete mode 100644 src/python_pachyderm/proto/server/worker/datum/datum_pb2.py delete mode 100644 src/python_pachyderm/proto/server/worker/datum/datum_pb2_grpc.py delete mode 100644 src/python_pachyderm/proto/server/worker/pipeline/__init__.py delete mode 100644 src/python_pachyderm/proto/server/worker/pipeline/transform/__init__.py delete mode 100644 src/python_pachyderm/proto/server/worker/pipeline/transform/transform_pb2.py delete mode 100644 src/python_pachyderm/proto/server/worker/pipeline/transform/transform_pb2_grpc.py delete mode 100644 src/python_pachyderm/proto/server/worker/server/__init__.py delete mode 100644 src/python_pachyderm/proto/server/worker/server/service_pb2.py delete mode 100644 src/python_pachyderm/proto/server/worker/server/service_pb2_grpc.py diff --git a/proto/pachyderm b/proto/pachyderm index 95aba7e5..7cefc3ad 160000 --- a/proto/pachyderm +++ b/proto/pachyderm @@ -1 +1 @@ -Subproject commit 95aba7e5519f74f246ececeea7fdfc73c4d8c791 +Subproject commit 7cefc3adf5d2b0d7eeb4491bece5e3324a9a3160 diff --git a/src/python_pachyderm/mixin/pfs.py b/src/python_pachyderm/mixin/pfs.py index 031539c4..b1779ebf 100644 --- a/src/python_pachyderm/mixin/pfs.py +++ b/src/python_pachyderm/mixin/pfs.py @@ -470,7 +470,7 @@ def put_file_url(self, commit, path, url, delimiter=None, recursive=None, target # header_records=header_records, ) - def copy_file(self, source_commit, source_path, dest_commit, dest_path, overwrite=None, tag=None): + def copy_file(self, source_commit, source_path, dest_commit, dest_path, append=None, tag=None): """ Efficiently copies files already in PFS. Note that the destination repo cannot be an output repo, or the copy operation will (as of @@ -484,16 +484,11 @@ def copy_file(self, source_commit, source_path, dest_commit, dest_path, overwrit * `dest_commit`: A tuple, string, or `Commit` object representing the commit for the destination file. * `dest_path`: A string specifying the path of the destination file. - * `overwrite`: An optional bool specifying whether to overwrite the + * `append`: An optional bool specifying whether to append to the destination file if it already exists. """ - return self._req( - Service.PFS, "CopyFile", - src=pfs_proto.File(commit=commit_from(source_commit), path=source_path), - dst=pfs_proto.File(commit=commit_from(dest_commit), path=dest_path), - overwrite=overwrite, - tag=tag, - ) + with self.modify_file_client(dest_commit) as pfc: + pfc.copy_file(source_commit, source_path, dest_path, append=append, tag=tag) def get_file(self, commit, path, URL=None): """ @@ -657,12 +652,12 @@ class ModifyFileClient: def __init__(self, commit): self._ops = [] - self.commit = commit + self.commit = commit_from(commit) def _reqs(self): - yield put_file_req(commit_from(self.commit)) for op in self._ops: for r in op.reqs(): + print(r) yield r def put_file_from_filepath(self, pfs_path, local_path, overwrite=False, delimiter=None, target_file_datums=None, @@ -698,7 +693,7 @@ def put_file_from_filepath(self, pfs_path, local_path, overwrite=False, delimite converted to a header and applied to all file shards. """ self._ops.append(AtomicModifyFilepathOp( - pfs_path, local_path, overwrite + self.commit, pfs_path, local_path, overwrite, # delimiter=delimiter, # target_file_datums=target_file_datums, # target_file_bytes=target_file_bytes, @@ -737,7 +732,7 @@ def put_file_from_fileobj(self, path, value, overwrite=False, delimiter=None, ta converted to a header and applied to all file shards. """ self._ops.append(AtomicModifyFileobjOp( - path, value, overwrite, + self.commit, path, value, overwrite, # delimiter=delimiter, # target_file_datums=target_file_datums, # target_file_bytes=target_file_bytes, @@ -816,7 +811,7 @@ def put_file_from_url(self, path, url, overwrite=False, delimiter=None, recursiv converted to a header and applied to all file shards. """ self._ops.append(AtomicModifyFileURLOp( - path, url, overwrite, + self.commit, path, url, overwrite, recursive=recursive, # delimiter=delimiter, # target_file_datums=target_file_datums, @@ -832,11 +827,19 @@ def delete_file(self, path): Params: - * `commit`: A tuple, string, or `Commit` object representing the - commit. * `path`: The path to the file. """ - self._ops.append(AtomicDeleteFileOp(path)) + self._ops.append(AtomicDeleteFileOp(self.commit, path)) + + def copy_file(self, source_commit, source_path, dest_path, append=None, tag=None): + """ + Deletes a file. + + Params: + + * `path`: The path to the file. + """ + self._ops.append(AtomicCopyFileOp(self.commit, source_commit, source_path, dest_path, append=append, tag=tag)) class AtomicOp: @@ -844,7 +847,8 @@ class AtomicOp: Represents an operation in a `ModifyFile` call. """ - def __init__(self, path): + def __init__(self, commit, path): + self.commit = commit self.path = path def reqs(self): @@ -862,61 +866,86 @@ class AtomicModifyFilepathOp(AtomicOp): files. """ - def __init__(self, pfs_path, local_path, overwrite): - super().__init__(pfs_path) + def __init__(self, commit, pfs_path, local_path, append): + super().__init__(commit, pfs_path) self.local_path = local_path - self.overwrite = overwrite + self.append = append def reqs(self): with open(self.local_path, "rb") as f: for i, chunk in enumerate(f): - yield put_file_req(path=self.path, chunk=chunk, overwrite=self.overwrite) - yield put_file_req(path=self.path, eof=True, overwrite=self.overwrite) + yield put_file_req(commit=self.commit, path=self.path, chunk=chunk) + yield put_file_req(commit=self.commit, path=self.path, eof=True) class AtomicModifyFileobjOp(AtomicOp): """A `ModifyFile` operation to put a file from a file-like object.""" - def __init__(self, path, value, overwrite, **kwargs): - super().__init__(path, **kwargs) + def __init__(self, commit, path, value, append, **kwargs): + super().__init__(commit, path, **kwargs) self.value = value - self.overwrite = overwrite + self.append = append def reqs(self): for i in itertools.count(): chunk = self.value.read(BUFFER_SIZE) if len(chunk) == 0: - yield put_file_req(path=self.path, overwrite=self.overwrite, eof=True) + yield put_file_req(commit=self.commit, path=self.path, eof=True) return - yield put_file_req(path=self.path, chunk=chunk, overwrite=self.overwrite) + yield put_file_req(commit=self.commit, path=self.path, chunk=chunk) class AtomicModifyFileURLOp(AtomicOp): """A `ModifyFile` operation to put a file from a URL.""" - def __init__(self, path, url, overwrite, recursive=False, **kwargs): - super().__init__(path, **kwargs) + def __init__(self, commit, path, url, append, recursive=False, **kwargs): + super().__init__(commit, path, **kwargs) self.url = url self.recursive = recursive - self.overwrite = overwrite + self.append = append def reqs(self): - yield pfs_proto.ModifyFileRequest(append_file=pfs_proto.AppendFile( + yield pfs_proto.ModifyFileRequest( + commit=self.commit, + put_file=pfs_proto.PutFile( url_file_source=pfs_proto.URLFileSource(path=self.path, URL=self.url, recursive=self.recursive), - overwrite=self.overwrite - )) + append=self.append, + ) + ) + + +class AtomicCopyFileOp(AtomicOp): + """A `ModifyFile` operation to copy a file.""" + def __init__(self, target_commit, source_commit, source_path, dest_path, append, tag): + super().__init__(target_commit, dest_path) + self.source_commit = commit_from(source_commit) + self.source_path = source_path + self.dest_path = dest_path + self.tag = tag + self.append = append + + def reqs(self): + yield pfs_proto.ModifyFileRequest( + commit=self.commit, + copy_file=pfs_proto.CopyFile( + append=self.append, + tag=self.tag, + dst=self.dest_path, + src=pfs_proto.File(commit=self.source_commit, path=self.source_path), + ) + ) class AtomicDeleteFileOp(AtomicOp): """A `ModifyFile` operation to delete a file.""" - def __init__(self, pfs_path): - super().__init__(pfs_path) + def __init__(self, commit, pfs_path): + super().__init__(commit, pfs_path) def reqs(self): - yield pfs_proto.ModifyFileRequest(delete_file=pfs_proto.DeleteFile(file=self.path)) + yield pfs_proto.ModifyFileRequest(commit=self.commit, delete_file=pfs_proto.DeleteFile(file=self.path)) -def put_file_req(commit=None, path=None, chunk=None, overwrite=False, eof=False): +def put_file_req(commit=None, path=None, chunk=None, append=False, eof=False): return pfs_proto.ModifyFileRequest( commit=commit, - append_file=pfs_proto.AppendFile(raw_file_source=pfs_proto.RawFileSource(path=path, data=chunk, EOF=eof)) + put_file=pfs_proto.PutFile(append=append, raw_file_source=pfs_proto.RawFileSource(path=path, data=chunk, EOF=eof)) ) diff --git a/src/python_pachyderm/proto/auth/auth_pb2.py b/src/python_pachyderm/proto/auth/auth_pb2.py index 31a6c96f..5cb51ba2 100644 --- a/src/python_pachyderm/proto/auth/auth_pb2.py +++ b/src/python_pachyderm/proto/auth/auth_pb2.py @@ -20,7 +20,7 @@ package='auth', syntax='proto3', serialized_options=b'Z*github.com/pachyderm/pachyderm/v2/src/auth', - serialized_pb=b'\n\x13src/auth/auth.proto\x12\x04\x61uth\x1a\x1fgoogle/protobuf/timestamp.proto\"1\n\x0f\x41\x63tivateRequest\x12\x12\n\nroot_token\x18\x03 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"&\n\x10\x41\x63tivateResponse\x12\x12\n\npach_token\x18\x01 \x01(\t\"\x13\n\x11\x44\x65\x61\x63tivateRequest\"\x14\n\x12\x44\x65\x61\x63tivateResponse\"\xb0\x01\n\nOIDCConfig\x12\x0e\n\x06issuer\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\x12\x15\n\rclient_secret\x18\x03 \x01(\t\x12\x14\n\x0credirect_uri\x18\x04 \x01(\t\x12\x19\n\x11\x61\x64\x64itional_scopes\x18\x05 \x03(\t\x12\x1d\n\x15ignore_email_verified\x18\x06 \x01(\x08\x12\x18\n\x10localhost_issuer\x18\x07 \x01(\x08\"\x19\n\x17GetConfigurationRequest\"C\n\x18GetConfigurationResponse\x12\'\n\rconfiguration\x18\x01 \x01(\x0b\x32\x10.auth.OIDCConfig\"B\n\x17SetConfigurationRequest\x12\'\n\rconfiguration\x18\x01 \x01(\x0b\x32\x10.auth.OIDCConfig\"\x1a\n\x18SetConfigurationResponse\"\x86\x01\n\tTokenInfo\x12\x0f\n\x07subject\x18\x01 \x01(\t\x12+\n\x06source\x18\x02 \x01(\x0e\x32\x1b.auth.TokenInfo.TokenSource\";\n\x0bTokenSource\x12\x0b\n\x07INVALID\x10\x00\x12\x10\n\x0c\x41UTHENTICATE\x10\x01\x12\r\n\tGET_TOKEN\x10\x02\"G\n\x13\x41uthenticateRequest\x12\x12\n\noidc_state\x18\x03 \x01(\t\x12\x10\n\x08id_token\x18\x04 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"*\n\x14\x41uthenticateResponse\x12\x12\n\npach_token\x18\x01 \x01(\t\"\x0f\n\rWhoAmIRequest\";\n\x0eWhoAmIResponse\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x03 \x01(\x03J\x04\x08\x02\x10\x03J\x04\x08\x04\x10\x05\"\\\n\x05Roles\x12%\n\x05roles\x18\x01 \x03(\x0b\x32\x16.auth.Roles.RolesEntry\x1a,\n\nRolesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"{\n\x0bRoleBinding\x12/\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1e.auth.RoleBinding.EntriesEntry\x1a;\n\x0c\x45ntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1a\n\x05value\x18\x02 \x01(\x0b\x32\x0b.auth.Roles:\x02\x38\x01\":\n\x08Resource\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.auth.ResourceType\x12\x0c\n\x04name\x18\x02 \x01(\t\"h\n\x05Users\x12-\n\tusernames\x18\x01 \x03(\x0b\x32\x1a.auth.Users.UsernamesEntry\x1a\x30\n\x0eUsernamesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"a\n\x06Groups\x12(\n\x06groups\x18\x01 \x03(\x0b\x32\x18.auth.Groups.GroupsEntry\x1a-\n\x0bGroupsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"a\n\x10\x41uthorizeRequest\x12 \n\x08resource\x18\x01 \x01(\x0b\x32\x0e.auth.Resource\x12%\n\x0bpermissions\x18\x03 \x03(\x0e\x32\x10.auth.PermissionJ\x04\x08\x02\x10\x03\"\x82\x01\n\x11\x41uthorizeResponse\x12\x12\n\nauthorized\x18\x01 \x01(\x08\x12#\n\tsatisfied\x18\x02 \x03(\x0e\x32\x10.auth.Permission\x12!\n\x07missing\x18\x03 \x03(\x0e\x32\x10.auth.Permission\x12\x11\n\tprincipal\x18\x04 \x01(\t\"^\n\x18ModifyRoleBindingRequest\x12 \n\x08resource\x18\x01 \x01(\x0b\x32\x0e.auth.Resource\x12\x11\n\tprincipal\x18\x02 \x01(\t\x12\r\n\x05roles\x18\x03 \x03(\t\"\x1b\n\x19ModifyRoleBindingResponse\"9\n\x15GetRoleBindingRequest\x12 \n\x08resource\x18\x01 \x01(\x0b\x32\x0e.auth.Resource\"<\n\x16GetRoleBindingResponse\x12\"\n\x07\x62inding\x18\x01 \x01(\x0b\x32\x11.auth.RoleBinding\"C\n\x0bSessionInfo\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x16\n\x0e\x63onversion_err\x18\x03 \x01(\x08\"\x15\n\x13GetOIDCLoginRequest\"8\n\x14GetOIDCLoginResponse\x12\x11\n\tlogin_url\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\t\"3\n\x13GetAuthTokenRequest\x12\x0f\n\x07subject\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"6\n\x14GetAuthTokenResponse\x12\x0f\n\x07subject\x18\x02 \x01(\t\x12\r\n\x05token\x18\x01 \x01(\t\"2\n\x14GetRobotTokenRequest\x12\r\n\x05robot\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"&\n\x15GetRobotTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t\"4\n\x16\x45xtendAuthTokenRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"\x19\n\x17\x45xtendAuthTokenResponse\"\'\n\x16RevokeAuthTokenRequest\x12\r\n\x05token\x18\x01 \x01(\t\"\x19\n\x17RevokeAuthTokenResponse\";\n\x17SetGroupsForUserRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0e\n\x06groups\x18\x02 \x03(\t\"\x1a\n\x18SetGroupsForUserResponse\"B\n\x14ModifyMembersRequest\x12\r\n\x05group\x18\x01 \x01(\t\x12\x0b\n\x03\x61\x64\x64\x18\x02 \x03(\t\x12\x0e\n\x06remove\x18\x03 \x03(\t\"\x17\n\x15ModifyMembersResponse\"$\n\x10GetGroupsRequest\x12\x10\n\x08username\x18\x01 \x01(\t\"#\n\x11GetGroupsResponse\x12\x0e\n\x06groups\x18\x01 \x03(\t\" \n\x0fGetUsersRequest\x12\r\n\x05group\x18\x01 \x01(\t\"%\n\x10GetUsersResponse\x12\x11\n\tusernames\x18\x01 \x03(\t\"|\n\x0fHashedAuthToken\x12\x14\n\x0chashed_token\x18\x01 \x01(\t\x12#\n\ntoken_info\x18\x02 \x01(\x0b\x32\x0f.auth.TokenInfo\x12.\n\nexpiration\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x1a\n\x18\x45xtractAuthTokensRequest\"B\n\x19\x45xtractAuthTokensResponse\x12%\n\x06tokens\x18\x01 \x03(\x0b\x32\x15.auth.HashedAuthToken\"?\n\x17RestoreAuthTokenRequest\x12$\n\x05token\x18\x01 \x01(\x0b\x32\x15.auth.HashedAuthToken\"\x1a\n\x18RestoreAuthTokenResponse*\x82\r\n\nPermission\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x1b\n\x17\x43LUSTER_MODIFY_BINDINGS\x10\x64\x12\x18\n\x14\x43LUSTER_GET_BINDINGS\x10\x65\x12\x19\n\x15\x43LUSTER_AUTH_ACTIVATE\x10\x66\x12\x1b\n\x17\x43LUSTER_AUTH_DEACTIVATE\x10g\x12\x1b\n\x17\x43LUSTER_AUTH_GET_CONFIG\x10h\x12\x1b\n\x17\x43LUSTER_AUTH_SET_CONFIG\x10i\x12\x1a\n\x16\x43LUSTER_AUTH_GET_TOKEN\x10j\x12!\n\x1c\x43LUSTER_AUTH_GET_ROBOT_TOKEN\x10\x8b\x01\x12\x1d\n\x19\x43LUSTER_AUTH_EXTEND_TOKEN\x10k\x12%\n!CLUSTER_AUTH_MODIFY_GROUP_MEMBERS\x10m\x12\x1b\n\x17\x43LUSTER_AUTH_GET_GROUPS\x10n\x12 \n\x1c\x43LUSTER_AUTH_GET_GROUP_USERS\x10o\x12\x1f\n\x1b\x43LUSTER_AUTH_EXTRACT_TOKENS\x10p\x12\x1e\n\x1a\x43LUSTER_AUTH_RESTORE_TOKEN\x10q\x12\x1f\n\x1b\x43LUSTER_ENTERPRISE_ACTIVATE\x10r\x12 \n\x1c\x43LUSTER_ENTERPRISE_HEARTBEAT\x10s\x12\x1f\n\x1b\x43LUSTER_ENTERPRISE_GET_CODE\x10t\x12!\n\x1d\x43LUSTER_ENTERPRISE_DEACTIVATE\x10u\x12\x1f\n\x1b\x43LUSTER_IDENTITY_SET_CONFIG\x10v\x12\x1f\n\x1b\x43LUSTER_IDENTITY_GET_CONFIG\x10w\x12\x1f\n\x1b\x43LUSTER_IDENTITY_CREATE_IDP\x10x\x12\x1f\n\x1b\x43LUSTER_IDENTITY_UPDATE_IDP\x10y\x12\x1e\n\x1a\x43LUSTER_IDENTITY_LIST_IDPS\x10z\x12\x1c\n\x18\x43LUSTER_IDENTITY_GET_IDP\x10{\x12\x1f\n\x1b\x43LUSTER_IDENTITY_DELETE_IDP\x10|\x12\'\n#CLUSTER_IDENTITY_CREATE_OIDC_CLIENT\x10}\x12\'\n#CLUSTER_IDENTITY_UPDATE_OIDC_CLIENT\x10~\x12&\n\"CLUSTER_IDENTITY_LIST_OIDC_CLIENTS\x10\x7f\x12%\n CLUSTER_IDENTITY_GET_OIDC_CLIENT\x10\x80\x01\x12(\n#CLUSTER_IDENTITY_DELETE_OIDC_CLIENT\x10\x81\x01\x12\x17\n\x12\x43LUSTER_DEBUG_DUMP\x10\x83\x01\x12\x1d\n\x18\x43LUSTER_LICENSE_ACTIVATE\x10\x84\x01\x12\x1d\n\x18\x43LUSTER_LICENSE_GET_CODE\x10\x85\x01\x12 \n\x1b\x43LUSTER_LICENSE_ADD_CLUSTER\x10\x86\x01\x12#\n\x1e\x43LUSTER_LICENSE_UPDATE_CLUSTER\x10\x87\x01\x12#\n\x1e\x43LUSTER_LICENSE_DELETE_CLUSTER\x10\x88\x01\x12\"\n\x1d\x43LUSTER_LICENSE_LIST_CLUSTERS\x10\x89\x01\x12\x17\n\x12\x43LUSTER_DELETE_ALL\x10\x8a\x01\x12\x0e\n\tREPO_READ\x10\xc8\x01\x12\x0f\n\nREPO_WRITE\x10\xc9\x01\x12\x19\n\x14REPO_MODIFY_BINDINGS\x10\xca\x01\x12\x10\n\x0bREPO_DELETE\x10\xcb\x01\x12\x18\n\x13REPO_INSPECT_COMMIT\x10\xcc\x01\x12\x15\n\x10REPO_LIST_COMMIT\x10\xcd\x01\x12\x17\n\x12REPO_DELETE_COMMIT\x10\xce\x01\x12\x17\n\x12REPO_CREATE_BRANCH\x10\xcf\x01\x12\x15\n\x10REPO_LIST_BRANCH\x10\xd0\x01\x12\x17\n\x12REPO_DELETE_BRANCH\x10\xd1\x01\x12\x16\n\x11REPO_INSPECT_FILE\x10\xd2\x01\x12\x13\n\x0eREPO_LIST_FILE\x10\xd3\x01\x12\x1d\n\x18REPO_ADD_PIPELINE_READER\x10\xd4\x01\x12 \n\x1bREPO_REMOVE_PIPELINE_READER\x10\xd5\x01\x12\x1d\n\x18REPO_ADD_PIPELINE_WRITER\x10\xd6\x01\x12\x16\n\x11PIPELINE_LIST_JOB\x10\xad\x02*@\n\x0cResourceType\x12\x19\n\x15RESOURCE_TYPE_UNKNOWN\x10\x00\x12\x0b\n\x07\x43LUSTER\x10\x01\x12\x08\n\x04REPO\x10\x02\x32\xe3\x0b\n\x03\x41PI\x12;\n\x08\x41\x63tivate\x12\x15.auth.ActivateRequest\x1a\x16.auth.ActivateResponse\"\x00\x12\x41\n\nDeactivate\x12\x17.auth.DeactivateRequest\x1a\x18.auth.DeactivateResponse\"\x00\x12S\n\x10GetConfiguration\x12\x1d.auth.GetConfigurationRequest\x1a\x1e.auth.GetConfigurationResponse\"\x00\x12S\n\x10SetConfiguration\x12\x1d.auth.SetConfigurationRequest\x1a\x1e.auth.SetConfigurationResponse\"\x00\x12G\n\x0c\x41uthenticate\x12\x19.auth.AuthenticateRequest\x1a\x1a.auth.AuthenticateResponse\"\x00\x12>\n\tAuthorize\x12\x16.auth.AuthorizeRequest\x1a\x17.auth.AuthorizeResponse\"\x00\x12\x35\n\x06WhoAmI\x12\x13.auth.WhoAmIRequest\x1a\x14.auth.WhoAmIResponse\"\x00\x12V\n\x11ModifyRoleBinding\x12\x1e.auth.ModifyRoleBindingRequest\x1a\x1f.auth.ModifyRoleBindingResponse\"\x00\x12M\n\x0eGetRoleBinding\x12\x1b.auth.GetRoleBindingRequest\x1a\x1c.auth.GetRoleBindingResponse\"\x00\x12G\n\x0cGetOIDCLogin\x12\x19.auth.GetOIDCLoginRequest\x1a\x1a.auth.GetOIDCLoginResponse\"\x00\x12G\n\x0cGetAuthToken\x12\x19.auth.GetAuthTokenRequest\x1a\x1a.auth.GetAuthTokenResponse\"\x00\x12J\n\rGetRobotToken\x12\x1a.auth.GetRobotTokenRequest\x1a\x1b.auth.GetRobotTokenResponse\"\x00\x12P\n\x0f\x45xtendAuthToken\x12\x1c.auth.ExtendAuthTokenRequest\x1a\x1d.auth.ExtendAuthTokenResponse\"\x00\x12P\n\x0fRevokeAuthToken\x12\x1c.auth.RevokeAuthTokenRequest\x1a\x1d.auth.RevokeAuthTokenResponse\"\x00\x12S\n\x10SetGroupsForUser\x12\x1d.auth.SetGroupsForUserRequest\x1a\x1e.auth.SetGroupsForUserResponse\"\x00\x12J\n\rModifyMembers\x12\x1a.auth.ModifyMembersRequest\x1a\x1b.auth.ModifyMembersResponse\"\x00\x12>\n\tGetGroups\x12\x16.auth.GetGroupsRequest\x1a\x17.auth.GetGroupsResponse\"\x00\x12;\n\x08GetUsers\x12\x15.auth.GetUsersRequest\x1a\x16.auth.GetUsersResponse\"\x00\x12V\n\x11\x45xtractAuthTokens\x12\x1e.auth.ExtractAuthTokensRequest\x1a\x1f.auth.ExtractAuthTokensResponse\"\x00\x12S\n\x10RestoreAuthToken\x12\x1d.auth.RestoreAuthTokenRequest\x1a\x1e.auth.RestoreAuthTokenResponse\"\x00\x42,Z*github.com/pachyderm/pachyderm/v2/src/authb\x06proto3' + serialized_pb=b'\n\x13src/auth/auth.proto\x12\x04\x61uth\x1a\x1fgoogle/protobuf/timestamp.proto\"1\n\x0f\x41\x63tivateRequest\x12\x12\n\nroot_token\x18\x03 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"&\n\x10\x41\x63tivateResponse\x12\x12\n\npach_token\x18\x01 \x01(\t\"\x13\n\x11\x44\x65\x61\x63tivateRequest\"\x14\n\x12\x44\x65\x61\x63tivateResponse\"\xa6\x01\n\nOIDCConfig\x12\x0e\n\x06issuer\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\x12\x15\n\rclient_secret\x18\x03 \x01(\t\x12\x14\n\x0credirect_uri\x18\x04 \x01(\t\x12\x0e\n\x06scopes\x18\x05 \x03(\t\x12\x1e\n\x16require_email_verified\x18\x06 \x01(\x08\x12\x18\n\x10localhost_issuer\x18\x07 \x01(\x08\"\x19\n\x17GetConfigurationRequest\"C\n\x18GetConfigurationResponse\x12\'\n\rconfiguration\x18\x01 \x01(\x0b\x32\x10.auth.OIDCConfig\"B\n\x17SetConfigurationRequest\x12\'\n\rconfiguration\x18\x01 \x01(\x0b\x32\x10.auth.OIDCConfig\"\x1a\n\x18SetConfigurationResponse\"\x1c\n\tTokenInfo\x12\x0f\n\x07subject\x18\x01 \x01(\t\"G\n\x13\x41uthenticateRequest\x12\x12\n\noidc_state\x18\x03 \x01(\t\x12\x10\n\x08id_token\x18\x04 \x01(\tJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"*\n\x14\x41uthenticateResponse\x12\x12\n\npach_token\x18\x01 \x01(\t\"\x0f\n\rWhoAmIRequest\";\n\x0eWhoAmIResponse\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x03 \x01(\x03J\x04\x08\x02\x10\x03J\x04\x08\x04\x10\x05\"\\\n\x05Roles\x12%\n\x05roles\x18\x01 \x03(\x0b\x32\x16.auth.Roles.RolesEntry\x1a,\n\nRolesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"{\n\x0bRoleBinding\x12/\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1e.auth.RoleBinding.EntriesEntry\x1a;\n\x0c\x45ntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1a\n\x05value\x18\x02 \x01(\x0b\x32\x0b.auth.Roles:\x02\x38\x01\":\n\x08Resource\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.auth.ResourceType\x12\x0c\n\x04name\x18\x02 \x01(\t\"h\n\x05Users\x12-\n\tusernames\x18\x01 \x03(\x0b\x32\x1a.auth.Users.UsernamesEntry\x1a\x30\n\x0eUsernamesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"a\n\x06Groups\x12(\n\x06groups\x18\x01 \x03(\x0b\x32\x18.auth.Groups.GroupsEntry\x1a-\n\x0bGroupsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"a\n\x10\x41uthorizeRequest\x12 \n\x08resource\x18\x01 \x01(\x0b\x32\x0e.auth.Resource\x12%\n\x0bpermissions\x18\x03 \x03(\x0e\x32\x10.auth.PermissionJ\x04\x08\x02\x10\x03\"\x82\x01\n\x11\x41uthorizeResponse\x12\x12\n\nauthorized\x18\x01 \x01(\x08\x12#\n\tsatisfied\x18\x02 \x03(\x0e\x32\x10.auth.Permission\x12!\n\x07missing\x18\x03 \x03(\x0e\x32\x10.auth.Permission\x12\x11\n\tprincipal\x18\x04 \x01(\t\"^\n\x18ModifyRoleBindingRequest\x12 \n\x08resource\x18\x01 \x01(\x0b\x32\x0e.auth.Resource\x12\x11\n\tprincipal\x18\x02 \x01(\t\x12\r\n\x05roles\x18\x03 \x03(\t\"\x1b\n\x19ModifyRoleBindingResponse\"9\n\x15GetRoleBindingRequest\x12 \n\x08resource\x18\x01 \x01(\x0b\x32\x0e.auth.Resource\"<\n\x16GetRoleBindingResponse\x12\"\n\x07\x62inding\x18\x01 \x01(\x0b\x32\x11.auth.RoleBinding\"C\n\x0bSessionInfo\x12\r\n\x05nonce\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x16\n\x0e\x63onversion_err\x18\x03 \x01(\x08\"\x15\n\x13GetOIDCLoginRequest\"8\n\x14GetOIDCLoginResponse\x12\x11\n\tlogin_url\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\t\"2\n\x14GetRobotTokenRequest\x12\r\n\x05robot\x18\x01 \x01(\t\x12\x0b\n\x03ttl\x18\x02 \x01(\x03\"&\n\x15GetRobotTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t\"\'\n\x16RevokeAuthTokenRequest\x12\r\n\x05token\x18\x01 \x01(\t\"\x19\n\x17RevokeAuthTokenResponse\";\n\x17SetGroupsForUserRequest\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0e\n\x06groups\x18\x02 \x03(\t\"\x1a\n\x18SetGroupsForUserResponse\"B\n\x14ModifyMembersRequest\x12\r\n\x05group\x18\x01 \x01(\t\x12\x0b\n\x03\x61\x64\x64\x18\x02 \x03(\t\x12\x0e\n\x06remove\x18\x03 \x03(\t\"\x17\n\x15ModifyMembersResponse\"$\n\x10GetGroupsRequest\x12\x10\n\x08username\x18\x01 \x01(\t\"#\n\x11GetGroupsResponse\x12\x0e\n\x06groups\x18\x01 \x03(\t\" \n\x0fGetUsersRequest\x12\r\n\x05group\x18\x01 \x01(\t\"%\n\x10GetUsersResponse\x12\x11\n\tusernames\x18\x01 \x03(\t\"|\n\x0fHashedAuthToken\x12\x14\n\x0chashed_token\x18\x01 \x01(\t\x12#\n\ntoken_info\x18\x02 \x01(\x0b\x32\x0f.auth.TokenInfo\x12.\n\nexpiration\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x1a\n\x18\x45xtractAuthTokensRequest\"B\n\x19\x45xtractAuthTokensResponse\x12%\n\x06tokens\x18\x01 \x03(\x0b\x32\x15.auth.HashedAuthToken\"?\n\x17RestoreAuthTokenRequest\x12$\n\x05token\x18\x01 \x01(\x0b\x32\x15.auth.HashedAuthToken\"\x1a\n\x18RestoreAuthTokenResponse*\xc7\x0c\n\nPermission\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x1b\n\x17\x43LUSTER_MODIFY_BINDINGS\x10\x64\x12\x18\n\x14\x43LUSTER_GET_BINDINGS\x10\x65\x12\x19\n\x15\x43LUSTER_AUTH_ACTIVATE\x10\x66\x12\x1b\n\x17\x43LUSTER_AUTH_DEACTIVATE\x10g\x12\x1b\n\x17\x43LUSTER_AUTH_GET_CONFIG\x10h\x12\x1b\n\x17\x43LUSTER_AUTH_SET_CONFIG\x10i\x12!\n\x1c\x43LUSTER_AUTH_GET_ROBOT_TOKEN\x10\x8b\x01\x12%\n!CLUSTER_AUTH_MODIFY_GROUP_MEMBERS\x10m\x12\x1b\n\x17\x43LUSTER_AUTH_GET_GROUPS\x10n\x12 \n\x1c\x43LUSTER_AUTH_GET_GROUP_USERS\x10o\x12\x1f\n\x1b\x43LUSTER_AUTH_EXTRACT_TOKENS\x10p\x12\x1e\n\x1a\x43LUSTER_AUTH_RESTORE_TOKEN\x10q\x12\x1f\n\x1b\x43LUSTER_ENTERPRISE_ACTIVATE\x10r\x12 \n\x1c\x43LUSTER_ENTERPRISE_HEARTBEAT\x10s\x12\x1f\n\x1b\x43LUSTER_ENTERPRISE_GET_CODE\x10t\x12!\n\x1d\x43LUSTER_ENTERPRISE_DEACTIVATE\x10u\x12\x1f\n\x1b\x43LUSTER_IDENTITY_SET_CONFIG\x10v\x12\x1f\n\x1b\x43LUSTER_IDENTITY_GET_CONFIG\x10w\x12\x1f\n\x1b\x43LUSTER_IDENTITY_CREATE_IDP\x10x\x12\x1f\n\x1b\x43LUSTER_IDENTITY_UPDATE_IDP\x10y\x12\x1e\n\x1a\x43LUSTER_IDENTITY_LIST_IDPS\x10z\x12\x1c\n\x18\x43LUSTER_IDENTITY_GET_IDP\x10{\x12\x1f\n\x1b\x43LUSTER_IDENTITY_DELETE_IDP\x10|\x12\'\n#CLUSTER_IDENTITY_CREATE_OIDC_CLIENT\x10}\x12\'\n#CLUSTER_IDENTITY_UPDATE_OIDC_CLIENT\x10~\x12&\n\"CLUSTER_IDENTITY_LIST_OIDC_CLIENTS\x10\x7f\x12%\n CLUSTER_IDENTITY_GET_OIDC_CLIENT\x10\x80\x01\x12(\n#CLUSTER_IDENTITY_DELETE_OIDC_CLIENT\x10\x81\x01\x12\x17\n\x12\x43LUSTER_DEBUG_DUMP\x10\x83\x01\x12\x1d\n\x18\x43LUSTER_LICENSE_ACTIVATE\x10\x84\x01\x12\x1d\n\x18\x43LUSTER_LICENSE_GET_CODE\x10\x85\x01\x12 \n\x1b\x43LUSTER_LICENSE_ADD_CLUSTER\x10\x86\x01\x12#\n\x1e\x43LUSTER_LICENSE_UPDATE_CLUSTER\x10\x87\x01\x12#\n\x1e\x43LUSTER_LICENSE_DELETE_CLUSTER\x10\x88\x01\x12\"\n\x1d\x43LUSTER_LICENSE_LIST_CLUSTERS\x10\x89\x01\x12\x17\n\x12\x43LUSTER_DELETE_ALL\x10\x8a\x01\x12\x0e\n\tREPO_READ\x10\xc8\x01\x12\x0f\n\nREPO_WRITE\x10\xc9\x01\x12\x19\n\x14REPO_MODIFY_BINDINGS\x10\xca\x01\x12\x10\n\x0bREPO_DELETE\x10\xcb\x01\x12\x18\n\x13REPO_INSPECT_COMMIT\x10\xcc\x01\x12\x15\n\x10REPO_LIST_COMMIT\x10\xcd\x01\x12\x17\n\x12REPO_DELETE_COMMIT\x10\xce\x01\x12\x17\n\x12REPO_CREATE_BRANCH\x10\xcf\x01\x12\x15\n\x10REPO_LIST_BRANCH\x10\xd0\x01\x12\x17\n\x12REPO_DELETE_BRANCH\x10\xd1\x01\x12\x16\n\x11REPO_INSPECT_FILE\x10\xd2\x01\x12\x13\n\x0eREPO_LIST_FILE\x10\xd3\x01\x12\x1d\n\x18REPO_ADD_PIPELINE_READER\x10\xd4\x01\x12 \n\x1bREPO_REMOVE_PIPELINE_READER\x10\xd5\x01\x12\x1d\n\x18REPO_ADD_PIPELINE_WRITER\x10\xd6\x01\x12\x16\n\x11PIPELINE_LIST_JOB\x10\xad\x02*@\n\x0cResourceType\x12\x19\n\x15RESOURCE_TYPE_UNKNOWN\x10\x00\x12\x0b\n\x07\x43LUSTER\x10\x01\x12\x08\n\x04REPO\x10\x02\x32\xc8\n\n\x03\x41PI\x12;\n\x08\x41\x63tivate\x12\x15.auth.ActivateRequest\x1a\x16.auth.ActivateResponse\"\x00\x12\x41\n\nDeactivate\x12\x17.auth.DeactivateRequest\x1a\x18.auth.DeactivateResponse\"\x00\x12S\n\x10GetConfiguration\x12\x1d.auth.GetConfigurationRequest\x1a\x1e.auth.GetConfigurationResponse\"\x00\x12S\n\x10SetConfiguration\x12\x1d.auth.SetConfigurationRequest\x1a\x1e.auth.SetConfigurationResponse\"\x00\x12G\n\x0c\x41uthenticate\x12\x19.auth.AuthenticateRequest\x1a\x1a.auth.AuthenticateResponse\"\x00\x12>\n\tAuthorize\x12\x16.auth.AuthorizeRequest\x1a\x17.auth.AuthorizeResponse\"\x00\x12\x35\n\x06WhoAmI\x12\x13.auth.WhoAmIRequest\x1a\x14.auth.WhoAmIResponse\"\x00\x12V\n\x11ModifyRoleBinding\x12\x1e.auth.ModifyRoleBindingRequest\x1a\x1f.auth.ModifyRoleBindingResponse\"\x00\x12M\n\x0eGetRoleBinding\x12\x1b.auth.GetRoleBindingRequest\x1a\x1c.auth.GetRoleBindingResponse\"\x00\x12G\n\x0cGetOIDCLogin\x12\x19.auth.GetOIDCLoginRequest\x1a\x1a.auth.GetOIDCLoginResponse\"\x00\x12J\n\rGetRobotToken\x12\x1a.auth.GetRobotTokenRequest\x1a\x1b.auth.GetRobotTokenResponse\"\x00\x12P\n\x0fRevokeAuthToken\x12\x1c.auth.RevokeAuthTokenRequest\x1a\x1d.auth.RevokeAuthTokenResponse\"\x00\x12S\n\x10SetGroupsForUser\x12\x1d.auth.SetGroupsForUserRequest\x1a\x1e.auth.SetGroupsForUserResponse\"\x00\x12J\n\rModifyMembers\x12\x1a.auth.ModifyMembersRequest\x1a\x1b.auth.ModifyMembersResponse\"\x00\x12>\n\tGetGroups\x12\x16.auth.GetGroupsRequest\x1a\x17.auth.GetGroupsResponse\"\x00\x12;\n\x08GetUsers\x12\x15.auth.GetUsersRequest\x1a\x16.auth.GetUsersResponse\"\x00\x12V\n\x11\x45xtractAuthTokens\x12\x1e.auth.ExtractAuthTokensRequest\x1a\x1f.auth.ExtractAuthTokensResponse\"\x00\x12S\n\x10RestoreAuthToken\x12\x1d.auth.RestoreAuthTokenRequest\x1a\x1e.auth.RestoreAuthTokenResponse\"\x00\x42,Z*github.com/pachyderm/pachyderm/v2/src/authb\x06proto3' , dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,]) @@ -59,202 +59,194 @@ serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_AUTH_GET_TOKEN', index=7, number=106, + name='CLUSTER_AUTH_GET_ROBOT_TOKEN', index=7, number=139, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_AUTH_GET_ROBOT_TOKEN', index=8, number=139, + name='CLUSTER_AUTH_MODIFY_GROUP_MEMBERS', index=8, number=109, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_AUTH_EXTEND_TOKEN', index=9, number=107, + name='CLUSTER_AUTH_GET_GROUPS', index=9, number=110, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_AUTH_MODIFY_GROUP_MEMBERS', index=10, number=109, + name='CLUSTER_AUTH_GET_GROUP_USERS', index=10, number=111, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_AUTH_GET_GROUPS', index=11, number=110, + name='CLUSTER_AUTH_EXTRACT_TOKENS', index=11, number=112, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_AUTH_GET_GROUP_USERS', index=12, number=111, + name='CLUSTER_AUTH_RESTORE_TOKEN', index=12, number=113, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_AUTH_EXTRACT_TOKENS', index=13, number=112, + name='CLUSTER_ENTERPRISE_ACTIVATE', index=13, number=114, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_AUTH_RESTORE_TOKEN', index=14, number=113, + name='CLUSTER_ENTERPRISE_HEARTBEAT', index=14, number=115, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_ENTERPRISE_ACTIVATE', index=15, number=114, + name='CLUSTER_ENTERPRISE_GET_CODE', index=15, number=116, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_ENTERPRISE_HEARTBEAT', index=16, number=115, + name='CLUSTER_ENTERPRISE_DEACTIVATE', index=16, number=117, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_ENTERPRISE_GET_CODE', index=17, number=116, + name='CLUSTER_IDENTITY_SET_CONFIG', index=17, number=118, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_ENTERPRISE_DEACTIVATE', index=18, number=117, + name='CLUSTER_IDENTITY_GET_CONFIG', index=18, number=119, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_SET_CONFIG', index=19, number=118, + name='CLUSTER_IDENTITY_CREATE_IDP', index=19, number=120, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_GET_CONFIG', index=20, number=119, + name='CLUSTER_IDENTITY_UPDATE_IDP', index=20, number=121, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_CREATE_IDP', index=21, number=120, + name='CLUSTER_IDENTITY_LIST_IDPS', index=21, number=122, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_UPDATE_IDP', index=22, number=121, + name='CLUSTER_IDENTITY_GET_IDP', index=22, number=123, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_LIST_IDPS', index=23, number=122, + name='CLUSTER_IDENTITY_DELETE_IDP', index=23, number=124, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_GET_IDP', index=24, number=123, + name='CLUSTER_IDENTITY_CREATE_OIDC_CLIENT', index=24, number=125, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_DELETE_IDP', index=25, number=124, + name='CLUSTER_IDENTITY_UPDATE_OIDC_CLIENT', index=25, number=126, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_CREATE_OIDC_CLIENT', index=26, number=125, + name='CLUSTER_IDENTITY_LIST_OIDC_CLIENTS', index=26, number=127, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_UPDATE_OIDC_CLIENT', index=27, number=126, + name='CLUSTER_IDENTITY_GET_OIDC_CLIENT', index=27, number=128, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_LIST_OIDC_CLIENTS', index=28, number=127, + name='CLUSTER_IDENTITY_DELETE_OIDC_CLIENT', index=28, number=129, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_GET_OIDC_CLIENT', index=29, number=128, + name='CLUSTER_DEBUG_DUMP', index=29, number=131, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_IDENTITY_DELETE_OIDC_CLIENT', index=30, number=129, + name='CLUSTER_LICENSE_ACTIVATE', index=30, number=132, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_DEBUG_DUMP', index=31, number=131, + name='CLUSTER_LICENSE_GET_CODE', index=31, number=133, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_LICENSE_ACTIVATE', index=32, number=132, + name='CLUSTER_LICENSE_ADD_CLUSTER', index=32, number=134, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_LICENSE_GET_CODE', index=33, number=133, + name='CLUSTER_LICENSE_UPDATE_CLUSTER', index=33, number=135, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_LICENSE_ADD_CLUSTER', index=34, number=134, + name='CLUSTER_LICENSE_DELETE_CLUSTER', index=34, number=136, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_LICENSE_UPDATE_CLUSTER', index=35, number=135, + name='CLUSTER_LICENSE_LIST_CLUSTERS', index=35, number=137, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_LICENSE_DELETE_CLUSTER', index=36, number=136, + name='CLUSTER_DELETE_ALL', index=36, number=138, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_LICENSE_LIST_CLUSTERS', index=37, number=137, + name='REPO_READ', index=37, number=200, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='CLUSTER_DELETE_ALL', index=38, number=138, + name='REPO_WRITE', index=38, number=201, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_READ', index=39, number=200, + name='REPO_MODIFY_BINDINGS', index=39, number=202, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_WRITE', index=40, number=201, + name='REPO_DELETE', index=40, number=203, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_MODIFY_BINDINGS', index=41, number=202, + name='REPO_INSPECT_COMMIT', index=41, number=204, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_DELETE', index=42, number=203, + name='REPO_LIST_COMMIT', index=42, number=205, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_INSPECT_COMMIT', index=43, number=204, + name='REPO_DELETE_COMMIT', index=43, number=206, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_LIST_COMMIT', index=44, number=205, + name='REPO_CREATE_BRANCH', index=44, number=207, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_DELETE_COMMIT', index=45, number=206, + name='REPO_LIST_BRANCH', index=45, number=208, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_CREATE_BRANCH', index=46, number=207, + name='REPO_DELETE_BRANCH', index=46, number=209, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_LIST_BRANCH', index=47, number=208, + name='REPO_INSPECT_FILE', index=47, number=210, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_DELETE_BRANCH', index=48, number=209, + name='REPO_LIST_FILE', index=48, number=211, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_INSPECT_FILE', index=49, number=210, + name='REPO_ADD_PIPELINE_READER', index=49, number=212, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_LIST_FILE', index=50, number=211, + name='REPO_REMOVE_PIPELINE_READER', index=50, number=213, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_ADD_PIPELINE_READER', index=51, number=212, + name='REPO_ADD_PIPELINE_WRITER', index=51, number=214, serialized_options=None, type=None), _descriptor.EnumValueDescriptor( - name='REPO_REMOVE_PIPELINE_READER', index=52, number=213, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='REPO_ADD_PIPELINE_WRITER', index=53, number=214, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PIPELINE_LIST_JOB', index=54, number=301, + name='PIPELINE_LIST_JOB', index=52, number=301, serialized_options=None, type=None), ], containing_type=None, serialized_options=None, - serialized_start=3007, - serialized_end=4673, + serialized_start=2700, + serialized_end=4307, ) _sym_db.RegisterEnumDescriptor(_PERMISSION) @@ -280,8 +272,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4675, - serialized_end=4739, + serialized_start=4309, + serialized_end=4373, ) _sym_db.RegisterEnumDescriptor(_RESOURCETYPE) @@ -293,9 +285,7 @@ CLUSTER_AUTH_DEACTIVATE = 103 CLUSTER_AUTH_GET_CONFIG = 104 CLUSTER_AUTH_SET_CONFIG = 105 -CLUSTER_AUTH_GET_TOKEN = 106 CLUSTER_AUTH_GET_ROBOT_TOKEN = 139 -CLUSTER_AUTH_EXTEND_TOKEN = 107 CLUSTER_AUTH_MODIFY_GROUP_MEMBERS = 109 CLUSTER_AUTH_GET_GROUPS = 110 CLUSTER_AUTH_GET_GROUP_USERS = 111 @@ -346,32 +336,6 @@ REPO = 2 -_TOKENINFO_TOKENSOURCE = _descriptor.EnumDescriptor( - name='TokenSource', - full_name='auth.TokenInfo.TokenSource', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='INVALID', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='AUTHENTICATE', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GET_TOKEN', index=2, number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=643, - serialized_end=702, -) -_sym_db.RegisterEnumDescriptor(_TOKENINFO_TOKENSOURCE) - _ACTIVATEREQUEST = _descriptor.Descriptor( name='ActivateRequest', @@ -519,14 +483,14 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='additional_scopes', full_name='auth.OIDCConfig.additional_scopes', index=4, + name='scopes', full_name='auth.OIDCConfig.scopes', index=4, number=5, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='ignore_email_verified', full_name='auth.OIDCConfig.ignore_email_verified', index=5, + name='require_email_verified', full_name='auth.OIDCConfig.require_email_verified', index=5, number=6, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, @@ -552,7 +516,7 @@ oneofs=[ ], serialized_start=197, - serialized_end=373, + serialized_end=363, ) @@ -575,8 +539,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=375, - serialized_end=400, + serialized_start=365, + serialized_end=390, ) @@ -606,8 +570,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=402, - serialized_end=469, + serialized_start=392, + serialized_end=459, ) @@ -637,8 +601,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=471, - serialized_end=537, + serialized_start=461, + serialized_end=527, ) @@ -661,8 +625,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=539, - serialized_end=565, + serialized_start=529, + serialized_end=555, ) @@ -680,19 +644,11 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='source', full_name='auth.TokenInfo.source', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], nested_types=[], enum_types=[ - _TOKENINFO_TOKENSOURCE, ], serialized_options=None, is_extendable=False, @@ -700,8 +656,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=568, - serialized_end=702, + serialized_start=557, + serialized_end=585, ) @@ -738,8 +694,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=704, - serialized_end=775, + serialized_start=587, + serialized_end=658, ) @@ -769,8 +725,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=777, - serialized_end=819, + serialized_start=660, + serialized_end=702, ) @@ -793,8 +749,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=821, - serialized_end=836, + serialized_start=704, + serialized_end=719, ) @@ -831,8 +787,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=838, - serialized_end=897, + serialized_start=721, + serialized_end=780, ) @@ -869,8 +825,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=947, - serialized_end=991, + serialized_start=830, + serialized_end=874, ) _ROLES = _descriptor.Descriptor( @@ -899,8 +855,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=899, - serialized_end=991, + serialized_start=782, + serialized_end=874, ) @@ -937,8 +893,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1057, - serialized_end=1116, + serialized_start=940, + serialized_end=999, ) _ROLEBINDING = _descriptor.Descriptor( @@ -967,8 +923,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=993, - serialized_end=1116, + serialized_start=876, + serialized_end=999, ) @@ -1005,8 +961,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1118, - serialized_end=1176, + serialized_start=1001, + serialized_end=1059, ) @@ -1043,8 +999,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1234, - serialized_end=1282, + serialized_start=1117, + serialized_end=1165, ) _USERS = _descriptor.Descriptor( @@ -1073,8 +1029,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1178, - serialized_end=1282, + serialized_start=1061, + serialized_end=1165, ) @@ -1111,8 +1067,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1336, - serialized_end=1381, + serialized_start=1219, + serialized_end=1264, ) _GROUPS = _descriptor.Descriptor( @@ -1141,8 +1097,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1284, - serialized_end=1381, + serialized_start=1167, + serialized_end=1264, ) @@ -1179,8 +1135,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1383, - serialized_end=1480, + serialized_start=1266, + serialized_end=1363, ) @@ -1231,8 +1187,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1483, - serialized_end=1613, + serialized_start=1366, + serialized_end=1496, ) @@ -1276,8 +1232,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1615, - serialized_end=1709, + serialized_start=1498, + serialized_end=1592, ) @@ -1300,8 +1256,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1711, - serialized_end=1738, + serialized_start=1594, + serialized_end=1621, ) @@ -1331,8 +1287,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1740, - serialized_end=1797, + serialized_start=1623, + serialized_end=1680, ) @@ -1362,8 +1318,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1799, - serialized_end=1859, + serialized_start=1682, + serialized_end=1742, ) @@ -1407,8 +1363,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1861, - serialized_end=1928, + serialized_start=1744, + serialized_end=1811, ) @@ -1431,8 +1387,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1930, - serialized_end=1951, + serialized_start=1813, + serialized_end=1834, ) @@ -1469,84 +1425,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1953, - serialized_end=2009, -) - - -_GETAUTHTOKENREQUEST = _descriptor.Descriptor( - name='GetAuthTokenRequest', - full_name='auth.GetAuthTokenRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='subject', full_name='auth.GetAuthTokenRequest.subject', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ttl', full_name='auth.GetAuthTokenRequest.ttl', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2011, - serialized_end=2062, -) - - -_GETAUTHTOKENRESPONSE = _descriptor.Descriptor( - name='GetAuthTokenResponse', - full_name='auth.GetAuthTokenResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='subject', full_name='auth.GetAuthTokenResponse.subject', index=0, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='token', full_name='auth.GetAuthTokenResponse.token', index=1, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2064, - serialized_end=2118, + serialized_start=1836, + serialized_end=1892, ) @@ -1583,8 +1463,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2120, - serialized_end=2170, + serialized_start=1894, + serialized_end=1944, ) @@ -1614,70 +1494,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2172, - serialized_end=2210, -) - - -_EXTENDAUTHTOKENREQUEST = _descriptor.Descriptor( - name='ExtendAuthTokenRequest', - full_name='auth.ExtendAuthTokenRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='token', full_name='auth.ExtendAuthTokenRequest.token', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ttl', full_name='auth.ExtendAuthTokenRequest.ttl', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2212, - serialized_end=2264, -) - - -_EXTENDAUTHTOKENRESPONSE = _descriptor.Descriptor( - name='ExtendAuthTokenResponse', - full_name='auth.ExtendAuthTokenResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2266, - serialized_end=2291, + serialized_start=1946, + serialized_end=1984, ) @@ -1707,8 +1525,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2293, - serialized_end=2332, + serialized_start=1986, + serialized_end=2025, ) @@ -1731,8 +1549,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2334, - serialized_end=2359, + serialized_start=2027, + serialized_end=2052, ) @@ -1769,8 +1587,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2361, - serialized_end=2420, + serialized_start=2054, + serialized_end=2113, ) @@ -1793,8 +1611,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2422, - serialized_end=2448, + serialized_start=2115, + serialized_end=2141, ) @@ -1838,8 +1656,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2450, - serialized_end=2516, + serialized_start=2143, + serialized_end=2209, ) @@ -1862,8 +1680,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2518, - serialized_end=2541, + serialized_start=2211, + serialized_end=2234, ) @@ -1893,8 +1711,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2543, - serialized_end=2579, + serialized_start=2236, + serialized_end=2272, ) @@ -1924,8 +1742,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2581, - serialized_end=2616, + serialized_start=2274, + serialized_end=2309, ) @@ -1955,8 +1773,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2618, - serialized_end=2650, + serialized_start=2311, + serialized_end=2343, ) @@ -1986,8 +1804,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2652, - serialized_end=2689, + serialized_start=2345, + serialized_end=2382, ) @@ -2031,8 +1849,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2691, - serialized_end=2815, + serialized_start=2384, + serialized_end=2508, ) @@ -2055,8 +1873,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2817, - serialized_end=2843, + serialized_start=2510, + serialized_end=2536, ) @@ -2086,8 +1904,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2845, - serialized_end=2911, + serialized_start=2538, + serialized_end=2604, ) @@ -2117,8 +1935,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2913, - serialized_end=2976, + serialized_start=2606, + serialized_end=2669, ) @@ -2141,14 +1959,12 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2978, - serialized_end=3004, + serialized_start=2671, + serialized_end=2697, ) _GETCONFIGURATIONRESPONSE.fields_by_name['configuration'].message_type = _OIDCCONFIG _SETCONFIGURATIONREQUEST.fields_by_name['configuration'].message_type = _OIDCCONFIG -_TOKENINFO.fields_by_name['source'].enum_type = _TOKENINFO_TOKENSOURCE -_TOKENINFO_TOKENSOURCE.containing_type = _TOKENINFO _ROLES_ROLESENTRY.containing_type = _ROLES _ROLES.fields_by_name['roles'].message_type = _ROLES_ROLESENTRY _ROLEBINDING_ENTRIESENTRY.fields_by_name['value'].message_type = _ROLES @@ -2198,12 +2014,8 @@ DESCRIPTOR.message_types_by_name['SessionInfo'] = _SESSIONINFO DESCRIPTOR.message_types_by_name['GetOIDCLoginRequest'] = _GETOIDCLOGINREQUEST DESCRIPTOR.message_types_by_name['GetOIDCLoginResponse'] = _GETOIDCLOGINRESPONSE -DESCRIPTOR.message_types_by_name['GetAuthTokenRequest'] = _GETAUTHTOKENREQUEST -DESCRIPTOR.message_types_by_name['GetAuthTokenResponse'] = _GETAUTHTOKENRESPONSE DESCRIPTOR.message_types_by_name['GetRobotTokenRequest'] = _GETROBOTTOKENREQUEST DESCRIPTOR.message_types_by_name['GetRobotTokenResponse'] = _GETROBOTTOKENRESPONSE -DESCRIPTOR.message_types_by_name['ExtendAuthTokenRequest'] = _EXTENDAUTHTOKENREQUEST -DESCRIPTOR.message_types_by_name['ExtendAuthTokenResponse'] = _EXTENDAUTHTOKENRESPONSE DESCRIPTOR.message_types_by_name['RevokeAuthTokenRequest'] = _REVOKEAUTHTOKENREQUEST DESCRIPTOR.message_types_by_name['RevokeAuthTokenResponse'] = _REVOKEAUTHTOKENRESPONSE DESCRIPTOR.message_types_by_name['SetGroupsForUserRequest'] = _SETGROUPSFORUSERREQUEST @@ -2451,20 +2263,6 @@ }) _sym_db.RegisterMessage(GetOIDCLoginResponse) -GetAuthTokenRequest = _reflection.GeneratedProtocolMessageType('GetAuthTokenRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETAUTHTOKENREQUEST, - '__module__' : 'src.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetAuthTokenRequest) - }) -_sym_db.RegisterMessage(GetAuthTokenRequest) - -GetAuthTokenResponse = _reflection.GeneratedProtocolMessageType('GetAuthTokenResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETAUTHTOKENRESPONSE, - '__module__' : 'src.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.GetAuthTokenResponse) - }) -_sym_db.RegisterMessage(GetAuthTokenResponse) - GetRobotTokenRequest = _reflection.GeneratedProtocolMessageType('GetRobotTokenRequest', (_message.Message,), { 'DESCRIPTOR' : _GETROBOTTOKENREQUEST, '__module__' : 'src.auth.auth_pb2' @@ -2479,20 +2277,6 @@ }) _sym_db.RegisterMessage(GetRobotTokenResponse) -ExtendAuthTokenRequest = _reflection.GeneratedProtocolMessageType('ExtendAuthTokenRequest', (_message.Message,), { - 'DESCRIPTOR' : _EXTENDAUTHTOKENREQUEST, - '__module__' : 'src.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ExtendAuthTokenRequest) - }) -_sym_db.RegisterMessage(ExtendAuthTokenRequest) - -ExtendAuthTokenResponse = _reflection.GeneratedProtocolMessageType('ExtendAuthTokenResponse', (_message.Message,), { - 'DESCRIPTOR' : _EXTENDAUTHTOKENRESPONSE, - '__module__' : 'src.auth.auth_pb2' - # @@protoc_insertion_point(class_scope:auth.ExtendAuthTokenResponse) - }) -_sym_db.RegisterMessage(ExtendAuthTokenResponse) - RevokeAuthTokenRequest = _reflection.GeneratedProtocolMessageType('RevokeAuthTokenRequest', (_message.Message,), { 'DESCRIPTOR' : _REVOKEAUTHTOKENREQUEST, '__module__' : 'src.auth.auth_pb2' @@ -2611,8 +2395,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=4742, - serialized_end=6249, + serialized_start=4376, + serialized_end=5728, methods=[ _descriptor.MethodDescriptor( name='Activate', @@ -2704,37 +2488,19 @@ output_type=_GETOIDCLOGINRESPONSE, serialized_options=None, ), - _descriptor.MethodDescriptor( - name='GetAuthToken', - full_name='auth.API.GetAuthToken', - index=10, - containing_service=None, - input_type=_GETAUTHTOKENREQUEST, - output_type=_GETAUTHTOKENRESPONSE, - serialized_options=None, - ), _descriptor.MethodDescriptor( name='GetRobotToken', full_name='auth.API.GetRobotToken', - index=11, + index=10, containing_service=None, input_type=_GETROBOTTOKENREQUEST, output_type=_GETROBOTTOKENRESPONSE, serialized_options=None, ), - _descriptor.MethodDescriptor( - name='ExtendAuthToken', - full_name='auth.API.ExtendAuthToken', - index=12, - containing_service=None, - input_type=_EXTENDAUTHTOKENREQUEST, - output_type=_EXTENDAUTHTOKENRESPONSE, - serialized_options=None, - ), _descriptor.MethodDescriptor( name='RevokeAuthToken', full_name='auth.API.RevokeAuthToken', - index=13, + index=11, containing_service=None, input_type=_REVOKEAUTHTOKENREQUEST, output_type=_REVOKEAUTHTOKENRESPONSE, @@ -2743,7 +2509,7 @@ _descriptor.MethodDescriptor( name='SetGroupsForUser', full_name='auth.API.SetGroupsForUser', - index=14, + index=12, containing_service=None, input_type=_SETGROUPSFORUSERREQUEST, output_type=_SETGROUPSFORUSERRESPONSE, @@ -2752,7 +2518,7 @@ _descriptor.MethodDescriptor( name='ModifyMembers', full_name='auth.API.ModifyMembers', - index=15, + index=13, containing_service=None, input_type=_MODIFYMEMBERSREQUEST, output_type=_MODIFYMEMBERSRESPONSE, @@ -2761,7 +2527,7 @@ _descriptor.MethodDescriptor( name='GetGroups', full_name='auth.API.GetGroups', - index=16, + index=14, containing_service=None, input_type=_GETGROUPSREQUEST, output_type=_GETGROUPSRESPONSE, @@ -2770,7 +2536,7 @@ _descriptor.MethodDescriptor( name='GetUsers', full_name='auth.API.GetUsers', - index=17, + index=15, containing_service=None, input_type=_GETUSERSREQUEST, output_type=_GETUSERSRESPONSE, @@ -2779,7 +2545,7 @@ _descriptor.MethodDescriptor( name='ExtractAuthTokens', full_name='auth.API.ExtractAuthTokens', - index=18, + index=16, containing_service=None, input_type=_EXTRACTAUTHTOKENSREQUEST, output_type=_EXTRACTAUTHTOKENSRESPONSE, @@ -2788,7 +2554,7 @@ _descriptor.MethodDescriptor( name='RestoreAuthToken', full_name='auth.API.RestoreAuthToken', - index=19, + index=17, containing_service=None, input_type=_RESTOREAUTHTOKENREQUEST, output_type=_RESTOREAUTHTOKENRESPONSE, diff --git a/src/python_pachyderm/proto/auth/auth_pb2_grpc.py b/src/python_pachyderm/proto/auth/auth_pb2_grpc.py index 2c032042..b9cc5943 100644 --- a/src/python_pachyderm/proto/auth/auth_pb2_grpc.py +++ b/src/python_pachyderm/proto/auth/auth_pb2_grpc.py @@ -64,21 +64,11 @@ def __init__(self, channel): request_serializer=src_dot_auth_dot_auth__pb2.GetOIDCLoginRequest.SerializeToString, response_deserializer=src_dot_auth_dot_auth__pb2.GetOIDCLoginResponse.FromString, ) - self.GetAuthToken = channel.unary_unary( - '/auth.API/GetAuthToken', - request_serializer=src_dot_auth_dot_auth__pb2.GetAuthTokenRequest.SerializeToString, - response_deserializer=src_dot_auth_dot_auth__pb2.GetAuthTokenResponse.FromString, - ) self.GetRobotToken = channel.unary_unary( '/auth.API/GetRobotToken', request_serializer=src_dot_auth_dot_auth__pb2.GetRobotTokenRequest.SerializeToString, response_deserializer=src_dot_auth_dot_auth__pb2.GetRobotTokenResponse.FromString, ) - self.ExtendAuthToken = channel.unary_unary( - '/auth.API/ExtendAuthToken', - request_serializer=src_dot_auth_dot_auth__pb2.ExtendAuthTokenRequest.SerializeToString, - response_deserializer=src_dot_auth_dot_auth__pb2.ExtendAuthTokenResponse.FromString, - ) self.RevokeAuthToken = channel.unary_unary( '/auth.API/RevokeAuthToken', request_serializer=src_dot_auth_dot_auth__pb2.RevokeAuthTokenRequest.SerializeToString, @@ -192,13 +182,6 @@ def GetOIDCLogin(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def GetAuthToken(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def GetRobotToken(self, request, context): # missing associated documentation comment in .proto file pass @@ -206,13 +189,6 @@ def GetRobotToken(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def ExtendAuthToken(self, request, context): - # missing associated documentation comment in .proto file - pass - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def RevokeAuthToken(self, request, context): # missing associated documentation comment in .proto file pass @@ -315,21 +291,11 @@ def add_APIServicer_to_server(servicer, server): request_deserializer=src_dot_auth_dot_auth__pb2.GetOIDCLoginRequest.FromString, response_serializer=src_dot_auth_dot_auth__pb2.GetOIDCLoginResponse.SerializeToString, ), - 'GetAuthToken': grpc.unary_unary_rpc_method_handler( - servicer.GetAuthToken, - request_deserializer=src_dot_auth_dot_auth__pb2.GetAuthTokenRequest.FromString, - response_serializer=src_dot_auth_dot_auth__pb2.GetAuthTokenResponse.SerializeToString, - ), 'GetRobotToken': grpc.unary_unary_rpc_method_handler( servicer.GetRobotToken, request_deserializer=src_dot_auth_dot_auth__pb2.GetRobotTokenRequest.FromString, response_serializer=src_dot_auth_dot_auth__pb2.GetRobotTokenResponse.SerializeToString, ), - 'ExtendAuthToken': grpc.unary_unary_rpc_method_handler( - servicer.ExtendAuthToken, - request_deserializer=src_dot_auth_dot_auth__pb2.ExtendAuthTokenRequest.FromString, - response_serializer=src_dot_auth_dot_auth__pb2.ExtendAuthTokenResponse.SerializeToString, - ), 'RevokeAuthToken': grpc.unary_unary_rpc_method_handler( servicer.RevokeAuthToken, request_deserializer=src_dot_auth_dot_auth__pb2.RevokeAuthTokenRequest.FromString, diff --git a/src/python_pachyderm/proto/pfs/pfs_pb2.py b/src/python_pachyderm/proto/pfs/pfs_pb2.py index 8c740e27..6ca1fee6 100644 --- a/src/python_pachyderm/proto/pfs/pfs_pb2.py +++ b/src/python_pachyderm/proto/pfs/pfs_pb2.py @@ -23,7 +23,7 @@ package='pfs', syntax='proto3', serialized_options=b'Z)github.com/pachyderm/pachyderm/v2/src/pfs', - serialized_pb=b'\n\x11src/pfs/pfs.proto\x12\x03pfs\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x13src/auth/auth.proto\"\x14\n\x04Repo\x12\x0c\n\x04name\x18\x01 \x01(\t\"/\n\x06\x42ranch\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0c\n\x04name\x18\x02 \x01(\t\"1\n\x04\x46ile\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04path\x18\x02 \x01(\t\"\xc4\x01\n\x08RepoInfo\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12+\n\x07\x63reated\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x1d\n\x08\x62ranches\x18\x07 \x03(\x0b\x32\x0b.pfs.Branch\x12$\n\tauth_info\x18\x06 \x01(\x0b\x32\x11.pfs.RepoAuthInfoJ\x04\x08\x04\x10\x05\"5\n\x0cRepoAuthInfo\x12%\n\x0bpermissions\x18\x01 \x03(\x0e\x32\x10.auth.Permission\"\xdb\x01\n\nBranchInfo\x12\x1b\n\x06\x62ranch\x18\x04 \x01(\x0b\x32\x0b.pfs.Branch\x12\x19\n\x04head\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\nprovenance\x18\x03 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1f\n\nsubvenance\x18\x05 \x03(\x0b\x32\x0b.pfs.Branch\x12&\n\x11\x64irect_provenance\x18\x06 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1d\n\x07trigger\x18\x07 \x01(\x0b\x32\x0c.pfs.Trigger\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n\x0b\x42ranchInfos\x12$\n\x0b\x62ranch_info\x18\x01 \x03(\x0b\x32\x0f.pfs.BranchInfo\"X\n\x07Trigger\x12\x0e\n\x06\x62ranch\x18\x01 \x01(\t\x12\x0b\n\x03\x61ll\x18\x02 \x01(\x08\x12\x11\n\tcron_spec\x18\x03 \x01(\t\x12\x0c\n\x04size\x18\x04 \x01(\t\x12\x0f\n\x07\x63ommits\x18\x05 \x01(\x03\"-\n\x0c\x43ommitOrigin\x12\x1d\n\x04kind\x18\x01 \x01(\x0e\x32\x0f.pfs.OriginKind\"-\n\x06\x43ommit\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\n\n\x02id\x18\x02 \x01(\t\"E\n\x0b\x43ommitRange\x12\x1a\n\x05lower\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1a\n\x05upper\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\"L\n\x10\x43ommitProvenance\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x06\x62ranch\x18\x02 \x01(\x0b\x32\x0b.pfs.Branch\"\x93\x04\n\nCommitInfo\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x06\x62ranch\x18\x0f \x01(\x0b\x32\x0b.pfs.Branch\x12!\n\x06origin\x18\x11 \x01(\x0b\x32\x11.pfs.CommitOrigin\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\x12\"\n\rparent_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\"\n\rchild_commits\x18\x0b \x03(\x0b\x32\x0b.pfs.Commit\x12+\n\x07started\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nsize_bytes\x18\x05 \x01(\x04\x12)\n\nprovenance\x18\x10 \x03(\x0b\x32\x15.pfs.CommitProvenance\x12\x18\n\x10ready_provenance\x18\x0c \x01(\x03\x12$\n\nsubvenance\x18\t \x03(\x0b\x32\x10.pfs.CommitRange\x12!\n\x19subvenant_commits_success\x18\x12 \x01(\x03\x12!\n\x19subvenant_commits_failure\x18\x13 \x01(\x03\x12\x1f\n\x17subvenant_commits_total\x18\x14 \x01(\x03J\x04\x08\x06\x10\x07J\x04\x08\n\x10\x0b\"\x96\x01\n\x08\x46ileInfo\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12 \n\tfile_type\x18\x02 \x01(\x0e\x32\r.pfs.FileType\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12-\n\tcommitted\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04hash\x18\x07 \x01(\x0c\"W\n\x11\x43reateRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06update\x18\x04 \x01(\x08J\x04\x08\x02\x10\x03\"-\n\x12InspectRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\"\x17\n\x0fListRepoRequestJ\x04\x08\x01\x10\x02\"4\n\x10ListRepoResponse\x12 \n\trepo_info\x18\x01 \x03(\x0b\x32\r.pfs.RepoInfo\"H\n\x11\x44\x65leteRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x12\x0b\n\x03\x61ll\x18\x03 \x01(\x08\"\x87\x01\n\x12StartCommitRequest\x12\x1b\n\x06parent\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12)\n\nprovenance\x18\x05 \x03(\x0b\x32\x15.pfs.CommitProvenanceJ\x04\x08\x02\x10\x03\"j\n\x13\x46inishCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\nsize_bytes\x18\x06 \x01(\x04\x12\r\n\x05\x65mpty\x18\x04 \x01(\x08\"Z\n\x14InspectCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12%\n\x0b\x62lock_state\x18\x02 \x01(\x0e\x32\x10.pfs.CommitState\"\x81\x01\n\x11ListCommitRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x19\n\x04\x66rom\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x17\n\x02to\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0e\n\x06number\x18\x04 \x01(\x04\x12\x0f\n\x07reverse\x18\x05 \x01(\x08\"3\n\x0b\x43ommitInfos\x12$\n\x0b\x63ommit_info\x18\x01 \x03(\x0b\x32\x0f.pfs.CommitInfo\"2\n\x13SquashCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"O\n\x12\x46lushCommitRequest\x12\x1c\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x08to_repos\x18\x02 \x03(\x0b\x32\t.pfs.Repo\"\xa2\x01\n\x16SubscribeCommitRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0e\n\x06\x62ranch\x18\x02 \x01(\t\x12#\n\x04prov\x18\x05 \x01(\x0b\x32\x15.pfs.CommitProvenance\x12\x19\n\x04\x66rom\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\x05state\x18\x04 \x01(\x0e\x32\x10.pfs.CommitState\"1\n\x12\x43learCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"\x9f\x01\n\x13\x43reateBranchRequest\x12\x19\n\x04head\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x10\n\x08s_branch\x18\x02 \x01(\t\x12\x1b\n\x06\x62ranch\x18\x03 \x01(\x0b\x32\x0b.pfs.Branch\x12\x1f\n\nprovenance\x18\x04 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1d\n\x07trigger\x18\x05 \x01(\x0b\x32\x0c.pfs.Trigger\"3\n\x14InspectBranchRequest\x12\x1b\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0b.pfs.Branch\"=\n\x11ListBranchRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0f\n\x07reverse\x18\x02 \x01(\x08\"A\n\x13\x44\x65leteBranchRequest\x12\x1b\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0b.pfs.Branch\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"\xc3\x01\n\nAppendFile\x12\x11\n\toverwrite\x18\x01 \x01(\x08\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12-\n\x0fraw_file_source\x18\x03 \x01(\x0b\x32\x12.pfs.RawFileSourceH\x00\x12-\n\x0ftar_file_source\x18\x04 \x01(\x0b\x32\x12.pfs.TarFileSourceH\x00\x12-\n\x0furl_file_source\x18\x05 \x01(\x0b\x32\x12.pfs.URLFileSourceH\x00\x42\x08\n\x06source\"8\n\rRawFileSource\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0b\n\x03\x45OF\x18\x03 \x01(\x08\"\x1d\n\rTarFileSource\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"=\n\rURLFileSource\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0b\n\x03URL\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x03 \x01(\x08\"\'\n\nDeleteFile\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x0b\n\x03tag\x18\x02 \x01(\t\"\x90\x01\n\x11ModifyFileRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12&\n\x0b\x61ppend_file\x18\x02 \x01(\x0b\x32\x0f.pfs.AppendFileH\x00\x12&\n\x0b\x64\x65lete_file\x18\x03 \x01(\x0b\x32\x0f.pfs.DeleteFileH\x00\x42\x0e\n\x0cmodification\"a\n\x0f\x43opyFileRequest\x12\x16\n\x03src\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x16\n\x03\x64st\x18\x02 \x01(\x0b\x32\t.pfs.File\x12\x11\n\toverwrite\x18\x03 \x01(\x08\x12\x0b\n\x03tag\x18\x04 \x01(\t\"6\n\x0eGetFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x0b\n\x03URL\x18\x02 \x01(\t\"-\n\x12InspectFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"8\n\x0fListFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x0c\n\x04\x66ull\x18\x02 \x01(\x08\"*\n\x0fWalkFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"?\n\x0fGlobFileRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07pattern\x18\x02 \x01(\t\"\\\n\x0f\x44iffFileRequest\x12\x1b\n\x08new_file\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x1b\n\x08old_file\x18\x02 \x01(\x0b\x32\t.pfs.File\x12\x0f\n\x07shallow\x18\x03 \x01(\x08\"T\n\x10\x44iffFileResponse\x12\x1f\n\x08new_file\x18\x01 \x01(\x0b\x32\r.pfs.FileInfo\x12\x1f\n\x08old_file\x18\x02 \x01(\x0b\x32\r.pfs.FileInfo\"\x1a\n\x0b\x46sckRequest\x12\x0b\n\x03\x66ix\x18\x01 \x01(\x08\"*\n\x0c\x46sckResponse\x12\x0b\n\x03\x66ix\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"+\n\x15\x43reateFilesetResponse\x12\x12\n\nfileset_id\x18\x01 \x01(\t\">\n\x13RenewFilesetRequest\x12\x12\n\nfileset_id\x18\x01 \x01(\t\x12\x13\n\x0bttl_seconds\x18\x02 \x01(\x03\"D\n\x11\x41\x64\x64\x46ilesetRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x12\n\nfileset_id\x18\x02 \x01(\t\"0\n\x11GetFilesetRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"\x15\n\x13\x41\x63tivateAuthRequest\"\x16\n\x14\x41\x63tivateAuthResponse**\n\nOriginKind\x12\x08\n\x04USER\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\x12\x08\n\x04\x46SCK\x10\x02*+\n\x08\x46ileType\x12\x0c\n\x08RESERVED\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\x12\x07\n\x03\x44IR\x10\x02*3\n\x0b\x43ommitState\x12\x0b\n\x07STARTED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x46INISHED\x10\x02*;\n\tDelimiter\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04JSON\x10\x01\x12\x08\n\x04LINE\x10\x02\x12\x07\n\x03SQL\x10\x03\x12\x07\n\x03\x43SV\x10\x04\x32\x93\x0f\n\x03\x41PI\x12>\n\nCreateRepo\x12\x16.pfs.CreateRepoRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x37\n\x0bInspectRepo\x12\x17.pfs.InspectRepoRequest\x1a\r.pfs.RepoInfo\"\x00\x12\x39\n\x08ListRepo\x12\x14.pfs.ListRepoRequest\x1a\x15.pfs.ListRepoResponse\"\x00\x12>\n\nDeleteRepo\x12\x16.pfs.DeleteRepoRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x35\n\x0bStartCommit\x12\x17.pfs.StartCommitRequest\x1a\x0b.pfs.Commit\"\x00\x12\x42\n\x0c\x46inishCommit\x12\x18.pfs.FinishCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12=\n\rInspectCommit\x12\x19.pfs.InspectCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x12\x39\n\nListCommit\x12\x16.pfs.ListCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12\x42\n\x0cSquashCommit\x12\x18.pfs.SquashCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12;\n\x0b\x46lushCommit\x12\x17.pfs.FlushCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12\x43\n\x0fSubscribeCommit\x12\x1b.pfs.SubscribeCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12@\n\x0b\x43learCommit\x12\x17.pfs.ClearCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x43reateBranch\x12\x18.pfs.CreateBranchRequest\x1a\x16.google.protobuf.Empty\"\x00\x12=\n\rInspectBranch\x12\x19.pfs.InspectBranchRequest\x1a\x0f.pfs.BranchInfo\"\x00\x12\x38\n\nListBranch\x12\x16.pfs.ListBranchRequest\x1a\x10.pfs.BranchInfos\"\x00\x12\x42\n\x0c\x44\x65leteBranch\x12\x18.pfs.DeleteBranchRequest\x1a\x16.google.protobuf.Empty\"\x00\x12@\n\nModifyFile\x12\x16.pfs.ModifyFileRequest\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12:\n\x08\x43opyFile\x12\x14.pfs.CopyFileRequest\x1a\x16.google.protobuf.Empty\"\x00\x12?\n\x07GetFile\x12\x13.pfs.GetFileRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12\x37\n\x0bInspectFile\x12\x17.pfs.InspectFileRequest\x1a\r.pfs.FileInfo\"\x00\x12\x33\n\x08ListFile\x12\x14.pfs.ListFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12\x33\n\x08WalkFile\x12\x14.pfs.WalkFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12\x33\n\x08GlobFile\x12\x14.pfs.GlobFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12;\n\x08\x44iffFile\x12\x14.pfs.DiffFileRequest\x1a\x15.pfs.DiffFileResponse\"\x00\x30\x01\x12\x45\n\x0c\x41\x63tivateAuth\x12\x18.pfs.ActivateAuthRequest\x1a\x19.pfs.ActivateAuthResponse\"\x00\x12=\n\tDeleteAll\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12/\n\x04\x46sck\x12\x10.pfs.FsckRequest\x1a\x11.pfs.FsckResponse\"\x00\x30\x01\x12>\n\nAddFileset\x12\x16.pfs.AddFilesetRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\nGetFileset\x12\x16.pfs.GetFilesetRequest\x1a\x1a.pfs.CreateFilesetResponse\"\x00\x12G\n\rCreateFileset\x12\x16.pfs.ModifyFileRequest\x1a\x1a.pfs.CreateFilesetResponse\"\x00(\x01\x12\x42\n\x0cRenewFileset\x12\x18.pfs.RenewFilesetRequest\x1a\x16.google.protobuf.Empty\"\x00\x42+Z)github.com/pachyderm/pachyderm/v2/src/pfsb\x06proto3' + serialized_pb=b'\n\x11src/pfs/pfs.proto\x12\x03pfs\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x13src/auth/auth.proto\"\x14\n\x04Repo\x12\x0c\n\x04name\x18\x01 \x01(\t\"/\n\x06\x42ranch\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0c\n\x04name\x18\x02 \x01(\t\"1\n\x04\x46ile\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04path\x18\x02 \x01(\t\"\xc4\x01\n\x08RepoInfo\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12+\n\x07\x63reated\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x1d\n\x08\x62ranches\x18\x07 \x03(\x0b\x32\x0b.pfs.Branch\x12$\n\tauth_info\x18\x06 \x01(\x0b\x32\x11.pfs.RepoAuthInfoJ\x04\x08\x04\x10\x05\"5\n\x0cRepoAuthInfo\x12%\n\x0bpermissions\x18\x01 \x03(\x0e\x32\x10.auth.Permission\"\xdb\x01\n\nBranchInfo\x12\x1b\n\x06\x62ranch\x18\x04 \x01(\x0b\x32\x0b.pfs.Branch\x12\x19\n\x04head\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\nprovenance\x18\x03 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1f\n\nsubvenance\x18\x05 \x03(\x0b\x32\x0b.pfs.Branch\x12&\n\x11\x64irect_provenance\x18\x06 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1d\n\x07trigger\x18\x07 \x01(\x0b\x32\x0c.pfs.Trigger\x12\x0c\n\x04name\x18\x01 \x01(\t\"3\n\x0b\x42ranchInfos\x12$\n\x0b\x62ranch_info\x18\x01 \x03(\x0b\x32\x0f.pfs.BranchInfo\"X\n\x07Trigger\x12\x0e\n\x06\x62ranch\x18\x01 \x01(\t\x12\x0b\n\x03\x61ll\x18\x02 \x01(\x08\x12\x11\n\tcron_spec\x18\x03 \x01(\t\x12\x0c\n\x04size\x18\x04 \x01(\t\x12\x0f\n\x07\x63ommits\x18\x05 \x01(\x03\"-\n\x0c\x43ommitOrigin\x12\x1d\n\x04kind\x18\x01 \x01(\x0e\x32\x0f.pfs.OriginKind\"-\n\x06\x43ommit\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\n\n\x02id\x18\x02 \x01(\t\"E\n\x0b\x43ommitRange\x12\x1a\n\x05lower\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1a\n\x05upper\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\"L\n\x10\x43ommitProvenance\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x06\x62ranch\x18\x02 \x01(\x0b\x32\x0b.pfs.Branch\"\x93\x04\n\nCommitInfo\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x06\x62ranch\x18\x0f \x01(\x0b\x32\x0b.pfs.Branch\x12!\n\x06origin\x18\x11 \x01(\x0b\x32\x11.pfs.CommitOrigin\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\x12\"\n\rparent_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\"\n\rchild_commits\x18\x0b \x03(\x0b\x32\x0b.pfs.Commit\x12+\n\x07started\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nsize_bytes\x18\x05 \x01(\x04\x12)\n\nprovenance\x18\x10 \x03(\x0b\x32\x15.pfs.CommitProvenance\x12\x18\n\x10ready_provenance\x18\x0c \x01(\x03\x12$\n\nsubvenance\x18\t \x03(\x0b\x32\x10.pfs.CommitRange\x12!\n\x19subvenant_commits_success\x18\x12 \x01(\x03\x12!\n\x19subvenant_commits_failure\x18\x13 \x01(\x03\x12\x1f\n\x17subvenant_commits_total\x18\x14 \x01(\x03J\x04\x08\x06\x10\x07J\x04\x08\n\x10\x0b\"\x96\x01\n\x08\x46ileInfo\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12 \n\tfile_type\x18\x02 \x01(\x0e\x32\r.pfs.FileType\x12\x12\n\nsize_bytes\x18\x03 \x01(\x04\x12-\n\tcommitted\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04hash\x18\x07 \x01(\x0c\"W\n\x11\x43reateRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06update\x18\x04 \x01(\x08J\x04\x08\x02\x10\x03\"-\n\x12InspectRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\"\x17\n\x0fListRepoRequestJ\x04\x08\x01\x10\x02\"4\n\x10ListRepoResponse\x12 \n\trepo_info\x18\x01 \x03(\x0b\x32\r.pfs.RepoInfo\"H\n\x11\x44\x65leteRepoRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x12\x0b\n\x03\x61ll\x18\x03 \x01(\x08\"\x87\x01\n\x12StartCommitRequest\x12\x1b\n\x06parent\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12)\n\nprovenance\x18\x05 \x03(\x0b\x32\x15.pfs.CommitProvenanceJ\x04\x08\x02\x10\x03\"j\n\x13\x46inishCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x12\n\nsize_bytes\x18\x06 \x01(\x04\x12\r\n\x05\x65mpty\x18\x04 \x01(\x08\"Z\n\x14InspectCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12%\n\x0b\x62lock_state\x18\x02 \x01(\x0e\x32\x10.pfs.CommitState\"\x81\x01\n\x11ListCommitRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x19\n\x04\x66rom\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x17\n\x02to\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0e\n\x06number\x18\x04 \x01(\x04\x12\x0f\n\x07reverse\x18\x05 \x01(\x08\"3\n\x0b\x43ommitInfos\x12$\n\x0b\x63ommit_info\x18\x01 \x03(\x0b\x32\x0f.pfs.CommitInfo\"2\n\x13SquashCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"O\n\x12\x46lushCommitRequest\x12\x1c\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x0b.pfs.Commit\x12\x1b\n\x08to_repos\x18\x02 \x03(\x0b\x32\t.pfs.Repo\"\xa2\x01\n\x16SubscribeCommitRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0e\n\x06\x62ranch\x18\x02 \x01(\t\x12#\n\x04prov\x18\x05 \x01(\x0b\x32\x15.pfs.CommitProvenance\x12\x19\n\x04\x66rom\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\x05state\x18\x04 \x01(\x0e\x32\x10.pfs.CommitState\"1\n\x12\x43learCommitRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"\x9f\x01\n\x13\x43reateBranchRequest\x12\x19\n\x04head\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x10\n\x08s_branch\x18\x02 \x01(\t\x12\x1b\n\x06\x62ranch\x18\x03 \x01(\x0b\x32\x0b.pfs.Branch\x12\x1f\n\nprovenance\x18\x04 \x03(\x0b\x32\x0b.pfs.Branch\x12\x1d\n\x07trigger\x18\x05 \x01(\x0b\x32\x0c.pfs.Trigger\"3\n\x14InspectBranchRequest\x12\x1b\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0b.pfs.Branch\"=\n\x11ListBranchRequest\x12\x17\n\x04repo\x18\x01 \x01(\x0b\x32\t.pfs.Repo\x12\x0f\n\x07reverse\x18\x02 \x01(\x08\"A\n\x13\x44\x65leteBranchRequest\x12\x1b\n\x06\x62ranch\x18\x01 \x01(\x0b\x32\x0b.pfs.Branch\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"\xbd\x01\n\x07PutFile\x12\x0e\n\x06\x61ppend\x18\x01 \x01(\x08\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12-\n\x0fraw_file_source\x18\x03 \x01(\x0b\x32\x12.pfs.RawFileSourceH\x00\x12-\n\x0ftar_file_source\x18\x04 \x01(\x0b\x32\x12.pfs.TarFileSourceH\x00\x12-\n\x0furl_file_source\x18\x05 \x01(\x0b\x32\x12.pfs.URLFileSourceH\x00\x42\x08\n\x06source\"8\n\rRawFileSource\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0b\n\x03\x45OF\x18\x03 \x01(\x08\"\x1d\n\rTarFileSource\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"=\n\rURLFileSource\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0b\n\x03URL\x18\x02 \x01(\t\x12\x11\n\trecursive\x18\x03 \x01(\x08\"\'\n\nDeleteFile\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\x12\x0b\n\x03tag\x18\x02 \x01(\t\"L\n\x08\x43opyFile\x12\x0e\n\x06\x61ppend\x18\x01 \x01(\x08\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12\x0b\n\x03\x64st\x18\x03 \x01(\t\x12\x16\n\x03src\x18\x04 \x01(\x0b\x32\t.pfs.File\"\xae\x01\n\x11ModifyFileRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12 \n\x08put_file\x18\x02 \x01(\x0b\x32\x0c.pfs.PutFileH\x00\x12&\n\x0b\x64\x65lete_file\x18\x03 \x01(\x0b\x32\x0f.pfs.DeleteFileH\x00\x12\"\n\tcopy_file\x18\x04 \x01(\x0b\x32\r.pfs.CopyFileH\x00\x42\x0e\n\x0cmodification\"6\n\x0eGetFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x0b\n\x03URL\x18\x02 \x01(\t\"-\n\x12InspectFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"8\n\x0fListFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x0c\n\x04\x66ull\x18\x02 \x01(\x08\"*\n\x0fWalkFileRequest\x12\x17\n\x04\x66ile\x18\x01 \x01(\x0b\x32\t.pfs.File\"?\n\x0fGlobFileRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07pattern\x18\x02 \x01(\t\"\\\n\x0f\x44iffFileRequest\x12\x1b\n\x08new_file\x18\x01 \x01(\x0b\x32\t.pfs.File\x12\x1b\n\x08old_file\x18\x02 \x01(\x0b\x32\t.pfs.File\x12\x0f\n\x07shallow\x18\x03 \x01(\x08\"T\n\x10\x44iffFileResponse\x12\x1f\n\x08new_file\x18\x01 \x01(\x0b\x32\r.pfs.FileInfo\x12\x1f\n\x08old_file\x18\x02 \x01(\x0b\x32\r.pfs.FileInfo\"\x1a\n\x0b\x46sckRequest\x12\x0b\n\x03\x66ix\x18\x01 \x01(\x08\"*\n\x0c\x46sckResponse\x12\x0b\n\x03\x66ix\x18\x01 \x01(\t\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"+\n\x15\x43reateFilesetResponse\x12\x12\n\nfileset_id\x18\x01 \x01(\t\"0\n\x11GetFilesetRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\"D\n\x11\x41\x64\x64\x46ilesetRequest\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x12\n\nfileset_id\x18\x02 \x01(\t\">\n\x13RenewFilesetRequest\x12\x12\n\nfileset_id\x18\x01 \x01(\t\x12\x13\n\x0bttl_seconds\x18\x02 \x01(\x03\"\x15\n\x13\x41\x63tivateAuthRequest\"\x16\n\x14\x41\x63tivateAuthResponse**\n\nOriginKind\x12\x08\n\x04USER\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\x12\x08\n\x04\x46SCK\x10\x02*+\n\x08\x46ileType\x12\x0c\n\x08RESERVED\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\x12\x07\n\x03\x44IR\x10\x02*3\n\x0b\x43ommitState\x12\x0b\n\x07STARTED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x46INISHED\x10\x02*;\n\tDelimiter\x12\x08\n\x04NONE\x10\x00\x12\x08\n\x04JSON\x10\x01\x12\x08\n\x04LINE\x10\x02\x12\x07\n\x03SQL\x10\x03\x12\x07\n\x03\x43SV\x10\x04\x32\xd7\x0e\n\x03\x41PI\x12>\n\nCreateRepo\x12\x16.pfs.CreateRepoRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x37\n\x0bInspectRepo\x12\x17.pfs.InspectRepoRequest\x1a\r.pfs.RepoInfo\"\x00\x12\x39\n\x08ListRepo\x12\x14.pfs.ListRepoRequest\x1a\x15.pfs.ListRepoResponse\"\x00\x12>\n\nDeleteRepo\x12\x16.pfs.DeleteRepoRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x35\n\x0bStartCommit\x12\x17.pfs.StartCommitRequest\x1a\x0b.pfs.Commit\"\x00\x12\x42\n\x0c\x46inishCommit\x12\x18.pfs.FinishCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12=\n\rInspectCommit\x12\x19.pfs.InspectCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x12\x39\n\nListCommit\x12\x16.pfs.ListCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12\x42\n\x0cSquashCommit\x12\x18.pfs.SquashCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12;\n\x0b\x46lushCommit\x12\x17.pfs.FlushCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12\x43\n\x0fSubscribeCommit\x12\x1b.pfs.SubscribeCommitRequest\x1a\x0f.pfs.CommitInfo\"\x00\x30\x01\x12@\n\x0b\x43learCommit\x12\x17.pfs.ClearCommitRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x43reateBranch\x12\x18.pfs.CreateBranchRequest\x1a\x16.google.protobuf.Empty\"\x00\x12=\n\rInspectBranch\x12\x19.pfs.InspectBranchRequest\x1a\x0f.pfs.BranchInfo\"\x00\x12\x38\n\nListBranch\x12\x16.pfs.ListBranchRequest\x1a\x10.pfs.BranchInfos\"\x00\x12\x42\n\x0c\x44\x65leteBranch\x12\x18.pfs.DeleteBranchRequest\x1a\x16.google.protobuf.Empty\"\x00\x12@\n\nModifyFile\x12\x16.pfs.ModifyFileRequest\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12?\n\x07GetFile\x12\x13.pfs.GetFileRequest\x1a\x1b.google.protobuf.BytesValue\"\x00\x30\x01\x12\x37\n\x0bInspectFile\x12\x17.pfs.InspectFileRequest\x1a\r.pfs.FileInfo\"\x00\x12\x33\n\x08ListFile\x12\x14.pfs.ListFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12\x33\n\x08WalkFile\x12\x14.pfs.WalkFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12\x33\n\x08GlobFile\x12\x14.pfs.GlobFileRequest\x1a\r.pfs.FileInfo\"\x00\x30\x01\x12;\n\x08\x44iffFile\x12\x14.pfs.DiffFileRequest\x1a\x15.pfs.DiffFileResponse\"\x00\x30\x01\x12\x45\n\x0c\x41\x63tivateAuth\x12\x18.pfs.ActivateAuthRequest\x1a\x19.pfs.ActivateAuthResponse\"\x00\x12=\n\tDeleteAll\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12/\n\x04\x46sck\x12\x10.pfs.FsckRequest\x1a\x11.pfs.FsckResponse\"\x00\x30\x01\x12G\n\rCreateFileset\x12\x16.pfs.ModifyFileRequest\x1a\x1a.pfs.CreateFilesetResponse\"\x00(\x01\x12\x42\n\nGetFileset\x12\x16.pfs.GetFilesetRequest\x1a\x1a.pfs.CreateFilesetResponse\"\x00\x12>\n\nAddFileset\x12\x16.pfs.AddFilesetRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0cRenewFileset\x12\x18.pfs.RenewFilesetRequest\x1a\x16.google.protobuf.Empty\"\x00\x42+Z)github.com/pachyderm/pachyderm/v2/src/pfsb\x06proto3' , dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,src_dot_auth_dot_auth__pb2.DESCRIPTOR,]) @@ -48,8 +48,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4753, - serialized_end=4795, + serialized_start=4756, + serialized_end=4798, ) _sym_db.RegisterEnumDescriptor(_ORIGINKIND) @@ -75,8 +75,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4797, - serialized_end=4840, + serialized_start=4800, + serialized_end=4843, ) _sym_db.RegisterEnumDescriptor(_FILETYPE) @@ -102,8 +102,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4842, - serialized_end=4893, + serialized_start=4845, + serialized_end=4896, ) _sym_db.RegisterEnumDescriptor(_COMMITSTATE) @@ -137,8 +137,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=4895, - serialized_end=4954, + serialized_start=4898, + serialized_end=4957, ) _sym_db.RegisterEnumDescriptor(_DELIMITER) @@ -1593,43 +1593,43 @@ ) -_APPENDFILE = _descriptor.Descriptor( - name='AppendFile', - full_name='pfs.AppendFile', +_PUTFILE = _descriptor.Descriptor( + name='PutFile', + full_name='pfs.PutFile', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='overwrite', full_name='pfs.AppendFile.overwrite', index=0, + name='append', full_name='pfs.PutFile.append', index=0, number=1, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tag', full_name='pfs.AppendFile.tag', index=1, + name='tag', full_name='pfs.PutFile.tag', index=1, number=2, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='raw_file_source', full_name='pfs.AppendFile.raw_file_source', index=2, + name='raw_file_source', full_name='pfs.PutFile.raw_file_source', index=2, number=3, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tar_file_source', full_name='pfs.AppendFile.tar_file_source', index=3, + name='tar_file_source', full_name='pfs.PutFile.tar_file_source', index=3, number=4, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='url_file_source', full_name='pfs.AppendFile.url_file_source', index=4, + name='url_file_source', full_name='pfs.PutFile.url_file_source', index=4, number=5, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, @@ -1647,11 +1647,11 @@ extension_ranges=[], oneofs=[ _descriptor.OneofDescriptor( - name='source', full_name='pfs.AppendFile.source', + name='source', full_name='pfs.PutFile.source', index=0, containing_type=None, fields=[]), ], serialized_start=3319, - serialized_end=3514, + serialized_end=3508, ) @@ -1695,8 +1695,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3516, - serialized_end=3572, + serialized_start=3510, + serialized_end=3566, ) @@ -1726,8 +1726,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3574, - serialized_end=3603, + serialized_start=3568, + serialized_end=3597, ) @@ -1771,8 +1771,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3605, - serialized_end=3666, + serialized_start=3599, + serialized_end=3660, ) @@ -1809,35 +1809,42 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3668, - serialized_end=3707, + serialized_start=3662, + serialized_end=3701, ) -_MODIFYFILEREQUEST = _descriptor.Descriptor( - name='ModifyFileRequest', - full_name='pfs.ModifyFileRequest', +_COPYFILE = _descriptor.Descriptor( + name='CopyFile', + full_name='pfs.CopyFile', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='commit', full_name='pfs.ModifyFileRequest.commit', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='append', full_name='pfs.CopyFile.append', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='append_file', full_name='pfs.ModifyFileRequest.append_file', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='tag', full_name='pfs.CopyFile.tag', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='delete_file', full_name='pfs.ModifyFileRequest.delete_file', index=2, - number=3, type=11, cpp_type=10, label=1, + name='dst', full_name='pfs.CopyFile.dst', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='src', full_name='pfs.CopyFile.src', index=3, + number=4, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -1853,47 +1860,44 @@ syntax='proto3', extension_ranges=[], oneofs=[ - _descriptor.OneofDescriptor( - name='modification', full_name='pfs.ModifyFileRequest.modification', - index=0, containing_type=None, fields=[]), ], - serialized_start=3710, - serialized_end=3854, + serialized_start=3703, + serialized_end=3779, ) -_COPYFILEREQUEST = _descriptor.Descriptor( - name='CopyFileRequest', - full_name='pfs.CopyFileRequest', +_MODIFYFILEREQUEST = _descriptor.Descriptor( + name='ModifyFileRequest', + full_name='pfs.ModifyFileRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='src', full_name='pfs.CopyFileRequest.src', index=0, + name='commit', full_name='pfs.ModifyFileRequest.commit', index=0, number=1, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='dst', full_name='pfs.CopyFileRequest.dst', index=1, + name='put_file', full_name='pfs.ModifyFileRequest.put_file', index=1, number=2, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='overwrite', full_name='pfs.CopyFileRequest.overwrite', index=2, - number=3, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='delete_file', full_name='pfs.ModifyFileRequest.delete_file', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='tag', full_name='pfs.CopyFileRequest.tag', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), + name='copy_file', full_name='pfs.ModifyFileRequest.copy_file', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -1908,9 +1912,12 @@ syntax='proto3', extension_ranges=[], oneofs=[ + _descriptor.OneofDescriptor( + name='modification', full_name='pfs.ModifyFileRequest.modification', + index=0, containing_type=None, fields=[]), ], - serialized_start=3856, - serialized_end=3953, + serialized_start=3782, + serialized_end=3956, ) @@ -1947,8 +1954,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3955, - serialized_end=4009, + serialized_start=3958, + serialized_end=4012, ) @@ -1978,8 +1985,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4011, - serialized_end=4056, + serialized_start=4014, + serialized_end=4059, ) @@ -2016,8 +2023,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4058, - serialized_end=4114, + serialized_start=4061, + serialized_end=4117, ) @@ -2047,8 +2054,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4116, - serialized_end=4158, + serialized_start=4119, + serialized_end=4161, ) @@ -2085,8 +2092,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4160, - serialized_end=4223, + serialized_start=4163, + serialized_end=4226, ) @@ -2130,8 +2137,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4225, - serialized_end=4317, + serialized_start=4228, + serialized_end=4320, ) @@ -2168,8 +2175,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4319, - serialized_end=4403, + serialized_start=4322, + serialized_end=4406, ) @@ -2199,8 +2206,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4405, - serialized_end=4431, + serialized_start=4408, + serialized_end=4434, ) @@ -2237,8 +2244,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4433, - serialized_end=4475, + serialized_start=4436, + serialized_end=4478, ) @@ -2268,29 +2275,22 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4477, - serialized_end=4520, + serialized_start=4480, + serialized_end=4523, ) -_RENEWFILESETREQUEST = _descriptor.Descriptor( - name='RenewFilesetRequest', - full_name='pfs.RenewFilesetRequest', +_GETFILESETREQUEST = _descriptor.Descriptor( + name='GetFilesetRequest', + full_name='pfs.GetFilesetRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='fileset_id', full_name='pfs.RenewFilesetRequest.fileset_id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ttl_seconds', full_name='pfs.RenewFilesetRequest.ttl_seconds', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, + name='commit', full_name='pfs.GetFilesetRequest.commit', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2306,8 +2306,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4522, - serialized_end=4584, + serialized_start=4525, + serialized_end=4573, ) @@ -2344,22 +2344,29 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4586, - serialized_end=4654, + serialized_start=4575, + serialized_end=4643, ) -_GETFILESETREQUEST = _descriptor.Descriptor( - name='GetFilesetRequest', - full_name='pfs.GetFilesetRequest', +_RENEWFILESETREQUEST = _descriptor.Descriptor( + name='RenewFilesetRequest', + full_name='pfs.RenewFilesetRequest', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name='commit', full_name='pfs.GetFilesetRequest.commit', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='fileset_id', full_name='pfs.RenewFilesetRequest.fileset_id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ttl_seconds', full_name='pfs.RenewFilesetRequest.ttl_seconds', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2375,8 +2382,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4656, - serialized_end=4704, + serialized_start=4645, + serialized_end=4707, ) @@ -2399,8 +2406,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4706, - serialized_end=4727, + serialized_start=4709, + serialized_end=4730, ) @@ -2423,8 +2430,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4729, - serialized_end=4751, + serialized_start=4732, + serialized_end=4754, ) _BRANCH.fields_by_name['repo'].message_type = _REPO @@ -2487,29 +2494,32 @@ _INSPECTBRANCHREQUEST.fields_by_name['branch'].message_type = _BRANCH _LISTBRANCHREQUEST.fields_by_name['repo'].message_type = _REPO _DELETEBRANCHREQUEST.fields_by_name['branch'].message_type = _BRANCH -_APPENDFILE.fields_by_name['raw_file_source'].message_type = _RAWFILESOURCE -_APPENDFILE.fields_by_name['tar_file_source'].message_type = _TARFILESOURCE -_APPENDFILE.fields_by_name['url_file_source'].message_type = _URLFILESOURCE -_APPENDFILE.oneofs_by_name['source'].fields.append( - _APPENDFILE.fields_by_name['raw_file_source']) -_APPENDFILE.fields_by_name['raw_file_source'].containing_oneof = _APPENDFILE.oneofs_by_name['source'] -_APPENDFILE.oneofs_by_name['source'].fields.append( - _APPENDFILE.fields_by_name['tar_file_source']) -_APPENDFILE.fields_by_name['tar_file_source'].containing_oneof = _APPENDFILE.oneofs_by_name['source'] -_APPENDFILE.oneofs_by_name['source'].fields.append( - _APPENDFILE.fields_by_name['url_file_source']) -_APPENDFILE.fields_by_name['url_file_source'].containing_oneof = _APPENDFILE.oneofs_by_name['source'] +_PUTFILE.fields_by_name['raw_file_source'].message_type = _RAWFILESOURCE +_PUTFILE.fields_by_name['tar_file_source'].message_type = _TARFILESOURCE +_PUTFILE.fields_by_name['url_file_source'].message_type = _URLFILESOURCE +_PUTFILE.oneofs_by_name['source'].fields.append( + _PUTFILE.fields_by_name['raw_file_source']) +_PUTFILE.fields_by_name['raw_file_source'].containing_oneof = _PUTFILE.oneofs_by_name['source'] +_PUTFILE.oneofs_by_name['source'].fields.append( + _PUTFILE.fields_by_name['tar_file_source']) +_PUTFILE.fields_by_name['tar_file_source'].containing_oneof = _PUTFILE.oneofs_by_name['source'] +_PUTFILE.oneofs_by_name['source'].fields.append( + _PUTFILE.fields_by_name['url_file_source']) +_PUTFILE.fields_by_name['url_file_source'].containing_oneof = _PUTFILE.oneofs_by_name['source'] +_COPYFILE.fields_by_name['src'].message_type = _FILE _MODIFYFILEREQUEST.fields_by_name['commit'].message_type = _COMMIT -_MODIFYFILEREQUEST.fields_by_name['append_file'].message_type = _APPENDFILE +_MODIFYFILEREQUEST.fields_by_name['put_file'].message_type = _PUTFILE _MODIFYFILEREQUEST.fields_by_name['delete_file'].message_type = _DELETEFILE +_MODIFYFILEREQUEST.fields_by_name['copy_file'].message_type = _COPYFILE _MODIFYFILEREQUEST.oneofs_by_name['modification'].fields.append( - _MODIFYFILEREQUEST.fields_by_name['append_file']) -_MODIFYFILEREQUEST.fields_by_name['append_file'].containing_oneof = _MODIFYFILEREQUEST.oneofs_by_name['modification'] + _MODIFYFILEREQUEST.fields_by_name['put_file']) +_MODIFYFILEREQUEST.fields_by_name['put_file'].containing_oneof = _MODIFYFILEREQUEST.oneofs_by_name['modification'] _MODIFYFILEREQUEST.oneofs_by_name['modification'].fields.append( _MODIFYFILEREQUEST.fields_by_name['delete_file']) _MODIFYFILEREQUEST.fields_by_name['delete_file'].containing_oneof = _MODIFYFILEREQUEST.oneofs_by_name['modification'] -_COPYFILEREQUEST.fields_by_name['src'].message_type = _FILE -_COPYFILEREQUEST.fields_by_name['dst'].message_type = _FILE +_MODIFYFILEREQUEST.oneofs_by_name['modification'].fields.append( + _MODIFYFILEREQUEST.fields_by_name['copy_file']) +_MODIFYFILEREQUEST.fields_by_name['copy_file'].containing_oneof = _MODIFYFILEREQUEST.oneofs_by_name['modification'] _GETFILEREQUEST.fields_by_name['file'].message_type = _FILE _INSPECTFILEREQUEST.fields_by_name['file'].message_type = _FILE _LISTFILEREQUEST.fields_by_name['file'].message_type = _FILE @@ -2519,8 +2529,8 @@ _DIFFFILEREQUEST.fields_by_name['old_file'].message_type = _FILE _DIFFFILERESPONSE.fields_by_name['new_file'].message_type = _FILEINFO _DIFFFILERESPONSE.fields_by_name['old_file'].message_type = _FILEINFO -_ADDFILESETREQUEST.fields_by_name['commit'].message_type = _COMMIT _GETFILESETREQUEST.fields_by_name['commit'].message_type = _COMMIT +_ADDFILESETREQUEST.fields_by_name['commit'].message_type = _COMMIT DESCRIPTOR.message_types_by_name['Repo'] = _REPO DESCRIPTOR.message_types_by_name['Branch'] = _BRANCH DESCRIPTOR.message_types_by_name['File'] = _FILE @@ -2553,13 +2563,13 @@ DESCRIPTOR.message_types_by_name['InspectBranchRequest'] = _INSPECTBRANCHREQUEST DESCRIPTOR.message_types_by_name['ListBranchRequest'] = _LISTBRANCHREQUEST DESCRIPTOR.message_types_by_name['DeleteBranchRequest'] = _DELETEBRANCHREQUEST -DESCRIPTOR.message_types_by_name['AppendFile'] = _APPENDFILE +DESCRIPTOR.message_types_by_name['PutFile'] = _PUTFILE DESCRIPTOR.message_types_by_name['RawFileSource'] = _RAWFILESOURCE DESCRIPTOR.message_types_by_name['TarFileSource'] = _TARFILESOURCE DESCRIPTOR.message_types_by_name['URLFileSource'] = _URLFILESOURCE DESCRIPTOR.message_types_by_name['DeleteFile'] = _DELETEFILE +DESCRIPTOR.message_types_by_name['CopyFile'] = _COPYFILE DESCRIPTOR.message_types_by_name['ModifyFileRequest'] = _MODIFYFILEREQUEST -DESCRIPTOR.message_types_by_name['CopyFileRequest'] = _COPYFILEREQUEST DESCRIPTOR.message_types_by_name['GetFileRequest'] = _GETFILEREQUEST DESCRIPTOR.message_types_by_name['InspectFileRequest'] = _INSPECTFILEREQUEST DESCRIPTOR.message_types_by_name['ListFileRequest'] = _LISTFILEREQUEST @@ -2570,9 +2580,9 @@ DESCRIPTOR.message_types_by_name['FsckRequest'] = _FSCKREQUEST DESCRIPTOR.message_types_by_name['FsckResponse'] = _FSCKRESPONSE DESCRIPTOR.message_types_by_name['CreateFilesetResponse'] = _CREATEFILESETRESPONSE -DESCRIPTOR.message_types_by_name['RenewFilesetRequest'] = _RENEWFILESETREQUEST -DESCRIPTOR.message_types_by_name['AddFilesetRequest'] = _ADDFILESETREQUEST DESCRIPTOR.message_types_by_name['GetFilesetRequest'] = _GETFILESETREQUEST +DESCRIPTOR.message_types_by_name['AddFilesetRequest'] = _ADDFILESETREQUEST +DESCRIPTOR.message_types_by_name['RenewFilesetRequest'] = _RENEWFILESETREQUEST DESCRIPTOR.message_types_by_name['ActivateAuthRequest'] = _ACTIVATEAUTHREQUEST DESCRIPTOR.message_types_by_name['ActivateAuthResponse'] = _ACTIVATEAUTHRESPONSE DESCRIPTOR.enum_types_by_name['OriginKind'] = _ORIGINKIND @@ -2805,12 +2815,12 @@ }) _sym_db.RegisterMessage(DeleteBranchRequest) -AppendFile = _reflection.GeneratedProtocolMessageType('AppendFile', (_message.Message,), { - 'DESCRIPTOR' : _APPENDFILE, +PutFile = _reflection.GeneratedProtocolMessageType('PutFile', (_message.Message,), { + 'DESCRIPTOR' : _PUTFILE, '__module__' : 'src.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.AppendFile) + # @@protoc_insertion_point(class_scope:pfs.PutFile) }) -_sym_db.RegisterMessage(AppendFile) +_sym_db.RegisterMessage(PutFile) RawFileSource = _reflection.GeneratedProtocolMessageType('RawFileSource', (_message.Message,), { 'DESCRIPTOR' : _RAWFILESOURCE, @@ -2840,6 +2850,13 @@ }) _sym_db.RegisterMessage(DeleteFile) +CopyFile = _reflection.GeneratedProtocolMessageType('CopyFile', (_message.Message,), { + 'DESCRIPTOR' : _COPYFILE, + '__module__' : 'src.pfs.pfs_pb2' + # @@protoc_insertion_point(class_scope:pfs.CopyFile) + }) +_sym_db.RegisterMessage(CopyFile) + ModifyFileRequest = _reflection.GeneratedProtocolMessageType('ModifyFileRequest', (_message.Message,), { 'DESCRIPTOR' : _MODIFYFILEREQUEST, '__module__' : 'src.pfs.pfs_pb2' @@ -2847,13 +2864,6 @@ }) _sym_db.RegisterMessage(ModifyFileRequest) -CopyFileRequest = _reflection.GeneratedProtocolMessageType('CopyFileRequest', (_message.Message,), { - 'DESCRIPTOR' : _COPYFILEREQUEST, - '__module__' : 'src.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.CopyFileRequest) - }) -_sym_db.RegisterMessage(CopyFileRequest) - GetFileRequest = _reflection.GeneratedProtocolMessageType('GetFileRequest', (_message.Message,), { 'DESCRIPTOR' : _GETFILEREQUEST, '__module__' : 'src.pfs.pfs_pb2' @@ -2924,12 +2934,12 @@ }) _sym_db.RegisterMessage(CreateFilesetResponse) -RenewFilesetRequest = _reflection.GeneratedProtocolMessageType('RenewFilesetRequest', (_message.Message,), { - 'DESCRIPTOR' : _RENEWFILESETREQUEST, +GetFilesetRequest = _reflection.GeneratedProtocolMessageType('GetFilesetRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETFILESETREQUEST, '__module__' : 'src.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.RenewFilesetRequest) + # @@protoc_insertion_point(class_scope:pfs.GetFilesetRequest) }) -_sym_db.RegisterMessage(RenewFilesetRequest) +_sym_db.RegisterMessage(GetFilesetRequest) AddFilesetRequest = _reflection.GeneratedProtocolMessageType('AddFilesetRequest', (_message.Message,), { 'DESCRIPTOR' : _ADDFILESETREQUEST, @@ -2938,12 +2948,12 @@ }) _sym_db.RegisterMessage(AddFilesetRequest) -GetFilesetRequest = _reflection.GeneratedProtocolMessageType('GetFilesetRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETFILESETREQUEST, +RenewFilesetRequest = _reflection.GeneratedProtocolMessageType('RenewFilesetRequest', (_message.Message,), { + 'DESCRIPTOR' : _RENEWFILESETREQUEST, '__module__' : 'src.pfs.pfs_pb2' - # @@protoc_insertion_point(class_scope:pfs.GetFilesetRequest) + # @@protoc_insertion_point(class_scope:pfs.RenewFilesetRequest) }) -_sym_db.RegisterMessage(GetFilesetRequest) +_sym_db.RegisterMessage(RenewFilesetRequest) ActivateAuthRequest = _reflection.GeneratedProtocolMessageType('ActivateAuthRequest', (_message.Message,), { 'DESCRIPTOR' : _ACTIVATEAUTHREQUEST, @@ -2968,8 +2978,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=4957, - serialized_end=6896, + serialized_start=4960, + serialized_end=6839, methods=[ _descriptor.MethodDescriptor( name='CreateRepo', @@ -3124,19 +3134,10 @@ output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=None, ), - _descriptor.MethodDescriptor( - name='CopyFile', - full_name='pfs.API.CopyFile', - index=17, - containing_service=None, - input_type=_COPYFILEREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, - serialized_options=None, - ), _descriptor.MethodDescriptor( name='GetFile', full_name='pfs.API.GetFile', - index=18, + index=17, containing_service=None, input_type=_GETFILEREQUEST, output_type=google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE, @@ -3145,7 +3146,7 @@ _descriptor.MethodDescriptor( name='InspectFile', full_name='pfs.API.InspectFile', - index=19, + index=18, containing_service=None, input_type=_INSPECTFILEREQUEST, output_type=_FILEINFO, @@ -3154,7 +3155,7 @@ _descriptor.MethodDescriptor( name='ListFile', full_name='pfs.API.ListFile', - index=20, + index=19, containing_service=None, input_type=_LISTFILEREQUEST, output_type=_FILEINFO, @@ -3163,7 +3164,7 @@ _descriptor.MethodDescriptor( name='WalkFile', full_name='pfs.API.WalkFile', - index=21, + index=20, containing_service=None, input_type=_WALKFILEREQUEST, output_type=_FILEINFO, @@ -3172,7 +3173,7 @@ _descriptor.MethodDescriptor( name='GlobFile', full_name='pfs.API.GlobFile', - index=22, + index=21, containing_service=None, input_type=_GLOBFILEREQUEST, output_type=_FILEINFO, @@ -3181,7 +3182,7 @@ _descriptor.MethodDescriptor( name='DiffFile', full_name='pfs.API.DiffFile', - index=23, + index=22, containing_service=None, input_type=_DIFFFILEREQUEST, output_type=_DIFFFILERESPONSE, @@ -3190,7 +3191,7 @@ _descriptor.MethodDescriptor( name='ActivateAuth', full_name='pfs.API.ActivateAuth', - index=24, + index=23, containing_service=None, input_type=_ACTIVATEAUTHREQUEST, output_type=_ACTIVATEAUTHRESPONSE, @@ -3199,7 +3200,7 @@ _descriptor.MethodDescriptor( name='DeleteAll', full_name='pfs.API.DeleteAll', - index=25, + index=24, containing_service=None, input_type=google_dot_protobuf_dot_empty__pb2._EMPTY, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, @@ -3208,43 +3209,43 @@ _descriptor.MethodDescriptor( name='Fsck', full_name='pfs.API.Fsck', - index=26, + index=25, containing_service=None, input_type=_FSCKREQUEST, output_type=_FSCKRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( - name='AddFileset', - full_name='pfs.API.AddFileset', - index=27, + name='CreateFileset', + full_name='pfs.API.CreateFileset', + index=26, containing_service=None, - input_type=_ADDFILESETREQUEST, - output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, + input_type=_MODIFYFILEREQUEST, + output_type=_CREATEFILESETRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( name='GetFileset', full_name='pfs.API.GetFileset', - index=28, + index=27, containing_service=None, input_type=_GETFILESETREQUEST, output_type=_CREATEFILESETRESPONSE, serialized_options=None, ), _descriptor.MethodDescriptor( - name='CreateFileset', - full_name='pfs.API.CreateFileset', - index=29, + name='AddFileset', + full_name='pfs.API.AddFileset', + index=28, containing_service=None, - input_type=_MODIFYFILEREQUEST, - output_type=_CREATEFILESETRESPONSE, + input_type=_ADDFILESETREQUEST, + output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, serialized_options=None, ), _descriptor.MethodDescriptor( name='RenewFileset', full_name='pfs.API.RenewFileset', - index=30, + index=29, containing_service=None, input_type=_RENEWFILESETREQUEST, output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, diff --git a/src/python_pachyderm/proto/pfs/pfs_pb2_grpc.py b/src/python_pachyderm/proto/pfs/pfs_pb2_grpc.py index 1ac3e88e..db58f2ac 100644 --- a/src/python_pachyderm/proto/pfs/pfs_pb2_grpc.py +++ b/src/python_pachyderm/proto/pfs/pfs_pb2_grpc.py @@ -101,11 +101,6 @@ def __init__(self, channel): request_serializer=src_dot_pfs_dot_pfs__pb2.ModifyFileRequest.SerializeToString, response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) - self.CopyFile = channel.unary_unary( - '/pfs.API/CopyFile', - request_serializer=src_dot_pfs_dot_pfs__pb2.CopyFileRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - ) self.GetFile = channel.unary_stream( '/pfs.API/GetFile', request_serializer=src_dot_pfs_dot_pfs__pb2.GetFileRequest.SerializeToString, @@ -151,20 +146,20 @@ def __init__(self, channel): request_serializer=src_dot_pfs_dot_pfs__pb2.FsckRequest.SerializeToString, response_deserializer=src_dot_pfs_dot_pfs__pb2.FsckResponse.FromString, ) - self.AddFileset = channel.unary_unary( - '/pfs.API/AddFileset', - request_serializer=src_dot_pfs_dot_pfs__pb2.AddFilesetRequest.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + self.CreateFileset = channel.stream_unary( + '/pfs.API/CreateFileset', + request_serializer=src_dot_pfs_dot_pfs__pb2.ModifyFileRequest.SerializeToString, + response_deserializer=src_dot_pfs_dot_pfs__pb2.CreateFilesetResponse.FromString, ) self.GetFileset = channel.unary_unary( '/pfs.API/GetFileset', request_serializer=src_dot_pfs_dot_pfs__pb2.GetFilesetRequest.SerializeToString, response_deserializer=src_dot_pfs_dot_pfs__pb2.CreateFilesetResponse.FromString, ) - self.CreateFileset = channel.stream_unary( - '/pfs.API/CreateFileset', - request_serializer=src_dot_pfs_dot_pfs__pb2.ModifyFileRequest.SerializeToString, - response_deserializer=src_dot_pfs_dot_pfs__pb2.CreateFilesetResponse.FromString, + self.AddFileset = channel.unary_unary( + '/pfs.API/AddFileset', + request_serializer=src_dot_pfs_dot_pfs__pb2.AddFilesetRequest.SerializeToString, + response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, ) self.RenewFileset = channel.unary_unary( '/pfs.API/RenewFileset', @@ -296,14 +291,6 @@ def ModifyFile(self, request_iterator, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def CopyFile(self, request, context): - """CopyFile copies the contents of one file to another. - TODO: Make this a part of ModifyFile. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def GetFile(self, request, context): """GetFile returns a byte stream of the contents of the file. """ @@ -367,9 +354,9 @@ def Fsck(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def AddFileset(self, request, context): + def CreateFileset(self, request_iterator, context): """Fileset API - AddFileset associates a fileset with a commit + CreateFileset creates a new fileset. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -382,8 +369,8 @@ def GetFileset(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def CreateFileset(self, request_iterator, context): - """CreateFileset creates a new fileset. + def AddFileset(self, request, context): + """AddFileset associates a fileset with a commit """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -484,11 +471,6 @@ def add_APIServicer_to_server(servicer, server): request_deserializer=src_dot_pfs_dot_pfs__pb2.ModifyFileRequest.FromString, response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), - 'CopyFile': grpc.unary_unary_rpc_method_handler( - servicer.CopyFile, - request_deserializer=src_dot_pfs_dot_pfs__pb2.CopyFileRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), 'GetFile': grpc.unary_stream_rpc_method_handler( servicer.GetFile, request_deserializer=src_dot_pfs_dot_pfs__pb2.GetFileRequest.FromString, @@ -534,20 +516,20 @@ def add_APIServicer_to_server(servicer, server): request_deserializer=src_dot_pfs_dot_pfs__pb2.FsckRequest.FromString, response_serializer=src_dot_pfs_dot_pfs__pb2.FsckResponse.SerializeToString, ), - 'AddFileset': grpc.unary_unary_rpc_method_handler( - servicer.AddFileset, - request_deserializer=src_dot_pfs_dot_pfs__pb2.AddFilesetRequest.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + 'CreateFileset': grpc.stream_unary_rpc_method_handler( + servicer.CreateFileset, + request_deserializer=src_dot_pfs_dot_pfs__pb2.ModifyFileRequest.FromString, + response_serializer=src_dot_pfs_dot_pfs__pb2.CreateFilesetResponse.SerializeToString, ), 'GetFileset': grpc.unary_unary_rpc_method_handler( servicer.GetFileset, request_deserializer=src_dot_pfs_dot_pfs__pb2.GetFilesetRequest.FromString, response_serializer=src_dot_pfs_dot_pfs__pb2.CreateFilesetResponse.SerializeToString, ), - 'CreateFileset': grpc.stream_unary_rpc_method_handler( - servicer.CreateFileset, - request_deserializer=src_dot_pfs_dot_pfs__pb2.ModifyFileRequest.FromString, - response_serializer=src_dot_pfs_dot_pfs__pb2.CreateFilesetResponse.SerializeToString, + 'AddFileset': grpc.unary_unary_rpc_method_handler( + servicer.AddFileset, + request_deserializer=src_dot_pfs_dot_pfs__pb2.AddFilesetRequest.FromString, + response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, ), 'RenewFileset': grpc.unary_unary_rpc_method_handler( servicer.RenewFileset, diff --git a/src/python_pachyderm/proto/pps/pps_pb2.py b/src/python_pachyderm/proto/pps/pps_pb2.py index 33bc54f9..a553a4cb 100644 --- a/src/python_pachyderm/proto/pps/pps_pb2.py +++ b/src/python_pachyderm/proto/pps/pps_pb2.py @@ -23,7 +23,7 @@ package='pps', syntax='proto3', serialized_options=b'Z)github.com/pachyderm/pachyderm/v2/src/pps', - serialized_pb=b'\n\x11src/pps/pps.proto\x12\x03pps\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x11src/pfs/pfs.proto\"M\n\x0bSecretMount\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x04 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12\x0f\n\x07\x65nv_var\x18\x03 \x01(\t\"\xec\x02\n\tTransform\x12\r\n\x05image\x18\x01 \x01(\t\x12\x0b\n\x03\x63md\x18\x02 \x03(\t\x12\x0f\n\x07\x65rr_cmd\x18\r \x03(\t\x12$\n\x03\x65nv\x18\x03 \x03(\x0b\x32\x17.pps.Transform.EnvEntry\x12!\n\x07secrets\x18\x04 \x03(\x0b\x32\x10.pps.SecretMount\x12\x1a\n\x12image_pull_secrets\x18\t \x03(\t\x12\r\n\x05stdin\x18\x05 \x03(\t\x12\x11\n\terr_stdin\x18\x0e \x03(\t\x12\x1a\n\x12\x61\x63\x63\x65pt_return_code\x18\x06 \x03(\x03\x12\r\n\x05\x64\x65\x62ug\x18\x07 \x01(\x08\x12\x0c\n\x04user\x18\n \x01(\t\x12\x13\n\x0bworking_dir\x18\x0b \x01(\t\x12\x12\n\ndockerfile\x18\x0c \x01(\t\x12\x1d\n\x05\x62uild\x18\x0f \x01(\x0b\x32\x0e.pps.BuildSpec\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\":\n\tBuildSpec\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x10\n\x08language\x18\x02 \x01(\t\x12\r\n\x05image\x18\x03 \x01(\t\"\x17\n\x05TFJob\x12\x0e\n\x06tf_job\x18\x01 \x01(\t\"\x15\n\x06\x45gress\x12\x0b\n\x03URL\x18\x01 \x01(\t\"\x11\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\"\xcd\x01\n\x08Metadata\x12\x33\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1e.pps.Metadata.AnnotationsEntry\x12)\n\x06labels\x18\x02 \x03(\x0b\x32\x19.pps.Metadata.LabelsEntry\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Q\n\x07Service\x12\x15\n\rinternal_port\x18\x01 \x01(\x05\x12\x15\n\rexternal_port\x18\x02 \x01(\x05\x12\n\n\x02ip\x18\x03 \x01(\t\x12\x0c\n\x04type\x18\x04 \x01(\t\"&\n\x05Spout\x12\x1d\n\x07service\x18\x01 \x01(\x0b\x32\x0c.pps.Service\"\xd9\x01\n\x08PFSInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04repo\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\x12\x0c\n\x04glob\x18\x05 \x01(\t\x12\x0f\n\x07join_on\x18\x08 \x01(\t\x12\x12\n\nouter_join\x18\x0c \x01(\x08\x12\x10\n\x08group_by\x18\x0b \x01(\t\x12\x0c\n\x04lazy\x18\x06 \x01(\x08\x12\x13\n\x0b\x65mpty_files\x18\x07 \x01(\x08\x12\n\n\x02s3\x18\t \x01(\x08\x12\x1d\n\x07trigger\x18\n \x01(\x0b\x32\x0c.pfs.Trigger\"\x83\x01\n\tCronInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04repo\x18\x02 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x03 \x01(\t\x12\x0c\n\x04spec\x18\x04 \x01(\t\x12\x11\n\toverwrite\x18\x06 \x01(\x08\x12)\n\x05start\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"E\n\x08GitInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\"\xc8\x01\n\x05Input\x12\x1a\n\x03pfs\x18\x06 \x01(\x0b\x32\r.pps.PFSInput\x12\x18\n\x04join\x18\x07 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05group\x18\x08 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05\x63ross\x18\x02 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05union\x18\x03 \x03(\x0b\x32\n.pps.Input\x12\x1c\n\x04\x63ron\x18\x04 \x01(\x0b\x32\x0e.pps.CronInput\x12\x1a\n\x03git\x18\x05 \x01(\x0b\x32\r.pps.GitInput\"Q\n\x08JobInput\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04glob\x18\x02 \x01(\t\x12\x0c\n\x04lazy\x18\x03 \x01(\x08\">\n\x0fParallelismSpec\x12\x10\n\x08\x63onstant\x18\x02 \x01(\x04\x12\x13\n\x0b\x63oefficient\x18\x03 \x01(\x01J\x04\x08\x01\x10\x02\"\'\n\tInputFile\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\x0c\n\x04hash\x18\x05 \x01(\x0c\"*\n\x05\x44\x61tum\x12\n\n\x02id\x18\x01 \x01(\t\x12\x15\n\x03job\x18\x02 \x01(\x0b\x32\x08.pps.Job\"\xa3\x01\n\tDatumInfo\x12\x19\n\x05\x64\x61tum\x18\x01 \x01(\x0b\x32\n.pps.Datum\x12\x1e\n\x05state\x18\x02 \x01(\x0e\x32\x0f.pps.DatumState\x12 \n\x05stats\x18\x03 \x01(\x0b\x32\x11.pps.ProcessStats\x12\x1c\n\tpfs_state\x18\x04 \x01(\x0b\x32\t.pfs.File\x12\x1b\n\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\r.pfs.FileInfo\"s\n\tAggregate\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\x0c\n\x04mean\x18\x02 \x01(\x01\x12\x0e\n\x06stddev\x18\x03 \x01(\x01\x12\x18\n\x10\x66ifth_percentile\x18\x04 \x01(\x01\x12\x1f\n\x17ninety_fifth_percentile\x18\x05 \x01(\x01\"\xcf\x01\n\x0cProcessStats\x12\x30\n\rdownload_time\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x0cprocess_time\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bupload_time\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x16\n\x0e\x64ownload_bytes\x18\x04 \x01(\x04\x12\x14\n\x0cupload_bytes\x18\x05 \x01(\x04\"\xd7\x01\n\x15\x41ggregateProcessStats\x12%\n\rdownload_time\x18\x01 \x01(\x0b\x32\x0e.pps.Aggregate\x12$\n\x0cprocess_time\x18\x02 \x01(\x0b\x32\x0e.pps.Aggregate\x12#\n\x0bupload_time\x18\x03 \x01(\x0b\x32\x0e.pps.Aggregate\x12&\n\x0e\x64ownload_bytes\x18\x04 \x01(\x0b\x32\x0e.pps.Aggregate\x12$\n\x0cupload_bytes\x18\x05 \x01(\x0b\x32\x0e.pps.Aggregate\"\xe2\x01\n\x0cWorkerStatus\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x1c\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x0e.pps.InputFile\x12+\n\x07started\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x05stats\x18\x05 \x01(\x0b\x32\x11.pps.ProcessStats\x12\x12\n\nqueue_size\x18\x06 \x01(\x03\x12\x16\n\x0e\x64\x61ta_processed\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x08 \x01(\x03\"Z\n\x0cResourceSpec\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x02\x12\x0e\n\x06memory\x18\x02 \x01(\t\x12\x19\n\x03gpu\x18\x05 \x01(\x0b\x32\x0c.pps.GPUSpec\x12\x0c\n\x04\x64isk\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"\'\n\x07GPUSpec\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x03\"\xb7\x03\n\x0b\x45tcdJobInfo\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07restart\x18\x04 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x05 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x06 \x01(\x03\x12\x12\n\ndata_total\x18\x07 \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x08 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x0f \x01(\x03\x12 \n\x05stats\x18\t \x01(\x0b\x32\x11.pps.ProcessStats\x12!\n\x0cstats_commit\x18\n \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\x0b \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18\x0c \x01(\t\x12+\n\x07started\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x90\n\n\x07JobInfo\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12\x1f\n\x08pipeline\x18\x03 \x01(\x0b\x32\r.pps.Pipeline\x12\x18\n\x10pipeline_version\x18\r \x01(\x04\x12 \n\x0bspec_commit\x18/ \x01(\x0b\x32\x0b.pfs.Commit\x12.\n\x10parallelism_spec\x18\x0c \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\x0f \x01(\x0b\x32\x0b.pps.Egress\x12\x1c\n\nparent_job\x18\x06 \x01(\x0b\x32\x08.pps.Job\x12+\n\x07started\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\"\n\routput_commit\x18\t \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\n \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18# \x01(\t\x12\x1d\n\x07service\x18\x0e \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18- \x01(\x0b\x32\n.pps.Spout\x12\x1e\n\x0boutput_repo\x18\x12 \x01(\x0b\x32\t.pfs.Repo\x12\x15\n\routput_branch\x18\x11 \x01(\t\x12\x0f\n\x07restart\x18\x14 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x16 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x1e \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18( \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18. \x01(\x03\x12\x12\n\ndata_total\x18\x17 \x01(\x03\x12 \n\x05stats\x18\x1f \x01(\x0b\x32\x11.pps.ProcessStats\x12(\n\rworker_status\x18\x18 \x03(\x0b\x32\x11.pps.WorkerStatus\x12,\n\x11resource_requests\x18\x19 \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18$ \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18\x30 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\x1a \x01(\x0b\x32\n.pps.Input\x12#\n\nnew_branch\x18\x1b \x01(\x0b\x32\x0f.pfs.BranchInfo\x12!\n\x0cstats_commit\x18\x1d \x01(\x0b\x32\x0b.pfs.Commit\x12\x14\n\x0c\x65nable_stats\x18 \x01(\x08\x12\x0c\n\x04salt\x18! \x01(\t\x12\"\n\nchunk_spec\x18% \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18& \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\' \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0b\x64\x61tum_tries\x18) \x01(\x03\x12,\n\x0fscheduling_spec\x18* \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18+ \x01(\t\x12\x11\n\tpod_patch\x18, \x01(\tJ\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x1c\x10\x1dJ\x04\x08\"\x10#\"7\n\x06Worker\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x05state\x18\x02 \x01(\x0e\x32\x10.pps.WorkerState\"\x18\n\x08Pipeline\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xa3\x02\n\x10\x45tcdPipelineInfo\x12!\n\x05state\x18\x01 \x01(\x0e\x32\x12.pps.PipelineState\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12 \n\x0bspec_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x38\n\njob_counts\x18\x03 \x03(\x0b\x32$.pps.EtcdPipelineInfo.JobCountsEntry\x12\x12\n\nauth_token\x18\x05 \x01(\t\x12%\n\x0elast_job_state\x18\x06 \x01(\x0e\x32\r.pps.JobState\x12\x13\n\x0bparallelism\x18\x07 \x01(\x04\x1a\x30\n\x0eJobCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\xa2\n\n\x0cPipelineInfo\x12\n\n\x02id\x18\x11 \x01(\t\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0f\n\x07version\x18\x0b \x01(\x04\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12\x1a\n\x06tf_job\x18. \x01(\x0b\x32\n.pps.TFJob\x12.\n\x10parallelism_spec\x18\n \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\x0f \x01(\x0b\x32\x0b.pps.Egress\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12!\n\x05state\x18\x07 \x01(\x0e\x32\x12.pps.PipelineState\x12\x0f\n\x07stopped\x18& \x01(\x08\x12\x14\n\x0crecent_error\x18\x08 \x01(\t\x12\x19\n\x11workers_requested\x18\x31 \x01(\x03\x12\x19\n\x11workers_available\x18\x32 \x01(\x03\x12\x34\n\njob_counts\x18\t \x03(\x0b\x32 .pps.PipelineInfo.JobCountsEntry\x12%\n\x0elast_job_state\x18+ \x01(\x0e\x32\r.pps.JobState\x12\x15\n\routput_branch\x18\x10 \x01(\t\x12,\n\x11resource_requests\x18\x13 \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18\x1f \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18\x33 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\x14 \x01(\x0b\x32\n.pps.Input\x12\x13\n\x0b\x64\x65scription\x18\x15 \x01(\t\x12\x12\n\ncache_size\x18\x17 \x01(\t\x12\x14\n\x0c\x65nable_stats\x18\x18 \x01(\x08\x12\x0c\n\x04salt\x18\x19 \x01(\t\x12\x0e\n\x06reason\x18\x1c \x01(\t\x12\x16\n\x0emax_queue_size\x18\x1d \x01(\x03\x12\x1d\n\x07service\x18\x1e \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18- \x01(\x0b\x32\n.pps.Spout\x12\"\n\nchunk_spec\x18 \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18! \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\" \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bgithook_url\x18# \x01(\t\x12 \n\x0bspec_commit\x18$ \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07standby\x18% \x01(\x08\x12\x13\n\x0b\x64\x61tum_tries\x18\' \x01(\x03\x12,\n\x0fscheduling_spec\x18( \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18) \x01(\t\x12\x11\n\tpod_patch\x18, \x01(\t\x12\x0e\n\x06s3_out\x18/ \x01(\x08\x12\x1f\n\x08metadata\x18\x30 \x01(\x0b\x32\r.pps.Metadata\x12\x0f\n\x07no_skip\x18\x34 \x01(\x08\x1a\x30\n\x0eJobCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x16\x10\x17J\x04\x08\x1a\x10\x1bJ\x04\x08\x1b\x10\x1cJ\x04\x08\x12\x10\x13\"9\n\rPipelineInfos\x12(\n\rpipeline_info\x18\x01 \x03(\x0b\x32\x11.pps.PipelineInfo\"\xa3\x04\n\x10\x43reateJobRequest\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\"\n\routput_commit\x18\x19 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07restart\x18\x1a \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x1b \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x1c \x01(\x03\x12\x12\n\ndata_total\x18\x1d \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x1e \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x1f \x01(\x03\x12 \n\x05stats\x18 \x01(\x0b\x32\x11.pps.ProcessStats\x12!\n\x0cstats_commit\x18! \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\" \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18# \x01(\t\x12+\n\x07started\x18$ \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18% \x01(\x0b\x32\x1a.google.protobuf.TimestampJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x01\x10\x02J\x04\x08\n\x10\x0bJ\x04\x08\x07\x10\x08J\x04\x08\t\x10\nJ\x04\x08\x08\x10\tJ\x04\x08\x0c\x10\rJ\x04\x08\x0b\x10\x0cJ\x04\x08\r\x10\x0eJ\x04\x08\x0e\x10\x0fJ\x04\x08\x15\x10\x16J\x04\x08\x0f\x10\x10J\x04\x08\x10\x10\x11J\x04\x08\x11\x10\x12J\x04\x08\x12\x10\x13J\x04\x08\x13\x10\x14J\x04\x08\x14\x10\x15J\x04\x08\x16\x10\x17J\x04\x08\x17\x10\x18J\x04\x08\x18\x10\x19\"q\n\x11InspectJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x62lock_state\x18\x02 \x01(\x08\x12\x0c\n\x04\x66ull\x18\x04 \x01(\x08\"\xa9\x01\n\x0eListJobRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12!\n\x0cinput_commit\x18\x02 \x03(\x0b\x32\x0b.pfs.Commit\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07history\x18\x04 \x01(\x03\x12\x0c\n\x04\x66ull\x18\x05 \x01(\x08\x12\x10\n\x08jqFilter\x18\x06 \x01(\t\"T\n\x0f\x46lushJobRequest\x12\x1c\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x0b.pfs.Commit\x12#\n\x0cto_pipelines\x18\x02 \x03(\x0b\x32\r.pps.Pipeline\")\n\x10\x44\x65leteJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\"K\n\x0eStopJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\"\n\routput_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\"\xfe\x01\n\x15UpdateJobStateRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x1c\n\x05state\x18\x02 \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x0f\n\x07restart\x18\x04 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x05 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x06 \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x08 \x01(\x03\x12\x12\n\ndata_total\x18\t \x01(\x03\x12 \n\x05stats\x18\n \x01(\x0b\x32\x11.pps.ProcessStats\"\xf1\x01\n\x0eGetLogsRequest\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x14\n\x0c\x64\x61ta_filters\x18\x03 \x03(\t\x12\x19\n\x05\x64\x61tum\x18\x06 \x01(\x0b\x32\n.pps.Datum\x12\x0e\n\x06master\x18\x05 \x01(\x08\x12\x0e\n\x06\x66ollow\x18\x07 \x01(\x08\x12\x0c\n\x04tail\x18\x08 \x01(\x03\x12\x18\n\x10use_loki_backend\x18\t \x01(\x08\x12(\n\x05since\x18\n \x01(\x0b\x32\x19.google.protobuf.DurationJ\x04\x08\x04\x10\x05\"\xcd\x01\n\nLogMessage\x12\x15\n\rpipeline_name\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x03 \x01(\t\x12\x11\n\tworker_id\x18\x07 \x01(\t\x12\x10\n\x08\x64\x61tum_id\x18\t \x01(\t\x12\x0e\n\x06master\x18\n \x01(\x08\x12\x1c\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x0e.pps.InputFile\x12\x0c\n\x04user\x18\x08 \x01(\x08\x12&\n\x02ts\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07message\x18\x06 \x01(\t\"B\n\x13RestartDatumRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x14\n\x0c\x64\x61ta_filters\x18\x02 \x03(\t\"0\n\x13InspectDatumRequest\x12\x19\n\x05\x64\x61tum\x18\x01 \x01(\x0b\x32\n.pps.Datum\")\n\x10ListDatumRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\"/\n\tChunkSpec\x12\x0e\n\x06number\x18\x01 \x01(\x03\x12\x12\n\nsize_bytes\x18\x02 \x01(\x03\"\xa0\x01\n\x0eSchedulingSpec\x12<\n\rnode_selector\x18\x01 \x03(\x0b\x32%.pps.SchedulingSpec.NodeSelectorEntry\x12\x1b\n\x13priority_class_name\x18\x02 \x01(\t\x1a\x33\n\x11NodeSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc7\x07\n\x15\x43reatePipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x1a\n\x06tf_job\x18# \x01(\x0b\x32\n.pps.TFJob\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12.\n\x10parallelism_spec\x18\x07 \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\t \x01(\x0b\x32\x0b.pps.Egress\x12\x0e\n\x06update\x18\x05 \x01(\x08\x12\x15\n\routput_branch\x18\n \x01(\t\x12\x0e\n\x06s3_out\x18$ \x01(\x08\x12,\n\x11resource_requests\x18\x0c \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18\x16 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18/ \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\r \x01(\x0b\x32\n.pps.Input\x12\x13\n\x0b\x64\x65scription\x18\x0e \x01(\t\x12\x12\n\ncache_size\x18\x10 \x01(\t\x12\x14\n\x0c\x65nable_stats\x18\x11 \x01(\x08\x12\x11\n\treprocess\x18\x12 \x01(\x08\x12\x16\n\x0emax_queue_size\x18\x14 \x01(\x03\x12\x1d\n\x07service\x18\x15 \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18! \x01(\x0b\x32\n.pps.Spout\x12\"\n\nchunk_spec\x18\x17 \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18\x18 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\x19 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0c\n\x04salt\x18\x1a \x01(\t\x12\x0f\n\x07standby\x18\x1b \x01(\x08\x12\x13\n\x0b\x64\x61tum_tries\x18\x1c \x01(\x03\x12,\n\x0fscheduling_spec\x18\x1d \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18\x1e \x01(\t\x12\x11\n\tpod_patch\x18 \x01(\t\x12 \n\x0bspec_commit\x18\" \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\x08metadata\x18. \x01(\x0b\x32\r.pps.Metadata\x12\x0f\n\x07no_skip\x18\x30 \x01(\x08J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x0b\x10\x0cJ\x04\x08\x0f\x10\x10J\x04\x08\x13\x10\x14\"9\n\x16InspectPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"s\n\x13ListPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0f\n\x07history\x18\x02 \x01(\x03\x12\x18\n\x10\x61llow_incomplete\x18\x03 \x01(\x08\x12\x10\n\x08jqFilter\x18\x04 \x01(\t\"s\n\x15\x44\x65letePipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0b\n\x03\x61ll\x18\x04 \x01(\x08\x12\r\n\x05\x66orce\x18\x05 \x01(\x08\x12\x11\n\tkeep_repo\x18\x06 \x01(\x08J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"7\n\x14StartPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"6\n\x13StopPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"v\n\x12RunPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12)\n\nprovenance\x18\x02 \x03(\x0b\x32\x15.pfs.CommitProvenance\x12\x0e\n\x06job_id\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"1\n\x0eRunCronRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"#\n\x13\x43reateSecretRequest\x12\x0c\n\x04\x66ile\x18\x01 \x01(\x0c\"2\n\x13\x44\x65leteSecretRequest\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\"3\n\x14InspectSecretRequest\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\"\x16\n\x06Secret\x12\x0c\n\x04name\x18\x01 \x01(\t\"o\n\nSecretInfo\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x36\n\x12\x63reation_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"3\n\x0bSecretInfos\x12$\n\x0bsecret_info\x18\x01 \x03(\x0b\x32\x0f.pps.SecretInfo\"-\n\x15GarbageCollectRequest\x12\x14\n\x0cmemory_bytes\x18\x01 \x01(\x03\"\x18\n\x16GarbageCollectResponse\"\x15\n\x13\x41\x63tivateAuthRequest\"\x16\n\x14\x41\x63tivateAuthResponse*r\n\x08JobState\x12\x10\n\x0cJOB_STARTING\x10\x00\x12\x0f\n\x0bJOB_RUNNING\x10\x01\x12\x0f\n\x0bJOB_FAILURE\x10\x02\x12\x0f\n\x0bJOB_SUCCESS\x10\x03\x12\x0e\n\nJOB_KILLED\x10\x04\x12\x11\n\rJOB_EGRESSING\x10\x06*O\n\nDatumState\x12\n\n\x06\x46\x41ILED\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\x0b\n\x07SKIPPED\x10\x02\x12\x0c\n\x08STARTING\x10\x03\x12\r\n\tRECOVERED\x10\x04*?\n\x0bWorkerState\x12\x0f\n\x0bPOD_RUNNING\x10\x00\x12\x0f\n\x0bPOD_SUCCESS\x10\x01\x12\x0e\n\nPOD_FAILED\x10\x02*\xad\x01\n\rPipelineState\x12\x15\n\x11PIPELINE_STARTING\x10\x00\x12\x14\n\x10PIPELINE_RUNNING\x10\x01\x12\x17\n\x13PIPELINE_RESTARTING\x10\x02\x12\x14\n\x10PIPELINE_FAILURE\x10\x03\x12\x13\n\x0fPIPELINE_PAUSED\x10\x04\x12\x14\n\x10PIPELINE_STANDBY\x10\x05\x12\x15\n\x11PIPELINE_CRASHING\x10\x06\x32\xa0\x0c\n\x03\x41PI\x12.\n\tCreateJob\x12\x15.pps.CreateJobRequest\x1a\x08.pps.Job\"\x00\x12\x34\n\nInspectJob\x12\x16.pps.InspectJobRequest\x1a\x0c.pps.JobInfo\"\x00\x12\x30\n\x07ListJob\x12\x13.pps.ListJobRequest\x1a\x0c.pps.JobInfo\"\x00\x30\x01\x12\x32\n\x08\x46lushJob\x12\x14.pps.FlushJobRequest\x1a\x0c.pps.JobInfo\"\x00\x30\x01\x12<\n\tDeleteJob\x12\x15.pps.DeleteJobRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\x07StopJob\x12\x13.pps.StopJobRequest\x1a\x16.google.protobuf.Empty\"\x00\x12:\n\x0cInspectDatum\x12\x18.pps.InspectDatumRequest\x1a\x0e.pps.DatumInfo\"\x00\x12\x36\n\tListDatum\x12\x15.pps.ListDatumRequest\x1a\x0e.pps.DatumInfo\"\x00\x30\x01\x12\x42\n\x0cRestartDatum\x12\x18.pps.RestartDatumRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x46\n\x0e\x43reatePipeline\x12\x1a.pps.CreatePipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x43\n\x0fInspectPipeline\x12\x1b.pps.InspectPipelineRequest\x1a\x11.pps.PipelineInfo\"\x00\x12>\n\x0cListPipeline\x12\x18.pps.ListPipelineRequest\x1a\x12.pps.PipelineInfos\"\x00\x12\x46\n\x0e\x44\x65letePipeline\x12\x1a.pps.DeletePipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x44\n\rStartPipeline\x12\x19.pps.StartPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0cStopPipeline\x12\x18.pps.StopPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12@\n\x0bRunPipeline\x12\x17.pps.RunPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\x07RunCron\x12\x13.pps.RunCronRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x43reateSecret\x12\x18.pps.CreateSecretRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x44\x65leteSecret\x12\x18.pps.DeleteSecretRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\nListSecret\x12\x16.google.protobuf.Empty\x1a\x10.pps.SecretInfos\"\x00\x12=\n\rInspectSecret\x12\x19.pps.InspectSecretRequest\x1a\x0f.pps.SecretInfo\"\x00\x12=\n\tDeleteAll\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x33\n\x07GetLogs\x12\x13.pps.GetLogsRequest\x1a\x0f.pps.LogMessage\"\x00\x30\x01\x12\x45\n\x0c\x41\x63tivateAuth\x12\x18.pps.ActivateAuthRequest\x1a\x19.pps.ActivateAuthResponse\"\x00\x12\x46\n\x0eUpdateJobState\x12\x1a.pps.UpdateJobStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x42+Z)github.com/pachyderm/pachyderm/v2/src/ppsb\x06proto3' + serialized_pb=b'\n\x11src/pps/pps.proto\x12\x03pps\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x11src/pfs/pfs.proto\"M\n\x0bSecretMount\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x04 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\x12\x0f\n\x07\x65nv_var\x18\x03 \x01(\t\"\xec\x02\n\tTransform\x12\r\n\x05image\x18\x01 \x01(\t\x12\x0b\n\x03\x63md\x18\x02 \x03(\t\x12\x0f\n\x07\x65rr_cmd\x18\r \x03(\t\x12$\n\x03\x65nv\x18\x03 \x03(\x0b\x32\x17.pps.Transform.EnvEntry\x12!\n\x07secrets\x18\x04 \x03(\x0b\x32\x10.pps.SecretMount\x12\x1a\n\x12image_pull_secrets\x18\t \x03(\t\x12\r\n\x05stdin\x18\x05 \x03(\t\x12\x11\n\terr_stdin\x18\x0e \x03(\t\x12\x1a\n\x12\x61\x63\x63\x65pt_return_code\x18\x06 \x03(\x03\x12\r\n\x05\x64\x65\x62ug\x18\x07 \x01(\x08\x12\x0c\n\x04user\x18\n \x01(\t\x12\x13\n\x0bworking_dir\x18\x0b \x01(\t\x12\x12\n\ndockerfile\x18\x0c \x01(\t\x12\x1d\n\x05\x62uild\x18\x0f \x01(\x0b\x32\x0e.pps.BuildSpec\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\":\n\tBuildSpec\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x10\n\x08language\x18\x02 \x01(\t\x12\r\n\x05image\x18\x03 \x01(\t\"\x17\n\x05TFJob\x12\x0e\n\x06tf_job\x18\x01 \x01(\t\"\x15\n\x06\x45gress\x12\x0b\n\x03URL\x18\x01 \x01(\t\"\x11\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\"\xcd\x01\n\x08Metadata\x12\x33\n\x0b\x61nnotations\x18\x01 \x03(\x0b\x32\x1e.pps.Metadata.AnnotationsEntry\x12)\n\x06labels\x18\x02 \x03(\x0b\x32\x19.pps.Metadata.LabelsEntry\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Q\n\x07Service\x12\x15\n\rinternal_port\x18\x01 \x01(\x05\x12\x15\n\rexternal_port\x18\x02 \x01(\x05\x12\n\n\x02ip\x18\x03 \x01(\t\x12\x0c\n\x04type\x18\x04 \x01(\t\"&\n\x05Spout\x12\x1d\n\x07service\x18\x01 \x01(\x0b\x32\x0c.pps.Service\"\xd9\x01\n\x08PFSInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04repo\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\x12\x0c\n\x04glob\x18\x05 \x01(\t\x12\x0f\n\x07join_on\x18\x08 \x01(\t\x12\x12\n\nouter_join\x18\x0c \x01(\x08\x12\x10\n\x08group_by\x18\x0b \x01(\t\x12\x0c\n\x04lazy\x18\x06 \x01(\x08\x12\x13\n\x0b\x65mpty_files\x18\x07 \x01(\x08\x12\n\n\x02s3\x18\t \x01(\x08\x12\x1d\n\x07trigger\x18\n \x01(\x0b\x32\x0c.pfs.Trigger\"\x83\x01\n\tCronInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04repo\x18\x02 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x03 \x01(\t\x12\x0c\n\x04spec\x18\x04 \x01(\t\x12\x11\n\toverwrite\x18\x06 \x01(\x08\x12)\n\x05start\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"E\n\x08GitInput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x03 \x01(\t\x12\x0e\n\x06\x63ommit\x18\x04 \x01(\t\"\xc8\x01\n\x05Input\x12\x1a\n\x03pfs\x18\x06 \x01(\x0b\x32\r.pps.PFSInput\x12\x18\n\x04join\x18\x07 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05group\x18\x08 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05\x63ross\x18\x02 \x03(\x0b\x32\n.pps.Input\x12\x19\n\x05union\x18\x03 \x03(\x0b\x32\n.pps.Input\x12\x1c\n\x04\x63ron\x18\x04 \x01(\x0b\x32\x0e.pps.CronInput\x12\x1a\n\x03git\x18\x05 \x01(\x0b\x32\r.pps.GitInput\"Q\n\x08JobInput\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x1b\n\x06\x63ommit\x18\x01 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04glob\x18\x02 \x01(\t\x12\x0c\n\x04lazy\x18\x03 \x01(\x08\">\n\x0fParallelismSpec\x12\x10\n\x08\x63onstant\x18\x02 \x01(\x04\x12\x13\n\x0b\x63oefficient\x18\x03 \x01(\x01J\x04\x08\x01\x10\x02\"\'\n\tInputFile\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\x0c\n\x04hash\x18\x05 \x01(\x0c\"*\n\x05\x44\x61tum\x12\n\n\x02id\x18\x01 \x01(\t\x12\x15\n\x03job\x18\x02 \x01(\x0b\x32\x08.pps.Job\"\xa3\x01\n\tDatumInfo\x12\x19\n\x05\x64\x61tum\x18\x01 \x01(\x0b\x32\n.pps.Datum\x12\x1e\n\x05state\x18\x02 \x01(\x0e\x32\x0f.pps.DatumState\x12 \n\x05stats\x18\x03 \x01(\x0b\x32\x11.pps.ProcessStats\x12\x1c\n\tpfs_state\x18\x04 \x01(\x0b\x32\t.pfs.File\x12\x1b\n\x04\x64\x61ta\x18\x05 \x03(\x0b\x32\r.pfs.FileInfo\"s\n\tAggregate\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\x0c\n\x04mean\x18\x02 \x01(\x01\x12\x0e\n\x06stddev\x18\x03 \x01(\x01\x12\x18\n\x10\x66ifth_percentile\x18\x04 \x01(\x01\x12\x1f\n\x17ninety_fifth_percentile\x18\x05 \x01(\x01\"\xcf\x01\n\x0cProcessStats\x12\x30\n\rdownload_time\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12/\n\x0cprocess_time\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bupload_time\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x16\n\x0e\x64ownload_bytes\x18\x04 \x01(\x04\x12\x14\n\x0cupload_bytes\x18\x05 \x01(\x04\"\xd7\x01\n\x15\x41ggregateProcessStats\x12%\n\rdownload_time\x18\x01 \x01(\x0b\x32\x0e.pps.Aggregate\x12$\n\x0cprocess_time\x18\x02 \x01(\x0b\x32\x0e.pps.Aggregate\x12#\n\x0bupload_time\x18\x03 \x01(\x0b\x32\x0e.pps.Aggregate\x12&\n\x0e\x64ownload_bytes\x18\x04 \x01(\x0b\x32\x0e.pps.Aggregate\x12$\n\x0cupload_bytes\x18\x05 \x01(\x0b\x32\x0e.pps.Aggregate\"\xe2\x01\n\x0cWorkerStatus\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x1c\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\x0e.pps.InputFile\x12+\n\x07started\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x05stats\x18\x05 \x01(\x0b\x32\x11.pps.ProcessStats\x12\x12\n\nqueue_size\x18\x06 \x01(\x03\x12\x16\n\x0e\x64\x61ta_processed\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x08 \x01(\x03\"Z\n\x0cResourceSpec\x12\x0b\n\x03\x63pu\x18\x01 \x01(\x02\x12\x0e\n\x06memory\x18\x02 \x01(\t\x12\x19\n\x03gpu\x18\x05 \x01(\x0b\x32\x0c.pps.GPUSpec\x12\x0c\n\x04\x64isk\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"\'\n\x07GPUSpec\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x03\"\xb7\x03\n\x0b\x45tcdJobInfo\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07restart\x18\x04 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x05 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x06 \x01(\x03\x12\x12\n\ndata_total\x18\x07 \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x08 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x0f \x01(\x03\x12 \n\x05stats\x18\t \x01(\x0b\x32\x11.pps.ProcessStats\x12!\n\x0cstats_commit\x18\n \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\x0b \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18\x0c \x01(\t\x12+\n\x07started\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x90\n\n\x07JobInfo\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12\x1f\n\x08pipeline\x18\x03 \x01(\x0b\x32\r.pps.Pipeline\x12\x18\n\x10pipeline_version\x18\r \x01(\x04\x12 \n\x0bspec_commit\x18/ \x01(\x0b\x32\x0b.pfs.Commit\x12.\n\x10parallelism_spec\x18\x0c \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\x0f \x01(\x0b\x32\x0b.pps.Egress\x12\x1c\n\nparent_job\x18\x06 \x01(\x0b\x32\x08.pps.Job\x12+\n\x07started\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\"\n\routput_commit\x18\t \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\n \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18# \x01(\t\x12\x1d\n\x07service\x18\x0e \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18- \x01(\x0b\x32\n.pps.Spout\x12\x1e\n\x0boutput_repo\x18\x12 \x01(\x0b\x32\t.pfs.Repo\x12\x15\n\routput_branch\x18\x11 \x01(\t\x12\x0f\n\x07restart\x18\x14 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x16 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x1e \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18( \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18. \x01(\x03\x12\x12\n\ndata_total\x18\x17 \x01(\x03\x12 \n\x05stats\x18\x1f \x01(\x0b\x32\x11.pps.ProcessStats\x12(\n\rworker_status\x18\x18 \x03(\x0b\x32\x11.pps.WorkerStatus\x12,\n\x11resource_requests\x18\x19 \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18$ \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18\x30 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\x1a \x01(\x0b\x32\n.pps.Input\x12#\n\nnew_branch\x18\x1b \x01(\x0b\x32\x0f.pfs.BranchInfo\x12!\n\x0cstats_commit\x18\x1d \x01(\x0b\x32\x0b.pfs.Commit\x12\x14\n\x0c\x65nable_stats\x18 \x01(\x08\x12\x0c\n\x04salt\x18! \x01(\t\x12\"\n\nchunk_spec\x18% \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18& \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\' \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0b\x64\x61tum_tries\x18) \x01(\x03\x12,\n\x0fscheduling_spec\x18* \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18+ \x01(\t\x12\x11\n\tpod_patch\x18, \x01(\tJ\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x1c\x10\x1dJ\x04\x08\"\x10#\"7\n\x06Worker\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x05state\x18\x02 \x01(\x0e\x32\x10.pps.WorkerState\"\x18\n\x08Pipeline\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xa3\x02\n\x10\x45tcdPipelineInfo\x12!\n\x05state\x18\x01 \x01(\x0e\x32\x12.pps.PipelineState\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12 \n\x0bspec_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\x12\x38\n\njob_counts\x18\x03 \x03(\x0b\x32$.pps.EtcdPipelineInfo.JobCountsEntry\x12\x12\n\nauth_token\x18\x05 \x01(\t\x12%\n\x0elast_job_state\x18\x06 \x01(\x0e\x32\r.pps.JobState\x12\x13\n\x0bparallelism\x18\x07 \x01(\x04\x1a\x30\n\x0eJobCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\xaf\n\n\x0cPipelineInfo\x12\n\n\x02id\x18\x11 \x01(\t\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0f\n\x07version\x18\x0b \x01(\x04\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12\x1a\n\x06tf_job\x18. \x01(\x0b\x32\n.pps.TFJob\x12.\n\x10parallelism_spec\x18\n \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\x0f \x01(\x0b\x32\x0b.pps.Egress\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12!\n\x05state\x18\x07 \x01(\x0e\x32\x12.pps.PipelineState\x12\x0f\n\x07stopped\x18& \x01(\x08\x12\x14\n\x0crecent_error\x18\x08 \x01(\t\x12\x19\n\x11workers_requested\x18\x31 \x01(\x03\x12\x19\n\x11workers_available\x18\x32 \x01(\x03\x12\x34\n\njob_counts\x18\t \x03(\x0b\x32 .pps.PipelineInfo.JobCountsEntry\x12%\n\x0elast_job_state\x18+ \x01(\x0e\x32\r.pps.JobState\x12\x15\n\routput_branch\x18\x10 \x01(\t\x12,\n\x11resource_requests\x18\x13 \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18\x1f \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18\x33 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\x14 \x01(\x0b\x32\n.pps.Input\x12\x13\n\x0b\x64\x65scription\x18\x15 \x01(\t\x12\x12\n\ncache_size\x18\x17 \x01(\t\x12\x14\n\x0c\x65nable_stats\x18\x18 \x01(\x08\x12\x0c\n\x04salt\x18\x19 \x01(\t\x12\x0e\n\x06reason\x18\x1c \x01(\t\x12\x16\n\x0emax_queue_size\x18\x1d \x01(\x03\x12\x1d\n\x07service\x18\x1e \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18- \x01(\x0b\x32\n.pps.Spout\x12\"\n\nchunk_spec\x18 \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18! \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\" \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bgithook_url\x18# \x01(\t\x12 \n\x0bspec_commit\x18$ \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07standby\x18% \x01(\x08\x12\x13\n\x0b\x64\x61tum_tries\x18\' \x01(\x03\x12,\n\x0fscheduling_spec\x18( \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18) \x01(\t\x12\x11\n\tpod_patch\x18, \x01(\t\x12\x0e\n\x06s3_out\x18/ \x01(\x08\x12\x1f\n\x08metadata\x18\x30 \x01(\x0b\x32\r.pps.Metadata\x12\x16\n\x0ereprocess_spec\x18\x35 \x01(\t\x1a\x30\n\x0eJobCountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x16\x10\x17J\x04\x08\x1a\x10\x1bJ\x04\x08\x1b\x10\x1cJ\x04\x08\x12\x10\x13J\x04\x08\x34\x10\x35\"9\n\rPipelineInfos\x12(\n\rpipeline_info\x18\x01 \x03(\x0b\x32\x11.pps.PipelineInfo\"\xa3\x04\n\x10\x43reateJobRequest\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\"\n\routput_commit\x18\x19 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07restart\x18\x1a \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x1b \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x1c \x01(\x03\x12\x12\n\ndata_total\x18\x1d \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x1e \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x1f \x01(\x03\x12 \n\x05stats\x18 \x01(\x0b\x32\x11.pps.ProcessStats\x12!\n\x0cstats_commit\x18! \x01(\x0b\x32\x0b.pfs.Commit\x12\x1c\n\x05state\x18\" \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18# \x01(\t\x12+\n\x07started\x18$ \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x66inished\x18% \x01(\x0b\x32\x1a.google.protobuf.TimestampJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x01\x10\x02J\x04\x08\n\x10\x0bJ\x04\x08\x07\x10\x08J\x04\x08\t\x10\nJ\x04\x08\x08\x10\tJ\x04\x08\x0c\x10\rJ\x04\x08\x0b\x10\x0cJ\x04\x08\r\x10\x0eJ\x04\x08\x0e\x10\x0fJ\x04\x08\x15\x10\x16J\x04\x08\x0f\x10\x10J\x04\x08\x10\x10\x11J\x04\x08\x11\x10\x12J\x04\x08\x12\x10\x13J\x04\x08\x13\x10\x14J\x04\x08\x14\x10\x15J\x04\x08\x16\x10\x17J\x04\x08\x17\x10\x18J\x04\x08\x18\x10\x19\"q\n\x11InspectJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x13\n\x0b\x62lock_state\x18\x02 \x01(\x08\x12\x0c\n\x04\x66ull\x18\x04 \x01(\x08\"\xa9\x01\n\x0eListJobRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12!\n\x0cinput_commit\x18\x02 \x03(\x0b\x32\x0b.pfs.Commit\x12\"\n\routput_commit\x18\x03 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0f\n\x07history\x18\x04 \x01(\x03\x12\x0c\n\x04\x66ull\x18\x05 \x01(\x08\x12\x10\n\x08jqFilter\x18\x06 \x01(\t\"T\n\x0f\x46lushJobRequest\x12\x1c\n\x07\x63ommits\x18\x01 \x03(\x0b\x32\x0b.pfs.Commit\x12#\n\x0cto_pipelines\x18\x02 \x03(\x0b\x32\r.pps.Pipeline\")\n\x10\x44\x65leteJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\"K\n\x0eStopJobRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\"\n\routput_commit\x18\x02 \x01(\x0b\x32\x0b.pfs.Commit\"\xfe\x01\n\x15UpdateJobStateRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x1c\n\x05state\x18\x02 \x01(\x0e\x32\r.pps.JobState\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x0f\n\x07restart\x18\x04 \x01(\x04\x12\x16\n\x0e\x64\x61ta_processed\x18\x05 \x01(\x03\x12\x14\n\x0c\x64\x61ta_skipped\x18\x06 \x01(\x03\x12\x13\n\x0b\x64\x61ta_failed\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x61ta_recovered\x18\x08 \x01(\x03\x12\x12\n\ndata_total\x18\t \x01(\x03\x12 \n\x05stats\x18\n \x01(\x0b\x32\x11.pps.ProcessStats\"\xf1\x01\n\x0eGetLogsRequest\x12\x1f\n\x08pipeline\x18\x02 \x01(\x0b\x32\r.pps.Pipeline\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x14\n\x0c\x64\x61ta_filters\x18\x03 \x03(\t\x12\x19\n\x05\x64\x61tum\x18\x06 \x01(\x0b\x32\n.pps.Datum\x12\x0e\n\x06master\x18\x05 \x01(\x08\x12\x0e\n\x06\x66ollow\x18\x07 \x01(\x08\x12\x0c\n\x04tail\x18\x08 \x01(\x03\x12\x18\n\x10use_loki_backend\x18\t \x01(\x08\x12(\n\x05since\x18\n \x01(\x0b\x32\x19.google.protobuf.DurationJ\x04\x08\x04\x10\x05\"\xcd\x01\n\nLogMessage\x12\x15\n\rpipeline_name\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x03 \x01(\t\x12\x11\n\tworker_id\x18\x07 \x01(\t\x12\x10\n\x08\x64\x61tum_id\x18\t \x01(\t\x12\x0e\n\x06master\x18\n \x01(\x08\x12\x1c\n\x04\x64\x61ta\x18\x04 \x03(\x0b\x32\x0e.pps.InputFile\x12\x0c\n\x04user\x18\x08 \x01(\x08\x12&\n\x02ts\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07message\x18\x06 \x01(\t\"B\n\x13RestartDatumRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\x12\x14\n\x0c\x64\x61ta_filters\x18\x02 \x03(\t\"0\n\x13InspectDatumRequest\x12\x19\n\x05\x64\x61tum\x18\x01 \x01(\x0b\x32\n.pps.Datum\")\n\x10ListDatumRequest\x12\x15\n\x03job\x18\x01 \x01(\x0b\x32\x08.pps.Job\"/\n\tChunkSpec\x12\x0e\n\x06number\x18\x01 \x01(\x03\x12\x12\n\nsize_bytes\x18\x02 \x01(\x03\"\xa0\x01\n\x0eSchedulingSpec\x12<\n\rnode_selector\x18\x01 \x03(\x0b\x32%.pps.SchedulingSpec.NodeSelectorEntry\x12\x1b\n\x13priority_class_name\x18\x02 \x01(\t\x1a\x33\n\x11NodeSelectorEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd4\x07\n\x15\x43reatePipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x1a\n\x06tf_job\x18# \x01(\x0b\x32\n.pps.TFJob\x12!\n\ttransform\x18\x02 \x01(\x0b\x32\x0e.pps.Transform\x12.\n\x10parallelism_spec\x18\x07 \x01(\x0b\x32\x14.pps.ParallelismSpec\x12\x1b\n\x06\x65gress\x18\t \x01(\x0b\x32\x0b.pps.Egress\x12\x0e\n\x06update\x18\x05 \x01(\x08\x12\x15\n\routput_branch\x18\n \x01(\t\x12\x0e\n\x06s3_out\x18$ \x01(\x08\x12,\n\x11resource_requests\x18\x0c \x01(\x0b\x32\x11.pps.ResourceSpec\x12*\n\x0fresource_limits\x18\x16 \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x32\n\x17sidecar_resource_limits\x18/ \x01(\x0b\x32\x11.pps.ResourceSpec\x12\x19\n\x05input\x18\r \x01(\x0b\x32\n.pps.Input\x12\x13\n\x0b\x64\x65scription\x18\x0e \x01(\t\x12\x12\n\ncache_size\x18\x10 \x01(\t\x12\x14\n\x0c\x65nable_stats\x18\x11 \x01(\x08\x12\x11\n\treprocess\x18\x12 \x01(\x08\x12\x16\n\x0emax_queue_size\x18\x14 \x01(\x03\x12\x1d\n\x07service\x18\x15 \x01(\x0b\x32\x0c.pps.Service\x12\x19\n\x05spout\x18! \x01(\x0b\x32\n.pps.Spout\x12\"\n\nchunk_spec\x18\x17 \x01(\x0b\x32\x0e.pps.ChunkSpec\x12\x30\n\rdatum_timeout\x18\x18 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0bjob_timeout\x18\x19 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0c\n\x04salt\x18\x1a \x01(\t\x12\x0f\n\x07standby\x18\x1b \x01(\x08\x12\x13\n\x0b\x64\x61tum_tries\x18\x1c \x01(\x03\x12,\n\x0fscheduling_spec\x18\x1d \x01(\x0b\x32\x13.pps.SchedulingSpec\x12\x10\n\x08pod_spec\x18\x1e \x01(\t\x12\x11\n\tpod_patch\x18 \x01(\t\x12 \n\x0bspec_commit\x18\" \x01(\x0b\x32\x0b.pfs.Commit\x12\x1f\n\x08metadata\x18. \x01(\x0b\x32\r.pps.Metadata\x12\x16\n\x0ereprocess_spec\x18\x31 \x01(\tJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x0b\x10\x0cJ\x04\x08\x0f\x10\x10J\x04\x08\x13\x10\x14J\x04\x08\x30\x10\x31\"9\n\x16InspectPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"s\n\x13ListPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0f\n\x07history\x18\x02 \x01(\x03\x12\x18\n\x10\x61llow_incomplete\x18\x03 \x01(\x08\x12\x10\n\x08jqFilter\x18\x04 \x01(\t\"s\n\x15\x44\x65letePipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12\x0b\n\x03\x61ll\x18\x04 \x01(\x08\x12\r\n\x05\x66orce\x18\x05 \x01(\x08\x12\x11\n\tkeep_repo\x18\x06 \x01(\x08J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04\"7\n\x14StartPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"6\n\x13StopPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"v\n\x12RunPipelineRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\x12)\n\nprovenance\x18\x02 \x03(\x0b\x32\x15.pfs.CommitProvenance\x12\x0e\n\x06job_id\x18\x04 \x01(\tJ\x04\x08\x03\x10\x04\"1\n\x0eRunCronRequest\x12\x1f\n\x08pipeline\x18\x01 \x01(\x0b\x32\r.pps.Pipeline\"#\n\x13\x43reateSecretRequest\x12\x0c\n\x04\x66ile\x18\x01 \x01(\x0c\"2\n\x13\x44\x65leteSecretRequest\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\"3\n\x14InspectSecretRequest\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\"\x16\n\x06Secret\x12\x0c\n\x04name\x18\x01 \x01(\t\"o\n\nSecretInfo\x12\x1b\n\x06secret\x18\x01 \x01(\x0b\x32\x0b.pps.Secret\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x36\n\x12\x63reation_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"3\n\x0bSecretInfos\x12$\n\x0bsecret_info\x18\x01 \x03(\x0b\x32\x0f.pps.SecretInfo\"-\n\x15GarbageCollectRequest\x12\x14\n\x0cmemory_bytes\x18\x01 \x01(\x03\"\x18\n\x16GarbageCollectResponse\"\x15\n\x13\x41\x63tivateAuthRequest\"\x16\n\x14\x41\x63tivateAuthResponse*r\n\x08JobState\x12\x10\n\x0cJOB_STARTING\x10\x00\x12\x0f\n\x0bJOB_RUNNING\x10\x01\x12\x0f\n\x0bJOB_FAILURE\x10\x02\x12\x0f\n\x0bJOB_SUCCESS\x10\x03\x12\x0e\n\nJOB_KILLED\x10\x04\x12\x11\n\rJOB_EGRESSING\x10\x06*O\n\nDatumState\x12\n\n\x06\x46\x41ILED\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\x0b\n\x07SKIPPED\x10\x02\x12\x0c\n\x08STARTING\x10\x03\x12\r\n\tRECOVERED\x10\x04*?\n\x0bWorkerState\x12\x0f\n\x0bPOD_RUNNING\x10\x00\x12\x0f\n\x0bPOD_SUCCESS\x10\x01\x12\x0e\n\nPOD_FAILED\x10\x02*\xad\x01\n\rPipelineState\x12\x15\n\x11PIPELINE_STARTING\x10\x00\x12\x14\n\x10PIPELINE_RUNNING\x10\x01\x12\x17\n\x13PIPELINE_RESTARTING\x10\x02\x12\x14\n\x10PIPELINE_FAILURE\x10\x03\x12\x13\n\x0fPIPELINE_PAUSED\x10\x04\x12\x14\n\x10PIPELINE_STANDBY\x10\x05\x12\x15\n\x11PIPELINE_CRASHING\x10\x06\x32\xa0\x0c\n\x03\x41PI\x12.\n\tCreateJob\x12\x15.pps.CreateJobRequest\x1a\x08.pps.Job\"\x00\x12\x34\n\nInspectJob\x12\x16.pps.InspectJobRequest\x1a\x0c.pps.JobInfo\"\x00\x12\x30\n\x07ListJob\x12\x13.pps.ListJobRequest\x1a\x0c.pps.JobInfo\"\x00\x30\x01\x12\x32\n\x08\x46lushJob\x12\x14.pps.FlushJobRequest\x1a\x0c.pps.JobInfo\"\x00\x30\x01\x12<\n\tDeleteJob\x12\x15.pps.DeleteJobRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\x07StopJob\x12\x13.pps.StopJobRequest\x1a\x16.google.protobuf.Empty\"\x00\x12:\n\x0cInspectDatum\x12\x18.pps.InspectDatumRequest\x1a\x0e.pps.DatumInfo\"\x00\x12\x36\n\tListDatum\x12\x15.pps.ListDatumRequest\x1a\x0e.pps.DatumInfo\"\x00\x30\x01\x12\x42\n\x0cRestartDatum\x12\x18.pps.RestartDatumRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x46\n\x0e\x43reatePipeline\x12\x1a.pps.CreatePipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x43\n\x0fInspectPipeline\x12\x1b.pps.InspectPipelineRequest\x1a\x11.pps.PipelineInfo\"\x00\x12>\n\x0cListPipeline\x12\x18.pps.ListPipelineRequest\x1a\x12.pps.PipelineInfos\"\x00\x12\x46\n\x0e\x44\x65letePipeline\x12\x1a.pps.DeletePipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x44\n\rStartPipeline\x12\x19.pps.StartPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0cStopPipeline\x12\x18.pps.StopPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12@\n\x0bRunPipeline\x12\x17.pps.RunPipelineRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\x07RunCron\x12\x13.pps.RunCronRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x43reateSecret\x12\x18.pps.CreateSecretRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x42\n\x0c\x44\x65leteSecret\x12\x18.pps.DeleteSecretRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x38\n\nListSecret\x12\x16.google.protobuf.Empty\x1a\x10.pps.SecretInfos\"\x00\x12=\n\rInspectSecret\x12\x19.pps.InspectSecretRequest\x1a\x0f.pps.SecretInfo\"\x00\x12=\n\tDeleteAll\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"\x00\x12\x33\n\x07GetLogs\x12\x13.pps.GetLogsRequest\x1a\x0f.pps.LogMessage\"\x00\x30\x01\x12\x45\n\x0c\x41\x63tivateAuth\x12\x18.pps.ActivateAuthRequest\x1a\x19.pps.ActivateAuthResponse\"\x00\x12\x46\n\x0eUpdateJobState\x12\x1a.pps.UpdateJobStateRequest\x1a\x16.google.protobuf.Empty\"\x00\x42+Z)github.com/pachyderm/pachyderm/v2/src/ppsb\x06proto3' , dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,src_dot_pfs_dot_pfs__pb2.DESCRIPTOR,]) @@ -60,8 +60,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=10594, - serialized_end=10708, + serialized_start=10620, + serialized_end=10734, ) _sym_db.RegisterEnumDescriptor(_JOBSTATE) @@ -95,8 +95,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=10710, - serialized_end=10789, + serialized_start=10736, + serialized_end=10815, ) _sym_db.RegisterEnumDescriptor(_DATUMSTATE) @@ -122,8 +122,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=10791, - serialized_end=10854, + serialized_start=10817, + serialized_end=10880, ) _sym_db.RegisterEnumDescriptor(_WORKERSTATE) @@ -165,8 +165,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=10857, - serialized_end=11030, + serialized_start=10883, + serialized_end=11056, ) _sym_db.RegisterEnumDescriptor(_PIPELINESTATE) @@ -2547,9 +2547,9 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='no_skip', full_name='pps.PipelineInfo.no_skip', index=40, - number=52, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='reprocess_spec', full_name='pps.PipelineInfo.reprocess_spec', index=40, + number=53, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -2566,7 +2566,7 @@ oneofs=[ ], serialized_start=5095, - serialized_end=6409, + serialized_end=6422, ) @@ -2596,8 +2596,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6411, - serialized_end=6468, + serialized_start=6424, + serialized_end=6481, ) @@ -2718,8 +2718,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6471, - serialized_end=7018, + serialized_start=6484, + serialized_end=7031, ) @@ -2770,8 +2770,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7020, - serialized_end=7133, + serialized_start=7033, + serialized_end=7146, ) @@ -2836,8 +2836,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7136, - serialized_end=7305, + serialized_start=7149, + serialized_end=7318, ) @@ -2874,8 +2874,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7307, - serialized_end=7391, + serialized_start=7320, + serialized_end=7404, ) @@ -2905,8 +2905,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7393, - serialized_end=7434, + serialized_start=7406, + serialized_end=7447, ) @@ -2943,8 +2943,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7436, - serialized_end=7511, + serialized_start=7449, + serialized_end=7524, ) @@ -3037,8 +3037,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7514, - serialized_end=7768, + serialized_start=7527, + serialized_end=7781, ) @@ -3124,8 +3124,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7771, - serialized_end=8012, + serialized_start=7784, + serialized_end=8025, ) @@ -3211,8 +3211,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8015, - serialized_end=8220, + serialized_start=8028, + serialized_end=8233, ) @@ -3249,8 +3249,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8222, - serialized_end=8288, + serialized_start=8235, + serialized_end=8301, ) @@ -3280,8 +3280,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8290, - serialized_end=8338, + serialized_start=8303, + serialized_end=8351, ) @@ -3311,8 +3311,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8340, - serialized_end=8381, + serialized_start=8353, + serialized_end=8394, ) @@ -3349,8 +3349,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8383, - serialized_end=8430, + serialized_start=8396, + serialized_end=8443, ) @@ -3387,8 +3387,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8542, - serialized_end=8593, + serialized_start=8555, + serialized_end=8606, ) _SCHEDULINGSPEC = _descriptor.Descriptor( @@ -3424,8 +3424,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8433, - serialized_end=8593, + serialized_start=8446, + serialized_end=8606, ) @@ -3647,9 +3647,9 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), _descriptor.FieldDescriptor( - name='no_skip', full_name='pps.CreatePipelineRequest.no_skip', index=30, - number=48, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, + name='reprocess_spec', full_name='pps.CreatePipelineRequest.reprocess_spec', index=30, + number=49, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), @@ -3665,8 +3665,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=8596, - serialized_end=9563, + serialized_start=8609, + serialized_end=9589, ) @@ -3696,8 +3696,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9565, - serialized_end=9622, + serialized_start=9591, + serialized_end=9648, ) @@ -3748,8 +3748,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9624, - serialized_end=9739, + serialized_start=9650, + serialized_end=9765, ) @@ -3800,8 +3800,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9741, - serialized_end=9856, + serialized_start=9767, + serialized_end=9882, ) @@ -3831,8 +3831,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9858, - serialized_end=9913, + serialized_start=9884, + serialized_end=9939, ) @@ -3862,8 +3862,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9915, - serialized_end=9969, + serialized_start=9941, + serialized_end=9995, ) @@ -3907,8 +3907,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=9971, - serialized_end=10089, + serialized_start=9997, + serialized_end=10115, ) @@ -3938,8 +3938,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10091, - serialized_end=10140, + serialized_start=10117, + serialized_end=10166, ) @@ -3969,8 +3969,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10142, - serialized_end=10177, + serialized_start=10168, + serialized_end=10203, ) @@ -4000,8 +4000,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10179, - serialized_end=10229, + serialized_start=10205, + serialized_end=10255, ) @@ -4031,8 +4031,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10231, - serialized_end=10282, + serialized_start=10257, + serialized_end=10308, ) @@ -4062,8 +4062,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10284, - serialized_end=10306, + serialized_start=10310, + serialized_end=10332, ) @@ -4107,8 +4107,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10308, - serialized_end=10419, + serialized_start=10334, + serialized_end=10445, ) @@ -4138,8 +4138,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10421, - serialized_end=10472, + serialized_start=10447, + serialized_end=10498, ) @@ -4169,8 +4169,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10474, - serialized_end=10519, + serialized_start=10500, + serialized_end=10545, ) @@ -4193,8 +4193,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10521, - serialized_end=10545, + serialized_start=10547, + serialized_end=10571, ) @@ -4217,8 +4217,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10547, - serialized_end=10568, + serialized_start=10573, + serialized_end=10594, ) @@ -4241,8 +4241,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=10570, - serialized_end=10592, + serialized_start=10596, + serialized_end=10618, ) _TRANSFORM_ENVENTRY.containing_type = _TRANSFORM @@ -4979,8 +4979,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=11033, - serialized_end=12601, + serialized_start=11059, + serialized_end=12627, methods=[ _descriptor.MethodDescriptor( name='CreateJob', diff --git a/src/python_pachyderm/proto/server/__init__.py b/src/python_pachyderm/proto/server/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/python_pachyderm/proto/server/pfs/__init__.py b/src/python_pachyderm/proto/server/pfs/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/python_pachyderm/proto/server/pfs/server/__init__.py b/src/python_pachyderm/proto/server/pfs/server/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2.py b/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2.py deleted file mode 100644 index b29111ac..00000000 --- a/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2.py +++ /dev/null @@ -1,162 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: src/server/pfs/server/pfsserver.proto - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='src/server/pfs/server/pfsserver.proto', - package='pfsserver', - syntax='proto3', - serialized_options=b'Z7github.com/pachyderm/pachyderm/v2/src/server/pfs/server', - serialized_pb=b'\n%src/server/pfs/server/pfsserver.proto\x12\tpfsserver\"E\n\x0e\x43ompactionTask\x12\x0e\n\x06inputs\x18\x01 \x03(\t\x12#\n\x05range\x18\x02 \x01(\x0b\x32\x14.pfsserver.PathRange\"\"\n\x14\x43ompactionTaskResult\x12\n\n\x02id\x18\x01 \x01(\t\")\n\tPathRange\x12\r\n\x05lower\x18\x01 \x01(\t\x12\r\n\x05upper\x18\x02 \x01(\tB9Z7github.com/pachyderm/pachyderm/v2/src/server/pfs/serverb\x06proto3' -) - - - - -_COMPACTIONTASK = _descriptor.Descriptor( - name='CompactionTask', - full_name='pfsserver.CompactionTask', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='inputs', full_name='pfsserver.CompactionTask.inputs', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='range', full_name='pfsserver.CompactionTask.range', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=52, - serialized_end=121, -) - - -_COMPACTIONTASKRESULT = _descriptor.Descriptor( - name='CompactionTaskResult', - full_name='pfsserver.CompactionTaskResult', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='pfsserver.CompactionTaskResult.id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=123, - serialized_end=157, -) - - -_PATHRANGE = _descriptor.Descriptor( - name='PathRange', - full_name='pfsserver.PathRange', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='lower', full_name='pfsserver.PathRange.lower', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='upper', full_name='pfsserver.PathRange.upper', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=159, - serialized_end=200, -) - -_COMPACTIONTASK.fields_by_name['range'].message_type = _PATHRANGE -DESCRIPTOR.message_types_by_name['CompactionTask'] = _COMPACTIONTASK -DESCRIPTOR.message_types_by_name['CompactionTaskResult'] = _COMPACTIONTASKRESULT -DESCRIPTOR.message_types_by_name['PathRange'] = _PATHRANGE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -CompactionTask = _reflection.GeneratedProtocolMessageType('CompactionTask', (_message.Message,), { - 'DESCRIPTOR' : _COMPACTIONTASK, - '__module__' : 'src.server.pfs.server.pfsserver_pb2' - # @@protoc_insertion_point(class_scope:pfsserver.CompactionTask) - }) -_sym_db.RegisterMessage(CompactionTask) - -CompactionTaskResult = _reflection.GeneratedProtocolMessageType('CompactionTaskResult', (_message.Message,), { - 'DESCRIPTOR' : _COMPACTIONTASKRESULT, - '__module__' : 'src.server.pfs.server.pfsserver_pb2' - # @@protoc_insertion_point(class_scope:pfsserver.CompactionTaskResult) - }) -_sym_db.RegisterMessage(CompactionTaskResult) - -PathRange = _reflection.GeneratedProtocolMessageType('PathRange', (_message.Message,), { - 'DESCRIPTOR' : _PATHRANGE, - '__module__' : 'src.server.pfs.server.pfsserver_pb2' - # @@protoc_insertion_point(class_scope:pfsserver.PathRange) - }) -_sym_db.RegisterMessage(PathRange) - - -DESCRIPTOR._options = None -# @@protoc_insertion_point(module_scope) diff --git a/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2_grpc.py b/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2_grpc.py deleted file mode 100644 index a8943526..00000000 --- a/src/python_pachyderm/proto/server/pfs/server/pfsserver_pb2_grpc.py +++ /dev/null @@ -1,3 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -import grpc - diff --git a/src/python_pachyderm/proto/server/worker/__init__.py b/src/python_pachyderm/proto/server/worker/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/python_pachyderm/proto/server/worker/common/__init__.py b/src/python_pachyderm/proto/server/worker/common/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/python_pachyderm/proto/server/worker/common/common_pb2.py b/src/python_pachyderm/proto/server/worker/common/common_pb2.py deleted file mode 100644 index 197bb3fb..00000000 --- a/src/python_pachyderm/proto/server/worker/common/common_pb2.py +++ /dev/null @@ -1,143 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: src/server/worker/common/common.proto - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from python_pachyderm.proto.pfs import pfs_pb2 as src_dot_pfs_dot_pfs__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='src/server/worker/common/common.proto', - package='common', - syntax='proto3', - serialized_options=b'Z:github.com/pachyderm/pachyderm/v2/src/server/worker/common', - serialized_pb=b'\n%src/server/worker/common/common.proto\x12\x06\x63ommon\x1a\x11src/pfs/pfs.proto\"\xe2\x01\n\x05Input\x12 \n\tfile_info\x18\x01 \x01(\x0b\x32\r.pfs.FileInfo\x12\"\n\rparent_commit\x18\x05 \x01(\x0b\x32\x0b.pfs.Commit\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07join_on\x18\x08 \x01(\t\x12\x12\n\nouter_join\x18\x0b \x01(\x08\x12\x10\n\x08group_by\x18\n \x01(\t\x12\x0c\n\x04lazy\x18\x03 \x01(\x08\x12\x0e\n\x06\x62ranch\x18\x04 \x01(\t\x12\x0f\n\x07git_url\x18\x06 \x01(\t\x12\x13\n\x0b\x65mpty_files\x18\x07 \x01(\x08\x12\n\n\x02s3\x18\t \x01(\x08\x42 Date: Tue, 20 Apr 2021 10:20:54 -0400 Subject: [PATCH 30/34] Regenerate docs --- docs/python_pachyderm.html | 650 +++++++++++++------------------------ 1 file changed, 226 insertions(+), 424 deletions(-) diff --git a/docs/python_pachyderm.html b/docs/python_pachyderm.html index 1630a43f..e0e33b92 100644 --- a/docs/python_pachyderm.html +++ b/docs/python_pachyderm.html @@ -1106,10 +1106,6 @@

    Index

  • AggregateProcessStats -
  • -
  • - AppendFile -
  • AuthenticateRequest @@ -1259,7 +1255,9 @@

    Index

  • list_commit
  • list_datum
  • list_file
  • +
  • list_idp_connectors
  • list_job
  • +
  • list_oidc_clients
  • list_pipeline
  • list_repo
  • list_secret
  • @@ -1340,7 +1338,7 @@

    Index

  • - CopyFileRequest + CopyFile
  • @@ -1526,14 +1524,6 @@

    Index

  • EtcdPipelineInfo -
  • -
  • - ExtendAuthTokenRequest - -
  • -
  • - ExtendAuthTokenResponse -
  • ExtractAuthTokensRequest @@ -1602,14 +1592,6 @@

    Index

  • GetActivationCodeResponse -
  • -
  • - GetAuthTokenRequest - -
  • -
  • - GetAuthTokenResponse -
  • GetConfigurationRequest @@ -1881,6 +1863,7 @@

    Index

  • -
    -
    - -
    -

    class AppendFile

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var overwrite

    - - - - -
    -
    - -
    -
    -

    var raw_file_source

    - - - - -
    -
    - -
    -
    -

    var tag

    - - - - -
    -
    - -
    -
    -

    var tar_file_source

    - - - - -
    -
    - -
    -
    -

    var url_file_source

    - - - -
    @@ -4141,8 +4038,8 @@

    Methods

    -

    Activates auth. Returns the root token for the cluster, an irrevocable superuser -credential that should be stored securely.

    +

    Activates auth. Returns the root token for the cluster, an +irrevocable superuser credential that should be stored securely.

    Params:

    @@ -4161,19 +4058,20 @@

    Methods

    -

    def activate_enterprise(

    self, license_server, cluster_id, secret)

    +

    def activate_enterprise(

    self, license_server, id, secret)

    -

    Activates enterprise by registering with a license server. Returns a TokenInfo object.

    +

    Activates enterprise by registering with a license server. +Returns a TokenInfo object.

    Params:

    • license_server: The Pachyderm Enterprise Server to register with.
    • -
    • cluster_id: The unique ID for this cluster.
    • +
    • id: The unique ID for this cluster.
    • secret: The secret for registering this cluster.
    @@ -4212,7 +4110,7 @@

    Methods

    -

    def add_cluster(

    self, cluster_id, address, secret=None)

    +

    def add_cluster(

    self, id, address, secret=None)

    @@ -4223,9 +4121,10 @@

    Methods

    Params:

      -
    • cluster_id: A unique ID to identify the cluster.
    • +
    • id: A unique ID to identify the cluster.
    • address: A GRPC address for the license server to reach the cluster.
    • -
    • secret: Optional. A shared secret for the cluster to use to authenticate. +
    • secret: Optional. A shared secret for the cluster to use +to authenticate. If not specified, a random secret will be generated and returned.
    @@ -4296,7 +4195,7 @@

    Methods

    Params:

      -
    • resource: The resource the user wants access to
    • +
    • resource: The resource the user wants access to
    • permissions: A list of permissions the user wants to test.
    @@ -4385,7 +4284,7 @@

    Methods

    -

    def copy_file(

    self, source_commit, source_path, dest_commit, dest_path, overwrite=None)

    +

    def copy_file(

    self, source_commit, source_path, dest_commit, dest_path, append=None, tag=None)

    @@ -4404,7 +4303,7 @@

    Methods

  • dest_commit: A tuple, string, or Commit object representing the commit for the destination file.
  • dest_path: A string specifying the path of the destination file.
  • -
  • overwrite: An optional bool specifying whether to overwrite the +
  • append: An optional bool specifying whether to append to the destination file if it already exists.
  • @@ -4522,7 +4421,8 @@

    Methods

  • s3_out: An optional bool specifying whether the output repo should be exposed as an s3 gateway bucket.
  • sidecar_resource_limits: An optional ResourceSpec setting
  • -
  • no_skip: An optional bool specifying whether to skip already-processed data +
  • no_skip: An optional bool specifying whether to skip +already-processed data resource limits for the pipeline sidecar.
  • @@ -4661,7 +4561,8 @@

    Methods

  • pod_patch: An optional string.
  • spout: An optional Spout object.
  • spec_commit: An optional Commit object.
  • -
  • no_skip: An optional bool specifying whether to skip already-processed data
  • +
  • no_skip: An optional bool specifying whether to skip +already-processed data
  • @@ -4866,7 +4767,7 @@

    Methods

    -

    def delete_cluster(

    self, cluster_id)

    +

    def delete_cluster(

    self, id)

    @@ -4877,7 +4778,7 @@

    Methods

    Params:

      -
    • cluster_id: The unique ID to identify the cluster.
    • +
    • id: The unique ID to identify the cluster.
    @@ -5318,7 +5219,7 @@

    Methods

    -

    def get_file(

    self, commit, path, offset_bytes=None, size_bytes=None)

    +

    def get_file(

    self, commit, path, URL=None)

    @@ -5333,12 +5234,6 @@

    Methods

  • commit: A tuple, string, or Commit object representing the commit.
  • path: A string specifying the path of the file.
  • -
  • offset_bytes: An optional int. Specifies a number of bytes that -should be skipped in the beginning of the file.
  • -
  • size_bytes: An optional int. limits the total amount of data -returned, note you will get fewer bytes than size if you pass a value -larger than the size of the file. If size is set to 0 then all of the -data will be returned.
  • @@ -5534,7 +5429,8 @@

    Methods

    Params: * robot: The name of the robot user. -* ttl: Optional. The expiration for the token. If empty, the token does not expire.

    +* ttl: Optional. The expiration for the token. +If empty, the token does not expire.

    @@ -5937,7 +5833,7 @@

    Methods

    -

    def list_file(

    self, commit, path, history=None, include_contents=None)

    +

    def list_file(

    self, commit, path, include_contents=None)

    @@ -5951,12 +5847,6 @@

    Methods

  • commit: A tuple, string, or Commit object representing the commit.
  • path: The path to the directory.
  • -
  • history: An optional int that indicates to return jobs from -historical versions of pipelines. Semantics are: -0: Return jobs from the current version of the pipeline or pipelines. -1: Return the above and jobs from the next most recent version -2: etc. --1: Return jobs from all historical versions.
  • include_contents: An optional bool. If True, file contents are included.
  • @@ -5967,6 +5857,22 @@

    Methods

    +
    +
    +

    def list_idp_connectors(

    self)

    +
    + + + + +

    List IDP connectors in the identity server.

    +
    +
    +
    + +
    + +

    def list_job(

    self, pipeline_name=None, input_commit=None, output_commit=None, history=None, full=None, jqFilter=None)

    @@ -6011,6 +5917,22 @@

    Methods

    +
    +
    +

    def list_oidc_clients(

    self)

    +
    + + + + +

    List OIDC clients in the identity server.

    +
    +
    +
    + +
    + +

    def list_pipeline(

    self, history=None, allow_incomplete=None, jqFilter=None)

    @@ -6147,7 +6069,7 @@

    Methods

    -

    Sets the roles for a given principal on a resource.

    +

    Sets the roles for a given principal on a resource.

    Params:

    @@ -6565,7 +6487,7 @@

    Methods

    -

    def stop_job(

    self, job_id)

    +

    def stop_job(

    self, job_id, output_commit=None)

    @@ -6654,7 +6576,7 @@

    Methods

    -

    def update_cluster(

    self, cluster_id, address)

    +

    def update_cluster(

    self, id, address)

    @@ -6665,7 +6587,7 @@

    Methods

    Params:

      -
    • cluster_id: The unique ID to identify the cluster.
    • +
    • id: The unique ID to identify the cluster.
    • address: A GRPC address for the license server to reach the cluster.
    @@ -7497,7 +7419,7 @@

    Methods

    -

    class CopyFileRequest

    +

    class CopyFile

    A ProtocolMessage

    @@ -7514,7 +7436,7 @@

    Ancestors (in MRO)

    Class variables

    -

    var DESCRIPTOR

    +

    var DESCRIPTOR

    @@ -7524,7 +7446,7 @@

    Class variables

    -

    var Extensions

    +

    var Extensions

    @@ -7534,7 +7456,7 @@

    Class variables

    -

    var dst

    +

    var append

    @@ -7544,7 +7466,7 @@

    Class variables

    -

    var overwrite

    +

    var dst

    @@ -7554,7 +7476,7 @@

    Class variables

    -

    var src

    +

    var src

    @@ -7564,7 +7486,7 @@

    Class variables

    -

    var tag

    +

    var tag

    @@ -8234,7 +8156,7 @@

    Class variables

    -

    var no_skip

    +

    var output_branch

    @@ -8244,7 +8166,7 @@

    Class variables

    -

    var output_branch

    +

    var parallelism_spec

    @@ -8254,7 +8176,7 @@

    Class variables

    -

    var parallelism_spec

    +

    var pipeline

    @@ -8264,7 +8186,7 @@

    Class variables

    -

    var pipeline

    +

    var pod_patch

    @@ -8274,7 +8196,7 @@

    Class variables

    -

    var pod_patch

    +

    var pod_spec

    @@ -8284,7 +8206,7 @@

    Class variables

    -

    var pod_spec

    +

    var reprocess

    @@ -8294,7 +8216,7 @@

    Class variables

    -

    var reprocess

    +

    var reprocess_spec

    @@ -10815,106 +10737,6 @@

    Class variables

    -
    -
    - -
    -
    -
    - -
    -

    class ExtendAuthTokenRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var token

    - - - - -
    -
    - -
    -
    -

    var ttl

    - - - - -
    -
    - -
    -
    -
    - -
    -

    class ExtendAuthTokenResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - -
    @@ -11894,126 +11716,6 @@

    Class variables

    -
    -
    - -
    -
    -
    - -
    -

    class GetAuthTokenRequest

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var subject

    - - - - -
    -
    - -
    -
    -

    var ttl

    - - - - -
    -
    - -
    -
    -
    - -
    -

    class GetAuthTokenResponse

    - - -

    A ProtocolMessage

    -
    -
    -
    - - -
    -

    Ancestors (in MRO)

    - -

    Class variables

    -
    -

    var DESCRIPTOR

    - - - - -
    -
    - -
    -
    -

    var Extensions

    - - - - -
    -
    - -
    -
    -

    var subject

    - - - - -
    -
    - -
    -
    -

    var token

    - - - -
    @@ -16380,6 +16082,28 @@

    Methods

    +
    +
    +

    def copy_file(

    self, source_commit, source_path, dest_path, append=None, tag=None)

    +
    + + + + +

    Deletes a file.

    + +

    Params:

    + +
      +
    • path: The path to the file.
    • +
    +
    +
    +
    + +
    + +

    def delete_file(

    self, path)

    @@ -16393,8 +16117,6 @@

    Methods

    Params:

      -
    • commit: A tuple, string, or Commit object representing the -commit.
    • path: The path to the file.
    @@ -16420,7 +16142,7 @@

    Methods

  • path: A string specifying the path in the repo the file(s) will be written to.
  • value: The file contents as a bytestring.
  • -
  • overwrite: Optional. When true, the existing file is replaced with +
  • overwrite: Optional. When true, the existing file is replaced with new data. When false, the new data is appended to the existing file.
  • delimiter: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used @@ -16462,7 +16184,7 @@

    Methods

  • path: A string specifying the path in the repo the file(s) will be written to.
  • value: The file-like object.
  • -
  • overwrite: Optional. When true, the existing file is replaced with +
  • overwrite: Optional. When true, the existing file is replaced with new data. When false, the new data is appended to the existing file.
  • delimiter: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used @@ -16507,7 +16229,7 @@

    Methods

  • pfs_path: A string specifying the path in the repo the file(s) will be written to.
  • local_path: A string specifying the local file path.
  • -
  • overwrite: Optional. When true, the existing file is replaced with +
  • overwrite: Optional. When true, the existing file is replaced with new data. When false, the new data is appended to the existing file.
  • delimiter: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used @@ -16549,7 +16271,7 @@

    Methods

    • path: A string specifying the path to the file.
    • url: A string specifying the url of the file to put.
    • -
    • overwrite: Optional. When true, the existing file is replaced with +
    • overwrite: Optional. When true, the existing file is replaced with new data. When false, the new data is appended to the existing file.
    • delimiter: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used @@ -16617,7 +16339,7 @@

      Class variables

  • -

    var append_file

    +

    var commit

    @@ -16627,7 +16349,7 @@

    Class variables

    -

    var commit

    +

    var copy_file

    @@ -16642,6 +16364,16 @@

    Class variables

    +
    +
    + +
    +
    +

    var put_file

    + + + +
    @@ -16997,7 +16729,7 @@

    Class variables

    -

    var additional_scopes

    +

    var client_id

    @@ -17007,7 +16739,7 @@

    Class variables

    -

    var client_id

    +

    var client_secret

    @@ -17017,7 +16749,7 @@

    Class variables

    -

    var client_secret

    +

    var issuer

    @@ -17027,7 +16759,7 @@

    Class variables

    -

    var ignore_email_verified

    +

    var localhost_issuer

    @@ -17037,7 +16769,7 @@

    Class variables

    -

    var issuer

    +

    var redirect_uri

    @@ -17047,7 +16779,7 @@

    Class variables

    -

    var localhost_issuer

    +

    var require_email_verified

    @@ -17057,7 +16789,7 @@

    Class variables

    -

    var redirect_uri

    +

    var scopes

    @@ -17142,8 +16874,8 @@

    Class variables

    class PFSFile

    -

    The contents of a file stored in PFS. You can treat these as file-like objects, -like so:

    +

    The contents of a file stored in PFS. You can treat these as +file-like objects, like so:

    source_file = client.get_file("montage/master", "/montage.png")
     with open("montage.png", "wb") as dest_file:
    @@ -17441,16 +17173,6 @@ 

    Class variables

    -
    -
    - -
    -
    -

    var CLUSTER_AUTH_EXTEND_TOKEN

    - - - -
    @@ -17501,16 +17223,6 @@

    Class variables

    -
    -
    - -
    -
    -

    var CLUSTER_AUTH_GET_TOKEN

    - - - -
    @@ -18256,7 +17968,7 @@

    Class variables

    -

    var no_skip

    +

    var output_branch

    @@ -18266,7 +17978,7 @@

    Class variables

    -

    var output_branch

    +

    var parallelism_spec

    @@ -18276,7 +17988,7 @@

    Class variables

    -

    var parallelism_spec

    +

    var pipeline

    @@ -18286,7 +17998,7 @@

    Class variables

    -

    var pipeline

    +

    var pod_patch

    @@ -18296,7 +18008,7 @@

    Class variables

    -

    var pod_patch

    +

    var pod_spec

    @@ -18306,7 +18018,7 @@

    Class variables

    -

    var pod_spec

    +

    var reason

    @@ -18316,7 +18028,7 @@

    Class variables

    -

    var reason

    +

    var recent_error

    @@ -18326,7 +18038,7 @@

    Class variables

    -

    var recent_error

    +

    var reprocess_spec

    @@ -18750,6 +18462,96 @@

    Class variables

    +
    +
    + +
    +
    +
    + +
    +

    class PutFile

    + + +

    A ProtocolMessage

    +
    +
    +
    + + +
    +

    Ancestors (in MRO)

    + +

    Class variables

    +
    +

    var DESCRIPTOR

    + + + + +
    +
    + +
    +
    +

    var Extensions

    + + + + +
    +
    + +
    +
    +

    var append

    + + + + +
    +
    + +
    +
    +

    var raw_file_source

    + + + + +
    +
    + +
    +
    +

    var tag

    + + + + +
    +
    + +
    +
    +

    var tar_file_source

    + + + + +
    +
    + +
    +
    +

    var url_file_source

    + + + +
    From e897994f12f8475be0620f683f726455d618e720 Mon Sep 17 00:00:00 2001 From: A Gardner <3100188+actgardner@users.noreply.github.com> Date: Tue, 20 Apr 2021 10:31:03 -0400 Subject: [PATCH 31/34] Update PPS API --- src/python_pachyderm/mixin/pfs.py | 1 - src/python_pachyderm/mixin/pps.py | 12 ++++++------ src/python_pachyderm/mixin/util.py | 3 +++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/python_pachyderm/mixin/pfs.py b/src/python_pachyderm/mixin/pfs.py index b1779ebf..e3a5b026 100644 --- a/src/python_pachyderm/mixin/pfs.py +++ b/src/python_pachyderm/mixin/pfs.py @@ -657,7 +657,6 @@ def __init__(self, commit): def _reqs(self): for op in self._ops: for r in op.reqs(): - print(r) yield r def put_file_from_filepath(self, pfs_path, local_path, overwrite=False, delimiter=None, target_file_datums=None, diff --git a/src/python_pachyderm/mixin/pps.py b/src/python_pachyderm/mixin/pps.py index 403bb47d..eaa8679d 100644 --- a/src/python_pachyderm/mixin/pps.py +++ b/src/python_pachyderm/mixin/pps.py @@ -159,7 +159,7 @@ def restart_datum(self, job_id, data_filters=None): job=pps_proto.Job(id=job_id), data_filters=data_filters, ) - def create_pipeline(self, pipeline_name, transform, parallelism_spec=None, egress=None, no_skip=None, + def create_pipeline(self, pipeline_name, transform, parallelism_spec=None, egress=None, reprocess_spec=None, update=None, output_branch=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, enable_stats=None, reprocess=None, max_queue_size=None, service=None, chunk_spec=None, datum_timeout=None, job_timeout=None, salt=None, standby=None, @@ -204,7 +204,7 @@ def create_pipeline(self, pipeline_name, transform, parallelism_spec=None, egres * `s3_out`: An optional bool specifying whether the output repo should be exposed as an s3 gateway bucket. * `sidecar_resource_limits`: An optional `ResourceSpec` setting - * `no_skip`: An optional bool specifying whether to skip + * `reprocess_spec`: An optional string specifying how to handle already-processed data resource limits for the pipeline sidecar. """ @@ -318,7 +318,7 @@ def create_build_pipeline_input(name): spout=spout, spec_commit=spec_commit, sidecar_resource_limits=sidecar_resource_limits, - no_skip=no_skip, + reprocess_spec=reprocess_spec, ) def create_pipeline_from_request(self, req): @@ -335,7 +335,7 @@ def create_pipeline_from_request(self, req): """ return self._req(Service.PPS, "CreatePipeline", req=req) - def create_tf_job_pipeline(self, pipeline_name, tf_job, parallelism_spec=None, no_skip=None, + def create_tf_job_pipeline(self, pipeline_name, tf_job, parallelism_spec=None, reprocess_spec=None, egress=None, update=None, output_branch=None, scale_down_threshold=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, @@ -381,7 +381,7 @@ def create_tf_job_pipeline(self, pipeline_name, tf_job, parallelism_spec=None, n * `pod_patch`: An optional string. * `spout`: An optional `Spout` object. * `spec_commit`: An optional `Commit` object. - * `no_skip`: An optional bool specifying whether to skip + * `reprocess_spec`: An optional string specifying how to handle already-processed data """ return self._req( @@ -412,7 +412,7 @@ def create_tf_job_pipeline(self, pipeline_name, tf_job, parallelism_spec=None, n pod_patch=pod_patch, spout=spout, spec_commit=spec_commit, - no_skip=no_skip, + reprocess_spec=reprocess_spec, ) def inspect_pipeline(self, pipeline_name, history=None): diff --git a/src/python_pachyderm/mixin/util.py b/src/python_pachyderm/mixin/util.py index 1bf7f0d0..f7f66585 100644 --- a/src/python_pachyderm/mixin/util.py +++ b/src/python_pachyderm/mixin/util.py @@ -2,6 +2,9 @@ def commit_from(src, allow_just_repo=False): + if src is None: + return None + if isinstance(src, pfs_proto.Commit): return src elif isinstance(src, (tuple, list)) and len(src) == 2: From 9b4834e1ee46d280675b29db316cb78c405f44ff Mon Sep 17 00:00:00 2001 From: A Gardner <3100188+actgardner@users.noreply.github.com> Date: Tue, 20 Apr 2021 10:40:00 -0400 Subject: [PATCH 32/34] Replace "overwrite" options with "append" --- docs/python_pachyderm.html | 70 +++++++++++------------- src/python_pachyderm/mixin/pfs.py | 89 ++++++++++++------------------- 2 files changed, 65 insertions(+), 94 deletions(-) diff --git a/docs/python_pachyderm.html b/docs/python_pachyderm.html index e0e33b92..f9415cb8 100644 --- a/docs/python_pachyderm.html +++ b/docs/python_pachyderm.html @@ -4303,8 +4303,8 @@

    Methods

  • dest_commit: A tuple, string, or Commit object representing the commit for the destination file.
  • dest_path: A string specifying the path of the destination file.
  • -
  • append: An optional bool specifying whether to append to the -destination file if it already exists.
  • +
  • append: An optional bool, if true the data is appended to the file, +if it already exists.
  • @@ -4376,7 +4376,7 @@

    Methods

    -

    def create_pipeline(

    self, pipeline_name, transform, parallelism_spec=None, egress=None, no_skip=None, update=None, output_branch=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, enable_stats=None, reprocess=None, max_queue_size=None, service=None, chunk_spec=None, datum_timeout=None, job_timeout=None, salt=None, standby=None, datum_tries=None, scheduling_spec=None, pod_patch=None, spout=None, spec_commit=None, metadata=None, s3_out=None, sidecar_resource_limits=None)

    +

    def create_pipeline(

    self, pipeline_name, transform, parallelism_spec=None, egress=None, reprocess_spec=None, update=None, output_branch=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, enable_stats=None, reprocess=None, max_queue_size=None, service=None, chunk_spec=None, datum_timeout=None, job_timeout=None, salt=None, standby=None, datum_tries=None, scheduling_spec=None, pod_patch=None, spout=None, spec_commit=None, metadata=None, s3_out=None, sidecar_resource_limits=None)

    @@ -4421,7 +4421,7 @@

    Methods

  • s3_out: An optional bool specifying whether the output repo should be exposed as an s3 gateway bucket.
  • sidecar_resource_limits: An optional ResourceSpec setting
  • -
  • no_skip: An optional bool specifying whether to skip +
  • reprocess_spec: An optional string specifying how to handle already-processed data resource limits for the pipeline sidecar.
  • @@ -4517,7 +4517,7 @@

    Methods

    -

    def create_tf_job_pipeline(

    self, pipeline_name, tf_job, parallelism_spec=None, no_skip=None, egress=None, update=None, output_branch=None, scale_down_threshold=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, enable_stats=None, reprocess=None, max_queue_size=None, service=None, chunk_spec=None, datum_timeout=None, job_timeout=None, salt=None, standby=None, datum_tries=None, scheduling_spec=None, pod_patch=None, spout=None, spec_commit=None)

    +

    def create_tf_job_pipeline(

    self, pipeline_name, tf_job, parallelism_spec=None, reprocess_spec=None, egress=None, update=None, output_branch=None, scale_down_threshold=None, resource_requests=None, resource_limits=None, input=None, description=None, cache_size=None, enable_stats=None, reprocess=None, max_queue_size=None, service=None, chunk_spec=None, datum_timeout=None, job_timeout=None, salt=None, standby=None, datum_tries=None, scheduling_spec=None, pod_patch=None, spout=None, spec_commit=None)

    @@ -4561,7 +4561,7 @@

    Methods

  • pod_patch: An optional string.
  • spout: An optional Spout object.
  • spec_commit: An optional Commit object.
  • -
  • no_skip: An optional bool specifying whether to skip +
  • reprocess_spec: An optional string specifying how to handle already-processed data
  • @@ -6111,7 +6111,7 @@

    Methods

    -

    def put_file_bytes(

    self, commit, path, value, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +

    def put_file_bytes(

    self, commit, path, value, delimiter=None, target_file_datums=None, target_file_bytes=None, append=None, header_records=None)

    @@ -6139,9 +6139,8 @@

    Methods

  • target_file_bytes: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target.
  • -
  • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
  • +
  • append: An optional bool, if true the data is appended to the file, +if it already exists.
  • header_records: An optional int for splitting data whendelimiter is notNONE(orSQL`). It specifies the number of records that are converted to a header and applied to all file shards.
  • @@ -6155,7 +6154,7 @@

    Methods

    -

    def put_file_url(

    self, commit, path, url, delimiter=None, recursive=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +

    def put_file_url(

    self, commit, path, url, delimiter=None, recursive=None, target_file_datums=None, target_file_bytes=None, append=None, header_records=None)

    @@ -6183,9 +6182,8 @@

    Methods

  • target_file_bytes: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target.
  • -
  • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
  • +
  • append: An optional bool, if true the data is appended to the file, +if it already exists.
  • header_records: An optional int for splitting data whendelimiter is notNONE(orSQL`). It specifies the number of records that are converted to a header and applied to all file shards.
  • @@ -16090,12 +16088,16 @@

    Methods

    -

    Deletes a file.

    +

    Copy a file.

    Params:

      -
    • path: The path to the file.
    • +
    • source_commit: The commit the source file is in.
    • +
    • source_path: The path to the source file.
    • +
    • dest_path: The path to the destination file.
    • +
    • append: An optional bool, if true the data is appended to the file, +if it already exists.
    @@ -16128,7 +16130,7 @@

    Methods

    -

    def put_file_from_bytes(

    self, path, value, overwrite=False, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +

    def put_file_from_bytes(

    self, path, value, append=None, delimiter=None, target_file_datums=None, target_file_bytes=None, header_records=None)

    @@ -16142,8 +16144,8 @@

    Methods

  • path: A string specifying the path in the repo the file(s) will be written to.
  • value: The file contents as a bytestring.
  • -
  • overwrite: Optional. When true, the existing file is replaced with -new data. When false, the new data is appended to the existing file.
  • +
  • append: An optional bool, if true the data is appended to the file, +if it already exists.
  • delimiter: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used Delimiter.CSV.value, a separate PFS file will be created for each @@ -16154,9 +16156,6 @@

    Methods

  • target_file_bytes: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target.
  • -
  • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
  • header_records: An optional int for splitting data whendelimiter is notNONE(orSQL`). It specifies the number of records that are converted to a header and applied to all file shards.
  • @@ -16170,7 +16169,7 @@

    Methods

    -

    def put_file_from_fileobj(

    self, path, value, overwrite=False, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +

    def put_file_from_fileobj(

    self, path, value, append=None, delimiter=None, target_file_datums=None, target_file_bytes=None, header_records=None)

    @@ -16184,8 +16183,8 @@

    Methods

  • path: A string specifying the path in the repo the file(s) will be written to.
  • value: The file-like object.
  • -
  • overwrite: Optional. When true, the existing file is replaced with -new data. When false, the new data is appended to the existing file.
  • +
  • append: An optional bool, if true the data is appended to the file, +if it already exists.
  • delimiter: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used Delimiter.CSV.value, a separate PFS file will be created for each @@ -16196,9 +16195,6 @@

    Methods

  • target_file_bytes: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target.
  • -
  • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
  • header_records: An optional int for splitting data whendelimiter is notNONE(orSQL`). It specifies the number of records that are converted to a header and applied to all file shards.
  • @@ -16212,7 +16208,7 @@

    Methods

    -

    def put_file_from_filepath(

    self, pfs_path, local_path, overwrite=False, delimiter=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +

    def put_file_from_filepath(

    self, pfs_path, local_path, append=None, delimiter=None, target_file_datums=None, target_file_bytes=None, header_records=None)

    @@ -16229,8 +16225,8 @@

    Methods

  • pfs_path: A string specifying the path in the repo the file(s) will be written to.
  • local_path: A string specifying the local file path.
  • -
  • overwrite: Optional. When true, the existing file is replaced with -new data. When false, the new data is appended to the existing file.
  • +
  • append: An optional bool, if true the data is appended to the file, +if it already exists.
  • delimiter: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used Delimiter.CSV.value, a separate PFS file will be created for each @@ -16241,9 +16237,6 @@

    Methods

  • target_file_bytes: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target.
  • -
  • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
  • header_records: An optional int for splitting data whendelimiter is notNONE(orSQL`). It specifies the number of records that are converted to a header and applied to all file shards.
  • @@ -16257,7 +16250,7 @@

    Methods

    -

    def put_file_from_url(

    self, path, url, overwrite=False, delimiter=None, recursive=None, target_file_datums=None, target_file_bytes=None, overwrite_index=None, header_records=None)

    +

    def put_file_from_url(

    self, path, url, append=None, delimiter=None, recursive=None, target_file_datums=None, target_file_bytes=None, header_records=None)

    @@ -16271,8 +16264,8 @@

    Methods

    • path: A string specifying the path to the file.
    • url: A string specifying the url of the file to put.
    • -
    • overwrite: Optional. When true, the existing file is replaced with -new data. When false, the new data is appended to the existing file.
    • +
    • append: An optional bool, if true the data is appended to the file, +if it already exists.
    • delimiter: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used Delimiter.CSV.value, a separate PFS file will be created for each @@ -16285,9 +16278,6 @@

      Methods

    • target_file_bytes: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target.
    • -
    • overwrite_index: An optional int. This is the object index where -the write starts from. All existing objects starting from the index -are deleted.
    • header_records: An optional int for splitting data whendelimiter is notNONE(orSQL`). It specifies the number of records that are converted to a header and applied to all file shards.
    • diff --git a/src/python_pachyderm/mixin/pfs.py b/src/python_pachyderm/mixin/pfs.py index e3a5b026..32642aa0 100644 --- a/src/python_pachyderm/mixin/pfs.py +++ b/src/python_pachyderm/mixin/pfs.py @@ -377,7 +377,7 @@ def modify_file_client(self, commit): self._req(Service.PFS, "ModifyFile", req=pfc._reqs()) def put_file_bytes(self, commit, path, value, delimiter=None, target_file_datums=None, - target_file_bytes=None, overwrite_index=None, header_records=None): + target_file_bytes=None, append=None, header_records=None): """ Uploads a PFS file from a file-like object, bytestring, or iterator of bytestrings. @@ -400,9 +400,8 @@ def put_file_bytes(self, commit, path, value, delimiter=None, target_file_datums * `target_file_bytes`: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target. - * `overwrite_index`: An optional int. This is the object index where - the write starts from. All existing objects starting from the index - are deleted. + * `append`: An optional bool, if true the data is appended to the file, + if it already exists. * `header_records: An optional int for splitting data when `delimiter` is not `NONE` (or `SQL`). It specifies the number of records that are converted to a header and applied to all file shards. @@ -414,7 +413,6 @@ def put_file_bytes(self, commit, path, value, delimiter=None, target_file_datums # delimiter=delimiter, # target_file_datums=target_file_datums, # target_file_bytes=target_file_bytes, - # overwrite_index=overwrite_index, # header_records=header_records, ) else: @@ -423,12 +421,11 @@ def put_file_bytes(self, commit, path, value, delimiter=None, target_file_datums # delimiter=delimiter, # target_file_datums=target_file_datums, # target_file_bytes=target_file_bytes, - # overwrite_index=overwrite_index, # header_records=header_records, ) def put_file_url(self, commit, path, url, delimiter=None, recursive=None, target_file_datums=None, - target_file_bytes=None, overwrite_index=None, header_records=None): + target_file_bytes=None, append=None, header_records=None): """ Puts a file using the content found at a URL. The URL is sent to the server which performs the request. @@ -451,9 +448,8 @@ def put_file_url(self, commit, path, url, delimiter=None, recursive=None, target * `target_file_bytes`: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target. - * `overwrite_index`: An optional int. This is the object index where - the write starts from. All existing objects starting from the index - are deleted. + * `append`: An optional bool, if true the data is appended to the file, + if it already exists. * `header_records: An optional int for splitting data when `delimiter` is not `NONE` (or `SQL`). It specifies the number of records that are converted to a header and applied to all file shards. @@ -463,10 +459,10 @@ def put_file_url(self, commit, path, url, delimiter=None, recursive=None, target pfc.put_file_from_url( path, url, recursive=recursive, + append=append, # delimiter=delimiter, # target_file_datums=target_file_datums, # target_file_bytes=target_file_bytes, - # overwrite_index=overwrite_index, # header_records=header_records, ) @@ -484,8 +480,8 @@ def copy_file(self, source_commit, source_path, dest_commit, dest_path, append=N * `dest_commit`: A tuple, string, or `Commit` object representing the commit for the destination file. * `dest_path`: A string specifying the path of the destination file. - * `append`: An optional bool specifying whether to append to the - destination file if it already exists. + * `append`: An optional bool, if true the data is appended to the file, + if it already exists. """ with self.modify_file_client(dest_commit) as pfc: pfc.copy_file(source_commit, source_path, dest_path, append=append, tag=tag) @@ -659,8 +655,8 @@ def _reqs(self): for r in op.reqs(): yield r - def put_file_from_filepath(self, pfs_path, local_path, overwrite=False, delimiter=None, target_file_datums=None, - target_file_bytes=None, overwrite_index=None, header_records=None): + def put_file_from_filepath(self, pfs_path, local_path, append=None, delimiter=None, target_file_datums=None, + target_file_bytes=None, header_records=None): """ Uploads a PFS file from a local path at a specified path. This will lazily open files, which will prevent too many files from being @@ -672,8 +668,8 @@ def put_file_from_filepath(self, pfs_path, local_path, overwrite=False, delimite * `pfs_path`: A string specifying the path in the repo the file(s) will be written to. * `local_path`: A string specifying the local file path. - * `overwrite`: Optional. When true, the existing file is replaced with - new data. When false, the new data is appended to the existing file. + * `append`: An optional bool, if true the data is appended to the file, + if it already exists. * `delimiter`: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used `Delimiter.CSV.value`, a separate PFS file will be created for each @@ -684,25 +680,20 @@ def put_file_from_filepath(self, pfs_path, local_path, overwrite=False, delimite * `target_file_bytes`: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target. - * `overwrite_index`: An optional int. This is the object index where - the write starts from. All existing objects starting from the index - are deleted. * `header_records: An optional int for splitting data when `delimiter` is not `NONE` (or `SQL`). It specifies the number of records that are converted to a header and applied to all file shards. """ self._ops.append(AtomicModifyFilepathOp( - self.commit, pfs_path, local_path, overwrite, + self.commit, pfs_path, local_path, append, # delimiter=delimiter, # target_file_datums=target_file_datums, # target_file_bytes=target_file_bytes, - # overwrite_index=pfs_proto.OverwriteIndex(index=overwrite_index) - # if overwrite_index is not None else None, # header_records=header_records, )) - def put_file_from_fileobj(self, path, value, overwrite=False, delimiter=None, target_file_datums=None, - target_file_bytes=None, overwrite_index=None, header_records=None): + def put_file_from_fileobj(self, path, value, append=None, delimiter=None, target_file_datums=None, + target_file_bytes=None, header_records=None): """ Uploads a PFS file from a file-like object. @@ -711,8 +702,8 @@ def put_file_from_fileobj(self, path, value, overwrite=False, delimiter=None, ta * `path`: A string specifying the path in the repo the file(s) will be written to. * `value`: The file-like object. - * `overwrite`: Optional. When true, the existing file is replaced with - new data. When false, the new data is appended to the existing file. + * `append`: An optional bool, if true the data is appended to the file, + if it already exists. * `delimiter`: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used `Delimiter.CSV.value`, a separate PFS file will be created for each @@ -723,25 +714,20 @@ def put_file_from_fileobj(self, path, value, overwrite=False, delimiter=None, ta * `target_file_bytes`: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target. - * `overwrite_index`: An optional int. This is the object index where - the write starts from. All existing objects starting from the index - are deleted. * `header_records: An optional int for splitting data when `delimiter` is not `NONE` (or `SQL`). It specifies the number of records that are converted to a header and applied to all file shards. """ self._ops.append(AtomicModifyFileobjOp( - self.commit, path, value, overwrite, + self.commit, path, value, append, # delimiter=delimiter, # target_file_datums=target_file_datums, # target_file_bytes=target_file_bytes, - # overwrite_index=pfs_proto.OverwriteIndex(index=overwrite_index) - # if overwrite_index is not None else None, # header_records=header_records, )) - def put_file_from_bytes(self, path, value, overwrite=False, delimiter=None, target_file_datums=None, - target_file_bytes=None, overwrite_index=None, header_records=None): + def put_file_from_bytes(self, path, value, append=None, delimiter=None, target_file_datums=None, + target_file_bytes=None, header_records=None): """ Uploads a PFS file from a bytestring. @@ -750,8 +736,8 @@ def put_file_from_bytes(self, path, value, overwrite=False, delimiter=None, targ * `path`: A string specifying the path in the repo the file(s) will be written to. * `value`: The file contents as a bytestring. - * `overwrite`: Optional. When true, the existing file is replaced with - new data. When false, the new data is appended to the existing file. + * `append`: An optional bool, if true the data is appended to the file, + if it already exists. * `delimiter`: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used `Delimiter.CSV.value`, a separate PFS file will be created for each @@ -762,24 +748,20 @@ def put_file_from_bytes(self, path, value, overwrite=False, delimiter=None, targ * `target_file_bytes`: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target. - * `overwrite_index`: An optional int. This is the object index where - the write starts from. All existing objects starting from the index - are deleted. * `header_records: An optional int for splitting data when `delimiter` is not `NONE` (or `SQL`). It specifies the number of records that are converted to a header and applied to all file shards. """ self.put_file_from_fileobj( - path, io.BytesIO(value), overwrite, + path, io.BytesIO(value), append, # delimiter=delimiter, # target_file_datums=target_file_datums, # target_file_bytes=target_file_bytes, - # overwrite_index=overwrite_index, # header_records=header_records, ) - def put_file_from_url(self, path, url, overwrite=False, delimiter=None, recursive=None, target_file_datums=None, - target_file_bytes=None, overwrite_index=None, header_records=None): + def put_file_from_url(self, path, url, append=None, delimiter=None, recursive=None, target_file_datums=None, + target_file_bytes=None, header_records=None): """ Puts a file using the content found at a URL. The URL is sent to the server which performs the request. @@ -788,8 +770,8 @@ def put_file_from_url(self, path, url, overwrite=False, delimiter=None, recursiv * `path`: A string specifying the path to the file. * `url`: A string specifying the url of the file to put. - * `overwrite`: Optional. When true, the existing file is replaced with - new data. When false, the new data is appended to the existing file. + * `append`: An optional bool, if true the data is appended to the file, + if it already exists. * `delimiter`: An optional int. causes data to be broken up into separate files by the delimiter. e.g. if you used `Delimiter.CSV.value`, a separate PFS file will be created for each @@ -802,21 +784,16 @@ def put_file_from_url(self, path, url, overwrite=False, delimiter=None, recursiv * `target_file_bytes`: An optional int. Specifies the target number of bytes in each written file, files may have more or fewer bytes than the target. - * `overwrite_index`: An optional int. This is the object index where - the write starts from. All existing objects starting from the index - are deleted. * `header_records: An optional int for splitting data when `delimiter` is not `NONE` (or `SQL`). It specifies the number of records that are converted to a header and applied to all file shards. """ self._ops.append(AtomicModifyFileURLOp( - self.commit, path, url, overwrite, + self.commit, path, url, append, recursive=recursive, # delimiter=delimiter, # target_file_datums=target_file_datums, # target_file_bytes=target_file_bytes, - # overwrite_index=pfs_proto.OverwriteIndex(index=overwrite_index) - # if overwrite_index is not None else None, # header_records=header_records, )) @@ -832,11 +809,15 @@ def delete_file(self, path): def copy_file(self, source_commit, source_path, dest_path, append=None, tag=None): """ - Deletes a file. + Copy a file. Params: - * `path`: The path to the file. + * `source_commit`: The commit the source file is in. + * `source_path`: The path to the source file. + * `dest_path`: The path to the destination file. + * `append`: An optional bool, if true the data is appended to the file, + if it already exists. """ self._ops.append(AtomicCopyFileOp(self.commit, source_commit, source_path, dest_path, append=append, tag=tag)) From 684b1199617c4c91340698d48cade61942c5842d Mon Sep 17 00:00:00 2001 From: A Gardner <3100188+actgardner@users.noreply.github.com> Date: Tue, 20 Apr 2021 11:22:12 -0400 Subject: [PATCH 33/34] Fix get_file and add test --- src/python_pachyderm/mixin/pfs.py | 3 ++- tests/test_pfs.py | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/python_pachyderm/mixin/pfs.py b/src/python_pachyderm/mixin/pfs.py index 32642aa0..72c817e7 100644 --- a/src/python_pachyderm/mixin/pfs.py +++ b/src/python_pachyderm/mixin/pfs.py @@ -499,7 +499,8 @@ def get_file(self, commit, path, URL=None): """ res = self._req( Service.PFS, "GetFile", - file=pfs_proto.File(commit=commit_from(commit), path=path, url=URL), + file=pfs_proto.File(commit=commit_from(commit), path=path), + URL=URL ) return PFSFile(FileTarstream(res)) diff --git a/tests/test_pfs.py b/tests/test_pfs.py index af1eb7c2..57a47c29 100644 --- a/tests/test_pfs.py +++ b/tests/test_pfs.py @@ -277,6 +277,15 @@ def test_put_file_atomic(): assert len(files) == 1 assert files[0].file.path == '/index.html' +def test_get_file(): + client, repo_name = sandbox("put_file_atomic") + commit = (repo_name, "master") + + with client.modify_file_client(commit) as pfc: + pfc.put_file_from_fileobj('file1.dat', BytesIO(b'DATA1')) + + assert client.get_file(commit, 'file1.dat').read() == b'DATA1' + def test_copy_file(): client, repo_name = sandbox("copy_file") From ad2f4459d295a7a796ec15fd6baa79100289a928 Mon Sep 17 00:00:00 2001 From: A Gardner <3100188+actgardner@users.noreply.github.com> Date: Tue, 20 Apr 2021 12:28:05 -0400 Subject: [PATCH 34/34] Fix linting errors --- src/python_pachyderm/mixin/pfs.py | 7 +++++-- src/python_pachyderm/mixin/pps.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/python_pachyderm/mixin/pfs.py b/src/python_pachyderm/mixin/pfs.py index 72c817e7..657eb595 100644 --- a/src/python_pachyderm/mixin/pfs.py +++ b/src/python_pachyderm/mixin/pfs.py @@ -906,7 +906,7 @@ def __init__(self, target_commit, source_commit, source_path, dest_path, append, def reqs(self): yield pfs_proto.ModifyFileRequest( - commit=self.commit, + commit=self.commit, copy_file=pfs_proto.CopyFile( append=self.append, tag=self.tag, @@ -928,5 +928,8 @@ def reqs(self): def put_file_req(commit=None, path=None, chunk=None, append=False, eof=False): return pfs_proto.ModifyFileRequest( commit=commit, - put_file=pfs_proto.PutFile(append=append, raw_file_source=pfs_proto.RawFileSource(path=path, data=chunk, EOF=eof)) + put_file=pfs_proto.PutFile( + append=append, + raw_file_source=pfs_proto.RawFileSource(path=path, data=chunk, EOF=eof) + ) ) diff --git a/src/python_pachyderm/mixin/pps.py b/src/python_pachyderm/mixin/pps.py index eaa8679d..2382e1ab 100644 --- a/src/python_pachyderm/mixin/pps.py +++ b/src/python_pachyderm/mixin/pps.py @@ -381,7 +381,7 @@ def create_tf_job_pipeline(self, pipeline_name, tf_job, parallelism_spec=None, r * `pod_patch`: An optional string. * `spout`: An optional `Spout` object. * `spec_commit`: An optional `Commit` object. - * `reprocess_spec`: An optional string specifying how to handle + * `reprocess_spec`: An optional string specifying how to handle already-processed data """ return self._req(