From 7aa23ca91243ccb8489fc46e99e65438ad31f859 Mon Sep 17 00:00:00 2001 From: John Petterson Date: Tue, 20 Feb 2024 21:42:02 +0800 Subject: [PATCH] remove envoy and auth services --- docker-compose.yml | 22 +- scripts/update_protos.sh | 5 - server/envoy/Dockerfile | 5 - server/envoy/envoy.yaml | 99 ---- server/envoy/proto/kvpair.pb | Bin 89451 -> 0 bytes services/auth/Dockerfile | 15 - services/auth/go.mod | 22 - services/auth/go.sum | 450 ------------------ services/auth/main.go | 22 - .../auth/proto/google/api/annotations.proto | 31 -- services/auth/proto/google/api/http.proto | 375 --------------- services/auth/proto/kvpair.proto | 179 ------- services/auth/server/go.mod | 19 - services/auth/server/go.sum | 450 ------------------ services/auth/server/server.go | 69 --- 15 files changed, 7 insertions(+), 1756 deletions(-) delete mode 100644 server/envoy/Dockerfile delete mode 100644 server/envoy/envoy.yaml delete mode 100644 server/envoy/proto/kvpair.pb delete mode 100644 services/auth/Dockerfile delete mode 100644 services/auth/go.mod delete mode 100644 services/auth/go.sum delete mode 100644 services/auth/main.go delete mode 100644 services/auth/proto/google/api/annotations.proto delete mode 100644 services/auth/proto/google/api/http.proto delete mode 100644 services/auth/proto/kvpair.proto delete mode 100644 services/auth/server/go.mod delete mode 100644 services/auth/server/go.sum delete mode 100644 services/auth/server/server.go diff --git a/docker-compose.yml b/docker-compose.yml index 1a9db83..618934a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,27 +9,19 @@ services: - MONGO_INITDB_ROOT_USERNAME=${MONGODB_USERNAME:-root} - MONGO_INITDB_ROOT_PASSWORD=${MONGODB_PASSWORD:-OlQtOieOzHMSfaEaEZrkd} - envoy: - build: ./server/envoy - ports: - - 9901:9901 - - 50000:50000 - - auth: - build: - context: ./services/auth - args: - # Set proxy for go (e.g. https://goproxy.cn) - - GOPROXY - environment: - - MONGODB_URI=mongodb://${MONGODB_USERNAME:-root}:${MONGODB_PASSWORD:-OlQtOieOzHMSfaEaEZrkd}@mongodb:27017 - gateway: + ports: + - 50000:8080 + entrypoint: + - "-endpoint" + - "kvpair:50051" build: context: ./gateway args: # Set proxy for go (e.g. https://goproxy.cn) - GOPROXY + environment: + - GRPC_GO_LOG_SEVERITY_LEVEL=${GRPC_GO_LOG_SEVERITY_LEVEL:-INFO} kvpair: build: diff --git a/scripts/update_protos.sh b/scripts/update_protos.sh index 4980c9c..bbe879e 100755 --- a/scripts/update_protos.sh +++ b/scripts/update_protos.sh @@ -3,11 +3,6 @@ script_dir="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" top_dir="$(dirname "$script_dir")" -cd "$top_dir" || exit 1 - -# Update descriptor sets for envoy. -"${PROTOC:-protoc}" -Iproto -I. --include_imports --include_source_info --descriptor_set_out=server/envoy/proto/kvpair.pb proto/kvpair.proto - # Generate the gRPC code for gateway. # Note that we must copy the files instead of making symlinks because, otherwise, # we may not be able to build the container with only the files in "$dir" diff --git a/server/envoy/Dockerfile b/server/envoy/Dockerfile deleted file mode 100644 index e39628c..0000000 --- a/server/envoy/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM docker.io/envoyproxy/envoy:v1.23-latest -COPY . /etc/envoy/ -# COPY envoy.yaml /etc/envoy/envoy.yaml -RUN chmod go+r /etc/envoy/envoy.yaml -CMD ["--log-level", "debug", "--config-path", "/etc/envoy/envoy.yaml"] diff --git a/server/envoy/envoy.yaml b/server/envoy/envoy.yaml deleted file mode 100644 index 922cd82..0000000 --- a/server/envoy/envoy.yaml +++ /dev/null @@ -1,99 +0,0 @@ -admin: - address: - socket_address: { address: 0.0.0.0, port_value: 9901 } - -static_resources: - listeners: - - name: grpc - address: - socket_address: { address: 0.0.0.0, port_value: 50000 } - filter_chains: - - filters: - - name: envoy.filters.network.http_connection_manager - typed_config: - "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager - stat_prefix: grpc_json - codec_type: AUTO - route_config: - name: local_route - virtual_hosts: - - name: local_service - domains: ["*"] - routes: - # Make sure pre-flight CORS requests are passed to backend server - # which is able to handle CORS request. - - match: - prefix: "/" - headers: - - name: ":method" - exact_match: "OPTIONS" - route: { cluster: kvpair-grpc, timeout: 60s } - - match: { prefix: "/kvpair.KVPair" } - route: { cluster: kvpair-grpc, timeout: 60s } - http_filters: - - name: envoy.filters.http.grpc_json_transcoder - typed_config: - "@type": type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder - proto_descriptor: "etc/envoy/proto/kvpair.pb" - services: ["kvpair.KVPair"] - request_validation_options: - reject_unknown_method: false - reject_unknown_query_parameters: false - print_options: - add_whitespace: true - always_print_primitive_fields: true - always_print_enums_as_ints: false - preserve_proto_field_names: true - - name: envoy.filters.http.ext_authz - typed_config: - "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz - grpc_service: - envoy_grpc: - cluster_name: auth - timeout: 0.5s - transport_api_version: V3 - failure_mode_allow: false - with_request_body: - max_request_bytes: 8192 - allow_partial_message: true - pack_as_bytes: true - status_on_error: - code: 503 - - name: envoy.filters.http.router - typed_config: - "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router - - clusters: - - name: auth - connect_timeout: 1.25s - type: LOGICAL_DNS - lb_policy: ROUND_ROBIN - dns_lookup_family: V4_ONLY - http2_protocol_options: {} - load_assignment: - cluster_name: auth - endpoints: - - lb_endpoints: - - endpoint: - address: - socket_address: - address: auth - port_value: 5005 - - name: kvpair-grpc - type: LOGICAL_DNS - lb_policy: ROUND_ROBIN - dns_lookup_family: V4_ONLY - typed_extension_protocol_options: - envoy.extensions.upstreams.http.v3.HttpProtocolOptions: - "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions - explicit_http_config: - http2_protocol_options: {} - load_assignment: - cluster_name: grpc - endpoints: - - lb_endpoints: - - endpoint: - address: - socket_address: - address: kvpair - port_value: 50051 diff --git a/server/envoy/proto/kvpair.pb b/server/envoy/proto/kvpair.pb deleted file mode 100644 index 4845039b34f82162248c75dacb0531b921ec2c45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89451 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 ./server - -require ( - github.com/envoyproxy/go-control-plane v0.10.3 - google.golang.org/grpc v1.48.0 - server v0.0.0 -) - -require ( - github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc // indirect - github.com/envoyproxy/protoc-gen-validate v0.6.7 // indirect - github.com/golang/protobuf v1.5.2 // indirect - golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d // indirect - golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912 // indirect - golang.org/x/text v0.3.7 // indirect - google.golang.org/genproto v0.0.0-20220720214146-176da50484ac // indirect - google.golang.org/protobuf v1.28.0 // indirect -) diff --git a/services/auth/go.sum b/services/auth/go.sum deleted file mode 100644 index f136cee..0000000 --- a/services/auth/go.sum +++ /dev/null @@ -1,450 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc h1:PYXxkRUBGUMa5xgMVMDl62vEklZvKpVaxQeN9ie7Hfk= -github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/go-control-plane v0.10.3 h1:xdCVXxEe0Y3FQith+0cj2irwZudqGYvecuLB1HtdexY= -github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.7 h1:qcZcULcd/abmQg6dwigimCNEyi4gg31M/xaciQlDml8= -github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d h1:LO7XpTYMwTqxjLcGWPijK3vRXg1aWdlNOVOHRq45d7c= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912 h1:uCLL3g5wH2xjxVREVuAbP9JM5PPKjRbXKRa6IBjkzmU= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220720214146-176da50484ac h1:EOa+Yrhx1C0O+4pHeXeWrCwdI0tWI6IfUU56Vebs9wQ= -google.golang.org/genproto v0.0.0-20220720214146-176da50484ac/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.48.0 h1:rQOsyJ/8+ufEDJd/Gdsz7HG220Mh9HAhFHRGnIjda0w= -google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/services/auth/main.go b/services/auth/main.go deleted file mode 100644 index 80cf565..0000000 --- a/services/auth/main.go +++ /dev/null @@ -1,22 +0,0 @@ -package main - -import ( - "net" - - "server" - - auth "github.com/envoyproxy/go-control-plane/envoy/service/auth/v3" - "google.golang.org/grpc" -) - -func main() { - s := grpc.NewServer() - auth.RegisterAuthorizationServer(s, &server.Server{}) - - lis, err := net.Listen("tcp", ":5005") - if err != nil { - return - } - - s.Serve(lis) -} diff --git a/services/auth/proto/google/api/annotations.proto b/services/auth/proto/google/api/annotations.proto deleted file mode 100644 index efdab3d..0000000 --- a/services/auth/proto/google/api/annotations.proto +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2015 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.api; - -import "google/api/http.proto"; -import "google/protobuf/descriptor.proto"; - -option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; -option java_multiple_files = true; -option java_outer_classname = "AnnotationsProto"; -option java_package = "com.google.api"; -option objc_class_prefix = "GAPI"; - -extend google.protobuf.MethodOptions { - // See `HttpRule`. - HttpRule http = 72295728; -} diff --git a/services/auth/proto/google/api/http.proto b/services/auth/proto/google/api/http.proto deleted file mode 100644 index 113fa93..0000000 --- a/services/auth/proto/google/api/http.proto +++ /dev/null @@ -1,375 +0,0 @@ -// Copyright 2015 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.api; - -option cc_enable_arenas = true; -option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; -option java_multiple_files = true; -option java_outer_classname = "HttpProto"; -option java_package = "com.google.api"; -option objc_class_prefix = "GAPI"; - -// Defines the HTTP configuration for an API service. It contains a list of -// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method -// to one or more HTTP REST API methods. -message Http { - // A list of HTTP configuration rules that apply to individual API methods. - // - // **NOTE:** All service configuration rules follow "last one wins" order. - repeated HttpRule rules = 1; - - // When set to true, URL path parameters will be fully URI-decoded except in - // cases of single segment matches in reserved expansion, where "%2F" will be - // left encoded. - // - // The default behavior is to not decode RFC 6570 reserved characters in multi - // segment matches. - bool fully_decode_reserved_expansion = 2; -} - -// # gRPC Transcoding -// -// gRPC Transcoding is a feature for mapping between a gRPC method and one or -// more HTTP REST endpoints. It allows developers to build a single API service -// that supports both gRPC APIs and REST APIs. Many systems, including [Google -// APIs](https://github.com/googleapis/googleapis), -// [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC -// Gateway](https://github.com/grpc-ecosystem/grpc-gateway), -// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature -// and use it for large scale production services. -// -// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies -// how different portions of the gRPC request message are mapped to the URL -// path, URL query parameters, and HTTP request body. It also controls how the -// gRPC response message is mapped to the HTTP response body. `HttpRule` is -// typically specified as an `google.api.http` annotation on the gRPC method. -// -// Each mapping specifies a URL path template and an HTTP method. The path -// template may refer to one or more fields in the gRPC request message, as long -// as each field is a non-repeated field with a primitive (non-message) type. -// The path template controls how fields of the request message are mapped to -// the URL path. -// -// Example: -// -// service Messaging { -// rpc GetMessage(GetMessageRequest) returns (Message) { -// option (google.api.http) = { -// get: "/v1/{name=messages/*}" -// }; -// } -// } -// message GetMessageRequest { -// string name = 1; // Mapped to URL path. -// } -// message Message { -// string text = 1; // The resource content. -// } -// -// This enables an HTTP REST to gRPC mapping as below: -// -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` -// -// Any fields in the request message which are not bound by the path template -// automatically become HTTP query parameters if there is no HTTP request body. -// For example: -// -// service Messaging { -// rpc GetMessage(GetMessageRequest) returns (Message) { -// option (google.api.http) = { -// get:"/v1/messages/{message_id}" -// }; -// } -// } -// message GetMessageRequest { -// message SubMessage { -// string subfield = 1; -// } -// string message_id = 1; // Mapped to URL path. -// int64 revision = 2; // Mapped to URL query parameter `revision`. -// SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. -// } -// -// This enables a HTTP JSON to RPC mapping as below: -// -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | -// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: -// "foo"))` -// -// Note that fields which are mapped to URL query parameters must have a -// primitive type or a repeated primitive type or a non-repeated message type. -// In the case of a repeated type, the parameter can be repeated in the URL -// as `...?param=A¶m=B`. In the case of a message type, each field of the -// message is mapped to a separate parameter, such as -// `...?foo.a=A&foo.b=B&foo.c=C`. -// -// For HTTP methods that allow a request body, the `body` field -// specifies the mapping. Consider a REST update method on the -// message resource collection: -// -// service Messaging { -// rpc UpdateMessage(UpdateMessageRequest) returns (Message) { -// option (google.api.http) = { -// patch: "/v1/messages/{message_id}" -// body: "message" -// }; -// } -// } -// message UpdateMessageRequest { -// string message_id = 1; // mapped to the URL -// Message message = 2; // mapped to the body -// } -// -// The following HTTP JSON to RPC mapping is enabled, where the -// representation of the JSON in the request body is determined by -// protos JSON encoding: -// -// HTTP | gRPC -// -----|----- -// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" message { text: "Hi!" })` -// -// The special name `*` can be used in the body mapping to define that -// every field not bound by the path template should be mapped to the -// request body. This enables the following alternative definition of -// the update method: -// -// service Messaging { -// rpc UpdateMessage(Message) returns (Message) { -// option (google.api.http) = { -// patch: "/v1/messages/{message_id}" -// body: "*" -// }; -// } -// } -// message Message { -// string message_id = 1; -// string text = 2; -// } -// -// -// The following HTTP JSON to RPC mapping is enabled: -// -// HTTP | gRPC -// -----|----- -// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" text: "Hi!")` -// -// Note that when using `*` in the body mapping, it is not possible to -// have HTTP parameters, as all fields not bound by the path end in -// the body. This makes this option more rarely used in practice when -// defining REST APIs. The common usage of `*` is in custom methods -// which don't use the URL at all for transferring data. -// -// It is possible to define multiple HTTP methods for one RPC by using -// the `additional_bindings` option. Example: -// -// service Messaging { -// rpc GetMessage(GetMessageRequest) returns (Message) { -// option (google.api.http) = { -// get: "/v1/messages/{message_id}" -// additional_bindings { -// get: "/v1/users/{user_id}/messages/{message_id}" -// } -// }; -// } -// } -// message GetMessageRequest { -// string message_id = 1; -// string user_id = 2; -// } -// -// This enables the following two alternative HTTP JSON to RPC mappings: -// -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` -// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: -// "123456")` -// -// ## Rules for HTTP mapping -// -// 1. Leaf request fields (recursive expansion nested messages in the request -// message) are classified into three categories: -// - Fields referred by the path template. They are passed via the URL path. -// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP -// request body. -// - All other fields are passed via the URL query parameters, and the -// parameter name is the field path in the request message. A repeated -// field can be represented as multiple query parameters under the same -// name. -// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields -// are passed via URL path and HTTP request body. -// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all -// fields are passed via URL path and URL query parameters. -// -// ### Path template syntax -// -// Template = "/" Segments [ Verb ] ; -// Segments = Segment { "/" Segment } ; -// Segment = "*" | "**" | LITERAL | Variable ; -// Variable = "{" FieldPath [ "=" Segments ] "}" ; -// FieldPath = IDENT { "." IDENT } ; -// Verb = ":" LITERAL ; -// -// The syntax `*` matches a single URL path segment. The syntax `**` matches -// zero or more URL path segments, which must be the last part of the URL path -// except the `Verb`. -// -// The syntax `Variable` matches part of the URL path as specified by its -// template. A variable template must not contain other variables. If a variable -// matches a single path segment, its template may be omitted, e.g. `{var}` -// is equivalent to `{var=*}`. -// -// The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` -// contains any reserved character, such characters should be percent-encoded -// before the matching. -// -// If a variable contains exactly one path segment, such as `"{var}"` or -// `"{var=*}"`, when such a variable is expanded into a URL path on the client -// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The -// server side does the reverse decoding. Such variables show up in the -// [Discovery -// Document](https://developers.google.com/discovery/v1/reference/apis) as -// `{var}`. -// -// If a variable contains multiple path segments, such as `"{var=foo/*}"` -// or `"{var=**}"`, when such a variable is expanded into a URL path on the -// client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. -// The server side does the reverse decoding, except "%2F" and "%2f" are left -// unchanged. Such variables show up in the -// [Discovery -// Document](https://developers.google.com/discovery/v1/reference/apis) as -// `{+var}`. -// -// ## Using gRPC API Service Configuration -// -// gRPC API Service Configuration (service config) is a configuration language -// for configuring a gRPC service to become a user-facing product. The -// service config is simply the YAML representation of the `google.api.Service` -// proto message. -// -// As an alternative to annotating your proto file, you can configure gRPC -// transcoding in your service config YAML files. You do this by specifying a -// `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same -// effect as the proto annotation. This can be particularly useful if you -// have a proto that is reused in multiple services. Note that any transcoding -// specified in the service config will override any matching transcoding -// configuration in the proto. -// -// Example: -// -// http: -// rules: -// # Selects a gRPC method and applies HttpRule to it. -// - selector: example.v1.Messaging.GetMessage -// get: /v1/messages/{message_id}/{sub.subfield} -// -// ## Special notes -// -// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the -// proto to JSON conversion must follow the [proto3 -// specification](https://developers.google.com/protocol-buffers/docs/proto3#json). -// -// While the single segment variable follows the semantics of -// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String -// Expansion, the multi segment variable **does not** follow RFC 6570 Section -// 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion -// does not expand special characters like `?` and `#`, which would lead -// to invalid URLs. As the result, gRPC Transcoding uses a custom encoding -// for multi segment variables. -// -// The path variables **must not** refer to any repeated or mapped field, -// because client libraries are not capable of handling such variable expansion. -// -// The path variables **must not** capture the leading "/" character. The reason -// is that the most common use case "{var}" does not capture the leading "/" -// character. For consistency, all path variables must share the same behavior. -// -// Repeated message fields must not be mapped to URL query parameters, because -// no client library can support such complicated mapping. -// -// If an API needs to use a JSON array for request or response body, it can map -// the request or response body to a repeated field. However, some gRPC -// Transcoding implementations may not support this feature. -message HttpRule { - // Selects a method to which this rule applies. - // - // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. - string selector = 1; - - // Determines the URL pattern is matched by this rules. This pattern can be - // used with any of the {get|put|post|delete|patch} methods. A custom method - // can be defined using the 'custom' field. - oneof pattern { - // Maps to HTTP GET. Used for listing and getting information about - // resources. - string get = 2; - - // Maps to HTTP PUT. Used for replacing a resource. - string put = 3; - - // Maps to HTTP POST. Used for creating a resource or performing an action. - string post = 4; - - // Maps to HTTP DELETE. Used for deleting a resource. - string delete = 5; - - // Maps to HTTP PATCH. Used for updating a resource. - string patch = 6; - - // The custom pattern is used for specifying an HTTP method that is not - // included in the `pattern` field, such as HEAD, or "*" to leave the - // HTTP method unspecified for this rule. The wild-card rule is useful - // for services that provide content to Web (HTML) clients. - CustomHttpPattern custom = 8; - } - - // The name of the request field whose value is mapped to the HTTP request - // body, or `*` for mapping all request fields not captured by the path - // pattern to the HTTP body, or omitted for not having any HTTP request body. - // - // NOTE: the referred field must be present at the top-level of the request - // message type. - string body = 7; - - // Optional. The name of the response field whose value is mapped to the HTTP - // response body. When omitted, the entire response message will be used - // as the HTTP response body. - // - // NOTE: The referred field must be present at the top-level of the response - // message type. - string response_body = 12; - - // Additional HTTP bindings for the selector. Nested bindings must - // not contain an `additional_bindings` field themselves (that is, - // the nesting may only be one level deep). - repeated HttpRule additional_bindings = 11; -} - -// A custom pattern is used for defining custom HTTP verb. -message CustomHttpPattern { - // The name of this custom HTTP verb. - string kind = 1; - - // The path matched by this custom verb. - string path = 2; -} diff --git a/services/auth/proto/kvpair.proto b/services/auth/proto/kvpair.proto deleted file mode 100644 index c32bc38..0000000 --- a/services/auth/proto/kvpair.proto +++ /dev/null @@ -1,179 +0,0 @@ -syntax = "proto3"; - -option go_package = "gen/pb"; - -import "google/api/annotations.proto"; - -package kvpair; - -message NodeChildren { - bytes left_child_hash = 5; - bytes right_child_hash = 6; -} - -enum NodeType { - NodeUnspecified = 0; - NodeLeaf = 1; - NodeNonLeaf = 2; - NodeInvalid = 3; -} - -message Node { - uint64 index = 1; - bytes hash = 2; - NodeType node_type = 3; - oneof node_data { - bytes data = 4; - NodeChildren children = 5; - } -} - -enum ProofType { - ProofUnspecified = 0; // Default enum value, equivalent to ProofEmpty - ProofEmpty = 1; // No proof - ProofV0 = 2; -} - -// A proof to validate whether some key value pair exists in the KVStore. -message Proof { - ProofType proof_type = 1; - bytes proof = 2; -} - -message GetRootRequest { optional bytes contract_id = 1; } - -message GetRootResponse { bytes root = 1; } - -message SetRootRequest { - optional bytes contract_id = 1; - bytes hash = 2; -} - -message SetRootResponse { bytes root = 1; } - -message GetLeafRequest { - optional bytes contract_id = 1; - uint64 index = 2; - optional bytes hash = 3; - ProofType proof_type = 4; -} - -message GetLeafResponse { - Node node = 1; - optional Proof proof = 2; -} - -message GetNonLeafRequest { - optional bytes contract_id = 1; - uint64 index = 2; - bytes hash = 3; -} - -message GetNonLeafResponse { Node node = 1; } - -message SetLeafRequest { - optional bytes contract_id = 1; - uint64 index = 2; - optional bytes hash = 3; - optional bytes data = 4; - ProofType proof_type = 5; -} - -message SetLeafResponse { - Node node = 1; - optional Proof proof = 2; -} - -message SetNonLeafRequest { - optional bytes contract_id = 1; - uint64 index = 2; - optional bytes hash = 3; - bytes left_child_hash = 4; - bytes right_child_hash = 5; -} - -message SetNonLeafResponse { Node node = 1; } - -message PoseidonHashRequest { - optional bytes contract_id = 1; - // Because the original data we want to hash can be any binary data, - // it may not be a valid input to the poseidon hash function - // (which takes an array of field elements as input), we may need to - // pad or modify the original data to hash it. This parameter is the - // transformed data which can be feeded into poseidon hash function directly. - // As the way of transforming the of original data is non-standard, - // the caller MUST pass the transformed data here. It is guarenteed - // that the hash returned here is stable. - bytes data = 2; -} - -message PoseidonHashResponse { bytes hash = 1; } - -enum DataHashRecordMode { - ModeUnspecified = 0; // Default enum value, don't use this - ModeStore = 1; - ModeFetch = 2; -} - -message DataHashRecordRequest { - optional bytes contract_id = 1; - // The hash of the data we want to save to the database. - // In ModeFetch, we will fetch data hash record with this hash. - // In ModeStore, we will save data hash record with this hash and data below. - optional bytes hash = 2; - // The binary data that we want save to the database. - optional bytes data = 3; - // The operation mode, may be ModeFetch or ModeStore to indicate - // whether we are storing or fetching the data. - optional DataHashRecordMode mode = 4; -} - -message DataHashRecordResponse { - bytes hash = 1; - bytes data = 2; -} - -service KVPair { - rpc GetRoot(GetRootRequest) returns (GetRootResponse) { - option (google.api.http) = { - get : "/v1/root" - }; - } - rpc SetRoot(SetRootRequest) returns (SetRootResponse) { - option (google.api.http) = { - post : "/v1/root" - }; - } - - rpc GetLeaf(GetLeafRequest) returns (GetLeafResponse) { - option (google.api.http) = { - get : "/v1/leaves" - }; - } - rpc SetLeaf(SetLeafRequest) returns (SetLeafResponse) { - option (google.api.http) = { - post : "/v1/leaves" - }; - } - - rpc GetNonLeaf(GetNonLeafRequest) returns (GetNonLeafResponse) { - option (google.api.http) = { - get : "/v1/nonleaves" - }; - } - rpc SetNonLeaf(SetNonLeafRequest) returns (SetNonLeafResponse) { - option (google.api.http) = { - post : "/v1/nonleaves" - }; - } - rpc PoseidonHash(PoseidonHashRequest) returns (PoseidonHashResponse) { - option (google.api.http) = { - post : "/v1/poseidon" - }; - } - rpc DataHashRecord(DataHashRecordRequest) returns (DataHashRecordResponse) { - option (google.api.http) = { - post : "/v1/datahashrecord" - }; - } -} diff --git a/services/auth/server/go.mod b/services/auth/server/go.mod deleted file mode 100644 index 36881a6..0000000 --- a/services/auth/server/go.mod +++ /dev/null @@ -1,19 +0,0 @@ -module server - -go 1.18 - -require ( - github.com/envoyproxy/go-control-plane v0.10.3 - google.golang.org/genproto v0.0.0-20220720214146-176da50484ac - google.golang.org/grpc v1.48.0 -) - -require ( - github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc // indirect - github.com/envoyproxy/protoc-gen-validate v0.6.7 // indirect - github.com/golang/protobuf v1.5.2 // indirect - golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d // indirect - golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912 // indirect - golang.org/x/text v0.3.7 // indirect - google.golang.org/protobuf v1.28.0 // indirect -) diff --git a/services/auth/server/go.sum b/services/auth/server/go.sum deleted file mode 100644 index f136cee..0000000 --- a/services/auth/server/go.sum +++ /dev/null @@ -1,450 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc h1:PYXxkRUBGUMa5xgMVMDl62vEklZvKpVaxQeN9ie7Hfk= -github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/go-control-plane v0.10.3 h1:xdCVXxEe0Y3FQith+0cj2irwZudqGYvecuLB1HtdexY= -github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.7 h1:qcZcULcd/abmQg6dwigimCNEyi4gg31M/xaciQlDml8= -github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d h1:LO7XpTYMwTqxjLcGWPijK3vRXg1aWdlNOVOHRq45d7c= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912 h1:uCLL3g5wH2xjxVREVuAbP9JM5PPKjRbXKRa6IBjkzmU= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220720214146-176da50484ac h1:EOa+Yrhx1C0O+4pHeXeWrCwdI0tWI6IfUU56Vebs9wQ= -google.golang.org/genproto v0.0.0-20220720214146-176da50484ac/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.48.0 h1:rQOsyJ/8+ufEDJd/Gdsz7HG220Mh9HAhFHRGnIjda0w= -google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/services/auth/server/server.go b/services/auth/server/server.go deleted file mode 100644 index fc40caa..0000000 --- a/services/auth/server/server.go +++ /dev/null @@ -1,69 +0,0 @@ -package server - -import ( - "context" - "fmt" - - core "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" - auth "github.com/envoyproxy/go-control-plane/envoy/service/auth/v3" - envoy_type "github.com/envoyproxy/go-control-plane/envoy/type/v3" - - "google.golang.org/genproto/googleapis/rpc/status" - "google.golang.org/grpc/codes" -) - -type Server struct{} - -func denied(code int32, body string) *auth.CheckResponse { - return &auth.CheckResponse{ - Status: &status.Status{Code: code}, - HttpResponse: &auth.CheckResponse_DeniedResponse{ - DeniedResponse: &auth.DeniedHttpResponse{ - Status: &envoy_type.HttpStatus{ - Code: envoy_type.StatusCode(code), - }, - Body: body, - }, - }, - } -} - -func allowed() *auth.CheckResponse { - return &auth.CheckResponse{ - Status: &status.Status{Code: int32(codes.OK)}, - HttpResponse: &auth.CheckResponse_OkResponse{ - OkResponse: &auth.OkHttpResponse{ - Headers: []*core.HeaderValueOption{ - // We may add extra header to downstream here. - // For example, we can add the following header to give this request a contract id. - // { - // Header: &core.HeaderValue{ - // Key: "x-auth-contract-id", - // Value: "FX6glXnwnPljB/ayPW/WHDz/EjB21Ewn4um+3wITXoc=", - // }, - // }, - }, - HeadersToRemove: []string{"token"}, - }, - }, - } -} - -// Check implements Envoy Authorization service. Proto file: -// https://github.com/envoyproxy/envoy/blob/main/api/envoy/service/auth/v3/external_auth.proto -func (a *Server) Check(ctx context.Context, req *auth.CheckRequest) (*auth.CheckResponse, error) { - headers := req.Attributes.Request.Http.Headers - - fmt.Println("=== Request headers ===") - for h, v := range headers { - fmt.Printf("%s: %s\n", h, v) - } - fmt.Println("=======================") - - // TODO: Do some check here. - // if headers["token"] != "abc" { - // return denied(401, "unauthenticated"), nil - // } - - return allowed(), nil -}