Merge pull request #46027 from thaJeztah/bk_deps
vendor: update dependencies in preparation of BuildKit v0.12 and containerd 1.7 update
This commit is contained in:
commit
3b77e38b8e
365 changed files with 25304 additions and 7331 deletions
72
vendor.mod
72
vendor.mod
|
@ -7,21 +7,21 @@ module github.com/docker/docker
|
|||
go 1.18
|
||||
|
||||
require (
|
||||
cloud.google.com/go/compute v1.7.0
|
||||
cloud.google.com/go/logging v1.4.2
|
||||
cloud.google.com/go/compute/metadata v0.2.3
|
||||
cloud.google.com/go/logging v1.7.0
|
||||
code.cloudfoundry.org/clock v1.0.0
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20221118232415-3345c89a7c72
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1
|
||||
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1
|
||||
github.com/Graylog2/go-gelf v0.0.0-20191017102106-1550ee647df0
|
||||
github.com/Microsoft/go-winio v0.5.2
|
||||
github.com/Microsoft/hcsshim v0.9.8
|
||||
github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91
|
||||
github.com/aws/aws-sdk-go-v2 v1.16.13
|
||||
github.com/aws/aws-sdk-go-v2/config v1.17.4
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.12.17
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.14
|
||||
github.com/aws/aws-sdk-go-v2 v1.17.6
|
||||
github.com/aws/aws-sdk-go-v2/config v1.18.16
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.13.16
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.24
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.15.17
|
||||
github.com/aws/smithy-go v1.13.1
|
||||
github.com/aws/smithy-go v1.13.5
|
||||
github.com/bsphere/le_go v0.0.0-20200109081728-fc06dab2caa8
|
||||
github.com/cloudflare/cfssl v0.0.0-20180323000720-5d63dbd981b5
|
||||
github.com/container-orchestrated-devices/container-device-interface v0.6.0
|
||||
|
@ -29,7 +29,7 @@ require (
|
|||
github.com/containerd/containerd v1.6.21
|
||||
github.com/containerd/continuity v0.4.1
|
||||
github.com/containerd/fifo v1.1.0
|
||||
github.com/containerd/typeurl/v2 v2.1.0
|
||||
github.com/containerd/typeurl/v2 v2.1.1
|
||||
github.com/coreos/go-systemd/v22 v22.5.0
|
||||
github.com/cpuguy83/tar2go v0.3.1
|
||||
github.com/creack/pty v1.1.18
|
||||
|
@ -44,7 +44,7 @@ require (
|
|||
github.com/godbus/dbus/v5 v5.1.0
|
||||
github.com/gogo/protobuf v1.3.2
|
||||
github.com/golang/gddo v0.0.0-20190904175337-72a348e765d2
|
||||
github.com/golang/protobuf v1.5.2
|
||||
github.com/golang/protobuf v1.5.3
|
||||
github.com/google/go-cmp v0.5.9
|
||||
github.com/google/uuid v1.3.0
|
||||
github.com/gorilla/mux v1.8.0
|
||||
|
@ -99,44 +99,46 @@ require (
|
|||
golang.org/x/sys v0.8.0
|
||||
golang.org/x/text v0.9.0
|
||||
golang.org/x/time v0.3.0
|
||||
google.golang.org/genproto v0.0.0-20220706185917-7780775163c4
|
||||
google.golang.org/grpc v1.50.1
|
||||
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4
|
||||
google.golang.org/grpc v1.53.0
|
||||
gotest.tools/v3 v3.4.0
|
||||
resenje.org/singleflight v0.3.0
|
||||
)
|
||||
|
||||
require (
|
||||
cloud.google.com/go v0.102.1 // indirect
|
||||
cloud.google.com/go v0.110.0 // indirect
|
||||
cloud.google.com/go/compute v1.18.0 // indirect
|
||||
cloud.google.com/go/longrunning v0.4.1 // indirect
|
||||
github.com/agext/levenshtein v1.2.3 // indirect
|
||||
github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2 // indirect
|
||||
github.com/armon/go-metrics v0.4.1 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.20 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.14 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.21 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.14 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.11.20 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.2 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.16.16 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.12.5 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5 // indirect
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.18.6 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.1.2 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.2.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/cilium/ebpf v0.9.1 // indirect
|
||||
github.com/container-storage-interface/spec v1.5.0 // indirect
|
||||
github.com/containerd/cgroups v1.0.4 // indirect
|
||||
github.com/containerd/cgroups v1.1.0 // indirect
|
||||
github.com/containerd/console v1.0.3 // indirect
|
||||
github.com/containerd/go-cni v1.1.6 // indirect
|
||||
github.com/containerd/go-cni v1.1.9 // indirect
|
||||
github.com/containerd/go-runc v1.1.0 // indirect
|
||||
github.com/containerd/nydus-snapshotter v0.3.1 // indirect
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.13.0 // indirect
|
||||
github.com/containerd/ttrpc v1.1.1 // indirect
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect
|
||||
github.com/containerd/ttrpc v1.2.2 // indirect
|
||||
github.com/containerd/typeurl v1.0.2 // indirect
|
||||
github.com/containernetworking/cni v1.1.1 // indirect
|
||||
github.com/containernetworking/cni v1.1.2 // indirect
|
||||
github.com/cyphar/filepath-securejoin v0.2.3 // indirect
|
||||
github.com/dimchansky/utfbom v1.1.1 // indirect
|
||||
github.com/dustin/go-humanize v1.0.0 // indirect
|
||||
github.com/felixge/httpsnoop v1.0.2 // indirect
|
||||
github.com/fernet/fernet-go v0.0.0-20211208181803-9f70042a33ee // indirect
|
||||
github.com/fsnotify/fsnotify v1.5.1 // indirect
|
||||
github.com/fsnotify/fsnotify v1.6.0 // indirect
|
||||
github.com/go-logr/logr v1.2.3 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/gofrs/flock v0.8.1 // indirect
|
||||
|
@ -146,8 +148,8 @@ require (
|
|||
github.com/google/btree v1.1.2 // indirect
|
||||
github.com/google/certificate-transparency-go v1.1.4 // indirect
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.1.0 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.4.0 // indirect
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.7.0 // indirect
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
|
@ -180,7 +182,7 @@ require (
|
|||
go.etcd.io/etcd/pkg/v3 v3.5.6 // indirect
|
||||
go.etcd.io/etcd/raft/v3 v3.5.6 // indirect
|
||||
go.etcd.io/etcd/server/v3 v3.5.6 // indirect
|
||||
go.opencensus.io v0.23.0 // indirect
|
||||
go.opencensus.io v0.24.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.29.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.4.1 // indirect
|
||||
|
@ -195,11 +197,11 @@ require (
|
|||
go.uber.org/multierr v1.8.0 // indirect
|
||||
go.uber.org/zap v1.21.0 // indirect
|
||||
golang.org/x/crypto v0.2.0 // indirect
|
||||
golang.org/x/oauth2 v0.1.0 // indirect
|
||||
google.golang.org/api v0.93.0 // indirect
|
||||
golang.org/x/oauth2 v0.5.0 // indirect
|
||||
google.golang.org/api v0.110.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/protobuf v1.28.1 // indirect
|
||||
google.golang.org/protobuf v1.29.1 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
k8s.io/klog/v2 v2.80.1 // indirect
|
||||
k8s.io/klog/v2 v2.90.1 // indirect
|
||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||
)
|
||||
|
|
344
vendor.sum
344
vendor.sum
|
@ -21,42 +21,26 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV
|
|||
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 v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
|
||||
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
|
||||
cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
|
||||
cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
|
||||
cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
|
||||
cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY=
|
||||
cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM=
|
||||
cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY=
|
||||
cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ=
|
||||
cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
|
||||
cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4=
|
||||
cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc=
|
||||
cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA=
|
||||
cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A=
|
||||
cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc=
|
||||
cloud.google.com/go v0.102.1 h1:vpK6iQWv/2uUeFJth4/cBHsQAGjn1iIE6AAlxipRaA0=
|
||||
cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU=
|
||||
cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys=
|
||||
cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY=
|
||||
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/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow=
|
||||
cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM=
|
||||
cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M=
|
||||
cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s=
|
||||
cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU=
|
||||
cloud.google.com/go/compute v1.7.0 h1:v/k9Eueb8aAJ0vZuxKMrgm6kPhCLZU9HxFU+AFDs9Uk=
|
||||
cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U=
|
||||
cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY=
|
||||
cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs=
|
||||
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
|
||||
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
|
||||
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/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
|
||||
cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY=
|
||||
cloud.google.com/go/logging v1.4.2 h1:Mu2Q75VBDQlW1HlBMjTX4X84UFR73G1TiLlRYc/b7tA=
|
||||
cloud.google.com/go/logging v1.4.2/go.mod h1:jco9QZSx8HiVVqLJReq7z7bVdj0P1Jb9PDFs63T+axo=
|
||||
cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE=
|
||||
cloud.google.com/go/logging v1.7.0 h1:CJYxlNNNNAMkHp9em/YEXcfJg+rPDg7YfwoRpMU+t5I=
|
||||
cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M=
|
||||
cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM=
|
||||
cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo=
|
||||
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=
|
||||
|
@ -66,7 +50,6 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
|
|||
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=
|
||||
cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y=
|
||||
code.cloudfoundry.org/clock v1.0.0 h1:kFXWQM4bxYvdBw2X8BbBeXwQNgfoWv1vqAk2ZZyBN2o=
|
||||
code.cloudfoundry.org/clock v1.0.0/go.mod h1:QD9Lzhd/ux6eNQVUDVRJX/RKTigpewimNYBi7ivZKY8=
|
||||
code.gitea.io/sdk/gitea v0.12.0/go.mod h1:z3uwDV/b9Ls47NGukYM9XhnHtqPh/J+t40lsUrR6JDY=
|
||||
|
@ -78,8 +61,8 @@ contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcig
|
|||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
|
||||
git.apache.org/thrift.git v0.12.0/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20221118232415-3345c89a7c72 h1:kq78byqmxX6R9uk4uN3HD2F5tkZJAZMauuLSkNPS8to=
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20221118232415-3345c89a7c72/go.mod h1:VzwV+t+dZ9j/H867F1M2ziD+yLHtB46oM35FxxMJ4d0=
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic=
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1/go.mod h1:VzwV+t+dZ9j/H867F1M2ziD+yLHtB46oM35FxxMJ4d0=
|
||||
github.com/AkihiroSuda/containerd-fuse-overlayfs v1.0.0/go.mod h1:0mMDvQFeLbbn1Wy8P2j3hwFhqBq+FKn8OZPno8WLmp8=
|
||||
github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU=
|
||||
github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4=
|
||||
|
@ -220,32 +203,36 @@ github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN
|
|||
github.com/aws/aws-sdk-go v1.25.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||
github.com/aws/aws-sdk-go v1.27.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||
github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
||||
github.com/aws/aws-sdk-go-v2 v1.16.13 h1:HgF7OX2q0gSZtcXoo9DMEA8A2Qk/GCxmWyM0RI7Yz2Y=
|
||||
github.com/aws/aws-sdk-go-v2 v1.16.13/go.mod h1:xSyvSnzh0KLs5H4HJGeIEsNYemUWdNIl0b/rP6SIsLU=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.17.4 h1:9HY1wbShqObySCHP2Z07blfrSWVX+nVxCZmUuLZKcG8=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.17.4/go.mod h1:ul+ru+huVpfduF9XRmGUq82T8T3K+nIFQuF6F+L+548=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.12.17 h1:htUjIJOQcvIUR0jC4eLkdis1DfaLL4EUbIKUFqh2WFA=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.12.17/go.mod h1:jd1mvJulXY7ccHvcSiJceYhv06yWIIRkJnwWEA4IX+g=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.14 h1:NZwZFtxXGOEIiCd8jWN55lexakug543CaO68bTpoLwg=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.14/go.mod h1:5CU57SyF5jZLSIw4OOll0PG83ThXwNdkRFOc0EltD/0=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.20 h1:Rk8eqZSdFovt8Id+O+i2qT0c3CY13DPn2SfGOEVlxNs=
|
||||
github.com/aws/aws-sdk-go-v2 v1.17.6 h1:Y773UK7OBqhzi5VDXMi1zVGsoj+CVHs2eaC2bDsLwi0=
|
||||
github.com/aws/aws-sdk-go-v2 v1.17.6/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.18.16 h1:4r7gsCu8Ekwl5iJGE/GmspA2UifqySCCkyyyPFeWs3w=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.18.16/go.mod h1:XjM6lVbq7UgELp9NjXBrb1DQY/ownlWsvDhEQksemJc=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.13.16 h1:GgToSxaENX/1zXIGNFfiVk4hxryYJ5Vt4Mh8XLAL7Lc=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.13.16/go.mod h1:KP7aFJhfwPFgx9aoVYL2nYHjya5WBD98CWaadpgmnpY=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.24 h1:5qyqXASrX2zy5cTnoHHa4N2c3Lc94GH7gjnBP3GwKdU=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.24/go.mod h1:neYVaeKr5eT7BzwULuG2YbLhzWZ22lpjKdCybR7AXrQ=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.20/go.mod h1:gdZ5gRUaxThXIZyZQ8MTtgYBk2jbHgp05BO3GcD9Cwc=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.14 h1:6Yxuq9yrkoLYab5JXqJnto9tdRuIcYVdR+eiKjsJYWU=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 h1:y+8n9AGDjikyXoMBTRaHHHSaFEB8267ykmvyPodJfys=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30/go.mod h1:LUBAO3zNXQjoONBKn/kR1y0Q4cj/D02Ts0uHYjcCQLM=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.14/go.mod h1:GEV9jaDPIgayiU+uevxwozcvUOjc+P4aHE2BeSjm2vE=
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.21 h1:lpwSbLKYTuABo6SyUoC25xAmfO3/TehGS2SmD1EtOL0=
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.21/go.mod h1:Q0pktZjvRZk77TBto6yAvUAi7fcse1bdcMctBDVGgBw=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24 h1:r+Kv+SEJquhAZXaJ7G4u44cIwXV3f8K+N482NNAzJZA=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24/go.mod h1:gAuCezX/gob6BSMbItsSlMb6WZGV7K2+fWOvk8xBSto=
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31 h1:hf+Vhp5WtTdcSdE+yEcUz8L73sAzN0R+0jQv+Z51/mI=
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31/go.mod h1:5zUjguZfG5qjhG9/wqmuyHRyUftl2B5Cp6NNxNC6kRA=
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.15.17 h1:cDudPvUMS1LzoXgwhAVqUoaOK3PY7oCSL4pGmQmxlSk=
|
||||
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.15.17/go.mod h1:60NdwPCecURV9rIq6Hg8U4kOsKsz1aXvAAYNKlhG9+E=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.14 h1:c5hJNN2DkK1gAytcKp7LkiKNDJeevFSboPezEHAM4Ro=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.14/go.mod h1:8qOLjqMzY/S1kh3myDXA1yxK5eD4uN8aOJgKpgvc4OM=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.11.20 h1:3raP0UC9rvRyY4/cc4o4F3jTrNo94AYiarNUGNnq6dU=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.11.20/go.mod h1:hPsROgDdgY/NQ1gPt7VJWG0GjSnalDC0DkkMfGEw2gc=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.2 h1:/SYpdjjAtraymql+/r719OgjxezdanAQiLb/NMxDb04=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.2/go.mod h1:5cxfDYtY2mDOlmesy4yycb6lwyy1U/iAUOHKhQLKw/E=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.16.16 h1:otZvq9r+xjPL7qU/luX2QdBamiN+oSZURRi4sAKymO8=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.16.16/go.mod h1:Y9iBgT1w2vHtYzJEkwD6FqILjDSsvbxcW/+wIYxyse4=
|
||||
github.com/aws/smithy-go v1.13.1 h1:q09BdpUiaqpothcv393ACfWJJHzlzjB5HaNL1XHKmoQ=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24 h1:c5qGfdbCHav6viBwiyDns3OXqhqAbGjfIB4uVu2ayhk=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24/go.mod h1:HMA4FZG6fyib+NDo5bpIxX1EhYjrAOveZJY2YR0xrNE=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.12.5 h1:bdKIX6SVF3nc3xJFw6Nf0igzS6Ff/louGq8Z6VP/3Hs=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.12.5/go.mod h1:vuWiaDB30M/QTC+lI3Wj6S/zb7tpUK2MSYgy3Guh2L0=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5 h1:xLPZMyuZ4GuqRCIec/zWuIhRFPXh2UOJdLXBSi64ZWQ=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5/go.mod h1:QjxpHmCwAg0ESGtPQnLIVp7SedTOBMYy+Slr3IfMKeI=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.18.6 h1:rIFn5J3yDoeuKCE9sESXqM5POTAhOP1du3bv/qTL+tE=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.18.6/go.mod h1:48WJ9l3dwP0GSHWGc5sFGGlCkuA82Mc2xnw+T6Q8aDw=
|
||||
github.com/aws/smithy-go v1.13.1/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
|
||||
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
|
||||
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
|
||||
github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=
|
||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||
|
@ -283,8 +270,9 @@ github.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGr
|
|||
github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo=
|
||||
github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e/go.mod h1:oDpT4efm8tSYHXV5tHSdRvBet/b/QzxZ+XyyPehvm3A=
|
||||
github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
|
||||
github.com/cenkalti/backoff/v4 v4.1.2 h1:6Yo7N8UP2K6LWZnW94DLVSSrbobcWdVzAYOisuDPIFo=
|
||||
github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
|
||||
github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4=
|
||||
github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
|
||||
|
@ -292,8 +280,9 @@ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5P
|
|||
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
|
||||
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/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
||||
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
|
||||
github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M=
|
||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||
|
@ -312,13 +301,11 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
|
|||
github.com/cloudflare/cfssl v0.0.0-20180323000720-5d63dbd981b5 h1:PqZ3bA4yzwywivzk7PBQWngJp2/PAS0bWRZerKteicY=
|
||||
github.com/cloudflare/cfssl v0.0.0-20180323000720-5d63dbd981b5/go.mod h1:yMWuSON2oQp+43nFtAV/uvKQIFpSPerB57DCt9t8sSA=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
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/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
|
||||
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=
|
||||
|
@ -347,8 +334,8 @@ github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4S
|
|||
github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo=
|
||||
github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE=
|
||||
github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU=
|
||||
github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA=
|
||||
github.com/containerd/cgroups v1.0.4/go.mod h1:nLNQtsF7Sl2HxNebu77i1R0oDlhiTG+kO4JTrUzo6IA=
|
||||
github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
|
||||
github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
|
||||
github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0=
|
||||
github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE=
|
||||
github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
|
||||
|
@ -396,8 +383,8 @@ github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY
|
|||
github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o=
|
||||
github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU=
|
||||
github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk=
|
||||
github.com/containerd/go-cni v1.1.6 h1:el5WPymG5nRRLQF1EfB97FWob4Tdc8INg8RZMaXWZlo=
|
||||
github.com/containerd/go-cni v1.1.6/go.mod h1:BWtoWl5ghVymxu6MBjg79W9NZrCRyHIdUtk4cauMe34=
|
||||
github.com/containerd/go-cni v1.1.9 h1:ORi7P1dYzCwVM6XPN4n3CbkuOx/NZ2DOqy+SHRdo9rU=
|
||||
github.com/containerd/go-cni v1.1.9/go.mod h1:XYrZJ1d5W6E2VOvjffL3IZq0Dz6bsVlERHbekNK90PM=
|
||||
github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
|
||||
github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0=
|
||||
github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g=
|
||||
|
@ -416,23 +403,23 @@ github.com/containerd/nydus-snapshotter v0.3.1 h1:b8WahTrPkt3XsabjG2o/leN4fw3HWZ
|
|||
github.com/containerd/nydus-snapshotter v0.3.1/go.mod h1:+8R7NX7vrjlxAgtidnsstwIhpzyTlriYPssTxH++uiM=
|
||||
github.com/containerd/stargz-snapshotter v0.0.0-20201027054423-3a04e4c2c116/go.mod h1:o59b3PCKVAf9jjiKtCc/9hLAd+5p/rfhBfm6aBcTEr4=
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM=
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.13.0 h1:fD7AwuVV+B40p0d9qVkH/Au1qhp8hn/HWJHIYjpEcfw=
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.13.0/go.mod h1:m+9VaGJGlhCnrcEUod8mYumTmRgblwd3rC5UCEh2Yp0=
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k=
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o=
|
||||
github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
|
||||
github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o=
|
||||
github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8=
|
||||
github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
|
||||
github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
|
||||
github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ=
|
||||
github.com/containerd/ttrpc v1.1.1 h1:NoRHS/z8UiHhpY1w0xcOqoJDGf2DHyzXrF0H4l5AE8c=
|
||||
github.com/containerd/ttrpc v1.1.1/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ=
|
||||
github.com/containerd/ttrpc v1.2.2 h1:9vqZr0pxwOF5koz6N0N3kJ0zDHokrcPxIR/ZR2YFtOs=
|
||||
github.com/containerd/ttrpc v1.2.2/go.mod h1:sIT6l32Ph/H9cvnJsfXM5drIVzTr5A2flTf1G5tYZak=
|
||||
github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
|
||||
github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk=
|
||||
github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg=
|
||||
github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY=
|
||||
github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s=
|
||||
github.com/containerd/typeurl/v2 v2.1.0 h1:yNAhJvbNEANt7ck48IlEGOxP7YAp6LLpGn5jZACDNIE=
|
||||
github.com/containerd/typeurl/v2 v2.1.0/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0=
|
||||
github.com/containerd/typeurl/v2 v2.1.1 h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4=
|
||||
github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0=
|
||||
github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw=
|
||||
github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y=
|
||||
github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
|
||||
|
@ -441,8 +428,8 @@ github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNR
|
|||
github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
|
||||
github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
|
||||
github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
|
||||
github.com/containernetworking/cni v1.1.1 h1:ky20T7c0MvKvbMOwS/FrlbNwjEoqJEUUYfsL4b0mc4k=
|
||||
github.com/containernetworking/cni v1.1.1/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw=
|
||||
github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ=
|
||||
github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw=
|
||||
github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM=
|
||||
github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8=
|
||||
github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc=
|
||||
|
@ -550,12 +537,10 @@ github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT
|
|||
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.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
|
||||
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.20210217033140-668b12f5399d/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/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
|
@ -575,8 +560,8 @@ github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM
|
|||
github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
|
||||
github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
|
||||
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
|
||||
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
|
||||
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
|
||||
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
|
||||
github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=
|
||||
|
@ -685,7 +670,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
|
|||
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/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
|
||||
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
|
||||
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
|
@ -704,10 +688,10 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
|
|||
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.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
|
||||
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/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
|
||||
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4=
|
||||
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
|
||||
github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0=
|
||||
|
@ -767,8 +751,6 @@ github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/
|
|||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||
github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
|
||||
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=
|
||||
|
@ -776,14 +758,7 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf
|
|||
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/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/rpmpack v0.0.0-20191226140753-aa36bfddb3a0/go.mod h1:RaTPr0KUf2K7fnZYLNDrr8rxAamWs3iNywJLtQ2AzBg=
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
||||
|
@ -797,23 +772,17 @@ github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
|||
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/wire v0.3.0/go.mod h1:i1DMg/Lu8Sz5yYl25iOdmc5CT5qusaa+zmRWs16741s=
|
||||
github.com/google/wire v0.4.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.1.0 h1:zO8WHNx/MYiAKJ3d5spxZXZE6KHmIQGQcAzwUzV7qQw=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
|
||||
github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
|
||||
github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
|
||||
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/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
|
||||
github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM=
|
||||
github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM=
|
||||
github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM=
|
||||
github.com/googleapis/gax-go/v2 v2.4.0 h1:dS9eYAjhrE2RjmzYw2XAPvcXfmcQLtFEQWn0CR82awk=
|
||||
github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c=
|
||||
github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ=
|
||||
github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8=
|
||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||
github.com/googleapis/gnostic v0.2.2/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||
github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
|
||||
github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4=
|
||||
github.com/gookit/color v1.2.4/go.mod h1:AhIE+pS6D4Ql0SQWbBeXPHw7gY0/sjHoA4s/n1KB7xg=
|
||||
github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||
|
@ -963,7 +932,6 @@ github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0
|
|||
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
||||
github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||
github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||
github.com/klauspost/compress v1.15.12/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
|
||||
github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY=
|
||||
github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||
github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||
|
@ -1361,8 +1329,10 @@ github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h
|
|||
github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
|
@ -1371,7 +1341,10 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P
|
|||
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/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||
github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
|
||||
github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
|
||||
|
@ -1491,9 +1464,8 @@ 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.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
|
||||
go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
|
||||
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
|
||||
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.25.0/go.mod h1:E5NNboN0UqSAki0Atn9kVwaN7I+l25gGxDqBueo/74E=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0 h1:n9b7AAdbQtQ0k9dm0Dm2/KUcUqtG8i2O15KzNaDze8c=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0/go.mod h1:LsankqVDx4W+RhZNA5uWarULII/MBhF5qwCYxTuyXjs=
|
||||
|
@ -1602,7 +1574,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
|
|||
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-20201208152925-83fdc39ff7b5/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=
|
||||
|
@ -1612,8 +1583,6 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB
|
|||
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.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
|
@ -1668,27 +1637,17 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R
|
|||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
|
||||
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
|
||||
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
|
||||
|
@ -1703,25 +1662,10 @@ golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4Iltr
|
|||
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-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
|
||||
golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
|
||||
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
|
||||
golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE=
|
||||
golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE=
|
||||
golang.org/x/oauth2 v0.1.0 h1:isLCZuhj4v+tYv7eskaN4v/TM+A1begWWgyVJDdl1+Y=
|
||||
golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A=
|
||||
golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s=
|
||||
golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
|
||||
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
|
||||
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=
|
||||
|
@ -1734,7 +1678,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
|
|||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
|
@ -1809,7 +1752,6 @@ golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200917073148-efd3b9a0ff20/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
|
@ -1822,50 +1764,29 @@ golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210503080704-8803ae5d1324/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-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
|
||||
|
@ -1973,19 +1894,12 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY
|
|||
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.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
|
||||
golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
||||
golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ=
|
||||
|
@ -1993,9 +1907,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
|
|||
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/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
|
||||
golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
|
||||
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
|
||||
|
@ -2025,32 +1936,8 @@ google.golang.org/api v0.25.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M
|
|||
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/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
|
||||
google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
|
||||
google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
|
||||
google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
|
||||
google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
|
||||
google.golang.org/api v0.46.0/go.mod h1:ceL4oozhkAiTID8XMmJBsIxID/9wMXJVVFXPg4ylg3I=
|
||||
google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo=
|
||||
google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4=
|
||||
google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw=
|
||||
google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU=
|
||||
google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k=
|
||||
google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
|
||||
google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
|
||||
google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI=
|
||||
google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I=
|
||||
google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo=
|
||||
google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g=
|
||||
google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA=
|
||||
google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8=
|
||||
google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs=
|
||||
google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA=
|
||||
google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw=
|
||||
google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg=
|
||||
google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o=
|
||||
google.golang.org/api v0.93.0 h1:T2xt9gi0gHdxdnRkVQhT8mIvPaXKNsDNWz+L696M66M=
|
||||
google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw=
|
||||
google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU=
|
||||
google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
|
@ -2102,61 +1989,10 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
|
|||
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-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
|
||||
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
|
||||
google.golang.org/genproto v0.0.0-20210429181445-86c259c2b4ab/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
||||
google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
||||
google.golang.org/genproto v0.0.0-20210517163617-5e0236093d7a/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
|
||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||
google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||
google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||
google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24=
|
||||
google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
|
||||
google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
|
||||
google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
|
||||
google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
|
||||
google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
|
||||
google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
|
||||
google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
|
||||
google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
|
||||
google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
|
||||
google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
|
||||
google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||
google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||
google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||
google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||
google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
|
||||
google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
|
||||
google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
|
||||
google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
|
||||
google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
|
||||
google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
|
||||
google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
|
||||
google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
|
||||
google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
|
||||
google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
|
||||
google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
|
||||
google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
|
||||
google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
|
||||
google.golang.org/genproto v0.0.0-20220706185917-7780775163c4 h1:7YDGQC/0sigNGzsEWyb9s72jTxlFdwVEYNJHbfQ+Dtg=
|
||||
google.golang.org/genproto v0.0.0-20220706185917-7780775163c4/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
|
||||
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA=
|
||||
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s=
|
||||
google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=
|
||||
|
@ -2176,30 +2012,17 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa
|
|||
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.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
|
||||
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||
google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||
google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
|
||||
google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
|
||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
||||
google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
||||
google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
|
||||
google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||
google.golang.org/grpc v1.44.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.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
|
||||
google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
|
||||
google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
|
||||
google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY=
|
||||
google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
|
||||
google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
|
||||
google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
|
||||
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=
|
||||
|
@ -2213,9 +2036,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
|
|||
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/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
|
||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM=
|
||||
google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
|
@ -2317,8 +2139,8 @@ k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
|
|||
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
||||
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
||||
k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
||||
k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4=
|
||||
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||
k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
|
||||
k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||
k8s.io/kube-openapi v0.0.0-20180731170545-e3762e86a74c/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=
|
||||
k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
|
||||
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
|
||||
|
|
13
vendor/cloud.google.com/go/.release-please-manifest-individual.json
generated
vendored
Normal file
13
vendor/cloud.google.com/go/.release-please-manifest-individual.json
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"bigquery": "1.46.0",
|
||||
"bigtable": "1.18.1",
|
||||
"datastore": "1.10.0",
|
||||
"errorreporting": "0.3.0",
|
||||
"firestore": "1.9.0",
|
||||
"logging": "1.6.1",
|
||||
"profiler": "0.3.1",
|
||||
"pubsub": "1.28.0",
|
||||
"pubsublite": "1.6.0",
|
||||
"spanner": "1.44.0",
|
||||
"storage": "1.29.0"
|
||||
}
|
217
vendor/cloud.google.com/go/.release-please-manifest-submodules.json
generated
vendored
217
vendor/cloud.google.com/go/.release-please-manifest-submodules.json
generated
vendored
|
@ -1,107 +1,116 @@
|
|||
{
|
||||
"accessapproval": "1.3.0",
|
||||
"accesscontextmanager": "1.2.0",
|
||||
"aiplatform": "1.13.0",
|
||||
"analytics": "0.7.0",
|
||||
"apigateway": "1.2.0",
|
||||
"apigeeconnect": "1.2.0",
|
||||
"appengine": "1.3.0",
|
||||
"area120": "0.3.0",
|
||||
"artifactregistry": "1.3.0",
|
||||
"asset": "1.2.0",
|
||||
"assuredworkloads": "0.6.0",
|
||||
"automl": "1.3.0",
|
||||
"baremetalsolution": "0.1.0",
|
||||
"batch": "0.1.0",
|
||||
"billing": "1.2.0",
|
||||
"binaryauthorization": "0.6.0",
|
||||
"certificatemanager": "0.2.0",
|
||||
"channel": "1.6.0",
|
||||
"cloudbuild": "1.2.0",
|
||||
"clouddms": "1.2.0",
|
||||
"cloudtasks": "1.3.0",
|
||||
"compute": "1.7.0",
|
||||
"contactcenterinsights": "1.2.0",
|
||||
"container": "1.2.0",
|
||||
"containeranalysis": "0.3.0",
|
||||
"datacatalog": "1.3.0",
|
||||
"dataflow": "0.4.0",
|
||||
"datafusion": "1.3.0",
|
||||
"datalabeling": "0.3.0",
|
||||
"dataplex": "0.4.0",
|
||||
"dataproc": "1.5.0",
|
||||
"dataqna": "0.3.0",
|
||||
"datastream": "0.5.0",
|
||||
"deploy": "1.2.0",
|
||||
"dialogflow": "1.10.0",
|
||||
"dlp": "1.4.0",
|
||||
"documentai": "1.4.0",
|
||||
"domains": "0.4.0",
|
||||
"essentialcontacts": "1.2.0",
|
||||
"eventarc": "1.6.0",
|
||||
"filestore": "1.2.0",
|
||||
"functions": "1.4.0",
|
||||
"gaming": "1.2.0",
|
||||
"gkebackup": "0.1.0",
|
||||
"gkeconnect": "0.3.0",
|
||||
"gkehub": "0.7.0",
|
||||
"gkemulticloud": "0.2.0",
|
||||
"accessapproval": "1.6.0",
|
||||
"accesscontextmanager": "1.6.0",
|
||||
"aiplatform": "1.34.0",
|
||||
"analytics": "0.17.0",
|
||||
"apigateway": "1.5.0",
|
||||
"apigeeconnect": "1.5.0",
|
||||
"apigeeregistry": "0.3.0",
|
||||
"apikeys": "0.3.0",
|
||||
"appengine": "1.6.0",
|
||||
"area120": "0.7.0",
|
||||
"artifactregistry": "1.11.0",
|
||||
"asset": "1.11.1",
|
||||
"assuredworkloads": "1.10.0",
|
||||
"automl": "1.12.0",
|
||||
"baremetalsolution": "0.5.0",
|
||||
"batch": "0.7.0",
|
||||
"beyondcorp": "0.4.0",
|
||||
"billing": "1.12.0",
|
||||
"binaryauthorization": "1.5.0",
|
||||
"certificatemanager": "1.6.0",
|
||||
"channel": "1.11.0",
|
||||
"cloudbuild": "1.6.0",
|
||||
"clouddms": "1.5.0",
|
||||
"cloudtasks": "1.9.0",
|
||||
"compute": "1.18.0",
|
||||
"compute/metadata": "0.2.3",
|
||||
"contactcenterinsights": "1.6.0",
|
||||
"container": "1.13.1",
|
||||
"containeranalysis": "0.7.0",
|
||||
"datacatalog": "1.12.0",
|
||||
"dataflow": "0.8.0",
|
||||
"dataform": "0.6.0",
|
||||
"datafusion": "1.6.0",
|
||||
"datalabeling": "0.7.0",
|
||||
"dataplex": "1.5.2",
|
||||
"dataproc": "1.12.0",
|
||||
"dataqna": "0.7.0",
|
||||
"datastream": "1.6.0",
|
||||
"deploy": "1.6.0",
|
||||
"dialogflow": "1.27.0",
|
||||
"dlp": "1.9.0",
|
||||
"documentai": "1.15.0",
|
||||
"domains": "0.8.0",
|
||||
"edgecontainer": "0.3.0",
|
||||
"essentialcontacts": "1.5.0",
|
||||
"eventarc": "1.10.0",
|
||||
"filestore": "1.5.0",
|
||||
"functions": "1.10.0",
|
||||
"gaming": "1.9.0",
|
||||
"gkebackup": "0.4.0",
|
||||
"gkeconnect": "0.7.0",
|
||||
"gkehub": "0.11.0",
|
||||
"gkemulticloud": "0.5.0",
|
||||
"grafeas": "0.2.0",
|
||||
"gsuiteaddons": "1.2.0",
|
||||
"iam": "0.3.0",
|
||||
"iap": "1.3.0",
|
||||
"ids": "0.3.0",
|
||||
"iot": "1.2.0",
|
||||
"kms": "1.4.0",
|
||||
"language": "1.2.0",
|
||||
"lifesciences": "0.3.0",
|
||||
"managedidentities": "1.2.0",
|
||||
"mediatranslation": "0.3.0",
|
||||
"memcache": "1.2.0",
|
||||
"metastore": "1.2.0",
|
||||
"monitoring": "1.5.0",
|
||||
"networkconnectivity": "1.2.0",
|
||||
"networkmanagement": "1.2.0",
|
||||
"networksecurity": "0.3.0",
|
||||
"notebooks": "0.4.0",
|
||||
"optimization": "0.1.0",
|
||||
"orchestration": "1.2.0",
|
||||
"orgpolicy": "1.3.0",
|
||||
"osconfig": "1.5.0",
|
||||
"oslogin": "1.2.0",
|
||||
"phishingprotection": "0.3.0",
|
||||
"policytroubleshooter": "1.2.0",
|
||||
"privatecatalog": "0.3.0",
|
||||
"recaptchaenterprise/v2": "2.0.1",
|
||||
"recommendationengine": "0.2.0",
|
||||
"recommender": "1.3.0",
|
||||
"redis": "1.5.0",
|
||||
"resourcemanager": "1.2.0",
|
||||
"resourcesettings": "1.2.0",
|
||||
"retail": "1.4.0",
|
||||
"run": "0.1.1",
|
||||
"scheduler": "1.2.0",
|
||||
"secretmanager": "1.4.0",
|
||||
"security": "1.4.0",
|
||||
"securitycenter": "1.8.0",
|
||||
"servicecontrol": "1.3.0",
|
||||
"servicedirectory": "1.2.0",
|
||||
"servicemanagement": "1.3.0",
|
||||
"serviceusage": "1.2.0",
|
||||
"shell": "1.2.0",
|
||||
"speech": "1.4.0",
|
||||
"storagetransfer": "1.3.0",
|
||||
"talent": "0.8.0",
|
||||
"texttospeech": "1.3.0",
|
||||
"tpu": "1.2.0",
|
||||
"trace": "1.2.0",
|
||||
"translate": "1.2.0",
|
||||
"video": "1.6.0",
|
||||
"videointelligence": "1.2.0",
|
||||
"vision/v2": "2.0.0",
|
||||
"vmmigration": "0.3.0",
|
||||
"vpcaccess": "1.2.0",
|
||||
"webrisk": "1.2.0",
|
||||
"websecurityscanner": "1.2.0",
|
||||
"workflows": "1.4.0"
|
||||
"gsuiteaddons": "1.5.0",
|
||||
"iam": "0.10.0",
|
||||
"iap": "1.6.0",
|
||||
"ids": "1.3.0",
|
||||
"iot": "1.5.0",
|
||||
"kms": "1.8.0",
|
||||
"language": "1.9.0",
|
||||
"lifesciences": "0.8.0",
|
||||
"longrunning": "0.4.1",
|
||||
"managedidentities": "1.5.0",
|
||||
"maps": "0.6.0",
|
||||
"mediatranslation": "0.7.0",
|
||||
"memcache": "1.9.0",
|
||||
"metastore": "1.10.0",
|
||||
"monitoring": "1.12.0",
|
||||
"networkconnectivity": "1.10.0",
|
||||
"networkmanagement": "1.6.0",
|
||||
"networksecurity": "0.7.0",
|
||||
"notebooks": "1.7.0",
|
||||
"optimization": "1.3.1",
|
||||
"orchestration": "1.6.0",
|
||||
"orgpolicy": "1.10.0",
|
||||
"osconfig": "1.11.0",
|
||||
"oslogin": "1.9.0",
|
||||
"phishingprotection": "0.7.0",
|
||||
"policytroubleshooter": "1.5.0",
|
||||
"privatecatalog": "0.7.0",
|
||||
"recaptchaenterprise/v2": "2.6.0",
|
||||
"recommendationengine": "0.7.0",
|
||||
"recommender": "1.9.0",
|
||||
"redis": "1.11.0",
|
||||
"resourcemanager": "1.5.0",
|
||||
"resourcesettings": "1.5.0",
|
||||
"retail": "1.12.0",
|
||||
"run": "0.8.0",
|
||||
"scheduler": "1.8.0",
|
||||
"secretmanager": "1.10.0",
|
||||
"security": "1.12.0",
|
||||
"securitycenter": "1.18.1",
|
||||
"servicecontrol": "1.10.0",
|
||||
"servicedirectory": "1.8.0",
|
||||
"servicemanagement": "1.6.0",
|
||||
"serviceusage": "1.5.0",
|
||||
"shell": "1.6.0",
|
||||
"speech": "1.14.1",
|
||||
"storagetransfer": "1.7.0",
|
||||
"talent": "1.5.0",
|
||||
"texttospeech": "1.6.0",
|
||||
"tpu": "1.5.0",
|
||||
"trace": "1.8.0",
|
||||
"translate": "1.5.0",
|
||||
"video": "1.12.0",
|
||||
"videointelligence": "1.10.0",
|
||||
"vision/v2": "2.6.0",
|
||||
"vmmigration": "1.5.0",
|
||||
"vmwareengine": "0.2.2",
|
||||
"vpcaccess": "1.6.0",
|
||||
"webrisk": "1.8.0",
|
||||
"websecurityscanner": "1.5.0",
|
||||
"workflows": "1.10.0"
|
||||
}
|
||||
|
|
2
vendor/cloud.google.com/go/.release-please-manifest.json
generated
vendored
2
vendor/cloud.google.com/go/.release-please-manifest.json
generated
vendored
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
".": "0.102.1"
|
||||
".": "0.110.0"
|
||||
}
|
||||
|
|
62
vendor/cloud.google.com/go/CHANGES.md
generated
vendored
62
vendor/cloud.google.com/go/CHANGES.md
generated
vendored
|
@ -1,5 +1,67 @@
|
|||
# Changes
|
||||
|
||||
## [0.110.0](https://github.com/googleapis/google-cloud-go/compare/v0.109.0...v0.110.0) (2023-02-15)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **internal/postprocessor:** Detect and initialize new modules ([#7288](https://github.com/googleapis/google-cloud-go/issues/7288)) ([59ce02c](https://github.com/googleapis/google-cloud-go/commit/59ce02c13f265741a8f1f0f7ad5109bf83e3df82))
|
||||
* **internal/postprocessor:** Only regen snippets for changed modules ([#7300](https://github.com/googleapis/google-cloud-go/issues/7300)) ([220f8a5](https://github.com/googleapis/google-cloud-go/commit/220f8a5ad2fd64b75c5a1af531b1ab4597cf17d7))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **internal/postprocessor:** Add scopes without OwlBot api-name feature ([#7404](https://github.com/googleapis/google-cloud-go/issues/7404)) ([f7fe4f6](https://github.com/googleapis/google-cloud-go/commit/f7fe4f68ebf2ca28efd282f3419329dd2c09d245))
|
||||
* **internal/postprocessor:** Include module and package in scope ([#7294](https://github.com/googleapis/google-cloud-go/issues/7294)) ([d2c5c84](https://github.com/googleapis/google-cloud-go/commit/d2c5c8449f6939301f0fd506282e8fc73fc84f96))
|
||||
|
||||
## [0.109.0](https://github.com/googleapis/google-cloud-go/compare/v0.108.0...v0.109.0) (2023-01-18)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **internal/postprocessor:** Make OwlBot postprocessor ([#7202](https://github.com/googleapis/google-cloud-go/issues/7202)) ([7a1022e](https://github.com/googleapis/google-cloud-go/commit/7a1022e215261d679c8496cdd35a9cad1f13e527))
|
||||
|
||||
## [0.108.0](https://github.com/googleapis/google-cloud-go/compare/v0.107.0...v0.108.0) (2023-01-05)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **all:** Enable REGAPIC and REST numeric enums ([#6999](https://github.com/googleapis/google-cloud-go/issues/6999)) ([28f3572](https://github.com/googleapis/google-cloud-go/commit/28f3572addb0f563a2a42a76977b4e083191613f))
|
||||
* **debugger:** Add REST client ([06a54a1](https://github.com/googleapis/google-cloud-go/commit/06a54a16a5866cce966547c51e203b9e09a25bc0))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **internal/gapicgen:** Disable rest for non-rest APIs ([#7157](https://github.com/googleapis/google-cloud-go/issues/7157)) ([ab332ce](https://github.com/googleapis/google-cloud-go/commit/ab332ced06f6c07909444e4528c02a8b6a0a70a6))
|
||||
|
||||
## [0.107.0](https://github.com/googleapis/google-cloud-go/compare/v0.106.0...v0.107.0) (2022-11-15)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **routing:** Start generating apiv2 ([#7011](https://github.com/googleapis/google-cloud-go/issues/7011)) ([66e8e27](https://github.com/googleapis/google-cloud-go/commit/66e8e2717b2593f4e5640ecb97344bb1d5e5fc0b))
|
||||
|
||||
## [0.106.0](https://github.com/googleapis/google-cloud-go/compare/v0.105.0...v0.106.0) (2022-11-09)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **debugger:** rewrite signatures in terms of new location ([3c4b2b3](https://github.com/googleapis/google-cloud-go/commit/3c4b2b34565795537aac1661e6af2442437e34ad))
|
||||
|
||||
## [0.104.0](https://github.com/googleapis/google-cloud-go/compare/v0.103.0...v0.104.0) (2022-08-24)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **godocfx:** add friendlyAPIName ([#6447](https://github.com/googleapis/google-cloud-go/issues/6447)) ([c6d3ba4](https://github.com/googleapis/google-cloud-go/commit/c6d3ba401b7b3ae9b710a8850c6ec5d49c4c1490))
|
||||
|
||||
## [0.103.0](https://github.com/googleapis/google-cloud-go/compare/v0.102.1...v0.103.0) (2022-06-29)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **privateca:** temporarily remove REGAPIC support ([199b725](https://github.com/googleapis/google-cloud-go/commit/199b7250f474b1a6f53dcf0aac0c2966f4987b68))
|
||||
|
||||
## [0.102.1](https://github.com/googleapis/google-cloud-go/compare/v0.102.0...v0.102.1) (2022-06-17)
|
||||
|
||||
|
||||
|
|
4
vendor/cloud.google.com/go/README.md
generated
vendored
4
vendor/cloud.google.com/go/README.md
generated
vendored
|
@ -35,10 +35,10 @@ For an updated list of all of our released APIs please see our
|
|||
Our libraries are compatible with at least the three most recent, major Go
|
||||
releases. They are currently compatible with:
|
||||
|
||||
- Go 1.20
|
||||
- Go 1.19
|
||||
- Go 1.18
|
||||
- Go 1.17
|
||||
- Go 1.16
|
||||
- Go 1.15
|
||||
|
||||
## Authorization
|
||||
|
||||
|
|
18
vendor/cloud.google.com/go/compute/internal/version.go
generated
vendored
Normal file
18
vendor/cloud.google.com/go/compute/internal/version.go
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2022 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.
|
||||
|
||||
package internal
|
||||
|
||||
// Version is the current tagged release of the library.
|
||||
const Version = "1.18.0"
|
19
vendor/cloud.google.com/go/compute/metadata/CHANGES.md
generated
vendored
Normal file
19
vendor/cloud.google.com/go/compute/metadata/CHANGES.md
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Changes
|
||||
|
||||
## [0.2.3](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.2.2...compute/metadata/v0.2.3) (2022-12-15)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **compute/metadata:** Switch DNS lookup to an absolute lookup ([119b410](https://github.com/googleapis/google-cloud-go/commit/119b41060c7895e45e48aee5621ad35607c4d021)), refs [#7165](https://github.com/googleapis/google-cloud-go/issues/7165)
|
||||
|
||||
## [0.2.2](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.2.1...compute/metadata/v0.2.2) (2022-12-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **compute/metadata:** Set IdleConnTimeout for http.Client ([#7084](https://github.com/googleapis/google-cloud-go/issues/7084)) ([766516a](https://github.com/googleapis/google-cloud-go/commit/766516aaf3816bfb3159efeea65aa3d1d205a3e2)), refs [#5430](https://github.com/googleapis/google-cloud-go/issues/5430)
|
||||
|
||||
## [0.1.0] (2022-10-26)
|
||||
|
||||
Initial release of metadata being it's own module.
|
202
vendor/cloud.google.com/go/compute/metadata/LICENSE
generated
vendored
Normal file
202
vendor/cloud.google.com/go/compute/metadata/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
27
vendor/cloud.google.com/go/compute/metadata/README.md
generated
vendored
Normal file
27
vendor/cloud.google.com/go/compute/metadata/README.md
generated
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Compute API
|
||||
|
||||
[](https://pkg.go.dev/cloud.google.com/go/compute/metadata)
|
||||
|
||||
This is a utility library for communicating with Google Cloud metadata service
|
||||
on Google Cloud.
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
go get cloud.google.com/go/compute/metadata
|
||||
```
|
||||
|
||||
## Go Version Support
|
||||
|
||||
See the [Go Versions Supported](https://github.com/googleapis/google-cloud-go#go-versions-supported)
|
||||
section in the root directory's README.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome. Please, see the [CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md)
|
||||
document for details.
|
||||
|
||||
Please note that this project is released with a Contributor Code of Conduct.
|
||||
By participating in this project you agree to abide by its terms. See
|
||||
[Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct)
|
||||
for more information.
|
4
vendor/cloud.google.com/go/compute/metadata/metadata.go
generated
vendored
4
vendor/cloud.google.com/go/compute/metadata/metadata.go
generated
vendored
|
@ -70,7 +70,9 @@ func newDefaultHTTPClient() *http.Client {
|
|||
Timeout: 2 * time.Second,
|
||||
KeepAlive: 30 * time.Second,
|
||||
}).Dial,
|
||||
IdleConnTimeout: 60 * time.Second,
|
||||
},
|
||||
Timeout: 5 * time.Second,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -145,7 +147,7 @@ func testOnGCE() bool {
|
|||
|
||||
go func() {
|
||||
resolver := &net.Resolver{}
|
||||
addrs, err := resolver.LookupHost(ctx, "metadata.google.internal")
|
||||
addrs, err := resolver.LookupHost(ctx, "metadata.google.internal.")
|
||||
if err != nil || len(addrs) == 0 {
|
||||
resc <- false
|
||||
return
|
||||
|
|
23
vendor/cloud.google.com/go/compute/metadata/tidyfix.go
generated
vendored
Normal file
23
vendor/cloud.google.com/go/compute/metadata/tidyfix.go
generated
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2022 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.
|
||||
|
||||
// This file, and the {{.RootMod}} import, won't actually become part of
|
||||
// the resultant binary.
|
||||
//go:build modhack
|
||||
// +build modhack
|
||||
|
||||
package metadata
|
||||
|
||||
// Necessary for safely adding multi-module repo. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository
|
||||
import _ "cloud.google.com/go/compute/internal"
|
162
vendor/cloud.google.com/go/debug.md
generated
vendored
Normal file
162
vendor/cloud.google.com/go/debug.md
generated
vendored
Normal file
|
@ -0,0 +1,162 @@
|
|||
# Debugging tips and tricks
|
||||
|
||||
While working with the Go Client libraries you may run into some situations
|
||||
where you need a deeper level of understanding about what is going on in order
|
||||
to solve your problem. Here are some tips and tricks that you can use in these
|
||||
cases. *Note* that many of the tips in this document will have a performance
|
||||
impact and are therefore not recommended for sustained production use. Use these
|
||||
tips locally or in production for a *limited time* to help get a better
|
||||
understanding of what is going on.
|
||||
|
||||
## HTTP based clients
|
||||
|
||||
All of our auto-generated clients have a constructor to create a client that
|
||||
uses HTTP/JSON instead of gRPC. Additionally a couple of our hand-written
|
||||
clients like Storage and Bigquery are also HTTP based. Here are some tips for
|
||||
debugging these clients.
|
||||
|
||||
### Try setting Go's HTTP debug variable
|
||||
|
||||
Try setting the following environment variable for verbose Go HTTP logging:
|
||||
GODEBUG=http2debug=1. To read more about this feature please see the godoc for
|
||||
[net/http](https://pkg.go.dev/net/http).
|
||||
|
||||
*WARNING*: Enabling this debug variable will log headers and payloads which may
|
||||
contain private information.
|
||||
|
||||
### Add in your own logging with an HTTP middleware
|
||||
|
||||
You may want to add in your own logging around HTTP requests. One way to do this
|
||||
is to register a custom HTTP client with a logging transport built in. Here is
|
||||
an example of how you would do this with the storage client.
|
||||
|
||||
*WARNING*: Adding this middleware will log headers and payloads which may
|
||||
contain private information.
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"net/http/httputil"
|
||||
|
||||
"cloud.google.com/go/storage"
|
||||
"google.golang.org/api/iterator"
|
||||
"google.golang.org/api/option"
|
||||
htransport "google.golang.org/api/transport/http"
|
||||
)
|
||||
|
||||
type loggingRoundTripper struct {
|
||||
rt http.RoundTripper
|
||||
}
|
||||
|
||||
func (d loggingRoundTripper) RoundTrip(r *http.Request) (*http.Response, error) {
|
||||
// Will create a dump of the request and body.
|
||||
dump, err := httputil.DumpRequest(r, true)
|
||||
if err != nil {
|
||||
log.Println("error dumping request")
|
||||
}
|
||||
log.Printf("%s", dump)
|
||||
return d.rt.RoundTrip(r)
|
||||
}
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
|
||||
// Create a transport with authentication built-in detected with
|
||||
// [ADC](https://google.aip.dev/auth/4110). Note you will have to pass any
|
||||
// required scoped for the client you are using.
|
||||
trans, err := htransport.NewTransport(ctx,
|
||||
http.DefaultTransport,
|
||||
option.WithScopes(storage.ScopeFullControl),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// Embed customized transport into an HTTP client.
|
||||
hc := &http.Client{
|
||||
Transport: loggingRoundTripper{rt: trans},
|
||||
}
|
||||
|
||||
// Supply custom HTTP client for use by the library.
|
||||
client, err := storage.NewClient(ctx, option.WithHTTPClient(hc))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer client.Close()
|
||||
// Use the client
|
||||
}
|
||||
```
|
||||
|
||||
## gRPC based clients
|
||||
|
||||
### Try setting grpc-go's debug variables
|
||||
|
||||
Try setting the following environment variables for grpc-go:
|
||||
`GRPC_GO_LOG_VERBOSITY_LEVEL=99` `GRPC_GO_LOG_SEVERITY_LEVEL=info`. These are
|
||||
good for diagnosing connection level failures. For more information please see
|
||||
[grpc-go's debug documentation](https://pkg.go.dev/google.golang.org/grpc/examples/features/debugging#section-readme).
|
||||
|
||||
### Add in your own logging with a gRPC interceptors
|
||||
|
||||
You may want to add in your own logging around gRPC requests. One way to do this
|
||||
is to register a custom interceptor that adds logging. Here is
|
||||
an example of how you would do this with the secretmanager client. Note this
|
||||
example registers a UnaryClientInterceptor but you may want/need to register
|
||||
a StreamClientInterceptor instead-of/as-well depending on what kinds of
|
||||
RPCs you are calling.
|
||||
|
||||
*WARNING*: Adding this interceptor will log metadata and payloads which may
|
||||
contain private information.
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
|
||||
secretmanager "cloud.google.com/go/secretmanager/apiv1"
|
||||
"google.golang.org/api/option"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/protobuf/encoding/protojson"
|
||||
"google.golang.org/protobuf/reflect/protoreflect"
|
||||
)
|
||||
|
||||
func loggingUnaryInterceptor() grpc.UnaryClientInterceptor {
|
||||
return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
|
||||
err := invoker(ctx, method, req, reply, cc, opts...)
|
||||
log.Printf("Invoked method: %v", method)
|
||||
md, ok := metadata.FromOutgoingContext(ctx)
|
||||
if ok {
|
||||
log.Println("Metadata:")
|
||||
for k, v := range md {
|
||||
log.Printf("Key: %v, Value: %v", k, v)
|
||||
}
|
||||
}
|
||||
reqb, merr := protojson.Marshal(req.(protoreflect.ProtoMessage))
|
||||
if merr == nil {
|
||||
log.Printf("Request: %s", reqb)
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
// Supply custom gRPC interceptor for use by the client.
|
||||
client, err := secretmanager.NewClient(ctx,
|
||||
option.WithGRPCDialOption(grpc.WithUnaryInterceptor(loggingUnaryInterceptor())),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer client.Close()
|
||||
// Use the client
|
||||
}
|
||||
```
|
209
vendor/cloud.google.com/go/doc.go
generated
vendored
209
vendor/cloud.google.com/go/doc.go
generated
vendored
|
@ -17,14 +17,30 @@ Package cloud is the root of the packages used to access Google Cloud
|
|||
Services. See https://godoc.org/cloud.google.com/go for a full list
|
||||
of sub-packages.
|
||||
|
||||
|
||||
Client Options
|
||||
# Client Options
|
||||
|
||||
All clients in sub-packages are configurable via client options. These options are
|
||||
described here: https://godoc.org/google.golang.org/api/option.
|
||||
|
||||
## Endpoint Override
|
||||
|
||||
Authentication and Authorization
|
||||
Endpoint configuration is used to specify the URL to which requests are
|
||||
sent. It is used for services that support or require regional endpoints, as well
|
||||
as for other use cases such as [testing against fake
|
||||
servers](https://github.com/googleapis/google-cloud-go/blob/main/testing.md#testing-grpc-services-using-fakes).
|
||||
|
||||
For example, the Vertex AI service recommends that you configure the endpoint to the
|
||||
location with the features you want that is closest to your physical location or the
|
||||
location of your users. There is no global endpoint for Vertex AI. See
|
||||
[Vertex AI - Locations](https://cloud.google.com/vertex-ai/docs/general/locations)
|
||||
for more details. The following example demonstrates configuring a Vertex AI client
|
||||
with a regional endpoint:
|
||||
|
||||
ctx := context.Background()
|
||||
endpoint := "us-central1-aiplatform.googleapis.com:443"
|
||||
client, err := aiplatform.NewDatasetClient(ctx, option.WithEndpoint(endpoint))
|
||||
|
||||
# Authentication and Authorization
|
||||
|
||||
All the clients in sub-packages support authentication via Google Application Default
|
||||
Credentials (see https://cloud.google.com/docs/authentication/production), or
|
||||
|
@ -35,11 +51,12 @@ and authenticate clients. For information on how to create and obtain
|
|||
Application Default Credentials, see
|
||||
https://cloud.google.com/docs/authentication/production. Here is an example
|
||||
of a client using ADC to authenticate:
|
||||
client, err := secretmanager.NewClient(context.Background())
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
_ = client // Use the client.
|
||||
|
||||
client, err := secretmanager.NewClient(context.Background())
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
_ = client // Use the client.
|
||||
|
||||
You can use a file with credentials to authenticate and authorize, such as a JSON
|
||||
key file associated with a Google service account. Service Account keys can be
|
||||
|
@ -47,12 +64,13 @@ created and downloaded from
|
|||
https://console.cloud.google.com/iam-admin/serviceaccounts. This example uses
|
||||
the Secret Manger client, but the same steps apply to the other client libraries
|
||||
underneath this package. Example:
|
||||
client, err := secretmanager.NewClient(context.Background(),
|
||||
option.WithCredentialsFile("/path/to/service-account-key.json"))
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
_ = client // Use the client.
|
||||
|
||||
client, err := secretmanager.NewClient(context.Background(),
|
||||
option.WithCredentialsFile("/path/to/service-account-key.json"))
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
_ = client // Use the client.
|
||||
|
||||
In some cases (for instance, you don't want to store secrets on disk), you can
|
||||
create credentials from in-memory JSON and use the WithCredentials option.
|
||||
|
@ -62,19 +80,19 @@ the other client libraries underneath this package. Note that scopes can be
|
|||
found at https://developers.google.com/identity/protocols/oauth2/scopes, and
|
||||
are also provided in all auto-generated libraries: for example,
|
||||
cloud.google.com/go/secretmanager/apiv1 provides DefaultAuthScopes. Example:
|
||||
ctx := context.Background()
|
||||
creds, err := google.CredentialsFromJSON(ctx, []byte("JSON creds"), secretmanager.DefaultAuthScopes()...)
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
client, err := secretmanager.NewClient(ctx, option.WithCredentials(creds))
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
_ = client // Use the client.
|
||||
|
||||
ctx := context.Background()
|
||||
creds, err := google.CredentialsFromJSON(ctx, []byte("JSON creds"), secretmanager.DefaultAuthScopes()...)
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
client, err := secretmanager.NewClient(ctx, option.WithCredentials(creds))
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
_ = client // Use the client.
|
||||
|
||||
Timeouts and Cancellation
|
||||
# Timeouts and Cancellation
|
||||
|
||||
By default, non-streaming methods, like Create or Get, will have a default deadline applied to the
|
||||
context provided at call time, unless a context deadline is already set. Streaming
|
||||
|
@ -83,40 +101,42 @@ arrange for cancellation, use contexts. Transient
|
|||
errors will be retried when correctness allows.
|
||||
|
||||
Here is an example of how to set a timeout for an RPC, use context.WithTimeout:
|
||||
ctx := context.Background()
|
||||
// Do not set a timeout on the context passed to NewClient: dialing happens
|
||||
// asynchronously, and the context is used to refresh credentials in the
|
||||
// background.
|
||||
client, err := secretmanager.NewClient(ctx)
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
// Time out if it takes more than 10 seconds to create a dataset.
|
||||
tctx, cancel := context.WithTimeout(ctx, 10*time.Second)
|
||||
defer cancel() // Always call cancel.
|
||||
|
||||
req := &secretmanagerpb.DeleteSecretRequest{Name: "projects/project-id/secrets/name"}
|
||||
if err := client.DeleteSecret(tctx, req); err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
ctx := context.Background()
|
||||
// Do not set a timeout on the context passed to NewClient: dialing happens
|
||||
// asynchronously, and the context is used to refresh credentials in the
|
||||
// background.
|
||||
client, err := secretmanager.NewClient(ctx)
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
// Time out if it takes more than 10 seconds to create a dataset.
|
||||
tctx, cancel := context.WithTimeout(ctx, 10*time.Second)
|
||||
defer cancel() // Always call cancel.
|
||||
|
||||
req := &secretmanagerpb.DeleteSecretRequest{Name: "projects/project-id/secrets/name"}
|
||||
if err := client.DeleteSecret(tctx, req); err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
|
||||
Here is an example of how to arrange for an RPC to be canceled, use context.WithCancel:
|
||||
ctx := context.Background()
|
||||
// Do not cancel the context passed to NewClient: dialing happens asynchronously,
|
||||
// and the context is used to refresh credentials in the background.
|
||||
client, err := secretmanager.NewClient(ctx)
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
cctx, cancel := context.WithCancel(ctx)
|
||||
defer cancel() // Always call cancel.
|
||||
|
||||
// TODO: Make the cancel function available to whatever might want to cancel the
|
||||
// call--perhaps a GUI button.
|
||||
req := &secretmanagerpb.DeleteSecretRequest{Name: "projects/proj/secrets/name"}
|
||||
if err := client.DeleteSecret(cctx, req); err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
ctx := context.Background()
|
||||
// Do not cancel the context passed to NewClient: dialing happens asynchronously,
|
||||
// and the context is used to refresh credentials in the background.
|
||||
client, err := secretmanager.NewClient(ctx)
|
||||
if err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
cctx, cancel := context.WithCancel(ctx)
|
||||
defer cancel() // Always call cancel.
|
||||
|
||||
// TODO: Make the cancel function available to whatever might want to cancel the
|
||||
// call--perhaps a GUI button.
|
||||
req := &secretmanagerpb.DeleteSecretRequest{Name: "projects/proj/secrets/name"}
|
||||
if err := client.DeleteSecret(cctx, req); err != nil {
|
||||
// TODO: handle error.
|
||||
}
|
||||
|
||||
To opt out of default deadlines, set the temporary environment variable
|
||||
GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE to "true" prior to client
|
||||
|
@ -130,8 +150,7 @@ timeout on the context passed to NewClient. Dialing is non-blocking, so timeouts
|
|||
would be ineffective and would only interfere with credential refreshing, which uses
|
||||
the same context.
|
||||
|
||||
|
||||
Connection Pooling
|
||||
# Connection Pooling
|
||||
|
||||
Connection pooling differs in clients based on their transport. Cloud
|
||||
clients either rely on HTTP or gRPC transports to communicate
|
||||
|
@ -147,63 +166,65 @@ of cloud client libraries may specify option.WithGRPCConnectionPool(n) as a clie
|
|||
option to NewClient calls. This configures the underlying gRPC connections to be
|
||||
pooled and addressed in a round robin fashion.
|
||||
|
||||
|
||||
Using the Libraries with Docker
|
||||
# Using the Libraries with Docker
|
||||
|
||||
Minimal docker images like Alpine lack CA certificates. This causes RPCs to appear to
|
||||
hang, because gRPC retries indefinitely. See https://github.com/googleapis/google-cloud-go/issues/928
|
||||
for more information.
|
||||
|
||||
|
||||
Debugging
|
||||
# Debugging
|
||||
|
||||
To see gRPC logs, set the environment variable GRPC_GO_LOG_SEVERITY_LEVEL. See
|
||||
https://godoc.org/google.golang.org/grpc/grpclog for more information.
|
||||
|
||||
For HTTP logging, set the GODEBUG environment variable to "http2debug=1" or "http2debug=2".
|
||||
|
||||
|
||||
Inspecting errors
|
||||
# Inspecting errors
|
||||
|
||||
Most of the errors returned by the generated clients are wrapped in an
|
||||
`apierror.APIError` (https://pkg.go.dev/github.com/googleapis/gax-go/v2/apierror)
|
||||
and can be further unwrapped into a `grpc.Status` or `googleapi.Error` depending
|
||||
[github.com/googleapis/gax-go/v2/apierror.APIError] and can be further unwrapped
|
||||
into a [google.golang.org/grpc/status.Status] or
|
||||
[google.golang.org/api/googleapi.Error] depending
|
||||
on the transport used to make the call (gRPC or REST). Converting your errors to
|
||||
these types can be a useful way to get more information about what went wrong
|
||||
while debugging.
|
||||
|
||||
`apierror.APIError` gives access to specific details in the
|
||||
error. The transport-specific errors can still be unwrapped using the
|
||||
`apierror.APIError`.
|
||||
if err != nil {
|
||||
var ae *apierror.APIError
|
||||
if errors.As(err, &ae) {
|
||||
log.Println(ae.Reason())
|
||||
log.Println(ae.Details().Help.GetLinks())
|
||||
}
|
||||
}
|
||||
[github.com/googleapis/gax-go/v2/apierror.APIError] gives access to specific
|
||||
details in the error. The transport-specific errors can still be unwrapped using
|
||||
the [github.com/googleapis/gax-go/v2/apierror.APIError].
|
||||
|
||||
If the gRPC transport was used, the `grpc.Status` can still be parsed using the
|
||||
`status.FromError` function.
|
||||
if err != nil {
|
||||
if s, ok := status.FromError(err); ok {
|
||||
log.Println(s.Message())
|
||||
for _, d := range s.Proto().Details {
|
||||
log.Println(d)
|
||||
}
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
var ae *apierror.APIError
|
||||
if errors.As(err, &ae) {
|
||||
log.Println(ae.Reason())
|
||||
log.Println(ae.Details().Help.GetLinks())
|
||||
}
|
||||
}
|
||||
|
||||
If the REST transport was used, the `googleapi.Error` can be parsed in a similar
|
||||
way.
|
||||
if err != nil {
|
||||
var gerr *googleapi.Error
|
||||
if errors.As(err, &gerr) {
|
||||
log.Println(gerr.Message)
|
||||
}
|
||||
}
|
||||
If the gRPC transport was used, the [google.golang.org/grpc/status.Status] can
|
||||
still be parsed using the [google.golang.org/grpc/status.FromError] function.
|
||||
|
||||
Client Stability
|
||||
if err != nil {
|
||||
if s, ok := status.FromError(err); ok {
|
||||
log.Println(s.Message())
|
||||
for _, d := range s.Proto().Details {
|
||||
log.Println(d)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
If the REST transport was used, the [google.golang.org/api/googleapi.Error] can
|
||||
be parsed in a similar way, allowing access to details such as the HTTP response
|
||||
code.
|
||||
|
||||
if err != nil {
|
||||
var gerr *googleapi.Error
|
||||
if errors.As(err, &gerr) {
|
||||
log.Println(gerr.Message)
|
||||
}
|
||||
}
|
||||
|
||||
# Client Stability
|
||||
|
||||
Clients in this repository are considered alpha or beta unless otherwise
|
||||
marked as stable in the README.md. Semver is not used to communicate stability
|
||||
|
|
19
vendor/cloud.google.com/go/internal/version/update_version.sh
generated
vendored
19
vendor/cloud.google.com/go/internal/version/update_version.sh
generated
vendored
|
@ -1,19 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Copyright 2019 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.
|
||||
|
||||
today=$(date +%Y%m%d)
|
||||
|
||||
sed -i -r -e 's/const Repo = "([0-9]{8})"/const Repo = "'$today'"/' $GOFILE
|
||||
|
71
vendor/cloud.google.com/go/internal/version/version.go
generated
vendored
71
vendor/cloud.google.com/go/internal/version/version.go
generated
vendored
|
@ -1,71 +0,0 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
//go:generate ./update_version.sh
|
||||
|
||||
// Package version contains version information for Google Cloud Client
|
||||
// Libraries for Go, as reported in request headers.
|
||||
package version
|
||||
|
||||
import (
|
||||
"runtime"
|
||||
"strings"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
// Repo is the current version of the client libraries in this
|
||||
// repo. It should be a date in YYYYMMDD format.
|
||||
const Repo = "20201104"
|
||||
|
||||
// Go returns the Go runtime version. The returned string
|
||||
// has no whitespace.
|
||||
func Go() string {
|
||||
return goVersion
|
||||
}
|
||||
|
||||
var goVersion = goVer(runtime.Version())
|
||||
|
||||
const develPrefix = "devel +"
|
||||
|
||||
func goVer(s string) string {
|
||||
if strings.HasPrefix(s, develPrefix) {
|
||||
s = s[len(develPrefix):]
|
||||
if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
|
||||
s = s[:p]
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
if strings.HasPrefix(s, "go1") {
|
||||
s = s[2:]
|
||||
var prerelease string
|
||||
if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
|
||||
s, prerelease = s[:p], s[p:]
|
||||
}
|
||||
if strings.HasSuffix(s, ".") {
|
||||
s += "0"
|
||||
} else if strings.Count(s, ".") < 2 {
|
||||
s += ".0"
|
||||
}
|
||||
if prerelease != "" {
|
||||
s += "-" + prerelease
|
||||
}
|
||||
return s
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func notSemverRune(r rune) bool {
|
||||
return !strings.ContainsRune("0123456789.", r)
|
||||
}
|
49
vendor/cloud.google.com/go/logging/CHANGES.md
generated
vendored
49
vendor/cloud.google.com/go/logging/CHANGES.md
generated
vendored
|
@ -1,5 +1,54 @@
|
|||
# Changes
|
||||
|
||||
## [1.7.0](https://github.com/googleapis/google-cloud-go/compare/logging/v1.6.1...logging/v1.7.0) (2023-02-27)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **logging:** Add (*Logger). StandardLoggerFromTemplate() method. ([#7261](https://github.com/googleapis/google-cloud-go/issues/7261)) ([533ecbb](https://github.com/googleapis/google-cloud-go/commit/533ecbb19a2833e667ad139a6604fd40dfb43cdc))
|
||||
* **logging:** Add REST client ([06a54a1](https://github.com/googleapis/google-cloud-go/commit/06a54a16a5866cce966547c51e203b9e09a25bc0))
|
||||
* **logging:** Rewrite signatures and type in terms of new location ([620e6d8](https://github.com/googleapis/google-cloud-go/commit/620e6d828ad8641663ae351bfccfe46281e817ad))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **logging:** Correctly populate SourceLocation when logging via (*Logger).StandardLogger ([#7320](https://github.com/googleapis/google-cloud-go/issues/7320)) ([1a0bd13](https://github.com/googleapis/google-cloud-go/commit/1a0bd13b88569826f4ee6528e9cdb59fd26914fa))
|
||||
* **logging:** Fix typo in README.md ([#7297](https://github.com/googleapis/google-cloud-go/issues/7297)) ([82aa2ee](https://github.com/googleapis/google-cloud-go/commit/82aa2ee9381f793bd731f1b6789fc18e4b671bd7))
|
||||
|
||||
## [1.6.1](https://github.com/googleapis/google-cloud-go/compare/logging/v1.6.0...logging/v1.6.1) (2022-12-02)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **logging:** downgrade some dependencies ([7540152](https://github.com/googleapis/google-cloud-go/commit/754015236d5af7c82a75da218b71a87b9ead6eb5))
|
||||
|
||||
## [1.6.0](https://github.com/googleapis/google-cloud-go/compare/logging/v1.5.0...logging/v1.6.0) (2022-11-29)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **logging:** start generating proto stubs ([0eb700d](https://github.com/googleapis/google-cloud-go/commit/0eb700d17c4cac56f59038f0f3ae5a65257a3d38))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **logging:** Fix stdout log http request format ([#7083](https://github.com/googleapis/google-cloud-go/issues/7083)) ([2894e66](https://github.com/googleapis/google-cloud-go/commit/2894e66be7ff7536f725ede453d1834586a361bd))
|
||||
|
||||
## [1.5.0](https://github.com/googleapis/google-cloud-go/compare/logging/v1.4.2...logging/v1.5.0) (2022-06-25)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **logging:** add better version metadata to calls ([d1ad921](https://github.com/googleapis/google-cloud-go/commit/d1ad921d0322e7ce728ca9d255a3cf0437d26add))
|
||||
* **logging:** set versionClient to module version ([55f0d92](https://github.com/googleapis/google-cloud-go/commit/55f0d92bf112f14b024b4ab0076c9875a17423c9))
|
||||
* **logging:** support structured logging functionality ([#6029](https://github.com/googleapis/google-cloud-go/issues/6029)) ([56f4cdd](https://github.com/googleapis/google-cloud-go/commit/56f4cdd066cc9eaeece2c6fb466d58c3e7c41563))
|
||||
* **logging:** Update Logging API with latest changes ([5af548b](https://github.com/googleapis/google-cloud-go/commit/5af548bee4ffde279727b2e1ad9b072925106a74))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **logging:** remove instance_name resource label ([#5461](https://github.com/googleapis/google-cloud-go/issues/5461)) ([115385f](https://github.com/googleapis/google-cloud-go/commit/115385f066ee54cf35a093749bc2673a17b3fa08))
|
||||
|
||||
### [1.4.2](https://www.github.com/googleapis/google-cloud-go/compare/logging/v1.4.1...logging/v1.4.2) (2021-05-20)
|
||||
|
||||
|
||||
|
|
31
vendor/cloud.google.com/go/logging/README.md
generated
vendored
31
vendor/cloud.google.com/go/logging/README.md
generated
vendored
|
@ -3,8 +3,9 @@
|
|||
- [About Cloud Logging](https://cloud.google.com/logging/)
|
||||
- [API documentation](https://cloud.google.com/logging/docs)
|
||||
- [Go client documentation](https://pkg.go.dev/cloud.google.com/go/logging)
|
||||
- [Complete sample programs](https://github.com/GoogleCloudPlatform/golang-samples/tree/master/logging)
|
||||
- [Complete sample programs](https://github.com/GoogleCloudPlatform/golang-samples/tree/main/logging)
|
||||
|
||||
For an interactive tutorial on using the client library in a Go application, click [Guide Me](https://console.cloud.google.com/?walkthrough_id=logging__logging-go).
|
||||
### Example Usage
|
||||
|
||||
First create a `logging.Client` to use throughout your application:
|
||||
|
@ -27,12 +28,38 @@ logger := client.Logger("my-log")
|
|||
logger.Log(logging.Entry{Payload: "something happened!"})
|
||||
```
|
||||
|
||||
Close your client before your program exits, to flush any buffered log entries.
|
||||
If you need to write a critical log entry use synchronous ingestion method.
|
||||
[snip]:# (logging-3)
|
||||
|
||||
```go
|
||||
logger := client.Logger("my-log")
|
||||
logger.LogSync(context.Background(), logging.Entry{Payload: "something happened!"})
|
||||
```
|
||||
|
||||
Close your client before your program exits, to flush any buffered log entries.
|
||||
[snip]:# (logging-4)
|
||||
|
||||
```go
|
||||
err = client.Close()
|
||||
if err != nil {
|
||||
// TODO: Handle error.
|
||||
}
|
||||
```
|
||||
|
||||
### Logger configuration options
|
||||
|
||||
Creating a Logger using `logging.Logger` accept configuration [LoggerOption](loggeroption.go#L25) arguments. The following options are supported:
|
||||
|
||||
| Configuration option | Arguments | Description |
|
||||
| -------------------- | --------- | ----------- |
|
||||
| CommonLabels | `map[string]string` | The set of labels that will be ingested for all log entries ingested by Logger. |
|
||||
| ConcurrentWriteLimit | `int` | Number of parallel goroutine the Logger will use to ingest logs asynchronously. High number of routines may exhaust API quota. The default is 1. |
|
||||
| DelayThreshold | `time.Duration` | Maximum time a log entry is buffered on client before being ingested. The default is 1 second. |
|
||||
| EntryCountThreshold | `int` | Maximum number of log entries to be buffered on client before being ingested. The default is 1000. |
|
||||
| EntryByteThreshold | `int` | Maximum size in bytes of log entries to be buffered on client before being ingested. The default is 8MiB. |
|
||||
| EntryByteLimit | `int` | Maximum size in bytes of the single write call to ingest log entries. If EntryByteLimit is smaller than EntryByteThreshold, the latter has no effect. The default is zero, meaning there is no limit. |
|
||||
| BufferedByteLimit | `int` | Maximum number of bytes that the Logger will keep in memory before returning ErrOverflow. This option limits the total memory consumption of the Logger (but note that each Logger has its own, separate limit). It is possible to reach BufferedByteLimit even if it is larger than EntryByteThreshold or EntryByteLimit, because calls triggered by the latter two options may be enqueued (and hence occupying memory) while new log entries are being added. |
|
||||
| ContextFunc | `func() (ctx context.Context, afterCall func())` | Callback function to be called to obtain `context.Context` during async log ingestion. |
|
||||
| SourceLocationPopulation | One of `logging.DoNotPopulateSourceLocation`, `logging.PopulateSourceLocationForDebugEntries` or `logging.AlwaysPopulateSourceLocation` | Controls auto-population of the logging.Entry.SourceLocation field when ingesting log entries. Allows to disable population of source location info, allowing it only for log entries at Debug severity or enable it for all log entries. Enabling it for all entries may result in degradation in performance. Use `logging_test.BenchmarkSourceLocationPopulation` to test performance with and without the option. The default is set to `logging.DoNotPopulateSourceLocation`. |
|
||||
| PartialSuccess | | Make each write call to Logging service with [partialSuccess flag](https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/write#body.request_body.FIELDS.partial_success) set. The default is to make calls without setting the flag. |
|
||||
| RedirectAsJSON | `io.Writer` | Converts log entries to Jsonified one line string according to the [structured logging format](https://cloud.google.com/logging/docs/structured-logging#special-payload-fields) and writes it to provided `io.Writer`. Users should use this option with `os.Stdout` and `os.Stderr` to leverage the out-of-process ingestion of logs using logging agents that are deployed in Cloud Logging environments. |
|
||||
|
|
2
vendor/cloud.google.com/go/logging/apiv2/README.md
generated
vendored
2
vendor/cloud.google.com/go/logging/apiv2/README.md
generated
vendored
|
@ -6,6 +6,4 @@ This package includes auto-generated clients for the logging v2 API.
|
|||
Use the handwritten logging client (in the parent directory,
|
||||
cloud.google.com/go/logging) in preference to this.
|
||||
|
||||
This code is EXPERIMENTAL and subject to CHANGE AT ANY TIME.
|
||||
|
||||
|
||||
|
|
718
vendor/cloud.google.com/go/logging/apiv2/config_client.go
generated
vendored
718
vendor/cloud.google.com/go/logging/apiv2/config_client.go
generated
vendored
File diff suppressed because it is too large
Load diff
71
vendor/cloud.google.com/go/logging/apiv2/doc.go
generated
vendored
71
vendor/cloud.google.com/go/logging/apiv2/doc.go
generated
vendored
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2021 Google LLC
|
||||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
@ -17,21 +17,65 @@
|
|||
// Package logging is an auto-generated package for the
|
||||
// Cloud Logging API.
|
||||
//
|
||||
// Writes log entries and manages your Cloud Logging configuration. The table
|
||||
// entries below are presented in alphabetical order, not in order of common
|
||||
// use. For explanations of the concepts found in the table entries, read the
|
||||
// documentation at https://cloud.google.com/logging/docs.
|
||||
// Writes log entries and manages your Cloud Logging configuration.
|
||||
//
|
||||
// Use of Context
|
||||
// # General documentation
|
||||
//
|
||||
// For information about setting deadlines, reusing contexts, and more
|
||||
// please visit https://pkg.go.dev/cloud.google.com/go.
|
||||
//
|
||||
// # Example usage
|
||||
//
|
||||
// To get started with this package, create a client.
|
||||
//
|
||||
// ctx := context.Background()
|
||||
// // This snippet has been automatically generated and should be regarded as a code template only.
|
||||
// // It will require modifications to work:
|
||||
// // - It may require correct/in-range values for request initialization.
|
||||
// // - It may require specifying regional endpoints when creating the service client as shown in:
|
||||
// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
|
||||
// c, err := logging.NewClient(ctx)
|
||||
// if err != nil {
|
||||
// // TODO: Handle error.
|
||||
// }
|
||||
// defer c.Close()
|
||||
//
|
||||
// The client will use your default application credentials. Clients should be reused instead of created as needed.
|
||||
// The methods of Client are safe for concurrent use by multiple goroutines.
|
||||
// The returned client must be Closed when it is done being used.
|
||||
//
|
||||
// # Using the Client
|
||||
//
|
||||
// The following is an example of making an API call with the newly created client.
|
||||
//
|
||||
// ctx := context.Background()
|
||||
// // This snippet has been automatically generated and should be regarded as a code template only.
|
||||
// // It will require modifications to work:
|
||||
// // - It may require correct/in-range values for request initialization.
|
||||
// // - It may require specifying regional endpoints when creating the service client as shown in:
|
||||
// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
|
||||
// c, err := logging.NewClient(ctx)
|
||||
// if err != nil {
|
||||
// // TODO: Handle error.
|
||||
// }
|
||||
// defer c.Close()
|
||||
//
|
||||
// req := &loggingpb.DeleteLogRequest{
|
||||
// // TODO: Fill request struct fields.
|
||||
// // See https://pkg.go.dev/cloud.google.com/go/logging/apiv2/loggingpb#DeleteLogRequest.
|
||||
// }
|
||||
// err = c.DeleteLog(ctx, req)
|
||||
// if err != nil {
|
||||
// // TODO: Handle error.
|
||||
// }
|
||||
//
|
||||
// # Use of Context
|
||||
//
|
||||
// The ctx passed to NewClient is used for authentication requests and
|
||||
// for creating the underlying connection, but is not used for subsequent calls.
|
||||
// Individual methods on the client use the ctx given to them.
|
||||
//
|
||||
// To close the open connection, use the Close() method.
|
||||
//
|
||||
// For information about setting deadlines, reusing contexts, and more
|
||||
// please visit pkg.go.dev/cloud.google.com/go.
|
||||
package logging // import "cloud.google.com/go/logging/apiv2"
|
||||
|
||||
import (
|
||||
|
@ -51,7 +95,14 @@ import (
|
|||
type clientHookParams struct{}
|
||||
type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error)
|
||||
|
||||
const versionClient = "20210518"
|
||||
var versionClient string
|
||||
|
||||
func getVersionClient() string {
|
||||
if versionClient == "" {
|
||||
return "UNKNOWN"
|
||||
}
|
||||
return versionClient
|
||||
}
|
||||
|
||||
func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
|
||||
out, _ := metadata.FromOutgoingContext(ctx)
|
||||
|
|
193
vendor/cloud.google.com/go/logging/apiv2/gapic_metadata.json
generated
vendored
193
vendor/cloud.google.com/go/logging/apiv2/gapic_metadata.json
generated
vendored
|
@ -1,127 +1,142 @@
|
|||
{
|
||||
"schema": "1.0",
|
||||
"comment": "This file maps proto services/RPCs to the corresponding library clients/methods.",
|
||||
"language": "go",
|
||||
"protoPackage": "google.logging.v2",
|
||||
"libraryPackage": "cloud.google.com/go/logging/apiv2",
|
||||
"services": {
|
||||
"ConfigServiceV2": {
|
||||
"clients": {
|
||||
"grpc": {
|
||||
"libraryClient": "ConfigClient",
|
||||
"rpcs": {
|
||||
"CreateBucket": {
|
||||
"methods": [
|
||||
"schema": "1.0",
|
||||
"comment": "This file maps proto services/RPCs to the corresponding library clients/methods.",
|
||||
"language": "go",
|
||||
"protoPackage": "google.logging.v2",
|
||||
"libraryPackage": "cloud.google.com/go/logging/apiv2",
|
||||
"services": {
|
||||
"ConfigServiceV2": {
|
||||
"clients": {
|
||||
"grpc": {
|
||||
"libraryClient": "ConfigClient",
|
||||
"rpcs": {
|
||||
"CopyLogEntries": {
|
||||
"methods": [
|
||||
"CopyLogEntries"
|
||||
]
|
||||
},
|
||||
"CreateBucket": {
|
||||
"methods": [
|
||||
"CreateBucket"
|
||||
]
|
||||
},
|
||||
"CreateExclusion": {
|
||||
"methods": [
|
||||
"CreateExclusion": {
|
||||
"methods": [
|
||||
"CreateExclusion"
|
||||
]
|
||||
},
|
||||
"CreateSink": {
|
||||
"methods": [
|
||||
"CreateSink": {
|
||||
"methods": [
|
||||
"CreateSink"
|
||||
]
|
||||
},
|
||||
"CreateView": {
|
||||
"methods": [
|
||||
"CreateView": {
|
||||
"methods": [
|
||||
"CreateView"
|
||||
]
|
||||
},
|
||||
"DeleteBucket": {
|
||||
"methods": [
|
||||
"DeleteBucket": {
|
||||
"methods": [
|
||||
"DeleteBucket"
|
||||
]
|
||||
},
|
||||
"DeleteExclusion": {
|
||||
"methods": [
|
||||
"DeleteExclusion": {
|
||||
"methods": [
|
||||
"DeleteExclusion"
|
||||
]
|
||||
},
|
||||
"DeleteSink": {
|
||||
"methods": [
|
||||
"DeleteSink": {
|
||||
"methods": [
|
||||
"DeleteSink"
|
||||
]
|
||||
},
|
||||
"DeleteView": {
|
||||
"methods": [
|
||||
"DeleteView": {
|
||||
"methods": [
|
||||
"DeleteView"
|
||||
]
|
||||
},
|
||||
"GetBucket": {
|
||||
"methods": [
|
||||
"GetBucket": {
|
||||
"methods": [
|
||||
"GetBucket"
|
||||
]
|
||||
},
|
||||
"GetCmekSettings": {
|
||||
"methods": [
|
||||
"GetCmekSettings": {
|
||||
"methods": [
|
||||
"GetCmekSettings"
|
||||
]
|
||||
},
|
||||
"GetExclusion": {
|
||||
"methods": [
|
||||
"GetExclusion": {
|
||||
"methods": [
|
||||
"GetExclusion"
|
||||
]
|
||||
},
|
||||
"GetSink": {
|
||||
"methods": [
|
||||
"GetSettings": {
|
||||
"methods": [
|
||||
"GetSettings"
|
||||
]
|
||||
},
|
||||
"GetSink": {
|
||||
"methods": [
|
||||
"GetSink"
|
||||
]
|
||||
},
|
||||
"GetView": {
|
||||
"methods": [
|
||||
"GetView": {
|
||||
"methods": [
|
||||
"GetView"
|
||||
]
|
||||
},
|
||||
"ListBuckets": {
|
||||
"methods": [
|
||||
"ListBuckets": {
|
||||
"methods": [
|
||||
"ListBuckets"
|
||||
]
|
||||
},
|
||||
"ListExclusions": {
|
||||
"methods": [
|
||||
"ListExclusions": {
|
||||
"methods": [
|
||||
"ListExclusions"
|
||||
]
|
||||
},
|
||||
"ListSinks": {
|
||||
"methods": [
|
||||
"ListSinks": {
|
||||
"methods": [
|
||||
"ListSinks"
|
||||
]
|
||||
},
|
||||
"ListViews": {
|
||||
"methods": [
|
||||
"ListViews": {
|
||||
"methods": [
|
||||
"ListViews"
|
||||
]
|
||||
},
|
||||
"UndeleteBucket": {
|
||||
"methods": [
|
||||
"UndeleteBucket": {
|
||||
"methods": [
|
||||
"UndeleteBucket"
|
||||
]
|
||||
},
|
||||
"UpdateBucket": {
|
||||
"methods": [
|
||||
"UpdateBucket": {
|
||||
"methods": [
|
||||
"UpdateBucket"
|
||||
]
|
||||
},
|
||||
"UpdateCmekSettings": {
|
||||
"methods": [
|
||||
"UpdateCmekSettings": {
|
||||
"methods": [
|
||||
"UpdateCmekSettings"
|
||||
]
|
||||
},
|
||||
"UpdateExclusion": {
|
||||
"methods": [
|
||||
"UpdateExclusion": {
|
||||
"methods": [
|
||||
"UpdateExclusion"
|
||||
]
|
||||
},
|
||||
"UpdateSink": {
|
||||
"methods": [
|
||||
"UpdateSettings": {
|
||||
"methods": [
|
||||
"UpdateSettings"
|
||||
]
|
||||
},
|
||||
"UpdateSink": {
|
||||
"methods": [
|
||||
"UpdateSink"
|
||||
]
|
||||
},
|
||||
"UpdateView": {
|
||||
"methods": [
|
||||
"UpdateView": {
|
||||
"methods": [
|
||||
"UpdateView"
|
||||
]
|
||||
}
|
||||
|
@ -129,38 +144,38 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"LoggingServiceV2": {
|
||||
"clients": {
|
||||
"grpc": {
|
||||
"libraryClient": "Client",
|
||||
"rpcs": {
|
||||
"DeleteLog": {
|
||||
"methods": [
|
||||
"LoggingServiceV2": {
|
||||
"clients": {
|
||||
"grpc": {
|
||||
"libraryClient": "Client",
|
||||
"rpcs": {
|
||||
"DeleteLog": {
|
||||
"methods": [
|
||||
"DeleteLog"
|
||||
]
|
||||
},
|
||||
"ListLogEntries": {
|
||||
"methods": [
|
||||
"ListLogEntries": {
|
||||
"methods": [
|
||||
"ListLogEntries"
|
||||
]
|
||||
},
|
||||
"ListLogs": {
|
||||
"methods": [
|
||||
"ListLogs": {
|
||||
"methods": [
|
||||
"ListLogs"
|
||||
]
|
||||
},
|
||||
"ListMonitoredResourceDescriptors": {
|
||||
"methods": [
|
||||
"ListMonitoredResourceDescriptors": {
|
||||
"methods": [
|
||||
"ListMonitoredResourceDescriptors"
|
||||
]
|
||||
},
|
||||
"TailLogEntries": {
|
||||
"methods": [
|
||||
"TailLogEntries": {
|
||||
"methods": [
|
||||
"TailLogEntries"
|
||||
]
|
||||
},
|
||||
"WriteLogEntries": {
|
||||
"methods": [
|
||||
"WriteLogEntries": {
|
||||
"methods": [
|
||||
"WriteLogEntries"
|
||||
]
|
||||
}
|
||||
|
@ -168,33 +183,33 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"MetricsServiceV2": {
|
||||
"clients": {
|
||||
"grpc": {
|
||||
"libraryClient": "MetricsClient",
|
||||
"rpcs": {
|
||||
"CreateLogMetric": {
|
||||
"methods": [
|
||||
"MetricsServiceV2": {
|
||||
"clients": {
|
||||
"grpc": {
|
||||
"libraryClient": "MetricsClient",
|
||||
"rpcs": {
|
||||
"CreateLogMetric": {
|
||||
"methods": [
|
||||
"CreateLogMetric"
|
||||
]
|
||||
},
|
||||
"DeleteLogMetric": {
|
||||
"methods": [
|
||||
"DeleteLogMetric": {
|
||||
"methods": [
|
||||
"DeleteLogMetric"
|
||||
]
|
||||
},
|
||||
"GetLogMetric": {
|
||||
"methods": [
|
||||
"GetLogMetric": {
|
||||
"methods": [
|
||||
"GetLogMetric"
|
||||
]
|
||||
},
|
||||
"ListLogMetrics": {
|
||||
"methods": [
|
||||
"ListLogMetrics": {
|
||||
"methods": [
|
||||
"ListLogMetrics"
|
||||
]
|
||||
},
|
||||
"UpdateLogMetric": {
|
||||
"methods": [
|
||||
"UpdateLogMetric": {
|
||||
"methods": [
|
||||
"UpdateLogMetric"
|
||||
]
|
||||
}
|
||||
|
|
226
vendor/cloud.google.com/go/logging/apiv2/logging_client.go
generated
vendored
226
vendor/cloud.google.com/go/logging/apiv2/logging_client.go
generated
vendored
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2021 Google LLC
|
||||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
@ -23,17 +23,17 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
loggingpb "cloud.google.com/go/logging/apiv2/loggingpb"
|
||||
gax "github.com/googleapis/gax-go/v2"
|
||||
"google.golang.org/api/iterator"
|
||||
"google.golang.org/api/option"
|
||||
"google.golang.org/api/option/internaloption"
|
||||
gtransport "google.golang.org/api/transport/grpc"
|
||||
monitoredrespb "google.golang.org/genproto/googleapis/api/monitoredres"
|
||||
loggingpb "google.golang.org/genproto/googleapis/logging/v2"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
var newClientHook clientHook
|
||||
|
@ -48,13 +48,13 @@ type CallOptions struct {
|
|||
TailLogEntries []gax.CallOption
|
||||
}
|
||||
|
||||
func defaultClientOptions() []option.ClientOption {
|
||||
func defaultGRPCClientOptions() []option.ClientOption {
|
||||
return []option.ClientOption{
|
||||
internaloption.WithDefaultEndpoint("logging.googleapis.com:443"),
|
||||
internaloption.WithDefaultMTLSEndpoint("logging.mtls.googleapis.com:443"),
|
||||
internaloption.WithDefaultAudience("https://logging.googleapis.com/"),
|
||||
internaloption.WithDefaultScopes(DefaultAuthScopes()...),
|
||||
option.WithGRPCDialOption(grpc.WithDisableServiceConfig()),
|
||||
internaloption.EnableJwtWithScope(),
|
||||
option.WithGRPCDialOption(grpc.WithDefaultCallOptions(
|
||||
grpc.MaxCallRecvMsgSize(math.MaxInt32))),
|
||||
}
|
||||
|
@ -143,32 +143,124 @@ func defaultCallOptions() *CallOptions {
|
|||
}
|
||||
}
|
||||
|
||||
// internalClient is an interface that defines the methods available from Cloud Logging API.
|
||||
type internalClient interface {
|
||||
Close() error
|
||||
setGoogleClientInfo(...string)
|
||||
Connection() *grpc.ClientConn
|
||||
DeleteLog(context.Context, *loggingpb.DeleteLogRequest, ...gax.CallOption) error
|
||||
WriteLogEntries(context.Context, *loggingpb.WriteLogEntriesRequest, ...gax.CallOption) (*loggingpb.WriteLogEntriesResponse, error)
|
||||
ListLogEntries(context.Context, *loggingpb.ListLogEntriesRequest, ...gax.CallOption) *LogEntryIterator
|
||||
ListMonitoredResourceDescriptors(context.Context, *loggingpb.ListMonitoredResourceDescriptorsRequest, ...gax.CallOption) *MonitoredResourceDescriptorIterator
|
||||
ListLogs(context.Context, *loggingpb.ListLogsRequest, ...gax.CallOption) *StringIterator
|
||||
TailLogEntries(context.Context, ...gax.CallOption) (loggingpb.LoggingServiceV2_TailLogEntriesClient, error)
|
||||
}
|
||||
|
||||
// Client is a client for interacting with Cloud Logging API.
|
||||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||||
//
|
||||
// Service for ingesting and querying logs.
|
||||
type Client struct {
|
||||
// The internal transport-dependent client.
|
||||
internalClient internalClient
|
||||
|
||||
// The call options for this service.
|
||||
CallOptions *CallOptions
|
||||
}
|
||||
|
||||
// Wrapper methods routed to the internal client.
|
||||
|
||||
// Close closes the connection to the API service. The user should invoke this when
|
||||
// the client is no longer required.
|
||||
func (c *Client) Close() error {
|
||||
return c.internalClient.Close()
|
||||
}
|
||||
|
||||
// setGoogleClientInfo sets the name and version of the application in
|
||||
// the `x-goog-api-client` header passed on each request. Intended for
|
||||
// use by Google-written clients.
|
||||
func (c *Client) setGoogleClientInfo(keyval ...string) {
|
||||
c.internalClient.setGoogleClientInfo(keyval...)
|
||||
}
|
||||
|
||||
// Connection returns a connection to the API service.
|
||||
//
|
||||
// Deprecated: Connections are now pooled so this method does not always
|
||||
// return the same resource.
|
||||
func (c *Client) Connection() *grpc.ClientConn {
|
||||
return c.internalClient.Connection()
|
||||
}
|
||||
|
||||
// DeleteLog deletes all the log entries in a log for the _Default Log Bucket. The log
|
||||
// reappears if it receives new entries. Log entries written shortly before
|
||||
// the delete operation might not be deleted. Entries received after the
|
||||
// delete operation with a timestamp before the operation will be deleted.
|
||||
func (c *Client) DeleteLog(ctx context.Context, req *loggingpb.DeleteLogRequest, opts ...gax.CallOption) error {
|
||||
return c.internalClient.DeleteLog(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// WriteLogEntries writes log entries to Logging. This API method is the
|
||||
// only way to send log entries to Logging. This method
|
||||
// is used, directly or indirectly, by the Logging agent
|
||||
// (fluentd) and all logging libraries configured to use Logging.
|
||||
// A single request may contain log entries for a maximum of 1000
|
||||
// different resources (projects, organizations, billing accounts or
|
||||
// folders)
|
||||
func (c *Client) WriteLogEntries(ctx context.Context, req *loggingpb.WriteLogEntriesRequest, opts ...gax.CallOption) (*loggingpb.WriteLogEntriesResponse, error) {
|
||||
return c.internalClient.WriteLogEntries(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// ListLogEntries lists log entries. Use this method to retrieve log entries that originated
|
||||
// from a project/folder/organization/billing account. For ways to export log
|
||||
// entries, see Exporting
|
||||
// Logs (at https://cloud.google.com/logging/docs/export).
|
||||
func (c *Client) ListLogEntries(ctx context.Context, req *loggingpb.ListLogEntriesRequest, opts ...gax.CallOption) *LogEntryIterator {
|
||||
return c.internalClient.ListLogEntries(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// ListMonitoredResourceDescriptors lists the descriptors for monitored resource types used by Logging.
|
||||
func (c *Client) ListMonitoredResourceDescriptors(ctx context.Context, req *loggingpb.ListMonitoredResourceDescriptorsRequest, opts ...gax.CallOption) *MonitoredResourceDescriptorIterator {
|
||||
return c.internalClient.ListMonitoredResourceDescriptors(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// ListLogs lists the logs in projects, organizations, folders, or billing accounts.
|
||||
// Only logs that have entries are listed.
|
||||
func (c *Client) ListLogs(ctx context.Context, req *loggingpb.ListLogsRequest, opts ...gax.CallOption) *StringIterator {
|
||||
return c.internalClient.ListLogs(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// TailLogEntries streaming read of log entries as they are ingested. Until the stream is
|
||||
// terminated, it will continue reading logs.
|
||||
func (c *Client) TailLogEntries(ctx context.Context, opts ...gax.CallOption) (loggingpb.LoggingServiceV2_TailLogEntriesClient, error) {
|
||||
return c.internalClient.TailLogEntries(ctx, opts...)
|
||||
}
|
||||
|
||||
// gRPCClient is a client for interacting with Cloud Logging API over gRPC transport.
|
||||
//
|
||||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||||
type Client struct {
|
||||
type gRPCClient struct {
|
||||
// Connection pool of gRPC connections to the service.
|
||||
connPool gtransport.ConnPool
|
||||
|
||||
// flag to opt out of default deadlines via GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE
|
||||
disableDeadlines bool
|
||||
|
||||
// Points back to the CallOptions field of the containing Client
|
||||
CallOptions **CallOptions
|
||||
|
||||
// The gRPC API client.
|
||||
client loggingpb.LoggingServiceV2Client
|
||||
|
||||
// The call options for this service.
|
||||
CallOptions *CallOptions
|
||||
|
||||
// The x-goog-* metadata to be sent with each request.
|
||||
xGoogMetadata metadata.MD
|
||||
}
|
||||
|
||||
// NewClient creates a new logging service v2 client.
|
||||
// NewClient creates a new logging service v2 client based on gRPC.
|
||||
// The returned client must be Closed when it is done being used to clean up its underlying connections.
|
||||
//
|
||||
// Service for ingesting and querying logs.
|
||||
func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) {
|
||||
clientOpts := defaultClientOptions()
|
||||
|
||||
clientOpts := defaultGRPCClientOptions()
|
||||
if newClientHook != nil {
|
||||
hookOpts, err := newClientHook(ctx, clientHookParams{})
|
||||
if err != nil {
|
||||
|
@ -186,53 +278,54 @@ func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c := &Client{
|
||||
client := Client{CallOptions: defaultCallOptions()}
|
||||
|
||||
c := &gRPCClient{
|
||||
connPool: connPool,
|
||||
disableDeadlines: disableDeadlines,
|
||||
CallOptions: defaultCallOptions(),
|
||||
|
||||
client: loggingpb.NewLoggingServiceV2Client(connPool),
|
||||
client: loggingpb.NewLoggingServiceV2Client(connPool),
|
||||
CallOptions: &client.CallOptions,
|
||||
}
|
||||
c.setGoogleClientInfo()
|
||||
|
||||
return c, nil
|
||||
client.internalClient = c
|
||||
|
||||
return &client, nil
|
||||
}
|
||||
|
||||
// Connection returns a connection to the API service.
|
||||
//
|
||||
// Deprecated.
|
||||
func (c *Client) Connection() *grpc.ClientConn {
|
||||
// Deprecated: Connections are now pooled so this method does not always
|
||||
// return the same resource.
|
||||
func (c *gRPCClient) Connection() *grpc.ClientConn {
|
||||
return c.connPool.Conn()
|
||||
}
|
||||
|
||||
// Close closes the connection to the API service. The user should invoke this when
|
||||
// the client is no longer required.
|
||||
func (c *Client) Close() error {
|
||||
return c.connPool.Close()
|
||||
}
|
||||
|
||||
// setGoogleClientInfo sets the name and version of the application in
|
||||
// the `x-goog-api-client` header passed on each request. Intended for
|
||||
// use by Google-written clients.
|
||||
func (c *Client) setGoogleClientInfo(keyval ...string) {
|
||||
func (c *gRPCClient) setGoogleClientInfo(keyval ...string) {
|
||||
kv := append([]string{"gl-go", versionGo()}, keyval...)
|
||||
kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
|
||||
kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version)
|
||||
c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
|
||||
}
|
||||
|
||||
// DeleteLog deletes all the log entries in a log. The log reappears if it receives new
|
||||
// entries. Log entries written shortly before the delete operation might not
|
||||
// be deleted. Entries received after the delete operation with a timestamp
|
||||
// before the operation will be deleted.
|
||||
func (c *Client) DeleteLog(ctx context.Context, req *loggingpb.DeleteLogRequest, opts ...gax.CallOption) error {
|
||||
// Close closes the connection to the API service. The user should invoke this when
|
||||
// the client is no longer required.
|
||||
func (c *gRPCClient) Close() error {
|
||||
return c.connPool.Close()
|
||||
}
|
||||
|
||||
func (c *gRPCClient) DeleteLog(ctx context.Context, req *loggingpb.DeleteLogRequest, opts ...gax.CallOption) error {
|
||||
if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines {
|
||||
cctx, cancel := context.WithTimeout(ctx, 60000*time.Millisecond)
|
||||
defer cancel()
|
||||
ctx = cctx
|
||||
}
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "log_name", url.QueryEscape(req.GetLogName())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append(c.CallOptions.DeleteLog[0:len(c.CallOptions.DeleteLog):len(c.CallOptions.DeleteLog)], opts...)
|
||||
opts = append((*c.CallOptions).DeleteLog[0:len((*c.CallOptions).DeleteLog):len((*c.CallOptions).DeleteLog)], opts...)
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
_, err = c.client.DeleteLog(ctx, req, settings.GRPC...)
|
||||
|
@ -241,21 +334,14 @@ func (c *Client) DeleteLog(ctx context.Context, req *loggingpb.DeleteLogRequest,
|
|||
return err
|
||||
}
|
||||
|
||||
// WriteLogEntries writes log entries to Logging. This API method is the
|
||||
// only way to send log entries to Logging. This method
|
||||
// is used, directly or indirectly, by the Logging agent
|
||||
// (fluentd) and all logging libraries configured to use Logging.
|
||||
// A single request may contain log entries for a maximum of 1000
|
||||
// different resources (projects, organizations, billing accounts or
|
||||
// folders)
|
||||
func (c *Client) WriteLogEntries(ctx context.Context, req *loggingpb.WriteLogEntriesRequest, opts ...gax.CallOption) (*loggingpb.WriteLogEntriesResponse, error) {
|
||||
func (c *gRPCClient) WriteLogEntries(ctx context.Context, req *loggingpb.WriteLogEntriesRequest, opts ...gax.CallOption) (*loggingpb.WriteLogEntriesResponse, error) {
|
||||
if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines {
|
||||
cctx, cancel := context.WithTimeout(ctx, 60000*time.Millisecond)
|
||||
defer cancel()
|
||||
ctx = cctx
|
||||
}
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata)
|
||||
opts = append(c.CallOptions.WriteLogEntries[0:len(c.CallOptions.WriteLogEntries):len(c.CallOptions.WriteLogEntries)], opts...)
|
||||
opts = append((*c.CallOptions).WriteLogEntries[0:len((*c.CallOptions).WriteLogEntries):len((*c.CallOptions).WriteLogEntries)], opts...)
|
||||
var resp *loggingpb.WriteLogEntriesResponse
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
|
@ -268,21 +354,19 @@ func (c *Client) WriteLogEntries(ctx context.Context, req *loggingpb.WriteLogEnt
|
|||
return resp, nil
|
||||
}
|
||||
|
||||
// ListLogEntries lists log entries. Use this method to retrieve log entries that originated
|
||||
// from a project/folder/organization/billing account. For ways to export log
|
||||
// entries, see Exporting
|
||||
// Logs (at https://cloud.google.com/logging/docs/export).
|
||||
func (c *Client) ListLogEntries(ctx context.Context, req *loggingpb.ListLogEntriesRequest, opts ...gax.CallOption) *LogEntryIterator {
|
||||
func (c *gRPCClient) ListLogEntries(ctx context.Context, req *loggingpb.ListLogEntriesRequest, opts ...gax.CallOption) *LogEntryIterator {
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata)
|
||||
opts = append(c.CallOptions.ListLogEntries[0:len(c.CallOptions.ListLogEntries):len(c.CallOptions.ListLogEntries)], opts...)
|
||||
opts = append((*c.CallOptions).ListLogEntries[0:len((*c.CallOptions).ListLogEntries):len((*c.CallOptions).ListLogEntries)], opts...)
|
||||
it := &LogEntryIterator{}
|
||||
req = proto.Clone(req).(*loggingpb.ListLogEntriesRequest)
|
||||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogEntry, string, error) {
|
||||
var resp *loggingpb.ListLogEntriesResponse
|
||||
req.PageToken = pageToken
|
||||
resp := &loggingpb.ListLogEntriesResponse{}
|
||||
if pageToken != "" {
|
||||
req.PageToken = pageToken
|
||||
}
|
||||
if pageSize > math.MaxInt32 {
|
||||
req.PageSize = math.MaxInt32
|
||||
} else {
|
||||
} else if pageSize != 0 {
|
||||
req.PageSize = int32(pageSize)
|
||||
}
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
|
@ -305,24 +389,27 @@ func (c *Client) ListLogEntries(ctx context.Context, req *loggingpb.ListLogEntri
|
|||
it.items = append(it.items, items...)
|
||||
return nextPageToken, nil
|
||||
}
|
||||
|
||||
it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
|
||||
it.pageInfo.MaxSize = int(req.GetPageSize())
|
||||
it.pageInfo.Token = req.GetPageToken()
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
// ListMonitoredResourceDescriptors lists the descriptors for monitored resource types used by Logging.
|
||||
func (c *Client) ListMonitoredResourceDescriptors(ctx context.Context, req *loggingpb.ListMonitoredResourceDescriptorsRequest, opts ...gax.CallOption) *MonitoredResourceDescriptorIterator {
|
||||
func (c *gRPCClient) ListMonitoredResourceDescriptors(ctx context.Context, req *loggingpb.ListMonitoredResourceDescriptorsRequest, opts ...gax.CallOption) *MonitoredResourceDescriptorIterator {
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata)
|
||||
opts = append(c.CallOptions.ListMonitoredResourceDescriptors[0:len(c.CallOptions.ListMonitoredResourceDescriptors):len(c.CallOptions.ListMonitoredResourceDescriptors)], opts...)
|
||||
opts = append((*c.CallOptions).ListMonitoredResourceDescriptors[0:len((*c.CallOptions).ListMonitoredResourceDescriptors):len((*c.CallOptions).ListMonitoredResourceDescriptors)], opts...)
|
||||
it := &MonitoredResourceDescriptorIterator{}
|
||||
req = proto.Clone(req).(*loggingpb.ListMonitoredResourceDescriptorsRequest)
|
||||
it.InternalFetch = func(pageSize int, pageToken string) ([]*monitoredrespb.MonitoredResourceDescriptor, string, error) {
|
||||
var resp *loggingpb.ListMonitoredResourceDescriptorsResponse
|
||||
req.PageToken = pageToken
|
||||
resp := &loggingpb.ListMonitoredResourceDescriptorsResponse{}
|
||||
if pageToken != "" {
|
||||
req.PageToken = pageToken
|
||||
}
|
||||
if pageSize > math.MaxInt32 {
|
||||
req.PageSize = math.MaxInt32
|
||||
} else {
|
||||
} else if pageSize != 0 {
|
||||
req.PageSize = int32(pageSize)
|
||||
}
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
|
@ -345,26 +432,29 @@ func (c *Client) ListMonitoredResourceDescriptors(ctx context.Context, req *logg
|
|||
it.items = append(it.items, items...)
|
||||
return nextPageToken, nil
|
||||
}
|
||||
|
||||
it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
|
||||
it.pageInfo.MaxSize = int(req.GetPageSize())
|
||||
it.pageInfo.Token = req.GetPageToken()
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
// ListLogs lists the logs in projects, organizations, folders, or billing accounts.
|
||||
// Only logs that have entries are listed.
|
||||
func (c *Client) ListLogs(ctx context.Context, req *loggingpb.ListLogsRequest, opts ...gax.CallOption) *StringIterator {
|
||||
func (c *gRPCClient) ListLogs(ctx context.Context, req *loggingpb.ListLogsRequest, opts ...gax.CallOption) *StringIterator {
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append(c.CallOptions.ListLogs[0:len(c.CallOptions.ListLogs):len(c.CallOptions.ListLogs)], opts...)
|
||||
opts = append((*c.CallOptions).ListLogs[0:len((*c.CallOptions).ListLogs):len((*c.CallOptions).ListLogs)], opts...)
|
||||
it := &StringIterator{}
|
||||
req = proto.Clone(req).(*loggingpb.ListLogsRequest)
|
||||
it.InternalFetch = func(pageSize int, pageToken string) ([]string, string, error) {
|
||||
var resp *loggingpb.ListLogsResponse
|
||||
req.PageToken = pageToken
|
||||
resp := &loggingpb.ListLogsResponse{}
|
||||
if pageToken != "" {
|
||||
req.PageToken = pageToken
|
||||
}
|
||||
if pageSize > math.MaxInt32 {
|
||||
req.PageSize = math.MaxInt32
|
||||
} else {
|
||||
} else if pageSize != 0 {
|
||||
req.PageSize = int32(pageSize)
|
||||
}
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
|
@ -387,18 +477,18 @@ func (c *Client) ListLogs(ctx context.Context, req *loggingpb.ListLogsRequest, o
|
|||
it.items = append(it.items, items...)
|
||||
return nextPageToken, nil
|
||||
}
|
||||
|
||||
it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
|
||||
it.pageInfo.MaxSize = int(req.GetPageSize())
|
||||
it.pageInfo.Token = req.GetPageToken()
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
// TailLogEntries streaming read of log entries as they are ingested. Until the stream is
|
||||
// terminated, it will continue reading logs.
|
||||
func (c *Client) TailLogEntries(ctx context.Context, opts ...gax.CallOption) (loggingpb.LoggingServiceV2_TailLogEntriesClient, error) {
|
||||
func (c *gRPCClient) TailLogEntries(ctx context.Context, opts ...gax.CallOption) (loggingpb.LoggingServiceV2_TailLogEntriesClient, error) {
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata)
|
||||
opts = append(c.CallOptions.TailLogEntries[0:len(c.CallOptions.TailLogEntries):len(c.CallOptions.TailLogEntries)], opts...)
|
||||
var resp loggingpb.LoggingServiceV2_TailLogEntriesClient
|
||||
opts = append((*c.CallOptions).TailLogEntries[0:len((*c.CallOptions).TailLogEntries):len((*c.CallOptions).TailLogEntries)], opts...)
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
resp, err = c.client.TailLogEntries(ctx, settings.GRPC...)
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.12.2
|
||||
// protoc v3.21.9
|
||||
// source: google/logging/v2/log_entry.proto
|
||||
|
||||
package logging
|
||||
package loggingpb
|
||||
|
||||
import (
|
||||
reflect "reflect"
|
||||
|
@ -49,10 +49,10 @@ type LogEntry struct {
|
|||
|
||||
// Required. The resource name of the log to which this log entry belongs:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/logs/[LOG_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
|
||||
// "folders/[FOLDER_ID]/logs/[LOG_ID]"
|
||||
// "projects/[PROJECT_ID]/logs/[LOG_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
|
||||
// "folders/[FOLDER_ID]/logs/[LOG_ID]"
|
||||
//
|
||||
// A project number may be used in place of PROJECT_ID. The project number is
|
||||
// translated to its corresponding PROJECT_ID internally and the `log_name`
|
||||
|
@ -80,6 +80,7 @@ type LogEntry struct {
|
|||
// The log entry payload, which can be one of multiple types.
|
||||
//
|
||||
// Types that are assignable to Payload:
|
||||
//
|
||||
// *LogEntry_ProtoPayload
|
||||
// *LogEntry_TextPayload
|
||||
// *LogEntry_JsonPayload
|
||||
|
@ -328,8 +329,8 @@ type LogEntry_ProtoPayload struct {
|
|||
// The following protocol buffer types are supported; user-defined types
|
||||
// are not supported:
|
||||
//
|
||||
// "type.googleapis.com/google.cloud.audit.AuditLog"
|
||||
// "type.googleapis.com/google.appengine.logging.v1.RequestLog"
|
||||
// "type.googleapis.com/google.cloud.audit.AuditLog"
|
||||
// "type.googleapis.com/google.appengine.logging.v1.RequestLog"
|
||||
ProtoPayload *anypb.Any `protobuf:"bytes,2,opt,name=proto_payload,json=protoPayload,proto3,oneof"`
|
||||
}
|
||||
|
|
@ -15,10 +15,10 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.12.2
|
||||
// protoc v3.21.9
|
||||
// source: google/logging/v2/logging.proto
|
||||
|
||||
package logging
|
||||
package loggingpb
|
||||
|
||||
import (
|
||||
context "context"
|
||||
|
@ -178,8 +178,8 @@ type WriteLogEntriesRequest struct {
|
|||
//
|
||||
// `[LOG_ID]` must be URL-encoded. For example:
|
||||
//
|
||||
// "projects/my-project-id/logs/syslog"
|
||||
// "organizations/123/logs/cloudaudit.googleapis.com%2Factivity"
|
||||
// "projects/my-project-id/logs/syslog"
|
||||
// "organizations/123/logs/cloudaudit.googleapis.com%2Factivity"
|
||||
//
|
||||
// The permission `logging.logEntries.create` is needed on each project,
|
||||
// organization, billing account, or folder that is receiving new log
|
||||
|
@ -189,9 +189,9 @@ type WriteLogEntriesRequest struct {
|
|||
// Optional. A default monitored resource object that is assigned to all log
|
||||
// entries in `entries` that do not specify a value for `resource`. Example:
|
||||
//
|
||||
// { "type": "gce_instance",
|
||||
// "labels": {
|
||||
// "zone": "us-central1-a", "instance_id": "00000000000000000000" }}
|
||||
// { "type": "gce_instance",
|
||||
// "labels": {
|
||||
// "zone": "us-central1-a", "instance_id": "00000000000000000000" }}
|
||||
//
|
||||
// See [LogEntry][google.logging.v2.LogEntry].
|
||||
Resource *monitoredres.MonitoredResource `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`
|
||||
|
@ -420,10 +420,10 @@ type ListLogEntriesRequest struct {
|
|||
//
|
||||
// May alternatively be one or more views:
|
||||
//
|
||||
// * `projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// * `organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// * `folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
//
|
||||
// Projects listed in the `project_ids` field are added to this list.
|
||||
ResourceNames []string `protobuf:"bytes,8,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"`
|
||||
|
@ -737,10 +737,10 @@ type ListLogsRequest struct {
|
|||
PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
|
||||
// Optional. The resource name that owns the logs:
|
||||
//
|
||||
// * `projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// * `organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// * `folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
//
|
||||
// To support legacy queries, it could also be:
|
||||
//
|
||||
|
@ -888,10 +888,10 @@ type TailLogEntriesRequest struct {
|
|||
//
|
||||
// May alternatively be one or more views:
|
||||
//
|
||||
// * `projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// * `organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// * `folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
// - `folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]`
|
||||
ResourceNames []string `protobuf:"bytes,1,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"`
|
||||
// Optional. A filter that chooses which log entries to return. See [Advanced
|
||||
// Logs Filters](https://cloud.google.com/logging/docs/view/advanced_filters).
|
|
@ -15,10 +15,10 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.12.2
|
||||
// protoc v3.21.9
|
||||
// source: google/logging/v2/logging_config.proto
|
||||
|
||||
package logging
|
||||
package loggingpb
|
||||
|
||||
import (
|
||||
context "context"
|
||||
|
@ -235,7 +235,7 @@ type LogBucket struct {
|
|||
//
|
||||
// For example:
|
||||
//
|
||||
// `projects/my-project/locations/global/buckets/my-bucket`
|
||||
// `projects/my-project/locations/global/buckets/my-bucket`
|
||||
//
|
||||
// For a list of supported locations, see [Supported
|
||||
// Regions](https://cloud.google.com/logging/docs/region-support)
|
||||
|
@ -385,7 +385,7 @@ type LogView struct {
|
|||
//
|
||||
// For example:
|
||||
//
|
||||
// `projects/my-project/locations/global/buckets/my-bucket/views/my-view`
|
||||
// `projects/my-project/locations/global/buckets/my-bucket/views/my-view`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
// Describes this view.
|
||||
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
|
||||
|
@ -405,8 +405,8 @@ type LogView struct {
|
|||
//
|
||||
// For example:
|
||||
//
|
||||
// SOURCE("projects/myproject") AND resource.type = "gce_instance"
|
||||
// AND LOG_ID("stdout")
|
||||
// SOURCE("projects/myproject") AND resource.type = "gce_instance"
|
||||
// AND LOG_ID("stdout")
|
||||
Filter string `protobuf:"bytes,7,opt,name=filter,proto3" json:"filter,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -496,9 +496,9 @@ type LogSink struct {
|
|||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
// Required. The export destination:
|
||||
//
|
||||
// "storage.googleapis.com/[GCS_BUCKET]"
|
||||
// "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]"
|
||||
// "pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]"
|
||||
// "storage.googleapis.com/[GCS_BUCKET]"
|
||||
// "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]"
|
||||
// "pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]"
|
||||
//
|
||||
// The sink's `writer_identity`, set when the sink is created, must have
|
||||
// permission to write to the destination or else the log entries are not
|
||||
|
@ -513,7 +513,7 @@ type LogSink struct {
|
|||
//
|
||||
// For example:
|
||||
//
|
||||
// `logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR`
|
||||
// `logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity>=ERROR`
|
||||
Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
|
||||
// Optional. A description of this sink.
|
||||
//
|
||||
|
@ -564,12 +564,13 @@ type LogSink struct {
|
|||
// To only export entries from certain child projects, filter on the project
|
||||
// part of the log name:
|
||||
//
|
||||
// logName:("projects/test-project1/" OR "projects/test-project2/") AND
|
||||
// resource.type=gce_instance
|
||||
// logName:("projects/test-project1/" OR "projects/test-project2/") AND
|
||||
// resource.type=gce_instance
|
||||
IncludeChildren bool `protobuf:"varint,9,opt,name=include_children,json=includeChildren,proto3" json:"include_children,omitempty"`
|
||||
// Destination dependent options.
|
||||
//
|
||||
// Types that are assignable to Options:
|
||||
//
|
||||
// *LogSink_BigqueryOptions
|
||||
Options isLogSink_Options `protobuf_oneof:"options"`
|
||||
// Output only. The creation timestamp of the sink.
|
||||
|
@ -796,10 +797,10 @@ type ListBucketsRequest struct {
|
|||
|
||||
// Required. The parent resource whose buckets are to be listed:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]"
|
||||
//
|
||||
// Note: The locations portion of the resource must be specified, but
|
||||
// supplying the character `-` in place of [LOCATION_ID] will return all
|
||||
|
@ -937,11 +938,11 @@ type CreateBucketRequest struct {
|
|||
|
||||
// Required. The resource in which to create the log bucket:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global"`
|
||||
// `"projects/my-project/locations/global"`
|
||||
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
||||
// Required. A client-assigned identifier such as `"my-bucket"`. Identifiers are limited
|
||||
// to 100 characters and can include only letters, digits, underscores,
|
||||
|
@ -1014,14 +1015,14 @@ type UpdateBucketRequest struct {
|
|||
|
||||
// Required. The full resource name of the bucket to update.
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
// Required. The updated bucket.
|
||||
Bucket *LogBucket `protobuf:"bytes,2,opt,name=bucket,proto3" json:"bucket,omitempty"`
|
||||
|
@ -1097,14 +1098,14 @@ type GetBucketRequest struct {
|
|||
|
||||
// Required. The resource name of the bucket:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -1155,14 +1156,14 @@ type DeleteBucketRequest struct {
|
|||
|
||||
// Required. The full resource name of the bucket to delete.
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -1213,14 +1214,14 @@ type UndeleteBucketRequest struct {
|
|||
|
||||
// Required. The full resource name of the bucket to undelete.
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -1271,7 +1272,7 @@ type ListViewsRequest struct {
|
|||
|
||||
// Required. The bucket whose views are to be listed:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
|
||||
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
||||
// Optional. If present, then retrieve the next batch of results from the preceding call
|
||||
// to this method. `pageToken` must be the value of `nextPageToken` from the
|
||||
|
@ -1406,11 +1407,11 @@ type CreateViewRequest struct {
|
|||
|
||||
// Required. The bucket in which to create the view
|
||||
//
|
||||
// `"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"`
|
||||
// `"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"`
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket"`
|
||||
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
||||
// Required. The id to use for this view.
|
||||
ViewId string `protobuf:"bytes,2,opt,name=view_id,json=viewId,proto3" json:"view_id,omitempty"`
|
||||
|
@ -1479,11 +1480,11 @@ type UpdateViewRequest struct {
|
|||
|
||||
// Required. The full resource name of the view to update
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"`
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
// Required. The updated view.
|
||||
View *LogView `protobuf:"bytes,2,opt,name=view,proto3" json:"view,omitempty"`
|
||||
|
@ -1559,11 +1560,11 @@ type GetViewRequest struct {
|
|||
|
||||
// Required. The resource name of the policy:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"`
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -1614,11 +1615,11 @@ type DeleteViewRequest struct {
|
|||
|
||||
// Required. The full resource name of the view to delete:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"`
|
||||
// `"projects/my-project/locations/global/buckets/my-bucket/views/my-view"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -1669,10 +1670,10 @@ type ListSinksRequest struct {
|
|||
|
||||
// Required. The parent resource whose sinks are to be listed:
|
||||
//
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]"
|
||||
// "folders/[FOLDER_ID]"
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]"
|
||||
// "folders/[FOLDER_ID]"
|
||||
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
||||
// Optional. If present, then retrieve the next batch of results from the
|
||||
// preceding call to this method. `pageToken` must be the value of
|
||||
|
@ -1806,14 +1807,14 @@ type GetSinkRequest struct {
|
|||
|
||||
// Required. The resource name of the sink:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/sinks/[SINK_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
|
||||
// "folders/[FOLDER_ID]/sinks/[SINK_ID]"
|
||||
// "projects/[PROJECT_ID]/sinks/[SINK_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
|
||||
// "folders/[FOLDER_ID]/sinks/[SINK_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/sinks/my-sink"`
|
||||
// `"projects/my-project/sinks/my-sink"`
|
||||
SinkName string `protobuf:"bytes,1,opt,name=sink_name,json=sinkName,proto3" json:"sink_name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -1864,15 +1865,15 @@ type CreateSinkRequest struct {
|
|||
|
||||
// Required. The resource in which to create the sink:
|
||||
//
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]"
|
||||
// "folders/[FOLDER_ID]"
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]"
|
||||
// "folders/[FOLDER_ID]"
|
||||
//
|
||||
// For examples:
|
||||
//
|
||||
// `"projects/my-project"`
|
||||
// `"organizations/123456789"`
|
||||
// `"projects/my-project"`
|
||||
// `"organizations/123456789"`
|
||||
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
||||
// Required. The new sink, whose `name` parameter is a sink identifier that
|
||||
// is not already in use.
|
||||
|
@ -1953,14 +1954,14 @@ type UpdateSinkRequest struct {
|
|||
// Required. The full resource name of the sink to update, including the parent
|
||||
// resource and the sink identifier:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/sinks/[SINK_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
|
||||
// "folders/[FOLDER_ID]/sinks/[SINK_ID]"
|
||||
// "projects/[PROJECT_ID]/sinks/[SINK_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
|
||||
// "folders/[FOLDER_ID]/sinks/[SINK_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/sinks/my-sink"`
|
||||
// `"projects/my-project/sinks/my-sink"`
|
||||
SinkName string `protobuf:"bytes,1,opt,name=sink_name,json=sinkName,proto3" json:"sink_name,omitempty"`
|
||||
// Required. The updated sink, whose name is the same identifier that appears as part
|
||||
// of `sink_name`.
|
||||
|
@ -1970,11 +1971,11 @@ type UpdateSinkRequest struct {
|
|||
// field on the value of `writer_identity` in the updated sink depends on both
|
||||
// the old and new values of this field:
|
||||
//
|
||||
// + If the old and new values of this field are both false or both true,
|
||||
// - If the old and new values of this field are both false or both true,
|
||||
// then there is no change to the sink's `writer_identity`.
|
||||
// + If the old value is false and the new value is true, then
|
||||
// - If the old value is false and the new value is true, then
|
||||
// `writer_identity` is changed to a unique service account.
|
||||
// + It is an error if the old value is true and the new value is
|
||||
// - It is an error if the old value is true and the new value is
|
||||
// set to false or defaulted to false.
|
||||
UniqueWriterIdentity bool `protobuf:"varint,3,opt,name=unique_writer_identity,json=uniqueWriterIdentity,proto3" json:"unique_writer_identity,omitempty"`
|
||||
// Optional. Field mask that specifies the fields in `sink` that need
|
||||
|
@ -1984,7 +1985,7 @@ type UpdateSinkRequest struct {
|
|||
// An empty `updateMask` is temporarily treated as using the following mask
|
||||
// for backwards compatibility purposes:
|
||||
//
|
||||
// `destination,filter,includeChildren`
|
||||
// `destination,filter,includeChildren`
|
||||
//
|
||||
// At some point in the future, behavior will be removed and specifying an
|
||||
// empty `updateMask` will be an error.
|
||||
|
@ -2065,14 +2066,14 @@ type DeleteSinkRequest struct {
|
|||
// Required. The full resource name of the sink to delete, including the parent
|
||||
// resource and the sink identifier:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/sinks/[SINK_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
|
||||
// "folders/[FOLDER_ID]/sinks/[SINK_ID]"
|
||||
// "projects/[PROJECT_ID]/sinks/[SINK_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
|
||||
// "folders/[FOLDER_ID]/sinks/[SINK_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/sinks/my-sink"`
|
||||
// `"projects/my-project/sinks/my-sink"`
|
||||
SinkName string `protobuf:"bytes,1,opt,name=sink_name,json=sinkName,proto3" json:"sink_name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -2141,7 +2142,7 @@ type LogExclusion struct {
|
|||
// For example, the following query matches 99% of low-severity log entries
|
||||
// from Google Cloud Storage buckets:
|
||||
//
|
||||
// `resource.type=gcs_bucket severity<ERROR sample(insertId, 0.99)`
|
||||
// `resource.type=gcs_bucket severity<ERROR sample(insertId, 0.99)`
|
||||
Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"`
|
||||
// Optional. If set to True, then this exclusion is disabled and it does not
|
||||
// exclude any log entries. You can [update an
|
||||
|
@ -2240,10 +2241,10 @@ type ListExclusionsRequest struct {
|
|||
|
||||
// Required. The parent resource whose exclusions are to be listed.
|
||||
//
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]"
|
||||
// "folders/[FOLDER_ID]"
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]"
|
||||
// "folders/[FOLDER_ID]"
|
||||
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
||||
// Optional. If present, then retrieve the next batch of results from the
|
||||
// preceding call to this method. `pageToken` must be the value of
|
||||
|
@ -2377,14 +2378,14 @@ type GetExclusionRequest struct {
|
|||
|
||||
// Required. The resource name of an existing exclusion:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/exclusions/my-exclusion"`
|
||||
// `"projects/my-project/exclusions/my-exclusion"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -2435,15 +2436,15 @@ type CreateExclusionRequest struct {
|
|||
|
||||
// Required. The parent resource in which to create the exclusion:
|
||||
//
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]"
|
||||
// "folders/[FOLDER_ID]"
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]"
|
||||
// "folders/[FOLDER_ID]"
|
||||
//
|
||||
// For examples:
|
||||
//
|
||||
// `"projects/my-logging-project"`
|
||||
// `"organizations/123456789"`
|
||||
// `"projects/my-logging-project"`
|
||||
// `"organizations/123456789"`
|
||||
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
||||
// Required. The new exclusion, whose `name` parameter is an exclusion name
|
||||
// that is not already used in the parent resource.
|
||||
|
@ -2504,14 +2505,14 @@ type UpdateExclusionRequest struct {
|
|||
|
||||
// Required. The resource name of the exclusion to update:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/exclusions/my-exclusion"`
|
||||
// `"projects/my-project/exclusions/my-exclusion"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
// Required. New values for the existing exclusion. Only the fields specified in
|
||||
// `update_mask` are relevant.
|
||||
|
@ -2587,14 +2588,14 @@ type DeleteExclusionRequest struct {
|
|||
|
||||
// Required. The resource name of an existing exclusion to delete:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID]"
|
||||
// "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/exclusions/my-exclusion"`
|
||||
// `"projects/my-project/exclusions/my-exclusion"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -2650,14 +2651,14 @@ type GetCmekSettingsRequest struct {
|
|||
|
||||
// Required. The resource for which to retrieve CMEK settings.
|
||||
//
|
||||
// "projects/[PROJECT_ID]/cmekSettings"
|
||||
// "organizations/[ORGANIZATION_ID]/cmekSettings"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings"
|
||||
// "folders/[FOLDER_ID]/cmekSettings"
|
||||
// "projects/[PROJECT_ID]/cmekSettings"
|
||||
// "organizations/[ORGANIZATION_ID]/cmekSettings"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings"
|
||||
// "folders/[FOLDER_ID]/cmekSettings"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"organizations/12345/cmekSettings"`
|
||||
// `"organizations/12345/cmekSettings"`
|
||||
//
|
||||
// Note: CMEK for the Log Router can be configured for Google Cloud projects,
|
||||
// folders, organizations and billing accounts. Once configured for an
|
||||
|
@ -2718,14 +2719,14 @@ type UpdateCmekSettingsRequest struct {
|
|||
|
||||
// Required. The resource name for the CMEK settings to update.
|
||||
//
|
||||
// "projects/[PROJECT_ID]/cmekSettings"
|
||||
// "organizations/[ORGANIZATION_ID]/cmekSettings"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings"
|
||||
// "folders/[FOLDER_ID]/cmekSettings"
|
||||
// "projects/[PROJECT_ID]/cmekSettings"
|
||||
// "organizations/[ORGANIZATION_ID]/cmekSettings"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings"
|
||||
// "folders/[FOLDER_ID]/cmekSettings"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"organizations/12345/cmekSettings"`
|
||||
// `"organizations/12345/cmekSettings"`
|
||||
//
|
||||
// Note: CMEK for the Log Router can currently only be configured for Google
|
||||
// Cloud organizations. Once configured, it applies to all projects and
|
||||
|
@ -2821,13 +2822,11 @@ type CmekSettings struct {
|
|||
//
|
||||
// KMS key name format:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key"`
|
||||
//
|
||||
//
|
||||
// `"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key"`
|
||||
//
|
||||
// To enable CMEK for the Log Router, set this field to a valid
|
||||
// `kms_key_name` for which the associated service account has the required
|
||||
|
@ -2927,14 +2926,14 @@ type GetSettingsRequest struct {
|
|||
|
||||
// Required. The resource for which to retrieve settings.
|
||||
//
|
||||
// "projects/[PROJECT_ID]/settings"
|
||||
// "organizations/[ORGANIZATION_ID]/settings"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/settings"
|
||||
// "folders/[FOLDER_ID]/settings"
|
||||
// "projects/[PROJECT_ID]/settings"
|
||||
// "organizations/[ORGANIZATION_ID]/settings"
|
||||
// "billingAccounts/[BILLING_ACCOUNT_ID]/settings"
|
||||
// "folders/[FOLDER_ID]/settings"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"organizations/12345/settings"`
|
||||
// `"organizations/12345/settings"`
|
||||
//
|
||||
// Note: Settings for the Log Router can be get for Google Cloud projects,
|
||||
// folders, organizations and billing accounts. Currently it can only be
|
||||
|
@ -2995,11 +2994,11 @@ type UpdateSettingsRequest struct {
|
|||
|
||||
// Required. The resource name for the settings to update.
|
||||
//
|
||||
// "organizations/[ORGANIZATION_ID]/settings"
|
||||
// "organizations/[ORGANIZATION_ID]/settings"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"organizations/12345/settings"`
|
||||
// `"organizations/12345/settings"`
|
||||
//
|
||||
// Note: Settings for the Log Router can currently only be configured for
|
||||
// Google Cloud organizations. Once configured, it applies to all projects and
|
||||
|
@ -3087,13 +3086,11 @@ type Settings struct {
|
|||
//
|
||||
// KMS key name format:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
|
||||
// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key"`
|
||||
//
|
||||
//
|
||||
// `"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key"`
|
||||
//
|
||||
// To enable CMEK for the Log Router, set this field to a valid
|
||||
// `kms_key_name` for which the associated service account has the required
|
||||
|
@ -3212,7 +3209,7 @@ type CopyLogEntriesRequest struct {
|
|||
//
|
||||
// For example:
|
||||
//
|
||||
// `"projects/my-project/locations/global/buckets/my-source-bucket"`
|
||||
// `"projects/my-project/locations/global/buckets/my-source-bucket"`
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
// Optional. A filter specifying which log entries to copy. The filter must be no more
|
||||
// than 20k characters. An empty filter matches all log entries.
|
|
@ -15,10 +15,10 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.12.2
|
||||
// protoc v3.21.9
|
||||
// source: google/logging/v2/logging_metrics.proto
|
||||
|
||||
package logging
|
||||
package loggingpb
|
||||
|
||||
import (
|
||||
context "context"
|
||||
|
@ -126,7 +126,7 @@ type LogMetric struct {
|
|||
// filter](https://cloud.google.com/logging/docs/view/advanced_filters) which
|
||||
// is used to match log entries. Example:
|
||||
//
|
||||
// "resource.type=gae_app AND severity>=ERROR"
|
||||
// "resource.type=gae_app AND severity>=ERROR"
|
||||
//
|
||||
// The maximum length of the filter is 20000 characters.
|
||||
Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"`
|
||||
|
@ -159,14 +159,14 @@ type LogMetric struct {
|
|||
// logs-based metric to extract the values to record from a log entry.
|
||||
// Two functions are supported for value extraction: `EXTRACT(field)` or
|
||||
// `REGEXP_EXTRACT(field, regex)`. The argument are:
|
||||
// 1. field: The name of the log entry field from which the value is to be
|
||||
// extracted.
|
||||
// 2. regex: A regular expression using the Google RE2 syntax
|
||||
// (https://github.com/google/re2/wiki/Syntax) with a single capture
|
||||
// group to extract data from the specified log entry field. The value
|
||||
// of the field is converted to a string before applying the regex.
|
||||
// It is an error to specify a regex that does not include exactly one
|
||||
// capture group.
|
||||
// 1. field: The name of the log entry field from which the value is to be
|
||||
// extracted.
|
||||
// 2. regex: A regular expression using the Google RE2 syntax
|
||||
// (https://github.com/google/re2/wiki/Syntax) with a single capture
|
||||
// group to extract data from the specified log entry field. The value
|
||||
// of the field is converted to a string before applying the regex.
|
||||
// It is an error to specify a regex that does not include exactly one
|
||||
// capture group.
|
||||
//
|
||||
// The result of the extraction must be convertible to a double type, as the
|
||||
// distribution always records double values. If either the extraction or
|
||||
|
@ -327,7 +327,7 @@ type ListLogMetricsRequest struct {
|
|||
|
||||
// Required. The name of the project containing the metrics:
|
||||
//
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "projects/[PROJECT_ID]"
|
||||
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
||||
// Optional. If present, then retrieve the next batch of results from the
|
||||
// preceding call to this method. `pageToken` must be the value of
|
||||
|
@ -461,7 +461,7 @@ type GetLogMetricRequest struct {
|
|||
|
||||
// Required. The resource name of the desired metric:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
|
||||
// "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
|
||||
MetricName string `protobuf:"bytes,1,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -512,7 +512,7 @@ type CreateLogMetricRequest struct {
|
|||
|
||||
// Required. The resource name of the project in which to create the metric:
|
||||
//
|
||||
// "projects/[PROJECT_ID]"
|
||||
// "projects/[PROJECT_ID]"
|
||||
//
|
||||
// The new metric must be provided in the request.
|
||||
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
||||
|
@ -575,7 +575,7 @@ type UpdateLogMetricRequest struct {
|
|||
|
||||
// Required. The resource name of the metric to update:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
|
||||
// "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
|
||||
//
|
||||
// The updated metric must be provided in the request and it's
|
||||
// `name` field must be the same as `[METRIC_ID]` If the metric
|
||||
|
@ -639,7 +639,7 @@ type DeleteLogMetricRequest struct {
|
|||
|
||||
// Required. The resource name of the metric to delete:
|
||||
//
|
||||
// "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
|
||||
// "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
|
||||
MetricName string `protobuf:"bytes,1,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"`
|
||||
}
|
||||
|
170
vendor/cloud.google.com/go/logging/apiv2/metrics_client.go
generated
vendored
170
vendor/cloud.google.com/go/logging/apiv2/metrics_client.go
generated
vendored
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2021 Google LLC
|
||||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
@ -23,16 +23,16 @@ import (
|
|||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
loggingpb "cloud.google.com/go/logging/apiv2/loggingpb"
|
||||
gax "github.com/googleapis/gax-go/v2"
|
||||
"google.golang.org/api/iterator"
|
||||
"google.golang.org/api/option"
|
||||
"google.golang.org/api/option/internaloption"
|
||||
gtransport "google.golang.org/api/transport/grpc"
|
||||
loggingpb "google.golang.org/genproto/googleapis/logging/v2"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
var newMetricsClientHook clientHook
|
||||
|
@ -46,13 +46,13 @@ type MetricsCallOptions struct {
|
|||
DeleteLogMetric []gax.CallOption
|
||||
}
|
||||
|
||||
func defaultMetricsClientOptions() []option.ClientOption {
|
||||
func defaultMetricsGRPCClientOptions() []option.ClientOption {
|
||||
return []option.ClientOption{
|
||||
internaloption.WithDefaultEndpoint("logging.googleapis.com:443"),
|
||||
internaloption.WithDefaultMTLSEndpoint("logging.mtls.googleapis.com:443"),
|
||||
internaloption.WithDefaultAudience("https://logging.googleapis.com/"),
|
||||
internaloption.WithDefaultScopes(DefaultAuthScopes()...),
|
||||
option.WithGRPCDialOption(grpc.WithDisableServiceConfig()),
|
||||
internaloption.EnableJwtWithScope(),
|
||||
option.WithGRPCDialOption(grpc.WithDefaultCallOptions(
|
||||
grpc.MaxCallRecvMsgSize(math.MaxInt32))),
|
||||
}
|
||||
|
@ -116,32 +116,104 @@ func defaultMetricsCallOptions() *MetricsCallOptions {
|
|||
}
|
||||
}
|
||||
|
||||
// internalMetricsClient is an interface that defines the methods available from Cloud Logging API.
|
||||
type internalMetricsClient interface {
|
||||
Close() error
|
||||
setGoogleClientInfo(...string)
|
||||
Connection() *grpc.ClientConn
|
||||
ListLogMetrics(context.Context, *loggingpb.ListLogMetricsRequest, ...gax.CallOption) *LogMetricIterator
|
||||
GetLogMetric(context.Context, *loggingpb.GetLogMetricRequest, ...gax.CallOption) (*loggingpb.LogMetric, error)
|
||||
CreateLogMetric(context.Context, *loggingpb.CreateLogMetricRequest, ...gax.CallOption) (*loggingpb.LogMetric, error)
|
||||
UpdateLogMetric(context.Context, *loggingpb.UpdateLogMetricRequest, ...gax.CallOption) (*loggingpb.LogMetric, error)
|
||||
DeleteLogMetric(context.Context, *loggingpb.DeleteLogMetricRequest, ...gax.CallOption) error
|
||||
}
|
||||
|
||||
// MetricsClient is a client for interacting with Cloud Logging API.
|
||||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||||
//
|
||||
// Service for configuring logs-based metrics.
|
||||
type MetricsClient struct {
|
||||
// The internal transport-dependent client.
|
||||
internalClient internalMetricsClient
|
||||
|
||||
// The call options for this service.
|
||||
CallOptions *MetricsCallOptions
|
||||
}
|
||||
|
||||
// Wrapper methods routed to the internal client.
|
||||
|
||||
// Close closes the connection to the API service. The user should invoke this when
|
||||
// the client is no longer required.
|
||||
func (c *MetricsClient) Close() error {
|
||||
return c.internalClient.Close()
|
||||
}
|
||||
|
||||
// setGoogleClientInfo sets the name and version of the application in
|
||||
// the `x-goog-api-client` header passed on each request. Intended for
|
||||
// use by Google-written clients.
|
||||
func (c *MetricsClient) setGoogleClientInfo(keyval ...string) {
|
||||
c.internalClient.setGoogleClientInfo(keyval...)
|
||||
}
|
||||
|
||||
// Connection returns a connection to the API service.
|
||||
//
|
||||
// Deprecated: Connections are now pooled so this method does not always
|
||||
// return the same resource.
|
||||
func (c *MetricsClient) Connection() *grpc.ClientConn {
|
||||
return c.internalClient.Connection()
|
||||
}
|
||||
|
||||
// ListLogMetrics lists logs-based metrics.
|
||||
func (c *MetricsClient) ListLogMetrics(ctx context.Context, req *loggingpb.ListLogMetricsRequest, opts ...gax.CallOption) *LogMetricIterator {
|
||||
return c.internalClient.ListLogMetrics(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// GetLogMetric gets a logs-based metric.
|
||||
func (c *MetricsClient) GetLogMetric(ctx context.Context, req *loggingpb.GetLogMetricRequest, opts ...gax.CallOption) (*loggingpb.LogMetric, error) {
|
||||
return c.internalClient.GetLogMetric(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// CreateLogMetric creates a logs-based metric.
|
||||
func (c *MetricsClient) CreateLogMetric(ctx context.Context, req *loggingpb.CreateLogMetricRequest, opts ...gax.CallOption) (*loggingpb.LogMetric, error) {
|
||||
return c.internalClient.CreateLogMetric(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// UpdateLogMetric creates or updates a logs-based metric.
|
||||
func (c *MetricsClient) UpdateLogMetric(ctx context.Context, req *loggingpb.UpdateLogMetricRequest, opts ...gax.CallOption) (*loggingpb.LogMetric, error) {
|
||||
return c.internalClient.UpdateLogMetric(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// DeleteLogMetric deletes a logs-based metric.
|
||||
func (c *MetricsClient) DeleteLogMetric(ctx context.Context, req *loggingpb.DeleteLogMetricRequest, opts ...gax.CallOption) error {
|
||||
return c.internalClient.DeleteLogMetric(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// metricsGRPCClient is a client for interacting with Cloud Logging API over gRPC transport.
|
||||
//
|
||||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||||
type MetricsClient struct {
|
||||
type metricsGRPCClient struct {
|
||||
// Connection pool of gRPC connections to the service.
|
||||
connPool gtransport.ConnPool
|
||||
|
||||
// flag to opt out of default deadlines via GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE
|
||||
disableDeadlines bool
|
||||
|
||||
// Points back to the CallOptions field of the containing MetricsClient
|
||||
CallOptions **MetricsCallOptions
|
||||
|
||||
// The gRPC API client.
|
||||
metricsClient loggingpb.MetricsServiceV2Client
|
||||
|
||||
// The call options for this service.
|
||||
CallOptions *MetricsCallOptions
|
||||
|
||||
// The x-goog-* metadata to be sent with each request.
|
||||
xGoogMetadata metadata.MD
|
||||
}
|
||||
|
||||
// NewMetricsClient creates a new metrics service v2 client.
|
||||
// NewMetricsClient creates a new metrics service v2 client based on gRPC.
|
||||
// The returned client must be Closed when it is done being used to clean up its underlying connections.
|
||||
//
|
||||
// Service for configuring logs-based metrics.
|
||||
func NewMetricsClient(ctx context.Context, opts ...option.ClientOption) (*MetricsClient, error) {
|
||||
clientOpts := defaultMetricsClientOptions()
|
||||
|
||||
clientOpts := defaultMetricsGRPCClientOptions()
|
||||
if newMetricsClientHook != nil {
|
||||
hookOpts, err := newMetricsClientHook(ctx, clientHookParams{})
|
||||
if err != nil {
|
||||
|
@ -159,53 +231,59 @@ func NewMetricsClient(ctx context.Context, opts ...option.ClientOption) (*Metric
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c := &MetricsClient{
|
||||
client := MetricsClient{CallOptions: defaultMetricsCallOptions()}
|
||||
|
||||
c := &metricsGRPCClient{
|
||||
connPool: connPool,
|
||||
disableDeadlines: disableDeadlines,
|
||||
CallOptions: defaultMetricsCallOptions(),
|
||||
|
||||
metricsClient: loggingpb.NewMetricsServiceV2Client(connPool),
|
||||
metricsClient: loggingpb.NewMetricsServiceV2Client(connPool),
|
||||
CallOptions: &client.CallOptions,
|
||||
}
|
||||
c.setGoogleClientInfo()
|
||||
|
||||
return c, nil
|
||||
client.internalClient = c
|
||||
|
||||
return &client, nil
|
||||
}
|
||||
|
||||
// Connection returns a connection to the API service.
|
||||
//
|
||||
// Deprecated.
|
||||
func (c *MetricsClient) Connection() *grpc.ClientConn {
|
||||
// Deprecated: Connections are now pooled so this method does not always
|
||||
// return the same resource.
|
||||
func (c *metricsGRPCClient) Connection() *grpc.ClientConn {
|
||||
return c.connPool.Conn()
|
||||
}
|
||||
|
||||
// Close closes the connection to the API service. The user should invoke this when
|
||||
// the client is no longer required.
|
||||
func (c *MetricsClient) Close() error {
|
||||
return c.connPool.Close()
|
||||
}
|
||||
|
||||
// setGoogleClientInfo sets the name and version of the application in
|
||||
// the `x-goog-api-client` header passed on each request. Intended for
|
||||
// use by Google-written clients.
|
||||
func (c *MetricsClient) setGoogleClientInfo(keyval ...string) {
|
||||
func (c *metricsGRPCClient) setGoogleClientInfo(keyval ...string) {
|
||||
kv := append([]string{"gl-go", versionGo()}, keyval...)
|
||||
kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
|
||||
kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version)
|
||||
c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
|
||||
}
|
||||
|
||||
// ListLogMetrics lists logs-based metrics.
|
||||
func (c *MetricsClient) ListLogMetrics(ctx context.Context, req *loggingpb.ListLogMetricsRequest, opts ...gax.CallOption) *LogMetricIterator {
|
||||
// Close closes the connection to the API service. The user should invoke this when
|
||||
// the client is no longer required.
|
||||
func (c *metricsGRPCClient) Close() error {
|
||||
return c.connPool.Close()
|
||||
}
|
||||
|
||||
func (c *metricsGRPCClient) ListLogMetrics(ctx context.Context, req *loggingpb.ListLogMetricsRequest, opts ...gax.CallOption) *LogMetricIterator {
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append(c.CallOptions.ListLogMetrics[0:len(c.CallOptions.ListLogMetrics):len(c.CallOptions.ListLogMetrics)], opts...)
|
||||
opts = append((*c.CallOptions).ListLogMetrics[0:len((*c.CallOptions).ListLogMetrics):len((*c.CallOptions).ListLogMetrics)], opts...)
|
||||
it := &LogMetricIterator{}
|
||||
req = proto.Clone(req).(*loggingpb.ListLogMetricsRequest)
|
||||
it.InternalFetch = func(pageSize int, pageToken string) ([]*loggingpb.LogMetric, string, error) {
|
||||
var resp *loggingpb.ListLogMetricsResponse
|
||||
req.PageToken = pageToken
|
||||
resp := &loggingpb.ListLogMetricsResponse{}
|
||||
if pageToken != "" {
|
||||
req.PageToken = pageToken
|
||||
}
|
||||
if pageSize > math.MaxInt32 {
|
||||
req.PageSize = math.MaxInt32
|
||||
} else {
|
||||
} else if pageSize != 0 {
|
||||
req.PageSize = int32(pageSize)
|
||||
}
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
|
@ -228,22 +306,24 @@ func (c *MetricsClient) ListLogMetrics(ctx context.Context, req *loggingpb.ListL
|
|||
it.items = append(it.items, items...)
|
||||
return nextPageToken, nil
|
||||
}
|
||||
|
||||
it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
|
||||
it.pageInfo.MaxSize = int(req.GetPageSize())
|
||||
it.pageInfo.Token = req.GetPageToken()
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
// GetLogMetric gets a logs-based metric.
|
||||
func (c *MetricsClient) GetLogMetric(ctx context.Context, req *loggingpb.GetLogMetricRequest, opts ...gax.CallOption) (*loggingpb.LogMetric, error) {
|
||||
func (c *metricsGRPCClient) GetLogMetric(ctx context.Context, req *loggingpb.GetLogMetricRequest, opts ...gax.CallOption) (*loggingpb.LogMetric, error) {
|
||||
if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines {
|
||||
cctx, cancel := context.WithTimeout(ctx, 60000*time.Millisecond)
|
||||
defer cancel()
|
||||
ctx = cctx
|
||||
}
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "metric_name", url.QueryEscape(req.GetMetricName())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append(c.CallOptions.GetLogMetric[0:len(c.CallOptions.GetLogMetric):len(c.CallOptions.GetLogMetric)], opts...)
|
||||
opts = append((*c.CallOptions).GetLogMetric[0:len((*c.CallOptions).GetLogMetric):len((*c.CallOptions).GetLogMetric)], opts...)
|
||||
var resp *loggingpb.LogMetric
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
|
@ -256,16 +336,16 @@ func (c *MetricsClient) GetLogMetric(ctx context.Context, req *loggingpb.GetLogM
|
|||
return resp, nil
|
||||
}
|
||||
|
||||
// CreateLogMetric creates a logs-based metric.
|
||||
func (c *MetricsClient) CreateLogMetric(ctx context.Context, req *loggingpb.CreateLogMetricRequest, opts ...gax.CallOption) (*loggingpb.LogMetric, error) {
|
||||
func (c *metricsGRPCClient) CreateLogMetric(ctx context.Context, req *loggingpb.CreateLogMetricRequest, opts ...gax.CallOption) (*loggingpb.LogMetric, error) {
|
||||
if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines {
|
||||
cctx, cancel := context.WithTimeout(ctx, 60000*time.Millisecond)
|
||||
defer cancel()
|
||||
ctx = cctx
|
||||
}
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append(c.CallOptions.CreateLogMetric[0:len(c.CallOptions.CreateLogMetric):len(c.CallOptions.CreateLogMetric)], opts...)
|
||||
opts = append((*c.CallOptions).CreateLogMetric[0:len((*c.CallOptions).CreateLogMetric):len((*c.CallOptions).CreateLogMetric)], opts...)
|
||||
var resp *loggingpb.LogMetric
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
|
@ -278,16 +358,16 @@ func (c *MetricsClient) CreateLogMetric(ctx context.Context, req *loggingpb.Crea
|
|||
return resp, nil
|
||||
}
|
||||
|
||||
// UpdateLogMetric creates or updates a logs-based metric.
|
||||
func (c *MetricsClient) UpdateLogMetric(ctx context.Context, req *loggingpb.UpdateLogMetricRequest, opts ...gax.CallOption) (*loggingpb.LogMetric, error) {
|
||||
func (c *metricsGRPCClient) UpdateLogMetric(ctx context.Context, req *loggingpb.UpdateLogMetricRequest, opts ...gax.CallOption) (*loggingpb.LogMetric, error) {
|
||||
if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines {
|
||||
cctx, cancel := context.WithTimeout(ctx, 60000*time.Millisecond)
|
||||
defer cancel()
|
||||
ctx = cctx
|
||||
}
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "metric_name", url.QueryEscape(req.GetMetricName())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append(c.CallOptions.UpdateLogMetric[0:len(c.CallOptions.UpdateLogMetric):len(c.CallOptions.UpdateLogMetric)], opts...)
|
||||
opts = append((*c.CallOptions).UpdateLogMetric[0:len((*c.CallOptions).UpdateLogMetric):len((*c.CallOptions).UpdateLogMetric)], opts...)
|
||||
var resp *loggingpb.LogMetric
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
|
@ -300,16 +380,16 @@ func (c *MetricsClient) UpdateLogMetric(ctx context.Context, req *loggingpb.Upda
|
|||
return resp, nil
|
||||
}
|
||||
|
||||
// DeleteLogMetric deletes a logs-based metric.
|
||||
func (c *MetricsClient) DeleteLogMetric(ctx context.Context, req *loggingpb.DeleteLogMetricRequest, opts ...gax.CallOption) error {
|
||||
func (c *metricsGRPCClient) DeleteLogMetric(ctx context.Context, req *loggingpb.DeleteLogMetricRequest, opts ...gax.CallOption) error {
|
||||
if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines {
|
||||
cctx, cancel := context.WithTimeout(ctx, 60000*time.Millisecond)
|
||||
defer cancel()
|
||||
ctx = cctx
|
||||
}
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "metric_name", url.QueryEscape(req.GetMetricName())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append(c.CallOptions.DeleteLogMetric[0:len(c.CallOptions.DeleteLogMetric):len(c.CallOptions.DeleteLogMetric)], opts...)
|
||||
opts = append((*c.CallOptions).DeleteLogMetric[0:len((*c.CallOptions).DeleteLogMetric):len((*c.CallOptions).DeleteLogMetric)], opts...)
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
_, err = c.metricsClient.DeleteLogMetric(ctx, req, settings.GRPC...)
|
||||
|
|
28
vendor/cloud.google.com/go/logging/apiv2/path_funcs.go
generated
vendored
28
vendor/cloud.google.com/go/logging/apiv2/path_funcs.go
generated
vendored
|
@ -17,7 +17,9 @@ package logging
|
|||
// ConfigProjectPath returns the path for the project resource.
|
||||
//
|
||||
// Deprecated: Use
|
||||
// fmt.Sprintf("projects/%s", project)
|
||||
//
|
||||
// fmt.Sprintf("projects/%s", project)
|
||||
//
|
||||
// instead.
|
||||
func ConfigProjectPath(project string) string {
|
||||
return "" +
|
||||
|
@ -29,7 +31,9 @@ func ConfigProjectPath(project string) string {
|
|||
// ConfigSinkPath returns the path for the sink resource.
|
||||
//
|
||||
// Deprecated: Use
|
||||
// fmt.Sprintf("projects/%s/sinks/%s", project, sink)
|
||||
//
|
||||
// fmt.Sprintf("projects/%s/sinks/%s", project, sink)
|
||||
//
|
||||
// instead.
|
||||
func ConfigSinkPath(project, sink string) string {
|
||||
return "" +
|
||||
|
@ -43,7 +47,9 @@ func ConfigSinkPath(project, sink string) string {
|
|||
// ConfigExclusionPath returns the path for the exclusion resource.
|
||||
//
|
||||
// Deprecated: Use
|
||||
// fmt.Sprintf("projects/%s/exclusions/%s", project, exclusion)
|
||||
//
|
||||
// fmt.Sprintf("projects/%s/exclusions/%s", project, exclusion)
|
||||
//
|
||||
// instead.
|
||||
func ConfigExclusionPath(project, exclusion string) string {
|
||||
return "" +
|
||||
|
@ -57,7 +63,9 @@ func ConfigExclusionPath(project, exclusion string) string {
|
|||
// ProjectPath returns the path for the project resource.
|
||||
//
|
||||
// Deprecated: Use
|
||||
// fmt.Sprintf("projects/%s", project)
|
||||
//
|
||||
// fmt.Sprintf("projects/%s", project)
|
||||
//
|
||||
// instead.
|
||||
func ProjectPath(project string) string {
|
||||
return "" +
|
||||
|
@ -69,7 +77,9 @@ func ProjectPath(project string) string {
|
|||
// LogPath returns the path for the log resource.
|
||||
//
|
||||
// Deprecated: Use
|
||||
// fmt.Sprintf("projects/%s/logs/%s", project, log)
|
||||
//
|
||||
// fmt.Sprintf("projects/%s/logs/%s", project, log)
|
||||
//
|
||||
// instead.
|
||||
func LogPath(project, log string) string {
|
||||
return "" +
|
||||
|
@ -83,7 +93,9 @@ func LogPath(project, log string) string {
|
|||
// MetricsProjectPath returns the path for the project resource.
|
||||
//
|
||||
// Deprecated: Use
|
||||
// fmt.Sprintf("projects/%s", project)
|
||||
//
|
||||
// fmt.Sprintf("projects/%s", project)
|
||||
//
|
||||
// instead.
|
||||
func MetricsProjectPath(project string) string {
|
||||
return "" +
|
||||
|
@ -95,7 +107,9 @@ func MetricsProjectPath(project string) string {
|
|||
// MetricsMetricPath returns the path for the metric resource.
|
||||
//
|
||||
// Deprecated: Use
|
||||
// fmt.Sprintf("projects/%s/metrics/%s", project, metric)
|
||||
//
|
||||
// fmt.Sprintf("projects/%s/metrics/%s", project, metric)
|
||||
//
|
||||
// instead.
|
||||
func MetricsMetricPath(project, metric string) string {
|
||||
return "" +
|
||||
|
|
23
vendor/cloud.google.com/go/logging/apiv2/version.go
generated
vendored
Normal file
23
vendor/cloud.google.com/go/logging/apiv2/version.go
generated
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Code generated by gapicgen. DO NOT EDIT.
|
||||
|
||||
package logging
|
||||
|
||||
import "cloud.google.com/go/logging/internal"
|
||||
|
||||
func init() {
|
||||
versionClient = internal.Version
|
||||
}
|
51
vendor/cloud.google.com/go/logging/doc.go
generated
vendored
51
vendor/cloud.google.com/go/logging/doc.go
generated
vendored
|
@ -20,8 +20,7 @@ see package cloud.google.com/go/logging/logadmin.
|
|||
This client uses Logging API v2.
|
||||
See https://cloud.google.com/logging/docs/api/v2/ for an introduction to the API.
|
||||
|
||||
|
||||
Creating a Client
|
||||
# Creating a Client
|
||||
|
||||
Use a Client to interact with the Cloud Logging API.
|
||||
|
||||
|
@ -32,8 +31,7 @@ Use a Client to interact with the Cloud Logging API.
|
|||
// TODO: Handle error.
|
||||
}
|
||||
|
||||
|
||||
Basic Usage
|
||||
# Basic Usage
|
||||
|
||||
For most use cases, you'll want to add log entries to a buffer to be periodically
|
||||
flushed (automatically and asynchronously) to the Cloud Logging service.
|
||||
|
@ -44,8 +42,7 @@ flushed (automatically and asynchronously) to the Cloud Logging service.
|
|||
// Add entry to log buffer
|
||||
lg.Log(logging.Entry{Payload: "something happened!"})
|
||||
|
||||
|
||||
Closing your Client
|
||||
# Closing your Client
|
||||
|
||||
You should call Client.Close before your program exits to flush any buffered log entries to the Cloud Logging service.
|
||||
|
||||
|
@ -55,8 +52,7 @@ You should call Client.Close before your program exits to flush any buffered log
|
|||
// TODO: Handle error.
|
||||
}
|
||||
|
||||
|
||||
Synchronous Logging
|
||||
# Synchronous Logging
|
||||
|
||||
For critical errors, you may want to send your log entries immediately.
|
||||
LogSync is slow and will block until the log entry has been sent, so it is
|
||||
|
@ -67,8 +63,20 @@ not recommended for normal use.
|
|||
// TODO: Handle error.
|
||||
}
|
||||
|
||||
# Redirecting log ingestion
|
||||
|
||||
Payloads
|
||||
For cases when runtime environment supports out-of-process log ingestion,
|
||||
like logging agent, you can opt-in to write log entries to io.Writer instead of
|
||||
ingesting them to Cloud Logging service. Usually, you will use os.Stdout or os.Stderr as
|
||||
writers because Google Cloud logging agents are configured to capture logs from standard output.
|
||||
The entries will be Jsonified and wrote as one line strings following the structured logging format.
|
||||
See https://cloud.google.com/logging/docs/structured-logging#special-payload-fields for the format description.
|
||||
To instruct Logger to redirect log entries add RedirectAsJSON() LoggerOption`s.
|
||||
|
||||
// Create a logger to print structured logs formatted as a single line Json to stdout
|
||||
loggger := client.Logger("test-log", RedirectAsJSON(os.Stdout))
|
||||
|
||||
# Payloads
|
||||
|
||||
An entry payload can be a string, as in the examples above. It can also be any value
|
||||
that can be marshaled to a JSON object, like a map[string]interface{} or a struct:
|
||||
|
@ -84,8 +92,18 @@ If you have a []byte of JSON, wrap it in json.RawMessage:
|
|||
j := []byte(`{"Name": "Bob", "Count": 3}`)
|
||||
lg.Log(logging.Entry{Payload: json.RawMessage(j)})
|
||||
|
||||
If you have proto.Message and want to send it as a protobuf payload, marshal it to anypb.Any:
|
||||
|
||||
The Standard Logger
|
||||
// import
|
||||
func logMessage (m proto.Message) {
|
||||
var payload anypb.Any
|
||||
err := anypb.MarshalFrom(&payload, m)
|
||||
if err != nil {
|
||||
lg.Log(logging.Entry{Payload: payload})
|
||||
}
|
||||
}
|
||||
|
||||
# The Standard Logger
|
||||
|
||||
You may want use a standard log.Logger in your program.
|
||||
|
||||
|
@ -93,8 +111,7 @@ You may want use a standard log.Logger in your program.
|
|||
stdlg := lg.StandardLogger(logging.Info)
|
||||
stdlg.Println("some info")
|
||||
|
||||
|
||||
Log Levels
|
||||
# Log Levels
|
||||
|
||||
An Entry may have one of a number of severity levels associated with it.
|
||||
|
||||
|
@ -103,8 +120,7 @@ An Entry may have one of a number of severity levels associated with it.
|
|||
Severity: logging.Critical,
|
||||
}
|
||||
|
||||
|
||||
Viewing Logs
|
||||
# Viewing Logs
|
||||
|
||||
You can view Cloud logs for projects at
|
||||
https://console.cloud.google.com/logs/viewer. Use the dropdown at the top left. When
|
||||
|
@ -112,15 +128,14 @@ running from a Google Cloud Platform VM, select "GCE VM Instance". Otherwise, se
|
|||
"Google Project" and then the project ID. Logs for organizations, folders and billing
|
||||
accounts can be viewed on the command line with the "gcloud logging read" command.
|
||||
|
||||
|
||||
Grouping Logs by Request
|
||||
# Grouping Logs by Request
|
||||
|
||||
To group all the log entries written during a single HTTP request, create two
|
||||
Loggers, a "parent" and a "child," with different log IDs. Both should be in the same
|
||||
project, and have the same MonitoredResource type and labels.
|
||||
|
||||
- Parent entries must have HTTPRequest.Request (strictly speaking, only Method and URL are necessary),
|
||||
and HTTPRequest.Status populated.
|
||||
- Parent entries must have HTTPRequest.Request (strictly speaking, only Method and URL are necessary),
|
||||
and HTTPRequest.Status populated.
|
||||
|
||||
- A child entry's timestamp must be within the time interval covered by the parent request. (i.e., before
|
||||
the parent.Timestamp and after the parent.Timestamp - parent.HTTPRequest.Latency. This assumes the
|
||||
|
|
83
vendor/cloud.google.com/go/logging/instrumentation.go
generated
vendored
Normal file
83
vendor/cloud.google.com/go/logging/instrumentation.go
generated
vendored
Normal file
|
@ -0,0 +1,83 @@
|
|||
// Copyright 2022 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package logging
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
logpb "cloud.google.com/go/logging/apiv2/loggingpb"
|
||||
"cloud.google.com/go/logging/internal"
|
||||
)
|
||||
|
||||
const diagnosticLogID = "diagnostic-log"
|
||||
|
||||
// instrumentationPayload defines telemetry log entry payload for capturing instrumentation info
|
||||
type instrumentationPayload struct {
|
||||
InstrumentationSource []map[string]string `json:"instrumentation_source"`
|
||||
Runtime string `json:"runtime,omitempty"`
|
||||
}
|
||||
|
||||
var (
|
||||
instrumentationInfo = &instrumentationPayload{
|
||||
InstrumentationSource: []map[string]string{
|
||||
{
|
||||
"name": "go",
|
||||
"version": internal.Version,
|
||||
},
|
||||
},
|
||||
Runtime: internal.VersionGo(),
|
||||
}
|
||||
)
|
||||
|
||||
// instrumentLogs appends log entry with library instrumentation info to the
|
||||
// list of log entries on the first function's call.
|
||||
func (l *Logger) instrumentLogs(entries []*logpb.LogEntry) ([]*logpb.LogEntry, bool) {
|
||||
var instrumentationAdded bool
|
||||
|
||||
internal.InstrumentOnce.Do(func() {
|
||||
ie, err := l.instrumentationEntry()
|
||||
if err != nil {
|
||||
// do not retry instrumenting logs if failed creating instrumentation entry
|
||||
return
|
||||
}
|
||||
// populate LogName only when directly ingesting entries
|
||||
if l.redirectOutputWriter == nil {
|
||||
ie.LogName = internal.LogPath(l.client.parent, diagnosticLogID)
|
||||
}
|
||||
entries = append(entries, ie)
|
||||
instrumentationAdded = true
|
||||
})
|
||||
return entries, instrumentationAdded
|
||||
}
|
||||
|
||||
func (l *Logger) instrumentationEntry() (*logpb.LogEntry, error) {
|
||||
ent := Entry{
|
||||
Payload: map[string]*instrumentationPayload{
|
||||
"logging.googleapis.com/diagnostic": instrumentationInfo,
|
||||
},
|
||||
}
|
||||
// pass nil for Logger and 0 for skip levels to ignore auto-population
|
||||
return toLogEntryInternal(ent, nil, l.client.parent, 0)
|
||||
}
|
||||
|
||||
// hasInstrumentation returns true if any of the log entries has diagnostic LogId
|
||||
func hasInstrumentation(entries []*logpb.LogEntry) bool {
|
||||
for _, ent := range entries {
|
||||
if strings.HasSuffix(ent.LogName, diagnosticLogID) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
43
vendor/cloud.google.com/go/logging/internal/common.go
generated
vendored
43
vendor/cloud.google.com/go/logging/internal/common.go
generated
vendored
|
@ -16,7 +16,10 @@ package internal
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -24,6 +27,9 @@ const (
|
|||
ProdAddr = "logging.googleapis.com:443"
|
||||
)
|
||||
|
||||
// InstrumentOnce guards instrumenting logs one time
|
||||
var InstrumentOnce = new(sync.Once)
|
||||
|
||||
// LogPath creates a formatted path from a parent and a logID.
|
||||
func LogPath(parent, logID string) string {
|
||||
logID = strings.Replace(logID, "/", "%2F", -1)
|
||||
|
@ -39,3 +45,40 @@ func LogIDFromPath(parent, path string) string {
|
|||
logID := path[start:]
|
||||
return strings.Replace(logID, "%2F", "/", -1)
|
||||
}
|
||||
|
||||
// VersionGo returns the Go runtime version. The returned string
|
||||
// has no whitespace, suitable for reporting in header.
|
||||
func VersionGo() string {
|
||||
const develPrefix = "devel +"
|
||||
|
||||
s := runtime.Version()
|
||||
if strings.HasPrefix(s, develPrefix) {
|
||||
s = s[len(develPrefix):]
|
||||
if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
|
||||
s = s[:p]
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
notSemverRune := func(r rune) bool {
|
||||
return !strings.ContainsRune("0123456789.", r)
|
||||
}
|
||||
|
||||
if strings.HasPrefix(s, "go1") {
|
||||
s = s[2:]
|
||||
var prerelease string
|
||||
if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
|
||||
s, prerelease = s[:p], s[p:]
|
||||
}
|
||||
if strings.HasSuffix(s, ".") {
|
||||
s += "0"
|
||||
} else if strings.Count(s, ".") < 2 {
|
||||
s += ".0"
|
||||
}
|
||||
if prerelease != "" {
|
||||
s += "-" + prerelease
|
||||
}
|
||||
return s
|
||||
}
|
||||
return "UNKNOWN"
|
||||
}
|
||||
|
|
75
vendor/cloud.google.com/go/logging/internal/environment.go
generated
vendored
Normal file
75
vendor/cloud.google.com/go/logging/internal/environment.go
generated
vendored
Normal file
|
@ -0,0 +1,75 @@
|
|||
// Copyright 2022 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package internal
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"cloud.google.com/go/compute/metadata"
|
||||
)
|
||||
|
||||
// ResourceAttributesGetter abstracts environment lookup methods to query for environment variables, metadata attributes and file content.
|
||||
type ResourceAttributesGetter interface {
|
||||
EnvVar(name string) string
|
||||
Metadata(path string) string
|
||||
ReadAll(path string) string
|
||||
}
|
||||
|
||||
var getter ResourceAttributesGetter = &defaultResourceGetter{
|
||||
metaClient: metadata.NewClient(&http.Client{
|
||||
Transport: &http.Transport{
|
||||
Dial: (&net.Dialer{
|
||||
Timeout: 1 * time.Second,
|
||||
KeepAlive: 10 * time.Second,
|
||||
}).Dial,
|
||||
},
|
||||
})}
|
||||
|
||||
// ResourceAttributes provides read-only access to the ResourceAtttributesGetter interface implementation.
|
||||
func ResourceAttributes() ResourceAttributesGetter {
|
||||
return getter
|
||||
}
|
||||
|
||||
type defaultResourceGetter struct {
|
||||
metaClient *metadata.Client
|
||||
}
|
||||
|
||||
// EnvVar uses os.LookupEnv() to lookup for environment variable by name.
|
||||
func (g *defaultResourceGetter) EnvVar(name string) string {
|
||||
return os.Getenv(name)
|
||||
}
|
||||
|
||||
// Metadata uses metadata package Client.Get() to lookup for metadata attributes by path.
|
||||
func (g *defaultResourceGetter) Metadata(path string) string {
|
||||
val, err := g.metaClient.Get(path)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return strings.TrimSpace(val)
|
||||
}
|
||||
|
||||
// ReadAll reads all content of the file as a string.
|
||||
func (g *defaultResourceGetter) ReadAll(path string) string {
|
||||
bytes, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return string(bytes)
|
||||
}
|
18
vendor/cloud.google.com/go/logging/internal/version.go
generated
vendored
Normal file
18
vendor/cloud.google.com/go/logging/internal/version.go
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2022 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.
|
||||
|
||||
package internal
|
||||
|
||||
// Version is the current tagged release of the library.
|
||||
const Version = "1.7.0"
|
189
vendor/cloud.google.com/go/logging/loggeroption.go
generated
vendored
Normal file
189
vendor/cloud.google.com/go/logging/loggeroption.go
generated
vendored
Normal file
|
@ -0,0 +1,189 @@
|
|||
// Copyright 2021 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package logging
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
// LoggerOption is a configuration option for a Logger.
|
||||
type LoggerOption interface {
|
||||
set(*Logger)
|
||||
}
|
||||
|
||||
// CommonLabels are labels that apply to all log entries written from a Logger,
|
||||
// so that you don't have to repeat them in each log entry's Labels field. If
|
||||
// any of the log entries contains a (key, value) with the same key that is in
|
||||
// CommonLabels, then the entry's (key, value) overrides the one in
|
||||
// CommonLabels.
|
||||
func CommonLabels(m map[string]string) LoggerOption { return commonLabels(m) }
|
||||
|
||||
type commonLabels map[string]string
|
||||
|
||||
func (c commonLabels) set(l *Logger) { l.commonLabels = c }
|
||||
|
||||
// ConcurrentWriteLimit determines how many goroutines will send log entries to the
|
||||
// underlying service. The default is 1. Set ConcurrentWriteLimit to a higher value to
|
||||
// increase throughput.
|
||||
func ConcurrentWriteLimit(n int) LoggerOption { return concurrentWriteLimit(n) }
|
||||
|
||||
type concurrentWriteLimit int
|
||||
|
||||
func (c concurrentWriteLimit) set(l *Logger) { l.bundler.HandlerLimit = int(c) }
|
||||
|
||||
// DelayThreshold is the maximum amount of time that an entry should remain
|
||||
// buffered in memory before a call to the logging service is triggered. Larger
|
||||
// values of DelayThreshold will generally result in fewer calls to the logging
|
||||
// service, while increasing the risk that log entries will be lost if the
|
||||
// process crashes.
|
||||
// The default is DefaultDelayThreshold.
|
||||
func DelayThreshold(d time.Duration) LoggerOption { return delayThreshold(d) }
|
||||
|
||||
type delayThreshold time.Duration
|
||||
|
||||
func (d delayThreshold) set(l *Logger) { l.bundler.DelayThreshold = time.Duration(d) }
|
||||
|
||||
// EntryCountThreshold is the maximum number of entries that will be buffered
|
||||
// in memory before a call to the logging service is triggered. Larger values
|
||||
// will generally result in fewer calls to the logging service, while
|
||||
// increasing both memory consumption and the risk that log entries will be
|
||||
// lost if the process crashes.
|
||||
// The default is DefaultEntryCountThreshold.
|
||||
func EntryCountThreshold(n int) LoggerOption { return entryCountThreshold(n) }
|
||||
|
||||
type entryCountThreshold int
|
||||
|
||||
func (e entryCountThreshold) set(l *Logger) { l.bundler.BundleCountThreshold = int(e) }
|
||||
|
||||
// EntryByteThreshold is the maximum number of bytes of entries that will be
|
||||
// buffered in memory before a call to the logging service is triggered. See
|
||||
// EntryCountThreshold for a discussion of the tradeoffs involved in setting
|
||||
// this option.
|
||||
// The default is DefaultEntryByteThreshold.
|
||||
func EntryByteThreshold(n int) LoggerOption { return entryByteThreshold(n) }
|
||||
|
||||
type entryByteThreshold int
|
||||
|
||||
func (e entryByteThreshold) set(l *Logger) { l.bundler.BundleByteThreshold = int(e) }
|
||||
|
||||
// EntryByteLimit is the maximum number of bytes of entries that will be sent
|
||||
// in a single call to the logging service. ErrOversizedEntry is returned if an
|
||||
// entry exceeds EntryByteLimit. This option limits the size of a single RPC
|
||||
// payload, to account for network or service issues with large RPCs. If
|
||||
// EntryByteLimit is smaller than EntryByteThreshold, the latter has no effect.
|
||||
// The default is zero, meaning there is no limit.
|
||||
func EntryByteLimit(n int) LoggerOption { return entryByteLimit(n) }
|
||||
|
||||
type entryByteLimit int
|
||||
|
||||
func (e entryByteLimit) set(l *Logger) { l.bundler.BundleByteLimit = int(e) }
|
||||
|
||||
// BufferedByteLimit is the maximum number of bytes that the Logger will keep
|
||||
// in memory before returning ErrOverflow. This option limits the total memory
|
||||
// consumption of the Logger (but note that each Logger has its own, separate
|
||||
// limit). It is possible to reach BufferedByteLimit even if it is larger than
|
||||
// EntryByteThreshold or EntryByteLimit, because calls triggered by the latter
|
||||
// two options may be enqueued (and hence occupying memory) while new log
|
||||
// entries are being added.
|
||||
// The default is DefaultBufferedByteLimit.
|
||||
func BufferedByteLimit(n int) LoggerOption { return bufferedByteLimit(n) }
|
||||
|
||||
type bufferedByteLimit int
|
||||
|
||||
func (b bufferedByteLimit) set(l *Logger) { l.bundler.BufferedByteLimit = int(b) }
|
||||
|
||||
// ContextFunc is a function that will be called to obtain a context.Context for the
|
||||
// WriteLogEntries RPC executed in the background for calls to Logger.Log. The
|
||||
// default is a function that always returns context.Background. The second return
|
||||
// value of the function is a function to call after the RPC completes.
|
||||
//
|
||||
// The function is not used for calls to Logger.LogSync, since the caller can pass
|
||||
// in the context directly.
|
||||
//
|
||||
// This option is EXPERIMENTAL. It may be changed or removed.
|
||||
func ContextFunc(f func() (ctx context.Context, afterCall func())) LoggerOption {
|
||||
return contextFunc(f)
|
||||
}
|
||||
|
||||
type contextFunc func() (ctx context.Context, afterCall func())
|
||||
|
||||
func (c contextFunc) set(l *Logger) { l.ctxFunc = c }
|
||||
|
||||
// SourceLocationPopulation is the flag controlling population of the source location info
|
||||
// in the ingested entries. This options allows to configure automatic population of the
|
||||
// SourceLocation field for all ingested entries, entries with DEBUG severity or disable it.
|
||||
// Note that enabling this option can decrease execution time of Logger.Log and Logger.LogSync
|
||||
// by the factor of 2 or larger.
|
||||
// The default disables source location population.
|
||||
//
|
||||
// This option is not used when an entry is created using ToLogEntry.
|
||||
func SourceLocationPopulation(f int) LoggerOption {
|
||||
return sourceLocationOption(f)
|
||||
}
|
||||
|
||||
const (
|
||||
// DoNotPopulateSourceLocation is default for clients when WithSourceLocation is not provided
|
||||
DoNotPopulateSourceLocation = 0
|
||||
// PopulateSourceLocationForDebugEntries is set when WithSourceLocation(PopulateDebugEntries) is provided
|
||||
PopulateSourceLocationForDebugEntries = 1
|
||||
// AlwaysPopulateSourceLocation is set when WithSourceLocation(PopulateAllEntries) is provided
|
||||
AlwaysPopulateSourceLocation = 2
|
||||
)
|
||||
|
||||
type sourceLocationOption int
|
||||
|
||||
func (o sourceLocationOption) set(l *Logger) {
|
||||
if o == DoNotPopulateSourceLocation || o == PopulateSourceLocationForDebugEntries || o == AlwaysPopulateSourceLocation {
|
||||
l.populateSourceLocation = int(o)
|
||||
}
|
||||
}
|
||||
|
||||
// PartialSuccess sets the partialSuccess flag to true when ingesting a bundle of log entries.
|
||||
// See https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/write#body.request_body.FIELDS.partial_success
|
||||
// If not provided the partialSuccess flag is set to false.
|
||||
func PartialSuccess() LoggerOption {
|
||||
return &partialSuccessOption{}
|
||||
}
|
||||
|
||||
type partialSuccessOption struct{}
|
||||
|
||||
func (o *partialSuccessOption) set(l *Logger) {
|
||||
l.partialSuccess = true
|
||||
}
|
||||
|
||||
// RedirectAsJSON instructs Logger to redirect output of calls to Log and LogSync to provided io.Writer instead of ingesting
|
||||
// to Cloud Logging. Logger formats log entries following logging agent's Json format.
|
||||
// See https://cloud.google.com/logging/docs/structured-logging#special-payload-fields for more info about the format.
|
||||
// Use this option to delegate log ingestion to an out-of-process logging agent.
|
||||
// If no writer is provided, the redirect is set to stdout.
|
||||
func RedirectAsJSON(w io.Writer) LoggerOption {
|
||||
if w == nil {
|
||||
w = os.Stdout
|
||||
}
|
||||
return &redirectOutputOption{
|
||||
writer: w,
|
||||
}
|
||||
}
|
||||
|
||||
type redirectOutputOption struct {
|
||||
writer io.Writer
|
||||
}
|
||||
|
||||
func (o *redirectOutputOption) set(l *Logger) {
|
||||
l.redirectOutputWriter = o.writer
|
||||
}
|
504
vendor/cloud.google.com/go/logging/logging.go
generated
vendored
504
vendor/cloud.google.com/go/logging/logging.go
generated
vendored
|
@ -30,17 +30,19 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"regexp"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
"unicode/utf8"
|
||||
|
||||
"cloud.google.com/go/internal/version"
|
||||
vkit "cloud.google.com/go/logging/apiv2"
|
||||
logpb "cloud.google.com/go/logging/apiv2/loggingpb"
|
||||
"cloud.google.com/go/logging/internal"
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/golang/protobuf/ptypes"
|
||||
|
@ -49,7 +51,8 @@ import (
|
|||
"google.golang.org/api/support/bundler"
|
||||
mrpb "google.golang.org/genproto/googleapis/api/monitoredres"
|
||||
logtypepb "google.golang.org/genproto/googleapis/logging/type"
|
||||
logpb "google.golang.org/genproto/googleapis/logging/v2"
|
||||
"google.golang.org/protobuf/types/known/anypb"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -75,7 +78,7 @@ const (
|
|||
DefaultEntryCountThreshold = 1000
|
||||
|
||||
// DefaultEntryByteThreshold is the default value for the EntryByteThreshold LoggerOption.
|
||||
DefaultEntryByteThreshold = 1 << 20 // 1MiB
|
||||
DefaultEntryByteThreshold = 1 << 23 // 8MiB
|
||||
|
||||
// DefaultBufferedByteLimit is the default value for the BufferedByteLimit LoggerOption.
|
||||
DefaultBufferedByteLimit = 1 << 30 // 1GiB
|
||||
|
@ -87,16 +90,23 @@ const (
|
|||
defaultWriteTimeout = 10 * time.Minute
|
||||
)
|
||||
|
||||
// For testing:
|
||||
var now = time.Now
|
||||
var (
|
||||
// ErrRedirectProtoPayloadNotSupported is returned when Logger is configured to redirect output and
|
||||
// tries to redirect logs with protobuf payload.
|
||||
ErrRedirectProtoPayloadNotSupported = errors.New("printEntryToStdout: cannot find valid payload")
|
||||
|
||||
// ErrOverflow signals that the number of buffered entries for a Logger
|
||||
// exceeds its BufferLimit.
|
||||
var ErrOverflow = bundler.ErrOverflow
|
||||
// For testing:
|
||||
now = time.Now
|
||||
toLogEntryInternal = toLogEntryInternalImpl
|
||||
|
||||
// ErrOversizedEntry signals that an entry's size exceeds the maximum number of
|
||||
// bytes that will be sent in a single call to the logging service.
|
||||
var ErrOversizedEntry = bundler.ErrOversizedItem
|
||||
// ErrOverflow signals that the number of buffered entries for a Logger
|
||||
// exceeds its BufferLimit.
|
||||
ErrOverflow = bundler.ErrOverflow
|
||||
|
||||
// ErrOversizedEntry signals that an entry's size exceeds the maximum number of
|
||||
// bytes that will be sent in a single call to the logging service.
|
||||
ErrOversizedEntry = bundler.ErrOversizedItem
|
||||
)
|
||||
|
||||
// Client is a Logging client. A Client is associated with a single Cloud project.
|
||||
type Client struct {
|
||||
|
@ -125,17 +135,22 @@ type Client struct {
|
|||
|
||||
// NewClient returns a new logging client associated with the provided parent.
|
||||
// A parent can take any of the following forms:
|
||||
// projects/PROJECT_ID
|
||||
// folders/FOLDER_ID
|
||||
// billingAccounts/ACCOUNT_ID
|
||||
// organizations/ORG_ID
|
||||
//
|
||||
// projects/PROJECT_ID
|
||||
// folders/FOLDER_ID
|
||||
// billingAccounts/ACCOUNT_ID
|
||||
// organizations/ORG_ID
|
||||
//
|
||||
// for backwards compatibility, a string with no '/' is also allowed and is interpreted
|
||||
// as a project ID.
|
||||
//
|
||||
// By default NewClient uses WriteScope. To use a different scope, call
|
||||
// NewClient using a WithScopes option (see https://godoc.org/google.golang.org/api/option#WithScopes).
|
||||
func NewClient(ctx context.Context, parent string, opts ...option.ClientOption) (*Client, error) {
|
||||
parent = makeParent(parent)
|
||||
parent, err := makeParent(parent)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
opts = append([]option.ClientOption{
|
||||
option.WithScopes(WriteScope),
|
||||
}, opts...)
|
||||
|
@ -143,7 +158,7 @@ func NewClient(ctx context.Context, parent string, opts ...option.ClientOption)
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c.SetGoogleClientInfo("gccl", version.Repo)
|
||||
c.SetGoogleClientInfo("gccl", internal.Version)
|
||||
client := &Client{
|
||||
client: c,
|
||||
parent: parent,
|
||||
|
@ -168,11 +183,15 @@ func NewClient(ctx context.Context, parent string, opts ...option.ClientOption)
|
|||
return client, nil
|
||||
}
|
||||
|
||||
func makeParent(parent string) string {
|
||||
func makeParent(parent string) (string, error) {
|
||||
if !strings.ContainsRune(parent, '/') {
|
||||
return "projects/" + parent
|
||||
return "projects/" + parent, nil
|
||||
}
|
||||
return parent
|
||||
prefix := strings.Split(parent, "/")[0]
|
||||
if prefix != "projects" && prefix != "folders" && prefix != "billingAccounts" && prefix != "organizations" {
|
||||
return parent, fmt.Errorf("parent parameter must start with 'projects/' 'folders/' 'billingAccounts/' or 'organizations/'")
|
||||
}
|
||||
return parent, nil
|
||||
}
|
||||
|
||||
// Ping reports whether the client's connection to the logging service and the
|
||||
|
@ -213,7 +232,7 @@ func (c *Client) extractErrorInfo() error {
|
|||
var err error
|
||||
c.mu.Lock()
|
||||
if c.lastErr != nil {
|
||||
err = fmt.Errorf("saw %d errors; last: %v", c.nErrs, c.lastErr)
|
||||
err = fmt.Errorf("saw %d errors; last: %w", c.nErrs, c.lastErr)
|
||||
c.nErrs = 0
|
||||
c.lastErr = nil
|
||||
}
|
||||
|
@ -230,114 +249,14 @@ type Logger struct {
|
|||
bundler *bundler.Bundler
|
||||
|
||||
// Options
|
||||
commonResource *mrpb.MonitoredResource
|
||||
commonLabels map[string]string
|
||||
ctxFunc func() (context.Context, func())
|
||||
commonResource *mrpb.MonitoredResource
|
||||
commonLabels map[string]string
|
||||
ctxFunc func() (context.Context, func())
|
||||
populateSourceLocation int
|
||||
partialSuccess bool
|
||||
redirectOutputWriter io.Writer
|
||||
}
|
||||
|
||||
// A LoggerOption is a configuration option for a Logger.
|
||||
type LoggerOption interface {
|
||||
set(*Logger)
|
||||
}
|
||||
|
||||
// CommonLabels are labels that apply to all log entries written from a Logger,
|
||||
// so that you don't have to repeat them in each log entry's Labels field. If
|
||||
// any of the log entries contains a (key, value) with the same key that is in
|
||||
// CommonLabels, then the entry's (key, value) overrides the one in
|
||||
// CommonLabels.
|
||||
func CommonLabels(m map[string]string) LoggerOption { return commonLabels(m) }
|
||||
|
||||
type commonLabels map[string]string
|
||||
|
||||
func (c commonLabels) set(l *Logger) { l.commonLabels = c }
|
||||
|
||||
// ConcurrentWriteLimit determines how many goroutines will send log entries to the
|
||||
// underlying service. The default is 1. Set ConcurrentWriteLimit to a higher value to
|
||||
// increase throughput.
|
||||
func ConcurrentWriteLimit(n int) LoggerOption { return concurrentWriteLimit(n) }
|
||||
|
||||
type concurrentWriteLimit int
|
||||
|
||||
func (c concurrentWriteLimit) set(l *Logger) { l.bundler.HandlerLimit = int(c) }
|
||||
|
||||
// DelayThreshold is the maximum amount of time that an entry should remain
|
||||
// buffered in memory before a call to the logging service is triggered. Larger
|
||||
// values of DelayThreshold will generally result in fewer calls to the logging
|
||||
// service, while increasing the risk that log entries will be lost if the
|
||||
// process crashes.
|
||||
// The default is DefaultDelayThreshold.
|
||||
func DelayThreshold(d time.Duration) LoggerOption { return delayThreshold(d) }
|
||||
|
||||
type delayThreshold time.Duration
|
||||
|
||||
func (d delayThreshold) set(l *Logger) { l.bundler.DelayThreshold = time.Duration(d) }
|
||||
|
||||
// EntryCountThreshold is the maximum number of entries that will be buffered
|
||||
// in memory before a call to the logging service is triggered. Larger values
|
||||
// will generally result in fewer calls to the logging service, while
|
||||
// increasing both memory consumption and the risk that log entries will be
|
||||
// lost if the process crashes.
|
||||
// The default is DefaultEntryCountThreshold.
|
||||
func EntryCountThreshold(n int) LoggerOption { return entryCountThreshold(n) }
|
||||
|
||||
type entryCountThreshold int
|
||||
|
||||
func (e entryCountThreshold) set(l *Logger) { l.bundler.BundleCountThreshold = int(e) }
|
||||
|
||||
// EntryByteThreshold is the maximum number of bytes of entries that will be
|
||||
// buffered in memory before a call to the logging service is triggered. See
|
||||
// EntryCountThreshold for a discussion of the tradeoffs involved in setting
|
||||
// this option.
|
||||
// The default is DefaultEntryByteThreshold.
|
||||
func EntryByteThreshold(n int) LoggerOption { return entryByteThreshold(n) }
|
||||
|
||||
type entryByteThreshold int
|
||||
|
||||
func (e entryByteThreshold) set(l *Logger) { l.bundler.BundleByteThreshold = int(e) }
|
||||
|
||||
// EntryByteLimit is the maximum number of bytes of entries that will be sent
|
||||
// in a single call to the logging service. ErrOversizedEntry is returned if an
|
||||
// entry exceeds EntryByteLimit. This option limits the size of a single RPC
|
||||
// payload, to account for network or service issues with large RPCs. If
|
||||
// EntryByteLimit is smaller than EntryByteThreshold, the latter has no effect.
|
||||
// The default is zero, meaning there is no limit.
|
||||
func EntryByteLimit(n int) LoggerOption { return entryByteLimit(n) }
|
||||
|
||||
type entryByteLimit int
|
||||
|
||||
func (e entryByteLimit) set(l *Logger) { l.bundler.BundleByteLimit = int(e) }
|
||||
|
||||
// BufferedByteLimit is the maximum number of bytes that the Logger will keep
|
||||
// in memory before returning ErrOverflow. This option limits the total memory
|
||||
// consumption of the Logger (but note that each Logger has its own, separate
|
||||
// limit). It is possible to reach BufferedByteLimit even if it is larger than
|
||||
// EntryByteThreshold or EntryByteLimit, because calls triggered by the latter
|
||||
// two options may be enqueued (and hence occupying memory) while new log
|
||||
// entries are being added.
|
||||
// The default is DefaultBufferedByteLimit.
|
||||
func BufferedByteLimit(n int) LoggerOption { return bufferedByteLimit(n) }
|
||||
|
||||
type bufferedByteLimit int
|
||||
|
||||
func (b bufferedByteLimit) set(l *Logger) { l.bundler.BufferedByteLimit = int(b) }
|
||||
|
||||
// ContextFunc is a function that will be called to obtain a context.Context for the
|
||||
// WriteLogEntries RPC executed in the background for calls to Logger.Log. The
|
||||
// default is a function that always returns context.Background. The second return
|
||||
// value of the function is a function to call after the RPC completes.
|
||||
//
|
||||
// The function is not used for calls to Logger.LogSync, since the caller can pass
|
||||
// in the context directly.
|
||||
//
|
||||
// This option is EXPERIMENTAL. It may be changed or removed.
|
||||
func ContextFunc(f func() (ctx context.Context, afterCall func())) LoggerOption {
|
||||
return contextFunc(f)
|
||||
}
|
||||
|
||||
type contextFunc func() (ctx context.Context, afterCall func())
|
||||
|
||||
func (c contextFunc) set(l *Logger) { l.ctxFunc = c }
|
||||
|
||||
// Logger returns a Logger that will write entries with the given log ID, such as
|
||||
// "syslog". A log ID must be less than 512 characters long and can only
|
||||
// include the following characters: upper and lower case alphanumeric
|
||||
|
@ -349,10 +268,13 @@ func (c *Client) Logger(logID string, opts ...LoggerOption) *Logger {
|
|||
r = monitoredResource(c.parent)
|
||||
}
|
||||
l := &Logger{
|
||||
client: c,
|
||||
logName: internal.LogPath(c.parent, logID),
|
||||
commonResource: r,
|
||||
ctxFunc: func() (context.Context, func()) { return context.Background(), nil },
|
||||
client: c,
|
||||
logName: internal.LogPath(c.parent, logID),
|
||||
commonResource: r,
|
||||
ctxFunc: func() (context.Context, func()) { return context.Background(), nil },
|
||||
populateSourceLocation: DoNotPopulateSourceLocation,
|
||||
partialSuccess: false,
|
||||
redirectOutputWriter: nil,
|
||||
}
|
||||
l.bundler = bundler.NewBundler(&logpb.LogEntry{}, func(entries interface{}) {
|
||||
l.writeLogEntries(entries.([]*logpb.LogEntry))
|
||||
|
@ -366,7 +288,8 @@ func (c *Client) Logger(logID string, opts ...LoggerOption) *Logger {
|
|||
}
|
||||
l.stdLoggers = map[Severity]*log.Logger{}
|
||||
for s := range severityName {
|
||||
l.stdLoggers[s] = log.New(severityWriter{l, s}, "", 0)
|
||||
e := Entry{Severity: s}
|
||||
l.stdLoggers[s] = log.New(templateEntryWriter{l, &e}, "", 0)
|
||||
}
|
||||
|
||||
c.loggers.Add(1)
|
||||
|
@ -380,16 +303,20 @@ func (c *Client) Logger(logID string, opts ...LoggerOption) *Logger {
|
|||
return l
|
||||
}
|
||||
|
||||
type severityWriter struct {
|
||||
l *Logger
|
||||
s Severity
|
||||
type templateEntryWriter struct {
|
||||
l *Logger
|
||||
template *Entry
|
||||
}
|
||||
|
||||
func (w severityWriter) Write(p []byte) (n int, err error) {
|
||||
w.l.Log(Entry{
|
||||
Severity: w.s,
|
||||
Payload: string(p),
|
||||
})
|
||||
func (w templateEntryWriter) Write(p []byte) (n int, err error) {
|
||||
e := *w.template
|
||||
e.Payload = string(p)
|
||||
// The second argument to logInternal() is how many frames to skip
|
||||
// from the call stack when determining the source location. In the
|
||||
// current implementation of log.Logger (i.e. Go's logging library)
|
||||
// the Write() method is called 2 calls deep so we need to skip 3
|
||||
// frames to account for the call to logInternal() itself.
|
||||
w.l.logInternal(e, 3)
|
||||
return len(p), nil
|
||||
}
|
||||
|
||||
|
@ -464,10 +391,14 @@ func (v Severity) String() string {
|
|||
// Severity.
|
||||
func (v *Severity) UnmarshalJSON(data []byte) error {
|
||||
var s string
|
||||
if err := json.Unmarshal(data, &s); err != nil {
|
||||
return err
|
||||
var i int
|
||||
if strErr := json.Unmarshal(data, &s); strErr == nil {
|
||||
*v = ParseSeverity(s)
|
||||
} else if intErr := json.Unmarshal(data, &i); intErr == nil {
|
||||
*v = Severity(i)
|
||||
} else {
|
||||
return fmt.Errorf("%v; %v", strErr, intErr)
|
||||
}
|
||||
*v = ParseSeverity(s)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -659,13 +590,13 @@ func toProtoStruct(v interface{}) (*structpb.Struct, error) {
|
|||
} else {
|
||||
jb, err = json.Marshal(v)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("logging: json.Marshal: %v", err)
|
||||
return nil, fmt.Errorf("logging: json.Marshal: %w", err)
|
||||
}
|
||||
}
|
||||
var m map[string]interface{}
|
||||
err = json.Unmarshal(jb, &m)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("logging: json.Unmarshal: %v", err)
|
||||
return nil, fmt.Errorf("logging: json.Unmarshal: %w", err)
|
||||
}
|
||||
return jsonMapToProtoStruct(m), nil
|
||||
}
|
||||
|
@ -705,28 +636,56 @@ func jsonValueToStructValue(v interface{}) *structpb.Value {
|
|||
// and will block, it is intended primarily for debugging or critical errors.
|
||||
// Prefer Log for most uses.
|
||||
func (l *Logger) LogSync(ctx context.Context, e Entry) error {
|
||||
ent, err := toLogEntryInternal(e, l.client, l.client.parent)
|
||||
ent, err := toLogEntryInternal(e, l, l.client.parent, 1)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
entries, hasInstrumentation := l.instrumentLogs([]*logpb.LogEntry{ent})
|
||||
if l.redirectOutputWriter != nil {
|
||||
for _, ent = range entries {
|
||||
err = serializeEntryToWriter(ent, l.redirectOutputWriter)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
_, err = l.client.client.WriteLogEntries(ctx, &logpb.WriteLogEntriesRequest{
|
||||
LogName: l.logName,
|
||||
Resource: l.commonResource,
|
||||
Labels: l.commonLabels,
|
||||
Entries: []*logpb.LogEntry{ent},
|
||||
LogName: l.logName,
|
||||
Resource: l.commonResource,
|
||||
Labels: l.commonLabels,
|
||||
Entries: entries,
|
||||
PartialSuccess: l.partialSuccess || hasInstrumentation,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
// Log buffers the Entry for output to the logging service. It never blocks.
|
||||
func (l *Logger) Log(e Entry) {
|
||||
ent, err := toLogEntryInternal(e, l.client, l.client.parent)
|
||||
l.logInternal(e, 1)
|
||||
}
|
||||
|
||||
func (l *Logger) logInternal(e Entry, skipLevels int) {
|
||||
ent, err := toLogEntryInternal(e, l, l.client.parent, skipLevels+1)
|
||||
if err != nil {
|
||||
l.client.error(err)
|
||||
return
|
||||
}
|
||||
if err := l.bundler.Add(ent, proto.Size(ent)); err != nil {
|
||||
l.client.error(err)
|
||||
|
||||
entries, _ := l.instrumentLogs([]*logpb.LogEntry{ent})
|
||||
if l.redirectOutputWriter != nil {
|
||||
for _, ent = range entries {
|
||||
err = serializeEntryToWriter(ent, l.redirectOutputWriter)
|
||||
if err != nil {
|
||||
l.client.error(err)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
for _, ent = range entries {
|
||||
if err := l.bundler.Add(ent, proto.Size(ent)); err != nil {
|
||||
l.client.error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -742,11 +701,16 @@ func (l *Logger) Flush() error {
|
|||
}
|
||||
|
||||
func (l *Logger) writeLogEntries(entries []*logpb.LogEntry) {
|
||||
partialSuccess := l.partialSuccess
|
||||
if len(entries) > 1 {
|
||||
partialSuccess = partialSuccess || hasInstrumentation(entries)
|
||||
}
|
||||
req := &logpb.WriteLogEntriesRequest{
|
||||
LogName: l.logName,
|
||||
Resource: l.commonResource,
|
||||
Labels: l.commonLabels,
|
||||
Entries: entries,
|
||||
LogName: l.logName,
|
||||
Resource: l.commonResource,
|
||||
Labels: l.commonLabels,
|
||||
Entries: entries,
|
||||
PartialSuccess: partialSuccess,
|
||||
}
|
||||
ctx, afterCall := l.ctxFunc()
|
||||
ctx, cancel := context.WithTimeout(ctx, defaultWriteTimeout)
|
||||
|
@ -767,7 +731,73 @@ func (l *Logger) writeLogEntries(entries []*logpb.LogEntry) {
|
|||
// (for example by calling SetFlags or SetPrefix).
|
||||
func (l *Logger) StandardLogger(s Severity) *log.Logger { return l.stdLoggers[s] }
|
||||
|
||||
var reCloudTraceContext = regexp.MustCompile(
|
||||
// StandardLoggerFromTemplate returns a Go Standard Logging API *log.Logger.
|
||||
//
|
||||
// The returned logger emits logs using logging.(*Logger).Log() with an entry
|
||||
// constructed from the provided template Entry struct.
|
||||
//
|
||||
// The caller is responsible for ensuring that the template Entry struct
|
||||
// does not change during the the lifetime of the returned *log.Logger.
|
||||
//
|
||||
// Prefer (*Logger).StandardLogger() which is more efficient if the template
|
||||
// only sets Severity.
|
||||
func (l *Logger) StandardLoggerFromTemplate(template *Entry) *log.Logger {
|
||||
return log.New(templateEntryWriter{l, template}, "", 0)
|
||||
}
|
||||
|
||||
func populateTraceInfo(e *Entry, req *http.Request) bool {
|
||||
if req == nil {
|
||||
if e.HTTPRequest != nil && e.HTTPRequest.Request != nil {
|
||||
req = e.HTTPRequest.Request
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
header := req.Header.Get("Traceparent")
|
||||
if header != "" {
|
||||
// do not use traceSampled flag defined by traceparent because
|
||||
// flag's definition differs from expected by Cloud Tracing
|
||||
traceID, spanID, _ := deconstructTraceParent(header)
|
||||
if traceID != "" {
|
||||
e.Trace = traceID
|
||||
e.SpanID = spanID
|
||||
return true
|
||||
}
|
||||
}
|
||||
header = req.Header.Get("X-Cloud-Trace-Context")
|
||||
if header != "" {
|
||||
traceID, spanID, traceSampled := deconstructXCloudTraceContext(header)
|
||||
if traceID != "" {
|
||||
e.Trace = traceID
|
||||
e.SpanID = spanID
|
||||
// enforce sampling if required
|
||||
e.TraceSampled = e.TraceSampled || traceSampled
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// As per format described at https://www.w3.org/TR/trace-context/#traceparent-header-field-values
|
||||
var validTraceParentExpression = regexp.MustCompile(`^(00)-([a-fA-F\d]{32})-([a-f\d]{16})-([a-fA-F\d]{2})$`)
|
||||
|
||||
func deconstructTraceParent(s string) (traceID, spanID string, traceSampled bool) {
|
||||
matches := validTraceParentExpression.FindStringSubmatch(s)
|
||||
if matches != nil {
|
||||
// regexp package does not support negative lookahead preventing all 0 validations
|
||||
if matches[2] == "00000000000000000000000000000000" || matches[3] == "0000000000000000" {
|
||||
return
|
||||
}
|
||||
flags, err := strconv.ParseInt(matches[4], 16, 16)
|
||||
if err == nil {
|
||||
traceSampled = (flags & 0x01) == 1
|
||||
}
|
||||
traceID, spanID = matches[2], matches[3]
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
var validXCloudTraceContext = regexp.MustCompile(
|
||||
// Matches on "TRACE_ID"
|
||||
`([a-f\d]+)?` +
|
||||
// Matches on "/SPAN_ID"
|
||||
|
@ -785,9 +815,11 @@ func deconstructXCloudTraceContext(s string) (traceID, spanID string, traceSampl
|
|||
// * traceID (optional): "105445aa7843bc8bf206b120001000"
|
||||
// * spanID (optional): "1"
|
||||
// * traceSampled (optional): true
|
||||
matches := reCloudTraceContext.FindStringSubmatch(s)
|
||||
matches := validXCloudTraceContext.FindStringSubmatch(s)
|
||||
|
||||
traceID, spanID, traceSampled = matches[1], matches[2], matches[3] == "1"
|
||||
if matches != nil {
|
||||
traceID, spanID, traceSampled = matches[1], matches[2], matches[3] == "1"
|
||||
}
|
||||
|
||||
if spanID == "0" {
|
||||
spanID = ""
|
||||
|
@ -798,10 +830,12 @@ func deconstructXCloudTraceContext(s string) (traceID, spanID string, traceSampl
|
|||
|
||||
// ToLogEntry takes an Entry structure and converts it to the LogEntry proto.
|
||||
// A parent can take any of the following forms:
|
||||
// projects/PROJECT_ID
|
||||
// folders/FOLDER_ID
|
||||
// billingAccounts/ACCOUNT_ID
|
||||
// organizations/ORG_ID
|
||||
//
|
||||
// projects/PROJECT_ID
|
||||
// folders/FOLDER_ID
|
||||
// billingAccounts/ACCOUNT_ID
|
||||
// organizations/ORG_ID
|
||||
//
|
||||
// for backwards compatibility, a string with no '/' is also allowed and is interpreted
|
||||
// as a project ID.
|
||||
//
|
||||
|
@ -811,11 +845,20 @@ func deconstructXCloudTraceContext(s string) (traceID, spanID string, traceSampl
|
|||
// Logger.LogSync are used, it is intended to be used together with direct call
|
||||
// to WriteLogEntries method.
|
||||
func ToLogEntry(e Entry, parent string) (*logpb.LogEntry, error) {
|
||||
// We have this method to support logging agents that need a bigger flexibility.
|
||||
return toLogEntryInternal(e, nil, makeParent(parent))
|
||||
var l Logger
|
||||
return l.ToLogEntry(e, parent)
|
||||
}
|
||||
|
||||
func toLogEntryInternal(e Entry, client *Client, parent string) (*logpb.LogEntry, error) {
|
||||
// ToLogEntry for Logger instance
|
||||
func (l *Logger) ToLogEntry(e Entry, parent string) (*logpb.LogEntry, error) {
|
||||
parent, err := makeParent(parent)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return toLogEntryInternal(e, l, parent, 1)
|
||||
}
|
||||
|
||||
func toLogEntryInternalImpl(e Entry, l *Logger, parent string, skipLevels int) (*logpb.LogEntry, error) {
|
||||
if e.LogName != "" {
|
||||
return nil, errors.New("logging: Entry.LogName should be not be set when writing")
|
||||
}
|
||||
|
@ -823,33 +866,34 @@ func toLogEntryInternal(e Entry, client *Client, parent string) (*logpb.LogEntry
|
|||
if t.IsZero() {
|
||||
t = now()
|
||||
}
|
||||
ts, err := ptypes.TimestampProto(t)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
ts := timestamppb.New(t)
|
||||
if l != nil && l.populateSourceLocation != DoNotPopulateSourceLocation && e.SourceLocation == nil {
|
||||
if l.populateSourceLocation == AlwaysPopulateSourceLocation ||
|
||||
l.populateSourceLocation == PopulateSourceLocationForDebugEntries && e.Severity == Severity(Debug) {
|
||||
// filename and line are captured for source code that calls
|
||||
// skipLevels up the goroutine calling stack + 1 for this func.
|
||||
pc, file, line, ok := runtime.Caller(skipLevels + 1)
|
||||
if ok {
|
||||
details := runtime.FuncForPC(pc)
|
||||
e.SourceLocation = &logpb.LogEntrySourceLocation{
|
||||
File: file,
|
||||
Function: details.Name(),
|
||||
Line: int64(line),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if e.Trace == "" && e.HTTPRequest != nil && e.HTTPRequest.Request != nil {
|
||||
traceHeader := e.HTTPRequest.Request.Header.Get("X-Cloud-Trace-Context")
|
||||
if traceHeader != "" {
|
||||
// Set to a relative resource name, as described at
|
||||
// https://cloud.google.com/appengine/docs/flexible/go/writing-application-logs.
|
||||
traceID, spanID, traceSampled := deconstructXCloudTraceContext(traceHeader)
|
||||
if traceID != "" {
|
||||
e.Trace = fmt.Sprintf("%s/traces/%s", parent, traceID)
|
||||
}
|
||||
if e.SpanID == "" {
|
||||
e.SpanID = spanID
|
||||
}
|
||||
|
||||
// If we previously hadn't set TraceSampled, let's retrieve it
|
||||
// from the HTTP request's header, as per:
|
||||
// https://cloud.google.com/trace/docs/troubleshooting#force-trace
|
||||
e.TraceSampled = e.TraceSampled || traceSampled
|
||||
if e.Trace == "" {
|
||||
populateTraceInfo(&e, nil)
|
||||
// format trace
|
||||
if e.Trace != "" && !strings.Contains(e.Trace, "/traces/") {
|
||||
e.Trace = fmt.Sprintf("%s/traces/%s", parent, e.Trace)
|
||||
}
|
||||
}
|
||||
req, err := fromHTTPRequest(e.HTTPRequest)
|
||||
if err != nil {
|
||||
if client != nil {
|
||||
client.error(err)
|
||||
if l != nil && l.client != nil {
|
||||
l.client.error(err)
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -870,6 +914,8 @@ func toLogEntryInternal(e Entry, client *Client, parent string) (*logpb.LogEntry
|
|||
switch p := e.Payload.(type) {
|
||||
case string:
|
||||
ent.Payload = &logpb.LogEntry_TextPayload{TextPayload: p}
|
||||
case *anypb.Any:
|
||||
ent.Payload = &logpb.LogEntry_ProtoPayload{ProtoPayload: p}
|
||||
default:
|
||||
s, err := toProtoStruct(p)
|
||||
if err != nil {
|
||||
|
@ -879,3 +925,83 @@ func toLogEntryInternal(e Entry, client *Client, parent string) (*logpb.LogEntry
|
|||
}
|
||||
return ent, nil
|
||||
}
|
||||
|
||||
// entry represents the fields of a logging.Entry that can be parsed by Logging agent.
|
||||
// See the mappings at https://cloud.google.com/logging/docs/structured-logging#special-payload-fields
|
||||
type structuredLogEntry struct {
|
||||
// JsonMessage map[string]interface{} `json:"message,omitempty"`
|
||||
// TextMessage string `json:"message,omitempty"`
|
||||
Message json.RawMessage `json:"message"`
|
||||
Severity string `json:"severity,omitempty"`
|
||||
HTTPRequest *logtypepb.HttpRequest `json:"httpRequest,omitempty"`
|
||||
Timestamp string `json:"timestamp,omitempty"`
|
||||
Labels map[string]string `json:"logging.googleapis.com/labels,omitempty"`
|
||||
InsertID string `json:"logging.googleapis.com/insertId,omitempty"`
|
||||
Operation *logpb.LogEntryOperation `json:"logging.googleapis.com/operation,omitempty"`
|
||||
SourceLocation *logpb.LogEntrySourceLocation `json:"logging.googleapis.com/sourceLocation,omitempty"`
|
||||
SpanID string `json:"logging.googleapis.com/spanId,omitempty"`
|
||||
Trace string `json:"logging.googleapis.com/trace,omitempty"`
|
||||
TraceSampled bool `json:"logging.googleapis.com/trace_sampled,omitempty"`
|
||||
}
|
||||
|
||||
func convertSnakeToMixedCase(snakeStr string) string {
|
||||
words := strings.Split(snakeStr, "_")
|
||||
mixedStr := words[0]
|
||||
for _, word := range words[1:] {
|
||||
mixedStr += strings.Title(word)
|
||||
}
|
||||
return mixedStr
|
||||
}
|
||||
|
||||
func (s structuredLogEntry) MarshalJSON() ([]byte, error) {
|
||||
// extract structuredLogEntry into json map
|
||||
type Alias structuredLogEntry
|
||||
var mapData map[string]interface{}
|
||||
data, err := json.Marshal(Alias(s))
|
||||
if err == nil {
|
||||
err = json.Unmarshal(data, &mapData)
|
||||
}
|
||||
if err == nil {
|
||||
// ensure all inner dicts use mixed case instead of snake case
|
||||
innerDicts := [3]string{"httpRequest", "logging.googleapis.com/operation", "logging.googleapis.com/sourceLocation"}
|
||||
for _, field := range innerDicts {
|
||||
if fieldData, ok := mapData[field]; ok {
|
||||
formattedFieldData := make(map[string]interface{})
|
||||
for k, v := range fieldData.(map[string]interface{}) {
|
||||
formattedFieldData[convertSnakeToMixedCase(k)] = v
|
||||
}
|
||||
mapData[field] = formattedFieldData
|
||||
}
|
||||
}
|
||||
// serialize json map into raw bytes
|
||||
return json.Marshal(mapData)
|
||||
}
|
||||
return data, err
|
||||
}
|
||||
|
||||
func serializeEntryToWriter(entry *logpb.LogEntry, w io.Writer) error {
|
||||
jsonifiedEntry := structuredLogEntry{
|
||||
Severity: entry.Severity.String(),
|
||||
HTTPRequest: entry.HttpRequest,
|
||||
Timestamp: entry.Timestamp.String(),
|
||||
Labels: entry.Labels,
|
||||
InsertID: entry.InsertId,
|
||||
Operation: entry.Operation,
|
||||
SourceLocation: entry.SourceLocation,
|
||||
SpanID: entry.SpanId,
|
||||
Trace: entry.Trace,
|
||||
TraceSampled: entry.TraceSampled,
|
||||
}
|
||||
var err error
|
||||
if entry.GetTextPayload() != "" {
|
||||
jsonifiedEntry.Message, err = json.Marshal(entry.GetTextPayload())
|
||||
} else if entry.GetJsonPayload() != nil {
|
||||
jsonifiedEntry.Message, err = json.Marshal(entry.GetJsonPayload().AsMap())
|
||||
} else {
|
||||
return ErrRedirectProtoPayloadNotSupported
|
||||
}
|
||||
if err == nil {
|
||||
err = json.NewEncoder(w).Encode(jsonifiedEntry)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
|
263
vendor/cloud.google.com/go/logging/resource.go
generated
vendored
263
vendor/cloud.google.com/go/logging/resource.go
generated
vendored
|
@ -15,12 +15,11 @@
|
|||
package logging
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"cloud.google.com/go/compute/metadata"
|
||||
"cloud.google.com/go/logging/internal"
|
||||
mrpb "google.golang.org/genproto/googleapis/api/monitoredres"
|
||||
)
|
||||
|
||||
|
@ -34,200 +33,224 @@ type commonResource struct{ *mrpb.MonitoredResource }
|
|||
|
||||
func (r commonResource) set(l *Logger) { l.commonResource = r.MonitoredResource }
|
||||
|
||||
var detectedResource struct {
|
||||
pb *mrpb.MonitoredResource
|
||||
once sync.Once
|
||||
type resource struct {
|
||||
pb *mrpb.MonitoredResource
|
||||
attrs internal.ResourceAttributesGetter
|
||||
once *sync.Once
|
||||
}
|
||||
|
||||
var detectedResource = &resource{
|
||||
attrs: internal.ResourceAttributes(),
|
||||
once: new(sync.Once),
|
||||
}
|
||||
|
||||
func (r *resource) metadataProjectID() string {
|
||||
return r.attrs.Metadata("project/project-id")
|
||||
}
|
||||
|
||||
func (r *resource) metadataZone() string {
|
||||
zone := r.attrs.Metadata("instance/zone")
|
||||
if zone != "" {
|
||||
return zone[strings.LastIndex(zone, "/")+1:]
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (r *resource) metadataRegion() string {
|
||||
region := r.attrs.Metadata("instance/region")
|
||||
if region != "" {
|
||||
return region[strings.LastIndex(region, "/")+1:]
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// isMetadataActive queries valid response on "/computeMetadata/v1/" URL
|
||||
func (r *resource) isMetadataActive() bool {
|
||||
data := r.attrs.Metadata("")
|
||||
return data != ""
|
||||
}
|
||||
|
||||
// isAppEngine returns true for both standard and flex
|
||||
func isAppEngine() bool {
|
||||
_, service := os.LookupEnv("GAE_SERVICE")
|
||||
_, version := os.LookupEnv("GAE_VERSION")
|
||||
_, instance := os.LookupEnv("GAE_INSTANCE")
|
||||
|
||||
return service && version && instance
|
||||
func (r *resource) isAppEngine() bool {
|
||||
service := r.attrs.EnvVar("GAE_SERVICE")
|
||||
version := r.attrs.EnvVar("GAE_VERSION")
|
||||
instance := r.attrs.EnvVar("GAE_INSTANCE")
|
||||
return service != "" && version != "" && instance != ""
|
||||
}
|
||||
|
||||
func detectAppEngineResource() *mrpb.MonitoredResource {
|
||||
projectID, err := metadata.ProjectID()
|
||||
if err != nil {
|
||||
return nil
|
||||
projectID := detectedResource.metadataProjectID()
|
||||
if projectID == "" {
|
||||
projectID = detectedResource.attrs.EnvVar("GOOGLE_CLOUD_PROJECT")
|
||||
}
|
||||
if projectID == "" {
|
||||
projectID = os.Getenv("GOOGLE_CLOUD_PROJECT")
|
||||
}
|
||||
zone, err := metadata.Zone()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
zone := detectedResource.metadataZone()
|
||||
service := detectedResource.attrs.EnvVar("GAE_SERVICE")
|
||||
version := detectedResource.attrs.EnvVar("GAE_VERSION")
|
||||
|
||||
return &mrpb.MonitoredResource{
|
||||
Type: "gae_app",
|
||||
Labels: map[string]string{
|
||||
"project_id": projectID,
|
||||
"module_id": os.Getenv("GAE_SERVICE"),
|
||||
"version_id": os.Getenv("GAE_VERSION"),
|
||||
"instance_id": os.Getenv("GAE_INSTANCE"),
|
||||
"runtime": os.Getenv("GAE_RUNTIME"),
|
||||
"zone": zone,
|
||||
"project_id": projectID,
|
||||
"module_id": service,
|
||||
"version_id": version,
|
||||
"zone": zone,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func isCloudFunction() bool {
|
||||
// Reserved envvars in older function runtimes, e.g. Node.js 8, Python 3.7 and Go 1.11.
|
||||
_, name := os.LookupEnv("FUNCTION_NAME")
|
||||
_, region := os.LookupEnv("FUNCTION_REGION")
|
||||
_, entry := os.LookupEnv("ENTRY_POINT")
|
||||
|
||||
// Reserved envvars in newer function runtimes.
|
||||
_, target := os.LookupEnv("FUNCTION_TARGET")
|
||||
_, signature := os.LookupEnv("FUNCTION_SIGNATURE_TYPE")
|
||||
_, service := os.LookupEnv("K_SERVICE")
|
||||
return (name && region && entry) || (target && signature && service)
|
||||
func (r *resource) isCloudFunction() bool {
|
||||
target := r.attrs.EnvVar("FUNCTION_TARGET")
|
||||
signature := r.attrs.EnvVar("FUNCTION_SIGNATURE_TYPE")
|
||||
// note that this envvar is also present in Cloud Run environments
|
||||
service := r.attrs.EnvVar("K_SERVICE")
|
||||
return target != "" && signature != "" && service != ""
|
||||
}
|
||||
|
||||
func detectCloudFunction() *mrpb.MonitoredResource {
|
||||
projectID, err := metadata.ProjectID()
|
||||
if err != nil {
|
||||
projectID := detectedResource.metadataProjectID()
|
||||
if projectID == "" {
|
||||
return nil
|
||||
}
|
||||
zone, err := metadata.Zone()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
// Newer functions runtimes store name in K_SERVICE.
|
||||
functionName, exists := os.LookupEnv("K_SERVICE")
|
||||
if !exists {
|
||||
functionName, _ = os.LookupEnv("FUNCTION_NAME")
|
||||
}
|
||||
region := detectedResource.metadataRegion()
|
||||
functionName := detectedResource.attrs.EnvVar("K_SERVICE")
|
||||
return &mrpb.MonitoredResource{
|
||||
Type: "cloud_function",
|
||||
Labels: map[string]string{
|
||||
"project_id": projectID,
|
||||
"region": regionFromZone(zone),
|
||||
"region": region,
|
||||
"function_name": functionName,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func isCloudRun() bool {
|
||||
_, config := os.LookupEnv("K_CONFIGURATION")
|
||||
_, service := os.LookupEnv("K_SERVICE")
|
||||
_, revision := os.LookupEnv("K_REVISION")
|
||||
return config && service && revision
|
||||
func (r *resource) isCloudRun() bool {
|
||||
config := r.attrs.EnvVar("K_CONFIGURATION")
|
||||
// note that this envvar is also present in Cloud Function environments
|
||||
service := r.attrs.EnvVar("K_SERVICE")
|
||||
revision := r.attrs.EnvVar("K_REVISION")
|
||||
return config != "" && service != "" && revision != ""
|
||||
}
|
||||
|
||||
func detectCloudRunResource() *mrpb.MonitoredResource {
|
||||
projectID, err := metadata.ProjectID()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
zone, err := metadata.Zone()
|
||||
if err != nil {
|
||||
projectID := detectedResource.metadataProjectID()
|
||||
if projectID == "" {
|
||||
return nil
|
||||
}
|
||||
region := detectedResource.metadataRegion()
|
||||
config := detectedResource.attrs.EnvVar("K_CONFIGURATION")
|
||||
service := detectedResource.attrs.EnvVar("K_SERVICE")
|
||||
revision := detectedResource.attrs.EnvVar("K_REVISION")
|
||||
return &mrpb.MonitoredResource{
|
||||
Type: "cloud_run_revision",
|
||||
Labels: map[string]string{
|
||||
"project_id": projectID,
|
||||
"location": regionFromZone(zone),
|
||||
"service_name": os.Getenv("K_SERVICE"),
|
||||
"revision_name": os.Getenv("K_REVISION"),
|
||||
"configuration_name": os.Getenv("K_CONFIGURATION"),
|
||||
"location": region,
|
||||
"service_name": service,
|
||||
"revision_name": revision,
|
||||
"configuration_name": config,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func isKubernetesEngine() bool {
|
||||
clusterName, err := metadata.InstanceAttributeValue("cluster-name")
|
||||
// Note: InstanceAttributeValue can return "", nil
|
||||
if err != nil || clusterName == "" {
|
||||
func (r *resource) isKubernetesEngine() bool {
|
||||
clusterName := r.attrs.Metadata("instance/attributes/cluster-name")
|
||||
if clusterName == "" {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func detectKubernetesResource() *mrpb.MonitoredResource {
|
||||
projectID, err := metadata.ProjectID()
|
||||
if err != nil {
|
||||
projectID := detectedResource.metadataProjectID()
|
||||
if projectID == "" {
|
||||
return nil
|
||||
}
|
||||
zone, err := metadata.Zone()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
clusterName, err := metadata.InstanceAttributeValue("cluster-name")
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
namespaceBytes, err := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
|
||||
namespaceName := ""
|
||||
if err == nil {
|
||||
namespaceName = string(namespaceBytes)
|
||||
zone := detectedResource.metadataZone()
|
||||
clusterName := detectedResource.attrs.Metadata("instance/attributes/cluster-name")
|
||||
namespaceName := detectedResource.attrs.ReadAll("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
|
||||
if namespaceName == "" {
|
||||
// if automountServiceAccountToken is disabled allow to customize
|
||||
// the namespace via environment
|
||||
namespaceName = detectedResource.attrs.EnvVar("NAMESPACE_NAME")
|
||||
}
|
||||
// note: if deployment customizes hostname, HOSTNAME envvar will have invalid content
|
||||
podName := detectedResource.attrs.EnvVar("HOSTNAME")
|
||||
// there is no way to derive container name from within container; use custom envvar if available
|
||||
containerName := detectedResource.attrs.EnvVar("CONTAINER_NAME")
|
||||
return &mrpb.MonitoredResource{
|
||||
Type: "k8s_container",
|
||||
Labels: map[string]string{
|
||||
"cluster_name": clusterName,
|
||||
"location": zone,
|
||||
"project_id": projectID,
|
||||
"pod_name": os.Getenv("HOSTNAME"),
|
||||
"pod_name": podName,
|
||||
"namespace_name": namespaceName,
|
||||
// To get the `container_name` label, users need to explicitly provide it.
|
||||
"container_name": os.Getenv("CONTAINER_NAME"),
|
||||
"container_name": containerName,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func detectGCEResource() *mrpb.MonitoredResource {
|
||||
projectID, err := metadata.ProjectID()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
id, err := metadata.InstanceID()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
zone, err := metadata.Zone()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
name, err := metadata.InstanceName()
|
||||
if err != nil {
|
||||
func (r *resource) isComputeEngine() bool {
|
||||
preempted := r.attrs.Metadata("instance/preempted")
|
||||
platform := r.attrs.Metadata("instance/cpu-platform")
|
||||
appBucket := r.attrs.Metadata("instance/attributes/gae_app_bucket")
|
||||
return preempted != "" && platform != "" && appBucket == ""
|
||||
}
|
||||
|
||||
func detectComputeEngineResource() *mrpb.MonitoredResource {
|
||||
projectID := detectedResource.metadataProjectID()
|
||||
if projectID == "" {
|
||||
return nil
|
||||
}
|
||||
id := detectedResource.attrs.Metadata("instance/id")
|
||||
zone := detectedResource.metadataZone()
|
||||
return &mrpb.MonitoredResource{
|
||||
Type: "gce_instance",
|
||||
Labels: map[string]string{
|
||||
"project_id": projectID,
|
||||
"instance_id": id,
|
||||
"instance_name": name,
|
||||
"zone": zone,
|
||||
"project_id": projectID,
|
||||
"instance_id": id,
|
||||
"zone": zone,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func detectResource() *mrpb.MonitoredResource {
|
||||
detectedResource.once.Do(func() {
|
||||
switch {
|
||||
// AppEngine, Functions, CloudRun, Kubernetes are detected first,
|
||||
// as metadata.OnGCE() erroneously returns true on these runtimes.
|
||||
case isAppEngine():
|
||||
detectedResource.pb = detectAppEngineResource()
|
||||
case isCloudFunction():
|
||||
detectedResource.pb = detectCloudFunction()
|
||||
case isCloudRun():
|
||||
detectedResource.pb = detectCloudRunResource()
|
||||
case isKubernetesEngine():
|
||||
detectedResource.pb = detectKubernetesResource()
|
||||
case metadata.OnGCE():
|
||||
detectedResource.pb = detectGCEResource()
|
||||
if detectedResource.isMetadataActive() {
|
||||
name := systemProductName()
|
||||
switch {
|
||||
case name == "Google App Engine", detectedResource.isAppEngine():
|
||||
detectedResource.pb = detectAppEngineResource()
|
||||
case name == "Google Cloud Functions", detectedResource.isCloudFunction():
|
||||
detectedResource.pb = detectCloudFunction()
|
||||
case name == "Google Cloud Run", detectedResource.isCloudRun():
|
||||
detectedResource.pb = detectCloudRunResource()
|
||||
// cannot use name validation for GKE and GCE because
|
||||
// both of them set product name to "Google Compute Engine"
|
||||
case detectedResource.isKubernetesEngine():
|
||||
detectedResource.pb = detectKubernetesResource()
|
||||
case detectedResource.isComputeEngine():
|
||||
detectedResource.pb = detectComputeEngineResource()
|
||||
}
|
||||
}
|
||||
})
|
||||
return detectedResource.pb
|
||||
}
|
||||
|
||||
// systemProductName reads resource type on the Linux-based environments such as
|
||||
// Cloud Functions, Cloud Run, GKE, GCE, GAE, etc.
|
||||
func systemProductName() string {
|
||||
if runtime.GOOS != "linux" {
|
||||
// We don't have any non-Linux clues available, at least yet.
|
||||
return ""
|
||||
}
|
||||
slurp := detectedResource.attrs.ReadAll("/sys/class/dmi/id/product_name")
|
||||
return strings.TrimSpace(slurp)
|
||||
}
|
||||
|
||||
var resourceInfo = map[string]struct{ rtype, label string }{
|
||||
"organizations": {"organization", "organization_id"},
|
||||
"folders": {"folder", "folder_id"},
|
||||
|
@ -250,14 +273,6 @@ func monitoredResource(parent string) *mrpb.MonitoredResource {
|
|||
}
|
||||
}
|
||||
|
||||
func regionFromZone(zone string) string {
|
||||
cutoff := strings.LastIndex(zone, "-")
|
||||
if cutoff > 0 {
|
||||
return zone[:cutoff]
|
||||
}
|
||||
return zone
|
||||
}
|
||||
|
||||
func globalResource(projectID string) *mrpb.MonitoredResource {
|
||||
return &mrpb.MonitoredResource{
|
||||
Type: "global",
|
||||
|
|
26
vendor/cloud.google.com/go/longrunning/CHANGES.md
generated
vendored
Normal file
26
vendor/cloud.google.com/go/longrunning/CHANGES.md
generated
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Changes
|
||||
|
||||
## [0.4.1](https://github.com/googleapis/google-cloud-go/compare/longrunning/v0.4.0...longrunning/v0.4.1) (2023-02-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **longrunning:** Properly parse errors with apierror ([#7392](https://github.com/googleapis/google-cloud-go/issues/7392)) ([e768e48](https://github.com/googleapis/google-cloud-go/commit/e768e487e10b197ba42a2339014136d066190610))
|
||||
|
||||
## [0.4.0](https://github.com/googleapis/google-cloud-go/compare/longrunning/v0.3.0...longrunning/v0.4.0) (2023-01-04)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **longrunning:** Add REST client ([06a54a1](https://github.com/googleapis/google-cloud-go/commit/06a54a16a5866cce966547c51e203b9e09a25bc0))
|
||||
|
||||
## [0.3.0](https://github.com/googleapis/google-cloud-go/compare/longrunning/v0.2.1...longrunning/v0.3.0) (2022-11-03)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **longrunning:** rewrite signatures in terms of new location ([3c4b2b3](https://github.com/googleapis/google-cloud-go/commit/3c4b2b34565795537aac1661e6af2442437e34ad))
|
||||
|
||||
## v0.1.0
|
||||
|
||||
Initial release.
|
202
vendor/cloud.google.com/go/longrunning/LICENSE
generated
vendored
Normal file
202
vendor/cloud.google.com/go/longrunning/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
26
vendor/cloud.google.com/go/longrunning/README.md
generated
vendored
Normal file
26
vendor/cloud.google.com/go/longrunning/README.md
generated
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
# longrunning
|
||||
|
||||
[](https://pkg.go.dev/cloud.google.com/go/longrunning)
|
||||
|
||||
A helper library for working with long running operations.
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
go get cloud.google.com/go/longrunning
|
||||
```
|
||||
|
||||
## Go Version Support
|
||||
|
||||
See the [Go Versions Supported](https://github.com/googleapis/google-cloud-go#go-versions-supported)
|
||||
section in the root directory's README.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome. Please, see the [CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md)
|
||||
document for details.
|
||||
|
||||
Please note that this project is released with a Contributor Code of Conduct.
|
||||
By participating in this project you agree to abide by its terms. See
|
||||
[Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct)
|
||||
for more information.
|
199
vendor/cloud.google.com/go/longrunning/autogen/doc.go
generated
vendored
Normal file
199
vendor/cloud.google.com/go/longrunning/autogen/doc.go
generated
vendored
Normal file
|
@ -0,0 +1,199 @@
|
|||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
|
||||
|
||||
// Package longrunning is an auto-generated package for the
|
||||
// Long Running Operations API.
|
||||
//
|
||||
// NOTE: This package is in alpha. It is not stable, and is likely to change.
|
||||
//
|
||||
// # General documentation
|
||||
//
|
||||
// For information about setting deadlines, reusing contexts, and more
|
||||
// please visit https://pkg.go.dev/cloud.google.com/go.
|
||||
//
|
||||
// # Example usage
|
||||
//
|
||||
// To get started with this package, create a client.
|
||||
//
|
||||
// ctx := context.Background()
|
||||
// // This snippet has been automatically generated and should be regarded as a code template only.
|
||||
// // It will require modifications to work:
|
||||
// // - It may require correct/in-range values for request initialization.
|
||||
// // - It may require specifying regional endpoints when creating the service client as shown in:
|
||||
// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
|
||||
// c, err := longrunning.NewOperationsClient(ctx)
|
||||
// if err != nil {
|
||||
// // TODO: Handle error.
|
||||
// }
|
||||
// defer c.Close()
|
||||
//
|
||||
// The client will use your default application credentials. Clients should be reused instead of created as needed.
|
||||
// The methods of Client are safe for concurrent use by multiple goroutines.
|
||||
// The returned client must be Closed when it is done being used.
|
||||
//
|
||||
// # Using the Client
|
||||
//
|
||||
// The following is an example of making an API call with the newly created client.
|
||||
//
|
||||
// ctx := context.Background()
|
||||
// // This snippet has been automatically generated and should be regarded as a code template only.
|
||||
// // It will require modifications to work:
|
||||
// // - It may require correct/in-range values for request initialization.
|
||||
// // - It may require specifying regional endpoints when creating the service client as shown in:
|
||||
// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
|
||||
// c, err := longrunning.NewOperationsClient(ctx)
|
||||
// if err != nil {
|
||||
// // TODO: Handle error.
|
||||
// }
|
||||
// defer c.Close()
|
||||
//
|
||||
// req := &longrunningpb.ListOperationsRequest{
|
||||
// // TODO: Fill request struct fields.
|
||||
// // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest.
|
||||
// }
|
||||
// it := c.ListOperations(ctx, req)
|
||||
// for {
|
||||
// resp, err := it.Next()
|
||||
// if err == iterator.Done {
|
||||
// break
|
||||
// }
|
||||
// if err != nil {
|
||||
// // TODO: Handle error.
|
||||
// }
|
||||
// // TODO: Use resp.
|
||||
// _ = resp
|
||||
// }
|
||||
//
|
||||
// # Use of Context
|
||||
//
|
||||
// The ctx passed to NewOperationsClient is used for authentication requests and
|
||||
// for creating the underlying connection, but is not used for subsequent calls.
|
||||
// Individual methods on the client use the ctx given to them.
|
||||
//
|
||||
// To close the open connection, use the Close() method.
|
||||
package longrunning // import "cloud.google.com/go/longrunning/autogen"
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"unicode"
|
||||
|
||||
"google.golang.org/api/option"
|
||||
"google.golang.org/grpc/metadata"
|
||||
)
|
||||
|
||||
// For more information on implementing a client constructor hook, see
|
||||
// https://github.com/googleapis/google-cloud-go/wiki/Customizing-constructors.
|
||||
type clientHookParams struct{}
|
||||
type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error)
|
||||
|
||||
var versionClient string
|
||||
|
||||
func getVersionClient() string {
|
||||
if versionClient == "" {
|
||||
return "UNKNOWN"
|
||||
}
|
||||
return versionClient
|
||||
}
|
||||
|
||||
func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context {
|
||||
out, _ := metadata.FromOutgoingContext(ctx)
|
||||
out = out.Copy()
|
||||
for _, md := range mds {
|
||||
for k, v := range md {
|
||||
out[k] = append(out[k], v...)
|
||||
}
|
||||
}
|
||||
return metadata.NewOutgoingContext(ctx, out)
|
||||
}
|
||||
|
||||
func checkDisableDeadlines() (bool, error) {
|
||||
raw, ok := os.LookupEnv("GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE")
|
||||
if !ok {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
b, err := strconv.ParseBool(raw)
|
||||
return b, err
|
||||
}
|
||||
|
||||
// DefaultAuthScopes reports the default set of authentication scopes to use with this package.
|
||||
func DefaultAuthScopes() []string {
|
||||
return []string{
|
||||
"",
|
||||
}
|
||||
}
|
||||
|
||||
// versionGo returns the Go runtime version. The returned string
|
||||
// has no whitespace, suitable for reporting in header.
|
||||
func versionGo() string {
|
||||
const develPrefix = "devel +"
|
||||
|
||||
s := runtime.Version()
|
||||
if strings.HasPrefix(s, develPrefix) {
|
||||
s = s[len(develPrefix):]
|
||||
if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 {
|
||||
s = s[:p]
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
notSemverRune := func(r rune) bool {
|
||||
return !strings.ContainsRune("0123456789.", r)
|
||||
}
|
||||
|
||||
if strings.HasPrefix(s, "go1") {
|
||||
s = s[2:]
|
||||
var prerelease string
|
||||
if p := strings.IndexFunc(s, notSemverRune); p >= 0 {
|
||||
s, prerelease = s[:p], s[p:]
|
||||
}
|
||||
if strings.HasSuffix(s, ".") {
|
||||
s += "0"
|
||||
} else if strings.Count(s, ".") < 2 {
|
||||
s += ".0"
|
||||
}
|
||||
if prerelease != "" {
|
||||
s += "-" + prerelease
|
||||
}
|
||||
return s
|
||||
}
|
||||
return "UNKNOWN"
|
||||
}
|
||||
|
||||
// maybeUnknownEnum wraps the given proto-JSON parsing error if it is the result
|
||||
// of receiving an unknown enum value.
|
||||
func maybeUnknownEnum(err error) error {
|
||||
if strings.Contains(err.Error(), "invalid value for enum type") {
|
||||
err = fmt.Errorf("received an unknown enum value; a later version of the library may support it: %w", err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// buildHeaders extracts metadata from the outgoing context, joins it with any other
|
||||
// given metadata, and converts them into a http.Header.
|
||||
func buildHeaders(ctx context.Context, mds ...metadata.MD) http.Header {
|
||||
if cmd, ok := metadata.FromOutgoingContext(ctx); ok {
|
||||
mds = append(mds, cmd)
|
||||
}
|
||||
md := metadata.Join(mds...)
|
||||
return http.Header(md)
|
||||
}
|
30
vendor/cloud.google.com/go/longrunning/autogen/from_conn.go
generated
vendored
Normal file
30
vendor/cloud.google.com/go/longrunning/autogen/from_conn.go
generated
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
// Copyright 2020, 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.
|
||||
|
||||
package longrunning
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"google.golang.org/api/option"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
// InternalFromConn is for use by the Google Cloud Libraries only.
|
||||
//
|
||||
// Deprecated. Use `NewOperationsClient(ctx, option.WithGRPCConn(conn))` instead.
|
||||
func InternalFromConn(conn *grpc.ClientConn) *OperationsClient {
|
||||
c, _ := NewOperationsClient(context.Background(), option.WithGRPCConn(conn))
|
||||
return c
|
||||
}
|
73
vendor/cloud.google.com/go/longrunning/autogen/gapic_metadata.json
generated
vendored
Normal file
73
vendor/cloud.google.com/go/longrunning/autogen/gapic_metadata.json
generated
vendored
Normal file
|
@ -0,0 +1,73 @@
|
|||
{
|
||||
"schema": "1.0",
|
||||
"comment": "This file maps proto services/RPCs to the corresponding library clients/methods.",
|
||||
"language": "go",
|
||||
"protoPackage": "google.longrunning",
|
||||
"libraryPackage": "cloud.google.com/go/longrunning/autogen",
|
||||
"services": {
|
||||
"Operations": {
|
||||
"clients": {
|
||||
"grpc": {
|
||||
"libraryClient": "OperationsClient",
|
||||
"rpcs": {
|
||||
"CancelOperation": {
|
||||
"methods": [
|
||||
"CancelOperation"
|
||||
]
|
||||
},
|
||||
"DeleteOperation": {
|
||||
"methods": [
|
||||
"DeleteOperation"
|
||||
]
|
||||
},
|
||||
"GetOperation": {
|
||||
"methods": [
|
||||
"GetOperation"
|
||||
]
|
||||
},
|
||||
"ListOperations": {
|
||||
"methods": [
|
||||
"ListOperations"
|
||||
]
|
||||
},
|
||||
"WaitOperation": {
|
||||
"methods": [
|
||||
"WaitOperation"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"rest": {
|
||||
"libraryClient": "OperationsClient",
|
||||
"rpcs": {
|
||||
"CancelOperation": {
|
||||
"methods": [
|
||||
"CancelOperation"
|
||||
]
|
||||
},
|
||||
"DeleteOperation": {
|
||||
"methods": [
|
||||
"DeleteOperation"
|
||||
]
|
||||
},
|
||||
"GetOperation": {
|
||||
"methods": [
|
||||
"GetOperation"
|
||||
]
|
||||
},
|
||||
"ListOperations": {
|
||||
"methods": [
|
||||
"ListOperations"
|
||||
]
|
||||
},
|
||||
"WaitOperation": {
|
||||
"methods": [
|
||||
"WaitOperation"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
24
vendor/cloud.google.com/go/longrunning/autogen/info.go
generated
vendored
Normal file
24
vendor/cloud.google.com/go/longrunning/autogen/info.go
generated
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
// Copyright 2020 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.
|
||||
|
||||
package longrunning
|
||||
|
||||
// SetGoogleClientInfo sets the name and version of the application in
|
||||
// the `x-goog-api-client` header passed on each request. Also passes any
|
||||
// provided key-value pairs. Intended for use by Google-written clients.
|
||||
//
|
||||
// Internal use only.
|
||||
func (c *OperationsClient) SetGoogleClientInfo(keyval ...string) {
|
||||
c.setGoogleClientInfo(keyval...)
|
||||
}
|
|
@ -15,10 +15,10 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.12.2
|
||||
// protoc v3.21.12
|
||||
// source: google/longrunning/operations.proto
|
||||
|
||||
package longrunning
|
||||
package longrunningpb
|
||||
|
||||
import (
|
||||
context "context"
|
||||
|
@ -70,6 +70,7 @@ type Operation struct {
|
|||
// If `done` == `true`, exactly one of `error` or `response` is set.
|
||||
//
|
||||
// Types that are assignable to Result:
|
||||
//
|
||||
// *Operation_Error
|
||||
// *Operation_Response
|
||||
Result isOperation_Result `protobuf_oneof:"result"`
|
||||
|
@ -519,13 +520,13 @@ func (x *WaitOperationRequest) GetTimeout() *durationpb.Duration {
|
|||
//
|
||||
// Example:
|
||||
//
|
||||
// rpc LongRunningRecognize(LongRunningRecognizeRequest)
|
||||
// returns (google.longrunning.Operation) {
|
||||
// option (google.longrunning.operation_info) = {
|
||||
// response_type: "LongRunningRecognizeResponse"
|
||||
// metadata_type: "LongRunningRecognizeMetadata"
|
||||
// };
|
||||
// }
|
||||
// rpc LongRunningRecognize(LongRunningRecognizeRequest)
|
||||
// returns (google.longrunning.Operation) {
|
||||
// option (google.longrunning.operation_info) = {
|
||||
// response_type: "LongRunningRecognizeResponse"
|
||||
// metadata_type: "LongRunningRecognizeMetadata"
|
||||
// };
|
||||
// }
|
||||
type OperationInfo struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
917
vendor/cloud.google.com/go/longrunning/autogen/operations_client.go
generated
vendored
Normal file
917
vendor/cloud.google.com/go/longrunning/autogen/operations_client.go
generated
vendored
Normal file
|
@ -0,0 +1,917 @@
|
|||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Code generated by protoc-gen-go_gapic. DO NOT EDIT.
|
||||
|
||||
package longrunning
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"math"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"time"
|
||||
|
||||
longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb"
|
||||
gax "github.com/googleapis/gax-go/v2"
|
||||
"google.golang.org/api/googleapi"
|
||||
"google.golang.org/api/iterator"
|
||||
"google.golang.org/api/option"
|
||||
"google.golang.org/api/option/internaloption"
|
||||
gtransport "google.golang.org/api/transport/grpc"
|
||||
httptransport "google.golang.org/api/transport/http"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/protobuf/encoding/protojson"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
var newOperationsClientHook clientHook
|
||||
|
||||
// OperationsCallOptions contains the retry settings for each method of OperationsClient.
|
||||
type OperationsCallOptions struct {
|
||||
ListOperations []gax.CallOption
|
||||
GetOperation []gax.CallOption
|
||||
DeleteOperation []gax.CallOption
|
||||
CancelOperation []gax.CallOption
|
||||
WaitOperation []gax.CallOption
|
||||
}
|
||||
|
||||
func defaultOperationsGRPCClientOptions() []option.ClientOption {
|
||||
return []option.ClientOption{
|
||||
internaloption.WithDefaultEndpoint("longrunning.googleapis.com:443"),
|
||||
internaloption.WithDefaultMTLSEndpoint("longrunning.mtls.googleapis.com:443"),
|
||||
internaloption.WithDefaultAudience("https://longrunning.googleapis.com/"),
|
||||
internaloption.WithDefaultScopes(DefaultAuthScopes()...),
|
||||
internaloption.EnableJwtWithScope(),
|
||||
option.WithGRPCDialOption(grpc.WithDefaultCallOptions(
|
||||
grpc.MaxCallRecvMsgSize(math.MaxInt32))),
|
||||
}
|
||||
}
|
||||
|
||||
func defaultOperationsCallOptions() *OperationsCallOptions {
|
||||
return &OperationsCallOptions{
|
||||
ListOperations: []gax.CallOption{
|
||||
gax.WithRetry(func() gax.Retryer {
|
||||
return gax.OnCodes([]codes.Code{
|
||||
codes.Unavailable,
|
||||
}, gax.Backoff{
|
||||
Initial: 500 * time.Millisecond,
|
||||
Max: 10000 * time.Millisecond,
|
||||
Multiplier: 2.00,
|
||||
})
|
||||
}),
|
||||
},
|
||||
GetOperation: []gax.CallOption{
|
||||
gax.WithRetry(func() gax.Retryer {
|
||||
return gax.OnCodes([]codes.Code{
|
||||
codes.Unavailable,
|
||||
}, gax.Backoff{
|
||||
Initial: 500 * time.Millisecond,
|
||||
Max: 10000 * time.Millisecond,
|
||||
Multiplier: 2.00,
|
||||
})
|
||||
}),
|
||||
},
|
||||
DeleteOperation: []gax.CallOption{
|
||||
gax.WithRetry(func() gax.Retryer {
|
||||
return gax.OnCodes([]codes.Code{
|
||||
codes.Unavailable,
|
||||
}, gax.Backoff{
|
||||
Initial: 500 * time.Millisecond,
|
||||
Max: 10000 * time.Millisecond,
|
||||
Multiplier: 2.00,
|
||||
})
|
||||
}),
|
||||
},
|
||||
CancelOperation: []gax.CallOption{
|
||||
gax.WithRetry(func() gax.Retryer {
|
||||
return gax.OnCodes([]codes.Code{
|
||||
codes.Unavailable,
|
||||
}, gax.Backoff{
|
||||
Initial: 500 * time.Millisecond,
|
||||
Max: 10000 * time.Millisecond,
|
||||
Multiplier: 2.00,
|
||||
})
|
||||
}),
|
||||
},
|
||||
WaitOperation: []gax.CallOption{},
|
||||
}
|
||||
}
|
||||
|
||||
func defaultOperationsRESTCallOptions() *OperationsCallOptions {
|
||||
return &OperationsCallOptions{
|
||||
ListOperations: []gax.CallOption{
|
||||
gax.WithRetry(func() gax.Retryer {
|
||||
return gax.OnHTTPCodes(gax.Backoff{
|
||||
Initial: 500 * time.Millisecond,
|
||||
Max: 10000 * time.Millisecond,
|
||||
Multiplier: 2.00,
|
||||
},
|
||||
http.StatusServiceUnavailable)
|
||||
}),
|
||||
},
|
||||
GetOperation: []gax.CallOption{
|
||||
gax.WithRetry(func() gax.Retryer {
|
||||
return gax.OnHTTPCodes(gax.Backoff{
|
||||
Initial: 500 * time.Millisecond,
|
||||
Max: 10000 * time.Millisecond,
|
||||
Multiplier: 2.00,
|
||||
},
|
||||
http.StatusServiceUnavailable)
|
||||
}),
|
||||
},
|
||||
DeleteOperation: []gax.CallOption{
|
||||
gax.WithRetry(func() gax.Retryer {
|
||||
return gax.OnHTTPCodes(gax.Backoff{
|
||||
Initial: 500 * time.Millisecond,
|
||||
Max: 10000 * time.Millisecond,
|
||||
Multiplier: 2.00,
|
||||
},
|
||||
http.StatusServiceUnavailable)
|
||||
}),
|
||||
},
|
||||
CancelOperation: []gax.CallOption{
|
||||
gax.WithRetry(func() gax.Retryer {
|
||||
return gax.OnHTTPCodes(gax.Backoff{
|
||||
Initial: 500 * time.Millisecond,
|
||||
Max: 10000 * time.Millisecond,
|
||||
Multiplier: 2.00,
|
||||
},
|
||||
http.StatusServiceUnavailable)
|
||||
}),
|
||||
},
|
||||
WaitOperation: []gax.CallOption{},
|
||||
}
|
||||
}
|
||||
|
||||
// internalOperationsClient is an interface that defines the methods available from Long Running Operations API.
|
||||
type internalOperationsClient interface {
|
||||
Close() error
|
||||
setGoogleClientInfo(...string)
|
||||
Connection() *grpc.ClientConn
|
||||
ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator
|
||||
GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error)
|
||||
DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error
|
||||
CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error
|
||||
WaitOperation(context.Context, *longrunningpb.WaitOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error)
|
||||
}
|
||||
|
||||
// OperationsClient is a client for interacting with Long Running Operations API.
|
||||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||||
//
|
||||
// Manages long-running operations with an API service.
|
||||
//
|
||||
// When an API method normally takes long time to complete, it can be designed
|
||||
// to return Operation to the client, and the client can use this
|
||||
// interface to receive the real response asynchronously by polling the
|
||||
// operation resource, or pass the operation resource to another API (such as
|
||||
// Google Cloud Pub/Sub API) to receive the response. Any API service that
|
||||
// returns long-running operations should implement the Operations interface
|
||||
// so developers can have a consistent client experience.
|
||||
type OperationsClient struct {
|
||||
// The internal transport-dependent client.
|
||||
internalClient internalOperationsClient
|
||||
|
||||
// The call options for this service.
|
||||
CallOptions *OperationsCallOptions
|
||||
}
|
||||
|
||||
// Wrapper methods routed to the internal client.
|
||||
|
||||
// Close closes the connection to the API service. The user should invoke this when
|
||||
// the client is no longer required.
|
||||
func (c *OperationsClient) Close() error {
|
||||
return c.internalClient.Close()
|
||||
}
|
||||
|
||||
// setGoogleClientInfo sets the name and version of the application in
|
||||
// the `x-goog-api-client` header passed on each request. Intended for
|
||||
// use by Google-written clients.
|
||||
func (c *OperationsClient) setGoogleClientInfo(keyval ...string) {
|
||||
c.internalClient.setGoogleClientInfo(keyval...)
|
||||
}
|
||||
|
||||
// Connection returns a connection to the API service.
|
||||
//
|
||||
// Deprecated: Connections are now pooled so this method does not always
|
||||
// return the same resource.
|
||||
func (c *OperationsClient) Connection() *grpc.ClientConn {
|
||||
return c.internalClient.Connection()
|
||||
}
|
||||
|
||||
// ListOperations lists operations that match the specified filter in the request. If the
|
||||
// server doesn’t support this method, it returns UNIMPLEMENTED.
|
||||
//
|
||||
// NOTE: the name binding allows API services to override the binding
|
||||
// to use different resource name schemes, such as users/*/operations. To
|
||||
// override the binding, API services can add a binding such as
|
||||
// "/v1/{name=users/*}/operations" to their service configuration.
|
||||
// For backwards compatibility, the default name includes the operations
|
||||
// collection id, however overriding users must ensure the name binding
|
||||
// is the parent resource, without the operations collection id.
|
||||
func (c *OperationsClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator {
|
||||
return c.internalClient.ListOperations(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// GetOperation gets the latest state of a long-running operation. Clients can use this
|
||||
// method to poll the operation result at intervals as recommended by the API
|
||||
// service.
|
||||
func (c *OperationsClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) {
|
||||
return c.internalClient.GetOperation(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// DeleteOperation deletes a long-running operation. This method indicates that the client is
|
||||
// no longer interested in the operation result. It does not cancel the
|
||||
// operation. If the server doesn’t support this method, it returns
|
||||
// google.rpc.Code.UNIMPLEMENTED.
|
||||
func (c *OperationsClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error {
|
||||
return c.internalClient.DeleteOperation(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// CancelOperation starts asynchronous cancellation on a long-running operation. The server
|
||||
// makes a best effort to cancel the operation, but success is not
|
||||
// guaranteed. If the server doesn’t support this method, it returns
|
||||
// google.rpc.Code.UNIMPLEMENTED. Clients can use
|
||||
// Operations.GetOperation or
|
||||
// other methods to check whether the cancellation succeeded or whether the
|
||||
// operation completed despite cancellation. On successful cancellation,
|
||||
// the operation is not deleted; instead, it becomes an operation with
|
||||
// an Operation.error value with a google.rpc.Status.code of 1,
|
||||
// corresponding to Code.CANCELLED.
|
||||
func (c *OperationsClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error {
|
||||
return c.internalClient.CancelOperation(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// WaitOperation waits until the specified long-running operation is done or reaches at most
|
||||
// a specified timeout, returning the latest state. If the operation is
|
||||
// already done, the latest state is immediately returned. If the timeout
|
||||
// specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
|
||||
// timeout is used. If the server does not support this method, it returns
|
||||
// google.rpc.Code.UNIMPLEMENTED.
|
||||
// Note that this method is on a best-effort basis. It may return the latest
|
||||
// state before the specified timeout (including immediately), meaning even an
|
||||
// immediate response is no guarantee that the operation is done.
|
||||
func (c *OperationsClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) {
|
||||
return c.internalClient.WaitOperation(ctx, req, opts...)
|
||||
}
|
||||
|
||||
// operationsGRPCClient is a client for interacting with Long Running Operations API over gRPC transport.
|
||||
//
|
||||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||||
type operationsGRPCClient struct {
|
||||
// Connection pool of gRPC connections to the service.
|
||||
connPool gtransport.ConnPool
|
||||
|
||||
// flag to opt out of default deadlines via GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE
|
||||
disableDeadlines bool
|
||||
|
||||
// Points back to the CallOptions field of the containing OperationsClient
|
||||
CallOptions **OperationsCallOptions
|
||||
|
||||
// The gRPC API client.
|
||||
operationsClient longrunningpb.OperationsClient
|
||||
|
||||
// The x-goog-* metadata to be sent with each request.
|
||||
xGoogMetadata metadata.MD
|
||||
}
|
||||
|
||||
// NewOperationsClient creates a new operations client based on gRPC.
|
||||
// The returned client must be Closed when it is done being used to clean up its underlying connections.
|
||||
//
|
||||
// Manages long-running operations with an API service.
|
||||
//
|
||||
// When an API method normally takes long time to complete, it can be designed
|
||||
// to return Operation to the client, and the client can use this
|
||||
// interface to receive the real response asynchronously by polling the
|
||||
// operation resource, or pass the operation resource to another API (such as
|
||||
// Google Cloud Pub/Sub API) to receive the response. Any API service that
|
||||
// returns long-running operations should implement the Operations interface
|
||||
// so developers can have a consistent client experience.
|
||||
func NewOperationsClient(ctx context.Context, opts ...option.ClientOption) (*OperationsClient, error) {
|
||||
clientOpts := defaultOperationsGRPCClientOptions()
|
||||
if newOperationsClientHook != nil {
|
||||
hookOpts, err := newOperationsClientHook(ctx, clientHookParams{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
clientOpts = append(clientOpts, hookOpts...)
|
||||
}
|
||||
|
||||
disableDeadlines, err := checkDisableDeadlines()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client := OperationsClient{CallOptions: defaultOperationsCallOptions()}
|
||||
|
||||
c := &operationsGRPCClient{
|
||||
connPool: connPool,
|
||||
disableDeadlines: disableDeadlines,
|
||||
operationsClient: longrunningpb.NewOperationsClient(connPool),
|
||||
CallOptions: &client.CallOptions,
|
||||
}
|
||||
c.setGoogleClientInfo()
|
||||
|
||||
client.internalClient = c
|
||||
|
||||
return &client, nil
|
||||
}
|
||||
|
||||
// Connection returns a connection to the API service.
|
||||
//
|
||||
// Deprecated: Connections are now pooled so this method does not always
|
||||
// return the same resource.
|
||||
func (c *operationsGRPCClient) Connection() *grpc.ClientConn {
|
||||
return c.connPool.Conn()
|
||||
}
|
||||
|
||||
// setGoogleClientInfo sets the name and version of the application in
|
||||
// the `x-goog-api-client` header passed on each request. Intended for
|
||||
// use by Google-written clients.
|
||||
func (c *operationsGRPCClient) setGoogleClientInfo(keyval ...string) {
|
||||
kv := append([]string{"gl-go", versionGo()}, keyval...)
|
||||
kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version)
|
||||
c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
|
||||
}
|
||||
|
||||
// Close closes the connection to the API service. The user should invoke this when
|
||||
// the client is no longer required.
|
||||
func (c *operationsGRPCClient) Close() error {
|
||||
return c.connPool.Close()
|
||||
}
|
||||
|
||||
// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.
|
||||
type operationsRESTClient struct {
|
||||
// The http endpoint to connect to.
|
||||
endpoint string
|
||||
|
||||
// The http client.
|
||||
httpClient *http.Client
|
||||
|
||||
// The x-goog-* metadata to be sent with each request.
|
||||
xGoogMetadata metadata.MD
|
||||
|
||||
// Points back to the CallOptions field of the containing OperationsClient
|
||||
CallOptions **OperationsCallOptions
|
||||
}
|
||||
|
||||
// NewOperationsRESTClient creates a new operations rest client.
|
||||
//
|
||||
// Manages long-running operations with an API service.
|
||||
//
|
||||
// When an API method normally takes long time to complete, it can be designed
|
||||
// to return Operation to the client, and the client can use this
|
||||
// interface to receive the real response asynchronously by polling the
|
||||
// operation resource, or pass the operation resource to another API (such as
|
||||
// Google Cloud Pub/Sub API) to receive the response. Any API service that
|
||||
// returns long-running operations should implement the Operations interface
|
||||
// so developers can have a consistent client experience.
|
||||
func NewOperationsRESTClient(ctx context.Context, opts ...option.ClientOption) (*OperationsClient, error) {
|
||||
clientOpts := append(defaultOperationsRESTClientOptions(), opts...)
|
||||
httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
callOpts := defaultOperationsRESTCallOptions()
|
||||
c := &operationsRESTClient{
|
||||
endpoint: endpoint,
|
||||
httpClient: httpClient,
|
||||
CallOptions: &callOpts,
|
||||
}
|
||||
c.setGoogleClientInfo()
|
||||
|
||||
return &OperationsClient{internalClient: c, CallOptions: callOpts}, nil
|
||||
}
|
||||
|
||||
func defaultOperationsRESTClientOptions() []option.ClientOption {
|
||||
return []option.ClientOption{
|
||||
internaloption.WithDefaultEndpoint("https://longrunning.googleapis.com"),
|
||||
internaloption.WithDefaultMTLSEndpoint("https://longrunning.mtls.googleapis.com"),
|
||||
internaloption.WithDefaultAudience("https://longrunning.googleapis.com/"),
|
||||
internaloption.WithDefaultScopes(DefaultAuthScopes()...),
|
||||
}
|
||||
}
|
||||
|
||||
// setGoogleClientInfo sets the name and version of the application in
|
||||
// the `x-goog-api-client` header passed on each request. Intended for
|
||||
// use by Google-written clients.
|
||||
func (c *operationsRESTClient) setGoogleClientInfo(keyval ...string) {
|
||||
kv := append([]string{"gl-go", versionGo()}, keyval...)
|
||||
kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN")
|
||||
c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
|
||||
}
|
||||
|
||||
// Close closes the connection to the API service. The user should invoke this when
|
||||
// the client is no longer required.
|
||||
func (c *operationsRESTClient) Close() error {
|
||||
// Replace httpClient with nil to force cleanup.
|
||||
c.httpClient = nil
|
||||
return nil
|
||||
}
|
||||
|
||||
// Connection returns a connection to the API service.
|
||||
//
|
||||
// Deprecated: This method always returns nil.
|
||||
func (c *operationsRESTClient) Connection() *grpc.ClientConn {
|
||||
return nil
|
||||
}
|
||||
func (c *operationsGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator {
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...)
|
||||
it := &OperationIterator{}
|
||||
req = proto.Clone(req).(*longrunningpb.ListOperationsRequest)
|
||||
it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) {
|
||||
resp := &longrunningpb.ListOperationsResponse{}
|
||||
if pageToken != "" {
|
||||
req.PageToken = pageToken
|
||||
}
|
||||
if pageSize > math.MaxInt32 {
|
||||
req.PageSize = math.MaxInt32
|
||||
} else if pageSize != 0 {
|
||||
req.PageSize = int32(pageSize)
|
||||
}
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...)
|
||||
return err
|
||||
}, opts...)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
it.Response = resp
|
||||
return resp.GetOperations(), resp.GetNextPageToken(), nil
|
||||
}
|
||||
fetch := func(pageSize int, pageToken string) (string, error) {
|
||||
items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
it.items = append(it.items, items...)
|
||||
return nextPageToken, nil
|
||||
}
|
||||
|
||||
it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
|
||||
it.pageInfo.MaxSize = int(req.GetPageSize())
|
||||
it.pageInfo.Token = req.GetPageToken()
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
func (c *operationsGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) {
|
||||
if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines {
|
||||
cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond)
|
||||
defer cancel()
|
||||
ctx = cctx
|
||||
}
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...)
|
||||
var resp *longrunningpb.Operation
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...)
|
||||
return err
|
||||
}, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (c *operationsGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error {
|
||||
if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines {
|
||||
cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond)
|
||||
defer cancel()
|
||||
ctx = cctx
|
||||
}
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...)
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
_, err = c.operationsClient.DeleteOperation(ctx, req, settings.GRPC...)
|
||||
return err
|
||||
}, opts...)
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *operationsGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error {
|
||||
if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines {
|
||||
cctx, cancel := context.WithTimeout(ctx, 10000*time.Millisecond)
|
||||
defer cancel()
|
||||
ctx = cctx
|
||||
}
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
|
||||
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata, md)
|
||||
opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...)
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
_, err = c.operationsClient.CancelOperation(ctx, req, settings.GRPC...)
|
||||
return err
|
||||
}, opts...)
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *operationsGRPCClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) {
|
||||
ctx = insertMetadata(ctx, c.xGoogMetadata)
|
||||
opts = append((*c.CallOptions).WaitOperation[0:len((*c.CallOptions).WaitOperation):len((*c.CallOptions).WaitOperation)], opts...)
|
||||
var resp *longrunningpb.Operation
|
||||
err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
resp, err = c.operationsClient.WaitOperation(ctx, req, settings.GRPC...)
|
||||
return err
|
||||
}, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// ListOperations lists operations that match the specified filter in the request. If the
|
||||
// server doesn’t support this method, it returns UNIMPLEMENTED.
|
||||
//
|
||||
// NOTE: the name binding allows API services to override the binding
|
||||
// to use different resource name schemes, such as users/*/operations. To
|
||||
// override the binding, API services can add a binding such as
|
||||
// "/v1/{name=users/*}/operations" to their service configuration.
|
||||
// For backwards compatibility, the default name includes the operations
|
||||
// collection id, however overriding users must ensure the name binding
|
||||
// is the parent resource, without the operations collection id.
|
||||
func (c *operationsRESTClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator {
|
||||
it := &OperationIterator{}
|
||||
req = proto.Clone(req).(*longrunningpb.ListOperationsRequest)
|
||||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||||
it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) {
|
||||
resp := &longrunningpb.ListOperationsResponse{}
|
||||
if pageToken != "" {
|
||||
req.PageToken = pageToken
|
||||
}
|
||||
if pageSize > math.MaxInt32 {
|
||||
req.PageSize = math.MaxInt32
|
||||
} else if pageSize != 0 {
|
||||
req.PageSize = int32(pageSize)
|
||||
}
|
||||
baseUrl, err := url.Parse(c.endpoint)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName())
|
||||
|
||||
params := url.Values{}
|
||||
if req.GetFilter() != "" {
|
||||
params.Add("filter", fmt.Sprintf("%v", req.GetFilter()))
|
||||
}
|
||||
if req.GetPageSize() != 0 {
|
||||
params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize()))
|
||||
}
|
||||
if req.GetPageToken() != "" {
|
||||
params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken()))
|
||||
}
|
||||
|
||||
baseUrl.RawQuery = params.Encode()
|
||||
|
||||
// Build HTTP headers from client and context metadata.
|
||||
headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json"))
|
||||
e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
if settings.Path != "" {
|
||||
baseUrl.Path = settings.Path
|
||||
}
|
||||
httpReq, err := http.NewRequest("GET", baseUrl.String(), nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
httpReq.Header = headers
|
||||
|
||||
httpRsp, err := c.httpClient.Do(httpReq)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer httpRsp.Body.Close()
|
||||
|
||||
if err = googleapi.CheckResponse(httpRsp); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
buf, err := ioutil.ReadAll(httpRsp.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := unm.Unmarshal(buf, resp); err != nil {
|
||||
return maybeUnknownEnum(err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}, opts...)
|
||||
if e != nil {
|
||||
return nil, "", e
|
||||
}
|
||||
it.Response = resp
|
||||
return resp.GetOperations(), resp.GetNextPageToken(), nil
|
||||
}
|
||||
|
||||
fetch := func(pageSize int, pageToken string) (string, error) {
|
||||
items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
it.items = append(it.items, items...)
|
||||
return nextPageToken, nil
|
||||
}
|
||||
|
||||
it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
|
||||
it.pageInfo.MaxSize = int(req.GetPageSize())
|
||||
it.pageInfo.Token = req.GetPageToken()
|
||||
|
||||
return it
|
||||
}
|
||||
|
||||
// GetOperation gets the latest state of a long-running operation. Clients can use this
|
||||
// method to poll the operation result at intervals as recommended by the API
|
||||
// service.
|
||||
func (c *operationsRESTClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) {
|
||||
baseUrl, err := url.Parse(c.endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName())
|
||||
|
||||
// Build HTTP headers from client and context metadata.
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
|
||||
|
||||
headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json"))
|
||||
opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...)
|
||||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||||
resp := &longrunningpb.Operation{}
|
||||
e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
if settings.Path != "" {
|
||||
baseUrl.Path = settings.Path
|
||||
}
|
||||
httpReq, err := http.NewRequest("GET", baseUrl.String(), nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
httpReq = httpReq.WithContext(ctx)
|
||||
httpReq.Header = headers
|
||||
|
||||
httpRsp, err := c.httpClient.Do(httpReq)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer httpRsp.Body.Close()
|
||||
|
||||
if err = googleapi.CheckResponse(httpRsp); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
buf, err := ioutil.ReadAll(httpRsp.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := unm.Unmarshal(buf, resp); err != nil {
|
||||
return maybeUnknownEnum(err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}, opts...)
|
||||
if e != nil {
|
||||
return nil, e
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// DeleteOperation deletes a long-running operation. This method indicates that the client is
|
||||
// no longer interested in the operation result. It does not cancel the
|
||||
// operation. If the server doesn’t support this method, it returns
|
||||
// google.rpc.Code.UNIMPLEMENTED.
|
||||
func (c *operationsRESTClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error {
|
||||
baseUrl, err := url.Parse(c.endpoint)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName())
|
||||
|
||||
// Build HTTP headers from client and context metadata.
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
|
||||
|
||||
headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json"))
|
||||
return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
if settings.Path != "" {
|
||||
baseUrl.Path = settings.Path
|
||||
}
|
||||
httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
httpReq = httpReq.WithContext(ctx)
|
||||
httpReq.Header = headers
|
||||
|
||||
httpRsp, err := c.httpClient.Do(httpReq)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer httpRsp.Body.Close()
|
||||
|
||||
// Returns nil if there is no error, otherwise wraps
|
||||
// the response code and body into a non-nil error
|
||||
return googleapi.CheckResponse(httpRsp)
|
||||
}, opts...)
|
||||
}
|
||||
|
||||
// CancelOperation starts asynchronous cancellation on a long-running operation. The server
|
||||
// makes a best effort to cancel the operation, but success is not
|
||||
// guaranteed. If the server doesn’t support this method, it returns
|
||||
// google.rpc.Code.UNIMPLEMENTED. Clients can use
|
||||
// Operations.GetOperation or
|
||||
// other methods to check whether the cancellation succeeded or whether the
|
||||
// operation completed despite cancellation. On successful cancellation,
|
||||
// the operation is not deleted; instead, it becomes an operation with
|
||||
// an Operation.error value with a google.rpc.Status.code of 1,
|
||||
// corresponding to Code.CANCELLED.
|
||||
func (c *operationsRESTClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error {
|
||||
m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true}
|
||||
jsonReq, err := m.Marshal(req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
baseUrl, err := url.Parse(c.endpoint)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
baseUrl.Path += fmt.Sprintf("/v1/%v:cancel", req.GetName())
|
||||
|
||||
// Build HTTP headers from client and context metadata.
|
||||
md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
|
||||
|
||||
headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json"))
|
||||
return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
if settings.Path != "" {
|
||||
baseUrl.Path = settings.Path
|
||||
}
|
||||
httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
httpReq = httpReq.WithContext(ctx)
|
||||
httpReq.Header = headers
|
||||
|
||||
httpRsp, err := c.httpClient.Do(httpReq)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer httpRsp.Body.Close()
|
||||
|
||||
// Returns nil if there is no error, otherwise wraps
|
||||
// the response code and body into a non-nil error
|
||||
return googleapi.CheckResponse(httpRsp)
|
||||
}, opts...)
|
||||
}
|
||||
|
||||
// WaitOperation waits until the specified long-running operation is done or reaches at most
|
||||
// a specified timeout, returning the latest state. If the operation is
|
||||
// already done, the latest state is immediately returned. If the timeout
|
||||
// specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
|
||||
// timeout is used. If the server does not support this method, it returns
|
||||
// google.rpc.Code.UNIMPLEMENTED.
|
||||
// Note that this method is on a best-effort basis. It may return the latest
|
||||
// state before the specified timeout (including immediately), meaning even an
|
||||
// immediate response is no guarantee that the operation is done.
|
||||
func (c *operationsRESTClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) {
|
||||
baseUrl, err := url.Parse(c.endpoint)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
baseUrl.Path += fmt.Sprintf("")
|
||||
|
||||
params := url.Values{}
|
||||
if req.GetName() != "" {
|
||||
params.Add("name", fmt.Sprintf("%v", req.GetName()))
|
||||
}
|
||||
if req.GetTimeout() != nil {
|
||||
timeout, err := protojson.Marshal(req.GetTimeout())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
params.Add("timeout", string(timeout))
|
||||
}
|
||||
|
||||
baseUrl.RawQuery = params.Encode()
|
||||
|
||||
// Build HTTP headers from client and context metadata.
|
||||
headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json"))
|
||||
opts = append((*c.CallOptions).WaitOperation[0:len((*c.CallOptions).WaitOperation):len((*c.CallOptions).WaitOperation)], opts...)
|
||||
unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true}
|
||||
resp := &longrunningpb.Operation{}
|
||||
e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
if settings.Path != "" {
|
||||
baseUrl.Path = settings.Path
|
||||
}
|
||||
httpReq, err := http.NewRequest("", baseUrl.String(), nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
httpReq = httpReq.WithContext(ctx)
|
||||
httpReq.Header = headers
|
||||
|
||||
httpRsp, err := c.httpClient.Do(httpReq)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer httpRsp.Body.Close()
|
||||
|
||||
if err = googleapi.CheckResponse(httpRsp); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
buf, err := ioutil.ReadAll(httpRsp.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := unm.Unmarshal(buf, resp); err != nil {
|
||||
return maybeUnknownEnum(err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}, opts...)
|
||||
if e != nil {
|
||||
return nil, e
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// OperationIterator manages a stream of *longrunningpb.Operation.
|
||||
type OperationIterator struct {
|
||||
items []*longrunningpb.Operation
|
||||
pageInfo *iterator.PageInfo
|
||||
nextFunc func() error
|
||||
|
||||
// Response is the raw response for the current page.
|
||||
// It must be cast to the RPC response type.
|
||||
// Calling Next() or InternalFetch() updates this value.
|
||||
Response interface{}
|
||||
|
||||
// InternalFetch is for use by the Google Cloud Libraries only.
|
||||
// It is not part of the stable interface of this package.
|
||||
//
|
||||
// InternalFetch returns results from a single call to the underlying RPC.
|
||||
// The number of results is no greater than pageSize.
|
||||
// If there are no more results, nextPageToken is empty and err is nil.
|
||||
InternalFetch func(pageSize int, pageToken string) (results []*longrunningpb.Operation, nextPageToken string, err error)
|
||||
}
|
||||
|
||||
// PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
|
||||
func (it *OperationIterator) PageInfo() *iterator.PageInfo {
|
||||
return it.pageInfo
|
||||
}
|
||||
|
||||
// Next returns the next result. Its second return value is iterator.Done if there are no more
|
||||
// results. Once Next returns Done, all subsequent calls will return Done.
|
||||
func (it *OperationIterator) Next() (*longrunningpb.Operation, error) {
|
||||
var item *longrunningpb.Operation
|
||||
if err := it.nextFunc(); err != nil {
|
||||
return item, err
|
||||
}
|
||||
item = it.items[0]
|
||||
it.items = it.items[1:]
|
||||
return item, nil
|
||||
}
|
||||
|
||||
func (it *OperationIterator) bufLen() int {
|
||||
return len(it.items)
|
||||
}
|
||||
|
||||
func (it *OperationIterator) takeBuf() interface{} {
|
||||
b := it.items
|
||||
it.items = nil
|
||||
return b
|
||||
}
|
179
vendor/cloud.google.com/go/longrunning/longrunning.go
generated
vendored
Normal file
179
vendor/cloud.google.com/go/longrunning/longrunning.go
generated
vendored
Normal file
|
@ -0,0 +1,179 @@
|
|||
// Copyright 2016 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.
|
||||
|
||||
// Package longrunning supports Long Running Operations for the Google Cloud Libraries.
|
||||
// See google.golang.org/genproto/googleapis/longrunning for its service definition.
|
||||
//
|
||||
// Users of the Google Cloud Libraries will typically not use this package directly.
|
||||
// Instead they will call functions returning Operations and call their methods.
|
||||
//
|
||||
// This package is still experimental and subject to change.
|
||||
package longrunning // import "cloud.google.com/go/longrunning"
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
autogen "cloud.google.com/go/longrunning/autogen"
|
||||
pb "cloud.google.com/go/longrunning/autogen/longrunningpb"
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/golang/protobuf/ptypes"
|
||||
gax "github.com/googleapis/gax-go/v2"
|
||||
"github.com/googleapis/gax-go/v2/apierror"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// ErrNoMetadata is the error returned by Metadata if the operation contains no metadata.
|
||||
var ErrNoMetadata = errors.New("operation contains no metadata")
|
||||
|
||||
// Operation represents the result of an API call that may not be ready yet.
|
||||
type Operation struct {
|
||||
c operationsClient
|
||||
proto *pb.Operation
|
||||
}
|
||||
|
||||
type operationsClient interface {
|
||||
GetOperation(context.Context, *pb.GetOperationRequest, ...gax.CallOption) (*pb.Operation, error)
|
||||
CancelOperation(context.Context, *pb.CancelOperationRequest, ...gax.CallOption) error
|
||||
DeleteOperation(context.Context, *pb.DeleteOperationRequest, ...gax.CallOption) error
|
||||
}
|
||||
|
||||
// InternalNewOperation is for use by the google Cloud Libraries only.
|
||||
//
|
||||
// InternalNewOperation returns an long-running operation, abstracting the raw pb.Operation.
|
||||
// The conn parameter refers to a server that proto was received from.
|
||||
func InternalNewOperation(inner *autogen.OperationsClient, proto *pb.Operation) *Operation {
|
||||
return &Operation{
|
||||
c: inner,
|
||||
proto: proto,
|
||||
}
|
||||
}
|
||||
|
||||
// Name returns the name of the long-running operation.
|
||||
// The name is assigned by the server and is unique within the service
|
||||
// from which the operation is created.
|
||||
func (op *Operation) Name() string {
|
||||
return op.proto.Name
|
||||
}
|
||||
|
||||
// Done reports whether the long-running operation has completed.
|
||||
func (op *Operation) Done() bool {
|
||||
return op.proto.Done
|
||||
}
|
||||
|
||||
// Metadata unmarshals op's metadata into meta.
|
||||
// If op does not contain any metadata, Metadata returns ErrNoMetadata and meta is unmodified.
|
||||
func (op *Operation) Metadata(meta proto.Message) error {
|
||||
if m := op.proto.Metadata; m != nil {
|
||||
return ptypes.UnmarshalAny(m, meta)
|
||||
}
|
||||
return ErrNoMetadata
|
||||
}
|
||||
|
||||
// Poll fetches the latest state of a long-running operation.
|
||||
//
|
||||
// If Poll fails, the error is returned and op is unmodified.
|
||||
// If Poll succeeds and the operation has completed with failure,
|
||||
// the error is returned and op.Done will return true.
|
||||
// If Poll succeeds and the operation has completed successfully,
|
||||
// op.Done will return true; if resp != nil, the response of the operation
|
||||
// is stored in resp.
|
||||
func (op *Operation) Poll(ctx context.Context, resp proto.Message, opts ...gax.CallOption) error {
|
||||
if !op.Done() {
|
||||
p, err := op.c.GetOperation(ctx, &pb.GetOperationRequest{Name: op.Name()}, opts...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
op.proto = p
|
||||
}
|
||||
if !op.Done() {
|
||||
return nil
|
||||
}
|
||||
|
||||
switch r := op.proto.Result.(type) {
|
||||
case *pb.Operation_Error:
|
||||
err, _ := apierror.FromError(status.ErrorProto(r.Error))
|
||||
return err
|
||||
case *pb.Operation_Response:
|
||||
if resp == nil {
|
||||
return nil
|
||||
}
|
||||
return ptypes.UnmarshalAny(r.Response, resp)
|
||||
default:
|
||||
return fmt.Errorf("unsupported result type %[1]T: %[1]v", r)
|
||||
}
|
||||
}
|
||||
|
||||
// DefaultWaitInterval is the polling interval used by Operation.Wait.
|
||||
const DefaultWaitInterval = 60 * time.Second
|
||||
|
||||
// Wait is equivalent to WaitWithInterval using DefaultWaitInterval.
|
||||
func (op *Operation) Wait(ctx context.Context, resp proto.Message, opts ...gax.CallOption) error {
|
||||
return op.WaitWithInterval(ctx, resp, DefaultWaitInterval, opts...)
|
||||
}
|
||||
|
||||
// WaitWithInterval blocks until the operation is completed.
|
||||
// If resp != nil, Wait stores the response in resp.
|
||||
// WaitWithInterval polls every interval, except initially
|
||||
// when it polls using exponential backoff.
|
||||
//
|
||||
// See documentation of Poll for error-handling information.
|
||||
func (op *Operation) WaitWithInterval(ctx context.Context, resp proto.Message, interval time.Duration, opts ...gax.CallOption) error {
|
||||
bo := gax.Backoff{
|
||||
Initial: 1 * time.Second,
|
||||
Max: interval,
|
||||
}
|
||||
if bo.Max < bo.Initial {
|
||||
bo.Max = bo.Initial
|
||||
}
|
||||
return op.wait(ctx, resp, &bo, gax.Sleep, opts...)
|
||||
}
|
||||
|
||||
type sleeper func(context.Context, time.Duration) error
|
||||
|
||||
// wait implements Wait, taking exponentialBackoff and sleeper arguments for testing.
|
||||
func (op *Operation) wait(ctx context.Context, resp proto.Message, bo *gax.Backoff, sl sleeper, opts ...gax.CallOption) error {
|
||||
for {
|
||||
if err := op.Poll(ctx, resp, opts...); err != nil {
|
||||
return err
|
||||
}
|
||||
if op.Done() {
|
||||
return nil
|
||||
}
|
||||
if err := sl(ctx, bo.Pause()); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Cancel starts asynchronous cancellation on a long-running operation. The server
|
||||
// makes a best effort to cancel the operation, but success is not
|
||||
// guaranteed. If the server doesn't support this method, it returns
|
||||
// status.Code(err) == codes.Unimplemented. Clients can use
|
||||
// Poll or other methods to check whether the cancellation succeeded or whether the
|
||||
// operation completed despite cancellation. On successful cancellation,
|
||||
// the operation is not deleted; instead, op.Poll returns an error
|
||||
// with code Canceled.
|
||||
func (op *Operation) Cancel(ctx context.Context, opts ...gax.CallOption) error {
|
||||
return op.c.CancelOperation(ctx, &pb.CancelOperationRequest{Name: op.Name()}, opts...)
|
||||
}
|
||||
|
||||
// Delete deletes a long-running operation. This method indicates that the client is
|
||||
// no longer interested in the operation result. It does not cancel the
|
||||
// operation. If the server doesn't support this method, status.Code(err) == codes.Unimplemented.
|
||||
func (op *Operation) Delete(ctx context.Context, opts ...gax.CallOption) error {
|
||||
return op.c.DeleteOperation(ctx, &pb.DeleteOperationRequest{Name: op.Name()}, opts...)
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2019 Google LLC
|
||||
// Copyright 2022 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
@ -12,11 +12,12 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// This file, and the cloud.google.com/go import, won't actually become part of
|
||||
// This file, and the {{.RootMod}} import, won't actually become part of
|
||||
// the resultant binary.
|
||||
//go:build modhack
|
||||
// +build modhack
|
||||
|
||||
package logging
|
||||
package longrunning
|
||||
|
||||
// Necessary for safely adding multi-module repo. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository
|
||||
import _ "cloud.google.com/go"
|
50
vendor/cloud.google.com/go/migration.md
generated
vendored
Normal file
50
vendor/cloud.google.com/go/migration.md
generated
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
# go-genproto to google-cloud-go message type migration
|
||||
|
||||
The message types for all of our client libraries are being migrated from the
|
||||
`google.golang.org/genproto` [module](https://pkg.go.dev/google.golang.org/genproto)
|
||||
to their respective product specific module in this repository. For example
|
||||
this asset request type that was once found in [genproto](https://pkg.go.dev/google.golang.org/genproto@v0.0.0-20220908141613-51c1cc9bc6d0/googleapis/cloud/asset/v1p5beta1#ListAssetsRequest)
|
||||
can now be found in directly in the [asset module](https://pkg.go.dev/cloud.google.com/go/asset/apiv1p5beta1/assetpb#ListAssetsRequest).
|
||||
|
||||
Although the type definitions have moved, aliases have been left in the old
|
||||
genproto packages to ensure a smooth non-breaking transition.
|
||||
|
||||
## How do I migrate to the new packages?
|
||||
|
||||
The easiest option is to run a migration tool at the root of our project. It is
|
||||
like `go fix`, but specifically for this migration. Before running the tool it
|
||||
is best to make sure any modules that have the prefix of `cloud.google.com/go`
|
||||
are up to date. To run the tool, do the following:
|
||||
|
||||
```bash
|
||||
go run cloud.google.com/go/internal/aliasfix/cmd/aliasfix@latest .
|
||||
go mod tidy
|
||||
```
|
||||
|
||||
The tool should only change up to one line in the import statement per file.
|
||||
This can also be done by hand if you prefer.
|
||||
|
||||
## Do I have to migrate?
|
||||
|
||||
Yes if you wish to keep using the newest versions of our client libraries with
|
||||
the newest features -- You should migrate by the start of 2023. Until then we
|
||||
will keep updating the aliases in go-genproto weekly. If you have an existing
|
||||
workload that uses these client libraries and does not need to update its
|
||||
dependencies there is no action to take. All existing written code will continue
|
||||
to work.
|
||||
|
||||
## Why are these types being moved
|
||||
|
||||
1. This change will help simplify dependency trees over time.
|
||||
2. The types will now be in product specific modules that are versioned
|
||||
independently with semver. This is especially a benefit for users that rely
|
||||
on multiple clients in a single application. Because message types are no
|
||||
longer mono-packaged users are less likely to run into intermediate
|
||||
dependency conflicts when updating dependencies.
|
||||
3. Having all these types in one repository will help us ensure that unintended
|
||||
changes are caught before they would be released.
|
||||
|
||||
## Have questions?
|
||||
|
||||
Please reach out to us on our [issue tracker](https://github.com/googleapis/google-cloud-go/issues/new?assignees=&labels=genproto-migration&template=migration-issue.md&title=package%3A+migration+help)
|
||||
if you have any questions or concerns.
|
45
vendor/cloud.google.com/go/release-please-config-individual.json
generated
vendored
Normal file
45
vendor/cloud.google.com/go/release-please-config-individual.json
generated
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
|
||||
"release-type": "go-yoshi",
|
||||
"include-component-in-tag": true,
|
||||
"separate-pull-requests": true,
|
||||
"tag-separator": "/",
|
||||
"packages": {
|
||||
"bigquery": {
|
||||
"component": "bigquery"
|
||||
},
|
||||
"bigtable": {
|
||||
"component": "bigtable"
|
||||
},
|
||||
"datastore": {
|
||||
"component": "datastore"
|
||||
},
|
||||
"errorreporting": {
|
||||
"component": "errorreporting"
|
||||
},
|
||||
"firestore": {
|
||||
"component": "firestore"
|
||||
},
|
||||
"logging": {
|
||||
"component": "logging"
|
||||
},
|
||||
"profiler": {
|
||||
"component": "profiler"
|
||||
},
|
||||
"pubsub": {
|
||||
"component": "pubsub"
|
||||
},
|
||||
"pubsublite": {
|
||||
"component": "pubsublite"
|
||||
},
|
||||
"spanner": {
|
||||
"component": "spanner"
|
||||
},
|
||||
"storage": {
|
||||
"component": "storage"
|
||||
}
|
||||
},
|
||||
"plugins": [
|
||||
"sentence-case"
|
||||
]
|
||||
}
|
30
vendor/cloud.google.com/go/release-please-config-yoshi-submodules.json
generated
vendored
30
vendor/cloud.google.com/go/release-please-config-yoshi-submodules.json
generated
vendored
|
@ -21,6 +21,12 @@
|
|||
"apigeeconnect": {
|
||||
"component": "apigeeconnect"
|
||||
},
|
||||
"apigeeregistry": {
|
||||
"component": "apigeeregistry"
|
||||
},
|
||||
"apikeys": {
|
||||
"component": "apikeys"
|
||||
},
|
||||
"appengine": {
|
||||
"component": "appengine"
|
||||
},
|
||||
|
@ -45,6 +51,9 @@
|
|||
"batch": {
|
||||
"component": "batch"
|
||||
},
|
||||
"beyondcorp": {
|
||||
"component": "beyondcorp"
|
||||
},
|
||||
"billing": {
|
||||
"component": "billing"
|
||||
},
|
||||
|
@ -69,6 +78,9 @@
|
|||
"compute": {
|
||||
"component": "compute"
|
||||
},
|
||||
"compute/metadata": {
|
||||
"component": "compute/metadata"
|
||||
},
|
||||
"contactcenterinsights": {
|
||||
"component": "contactcenterinsights"
|
||||
},
|
||||
|
@ -84,6 +96,9 @@
|
|||
"dataflow": {
|
||||
"component": "dataflow"
|
||||
},
|
||||
"dataform": {
|
||||
"component": "dataform"
|
||||
},
|
||||
"datafusion": {
|
||||
"component": "datafusion"
|
||||
},
|
||||
|
@ -117,6 +132,9 @@
|
|||
"domains": {
|
||||
"component": "domains"
|
||||
},
|
||||
"edgecontainer": {
|
||||
"component": "edgecontainer"
|
||||
},
|
||||
"essentialcontacts": {
|
||||
"component": "essentialcontacts"
|
||||
},
|
||||
|
@ -171,9 +189,15 @@
|
|||
"lifesciences": {
|
||||
"component": "lifesciences"
|
||||
},
|
||||
"longrunning": {
|
||||
"component": "longrunning"
|
||||
},
|
||||
"managedidentities": {
|
||||
"component": "managedidentities"
|
||||
},
|
||||
"maps": {
|
||||
"component": "maps"
|
||||
},
|
||||
"mediatranslation": {
|
||||
"component": "mediatranslation"
|
||||
},
|
||||
|
@ -306,6 +330,9 @@
|
|||
"vmmigration": {
|
||||
"component": "vmmigration"
|
||||
},
|
||||
"vmwareengine": {
|
||||
"component": "vmwareengine"
|
||||
},
|
||||
"vpcaccess": {
|
||||
"component": "vpcaccess"
|
||||
},
|
||||
|
@ -318,5 +345,6 @@
|
|||
"workflows": {
|
||||
"component": "workflows"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": ["sentence-case"]
|
||||
}
|
||||
|
|
3
vendor/cloud.google.com/go/release-please-config.json
generated
vendored
3
vendor/cloud.google.com/go/release-please-config.json
generated
vendored
|
@ -6,5 +6,6 @@
|
|||
".": {
|
||||
"component": "main"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": ["sentence-case"]
|
||||
}
|
||||
|
|
115
vendor/github.com/AdaLogics/go-fuzz-headers/consumer.go
generated
vendored
115
vendor/github.com/AdaLogics/go-fuzz-headers/consumer.go
generated
vendored
|
@ -1,3 +1,17 @@
|
|||
// Copyright 2023 The go-fuzz-headers Authors.
|
||||
//
|
||||
// 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.
|
||||
|
||||
package gofuzzheaders
|
||||
|
||||
import (
|
||||
|
@ -18,7 +32,10 @@ import (
|
|||
securejoin "github.com/cyphar/filepath-securejoin"
|
||||
)
|
||||
|
||||
var MaxTotalLen uint32 = 2000000
|
||||
var (
|
||||
MaxTotalLen uint32 = 2000000
|
||||
maxDepth = 100
|
||||
)
|
||||
|
||||
func SetMaxTotalLen(newLen uint32) {
|
||||
MaxTotalLen = newLen
|
||||
|
@ -32,6 +49,7 @@ type ConsumeFuzzer struct {
|
|||
NumberOfCalls int
|
||||
position uint32
|
||||
fuzzUnexportedFields bool
|
||||
curDepth int
|
||||
Funcs map[reflect.Type]reflect.Value
|
||||
}
|
||||
|
||||
|
@ -44,6 +62,7 @@ func NewConsumer(fuzzData []byte) *ConsumeFuzzer {
|
|||
data: fuzzData,
|
||||
dataTotal: uint32(len(fuzzData)),
|
||||
Funcs: make(map[reflect.Type]reflect.Value),
|
||||
curDepth: 0,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -129,11 +148,18 @@ func (f *ConsumeFuzzer) setCustom(v reflect.Value) error {
|
|||
}
|
||||
|
||||
func (f *ConsumeFuzzer) fuzzStruct(e reflect.Value, customFunctions bool) error {
|
||||
if f.curDepth >= maxDepth {
|
||||
// return err or nil here?
|
||||
return nil
|
||||
}
|
||||
f.curDepth++
|
||||
defer func() { f.curDepth-- }()
|
||||
|
||||
// We check if we should check for custom functions
|
||||
if customFunctions && e.IsValid() && e.CanAddr() {
|
||||
err := f.setCustom(e.Addr())
|
||||
if err == nil {
|
||||
return nil
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -363,18 +389,11 @@ func (f *ConsumeFuzzer) GetUint16() (uint16, error) {
|
|||
}
|
||||
|
||||
func (f *ConsumeFuzzer) GetUint32() (uint32, error) {
|
||||
u32, err := f.GetNBytes(4)
|
||||
i, err := f.GetInt()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
return uint32(0), err
|
||||
}
|
||||
littleEndian, err := f.GetBool()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if littleEndian {
|
||||
return binary.LittleEndian.Uint32(u32), nil
|
||||
}
|
||||
return binary.BigEndian.Uint32(u32), nil
|
||||
return uint32(i), nil
|
||||
}
|
||||
|
||||
func (f *ConsumeFuzzer) GetUint64() (uint64, error) {
|
||||
|
@ -431,7 +450,7 @@ func (f *ConsumeFuzzer) GetString() (string, error) {
|
|||
if f.position > MaxTotalLen {
|
||||
return "nil", errors.New("created too large a string")
|
||||
}
|
||||
byteBegin := f.position - 1
|
||||
byteBegin := f.position
|
||||
if byteBegin >= f.dataTotal {
|
||||
return "nil", errors.New("not enough bytes to create string")
|
||||
}
|
||||
|
@ -476,7 +495,7 @@ func returnTarBytes(buf []byte) ([]byte, error) {
|
|||
}
|
||||
fileCounter++
|
||||
}
|
||||
if fileCounter > 4 {
|
||||
if fileCounter >= 1 {
|
||||
return buf, nil
|
||||
}
|
||||
return nil, fmt.Errorf("not enough files were created\n")
|
||||
|
@ -546,27 +565,77 @@ func setTarHeaderTypeflag(hdr *tar.Header, f *ConsumeFuzzer) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func tooSmallFileBody(length uint32) bool {
|
||||
if length < 2 {
|
||||
return true
|
||||
}
|
||||
if length < 4 {
|
||||
return true
|
||||
}
|
||||
if length < 10 {
|
||||
return true
|
||||
}
|
||||
if length < 100 {
|
||||
return true
|
||||
}
|
||||
if length < 500 {
|
||||
return true
|
||||
}
|
||||
if length < 1000 {
|
||||
return true
|
||||
}
|
||||
if length < 2000 {
|
||||
return true
|
||||
}
|
||||
if length < 4000 {
|
||||
return true
|
||||
}
|
||||
if length < 8000 {
|
||||
return true
|
||||
}
|
||||
if length < 16000 {
|
||||
return true
|
||||
}
|
||||
if length < 32000 {
|
||||
return true
|
||||
}
|
||||
if length < 64000 {
|
||||
return true
|
||||
}
|
||||
if length < 128000 {
|
||||
return true
|
||||
}
|
||||
if length < 264000 {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (f *ConsumeFuzzer) createTarFileBody() ([]byte, error) {
|
||||
length, err := f.GetUint32()
|
||||
if err != nil {
|
||||
return nil, errors.New("not enough bytes to create byte array")
|
||||
}
|
||||
|
||||
shouldUseLargeFileBody, err := f.GetBool()
|
||||
if err != nil {
|
||||
return nil, errors.New("not enough bytes to check long file body")
|
||||
}
|
||||
|
||||
if shouldUseLargeFileBody && tooSmallFileBody(length) {
|
||||
return nil, errors.New("File body was too small")
|
||||
}
|
||||
|
||||
// A bit of optimization to attempt to create a file body
|
||||
// when we don't have as many bytes left as "length"
|
||||
remainingBytes := f.dataTotal - f.position
|
||||
if remainingBytes == 0 {
|
||||
return nil, errors.New("created too large a string")
|
||||
}
|
||||
if remainingBytes < 50 {
|
||||
length = length % remainingBytes
|
||||
} else if f.dataTotal < 500 {
|
||||
length = length % f.dataTotal
|
||||
}
|
||||
if f.position+length > MaxTotalLen {
|
||||
return nil, errors.New("created too large a string")
|
||||
}
|
||||
byteBegin := f.position - 1
|
||||
byteBegin := f.position
|
||||
if byteBegin >= f.dataTotal {
|
||||
return nil, errors.New("not enough bytes to create byte array")
|
||||
}
|
||||
|
@ -606,7 +675,7 @@ func (f *ConsumeFuzzer) getTarFilename() (string, error) {
|
|||
if f.position > MaxTotalLen {
|
||||
return "nil", errors.New("created too large a string")
|
||||
}
|
||||
byteBegin := f.position - 1
|
||||
byteBegin := f.position
|
||||
if byteBegin >= f.dataTotal {
|
||||
return "nil", errors.New("not enough bytes to create string")
|
||||
}
|
||||
|
@ -669,7 +738,7 @@ func (f *ConsumeFuzzer) TarBytes() ([]byte, error) {
|
|||
return returnTarBytes(buf.Bytes())
|
||||
}
|
||||
}
|
||||
return returnTarBytes(buf.Bytes())
|
||||
return buf.Bytes(), nil
|
||||
}
|
||||
|
||||
// CreateFiles creates pseudo-random files in rootDir.
|
||||
|
|
14
vendor/github.com/AdaLogics/go-fuzz-headers/funcs.go
generated
vendored
14
vendor/github.com/AdaLogics/go-fuzz-headers/funcs.go
generated
vendored
|
@ -1,3 +1,17 @@
|
|||
// Copyright 2023 The go-fuzz-headers Authors.
|
||||
//
|
||||
// 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.
|
||||
|
||||
package gofuzzheaders
|
||||
|
||||
import (
|
||||
|
|
14
vendor/github.com/AdaLogics/go-fuzz-headers/sql.go
generated
vendored
14
vendor/github.com/AdaLogics/go-fuzz-headers/sql.go
generated
vendored
|
@ -1,3 +1,17 @@
|
|||
// Copyright 2023 The go-fuzz-headers Authors.
|
||||
//
|
||||
// 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.
|
||||
|
||||
package gofuzzheaders
|
||||
|
||||
import (
|
||||
|
|
3
vendor/github.com/aws/aws-sdk-go-v2/.gitignore
generated
vendored
3
vendor/github.com/aws/aws-sdk-go-v2/.gitignore
generated
vendored
|
@ -9,3 +9,6 @@ Gemfile.lock
|
|||
/private/model/cli/gen-api/gen-api
|
||||
.gradle/
|
||||
build/
|
||||
.idea/
|
||||
bin/
|
||||
.vscode/
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/.golangci.toml
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/.golangci.toml
generated
vendored
|
@ -6,7 +6,7 @@ modules-download-mode = "readonly"
|
|||
allow-parallel-runners = true
|
||||
skip-dirs = ["internal/repotools"]
|
||||
skip-dirs-use-default = true
|
||||
|
||||
skip-files = ["service/transcribestreaming/eventstream_test.go"]
|
||||
[output]
|
||||
format = "github-actions"
|
||||
|
||||
|
|
3687
vendor/github.com/aws/aws-sdk-go-v2/CHANGELOG.md
generated
vendored
3687
vendor/github.com/aws/aws-sdk-go-v2/CHANGELOG.md
generated
vendored
File diff suppressed because it is too large
Load diff
4
vendor/github.com/aws/aws-sdk-go-v2/CODE_OF_CONDUCT.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/CODE_OF_CONDUCT.md
generated
vendored
|
@ -1,4 +1,4 @@
|
|||
## Code of Conduct
|
||||
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
|
||||
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
|
||||
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
|
||||
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
|
||||
opensource-codeofconduct@amazon.com with any additional questions or comments.
|
||||
|
|
35
vendor/github.com/aws/aws-sdk-go-v2/CONTRIBUTING.md
generated
vendored
35
vendor/github.com/aws/aws-sdk-go-v2/CONTRIBUTING.md
generated
vendored
|
@ -14,29 +14,28 @@ Jump To:
|
|||
* [Feature Requests](#feature-requests)
|
||||
* [Code Contributions](#code-contributions)
|
||||
|
||||
|
||||
## How to contribute
|
||||
|
||||
*Before you send us a pull request, please be sure that:*
|
||||
|
||||
1. You're working from the latest source on the master branch.
|
||||
2. You check existing open, and recently closed, pull requests to be sure
|
||||
1. You're working from the latest source on the `main` branch.
|
||||
2. You check existing open, and recently closed, pull requests to be sure
|
||||
that someone else hasn't already addressed the problem.
|
||||
3. You create an issue before working on a contribution that will take a
|
||||
3. You create an issue before working on a contribution that will take a
|
||||
significant amount of your time.
|
||||
|
||||
*Creating a Pull Request*
|
||||
|
||||
1. Fork the repository.
|
||||
2. In your fork, make your change in a branch that's based on this repo's master branch.
|
||||
2. In your fork, make your change in a branch that's based on this repo's `main` branch.
|
||||
3. Commit the change to your fork, using a clear and descriptive commit message.
|
||||
4. Create a pull request, answering any questions in the pull request form.
|
||||
|
||||
For contributions that will take a significant amount of time, open a new
|
||||
issue to pitch your idea before you get started. Explain the problem and
|
||||
describe the content you want to see added to the documentation. Let us know
|
||||
if you'll write it yourself or if you'd like us to help. We'll discuss your
|
||||
proposal with you and let you know whether we're likely to accept it.
|
||||
For contributions that will take a significant amount of time, open a new
|
||||
issue to pitch your idea before you get started. Explain the problem and
|
||||
describe the content you want to see added to the documentation. Let us know
|
||||
if you'll write it yourself or if you'd like us to help. We'll discuss your
|
||||
proposal with you and let you know whether we're likely to accept it.
|
||||
|
||||
## Bug Reports
|
||||
|
||||
|
@ -74,9 +73,9 @@ guidelines prior to filing a bug report.
|
|||
|
||||
Open an [issue][issues] with the following:
|
||||
|
||||
* A short, descriptive title. Ideally, other community members should be able
|
||||
* A short, descriptive title. Ideally, other community members should be able
|
||||
to get a good idea of the feature just from reading the title.
|
||||
* A detailed description of the the proposed feature.
|
||||
* A detailed description of the the proposed feature.
|
||||
* Why it should be added to the SDK.
|
||||
* If possible, example code to illustrate how it should work.
|
||||
* Use Markdown to make the request easier to read;
|
||||
|
@ -97,7 +96,7 @@ Please be aware of the following notes prior to opening a pull request:
|
|||
|
||||
3. Wherever possible, pull requests should contain tests as appropriate.
|
||||
Bugfixes should contain tests that exercise the corrected behavior (i.e., the
|
||||
test should fail without the bugfix and pass with it), and new features
|
||||
test should fail without the bugfix and pass with it), and new features
|
||||
should be accompanied by tests exercising the feature.
|
||||
|
||||
4. Pull requests that contain failing tests will not be merged until the test
|
||||
|
@ -112,7 +111,7 @@ Please be aware of the following notes prior to opening a pull request:
|
|||
|
||||
### Testing
|
||||
|
||||
To run the tests locally, running the `make unit` command will `go get` the
|
||||
To run the tests locally, running the `make unit` command will `go get` the
|
||||
SDK's testing dependencies, and run vet, link and unit tests for the SDK.
|
||||
|
||||
```
|
||||
|
@ -129,7 +128,7 @@ go test -tags codegen ./private/...
|
|||
|
||||
See the `Makefile` for additional testing tags that can be used in testing.
|
||||
|
||||
To test on multiple platform the SDK includes several DockerFiles under the
|
||||
To test on multiple platform the SDK includes several DockerFiles under the
|
||||
`awstesting/sandbox` folder, and associated make recipes to to execute
|
||||
unit testing within environments configured for specific Go versions.
|
||||
|
||||
|
@ -170,9 +169,9 @@ This will result in a patch version change.
|
|||
* `SDK Bugs` - For minor changes that resolve an issue. This will result in a
|
||||
patch version change.
|
||||
|
||||
[issues]: https://github.com/aws/aws-sdk-go/issues
|
||||
[pr]: https://github.com/aws/aws-sdk-go/pulls
|
||||
[issues]: https://github.com/aws/aws-sdk-go-v2/issues
|
||||
[pr]: https://github.com/aws/aws-sdk-go-v2/pulls
|
||||
[license]: http://aws.amazon.com/apache2.0/
|
||||
[cla]: http://en.wikipedia.org/wiki/Contributor_License_Agreement
|
||||
[releasenotes]: https://github.com/aws/aws-sdk-go/releases
|
||||
[releasenotes]: https://github.com/aws/aws-sdk-go-v2/releases
|
||||
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/DESIGN.md
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/DESIGN.md
generated
vendored
|
@ -12,4 +12,4 @@ Past Discussions
|
|||
---
|
||||
The issues listed here are for documentation purposes, and is used to capture issues and their associated discussions.
|
||||
|
||||
[Code of Conduct]: https://github.com/aws/aws-sdk-go-v2/blob/master/CODE_OF_CONDUCT.md
|
||||
[Code of Conduct]: https://github.com/aws/aws-sdk-go-v2/blob/main/CODE_OF_CONDUCT.md
|
||||
|
|
19
vendor/github.com/aws/aws-sdk-go-v2/Makefile
generated
vendored
19
vendor/github.com/aws/aws-sdk-go-v2/Makefile
generated
vendored
|
@ -120,6 +120,7 @@ gen-config-asserts:
|
|||
gen-internal-codegen:
|
||||
@echo "Generating internal/codegen"
|
||||
cd internal/codegen \
|
||||
&& go mod tidy \
|
||||
&& go generate
|
||||
|
||||
gen-repo-mod-replace:
|
||||
|
@ -245,7 +246,6 @@ unit-race-modules-%:
|
|||
"go test ${BUILD_TAGS} ${RUN_NONE} ./..." \
|
||||
"go test -timeout=1m ${UNIT_TEST_TAGS} -race -cpu=4 ./..."
|
||||
|
||||
|
||||
unit-modules-%:
|
||||
@# unit command that uses the pattern to define the root path that the
|
||||
@# module testing will start from. Strips off the "unit-modules-" and
|
||||
|
@ -407,7 +407,6 @@ bench-modules-%:
|
|||
&& go run . -p $(subst _,/,$(subst bench-modules-,,$@)) ${EACHMODULE_FLAGS} \
|
||||
"go test -timeout=10m -bench . --benchmem ${BUILD_TAGS} ${RUN_NONE} ./..."
|
||||
|
||||
|
||||
#####################
|
||||
# Release Process #
|
||||
#####################
|
||||
|
@ -498,14 +497,22 @@ list-deps-%:
|
|||
###################
|
||||
.PHONY: sandbox-tests sandbox-build-% sandbox-run-% sandbox-test-% update-aws-golang-tip
|
||||
|
||||
sandbox-tests: sandbox-test-go1.15 sandbox-test-go1.16 sandbox-test-go1.17 sandbox-test-gotip
|
||||
sandbox-tests: sandbox-test-go1.15 sandbox-test-go1.16 sandbox-test-go1.17 sandbox-test-go1.18 sandbox-test-go1.19 sandbox-test-go1.20 sandbox-test-gotip
|
||||
|
||||
sandbox-build-%:
|
||||
@# sandbox-build-go1.17
|
||||
@# sandbox-build-gotip
|
||||
docker build \
|
||||
-f ./internal/awstesting/sandbox/Dockerfile.test.$(subst sandbox-build-,,$@) \
|
||||
-t "aws-sdk-go-$(subst sandbox-build-,,$@)" .
|
||||
@if [ $@ == sandbox-build-gotip ]; then\
|
||||
docker build \
|
||||
-f ./internal/awstesting/sandbox/Dockerfile.test.gotip \
|
||||
-t "aws-sdk-go-$(subst sandbox-build-,,$@)" . ;\
|
||||
else\
|
||||
docker build \
|
||||
--build-arg GO_VERSION=$(subst sandbox-build-go,,$@) \
|
||||
-f ./internal/awstesting/sandbox/Dockerfile.test.goversion \
|
||||
-t "aws-sdk-go-$(subst sandbox-build-,,$@)" . ;\
|
||||
fi
|
||||
|
||||
sandbox-run-%: sandbox-build-%
|
||||
@# sandbox-run-go1.17
|
||||
@# sandbox-run-gotip
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/NOTICE.txt
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/NOTICE.txt
generated
vendored
|
@ -1,3 +1,3 @@
|
|||
AWS SDK for Go
|
||||
Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
Copyright 2014-2015 Stripe, Inc.
|
||||
|
|
23
vendor/github.com/aws/aws-sdk-go-v2/README.md
generated
vendored
23
vendor/github.com/aws/aws-sdk-go-v2/README.md
generated
vendored
|
@ -1,13 +1,12 @@
|
|||
# AWS SDK for Go v2
|
||||
|
||||
[](https://github.com/aws/aws-sdk-go-v2/actions/workflows/go.yml)[](https://github.com/aws/aws-sdk-go-v2/actions/workflows/codegen.yml) [](https://aws.github.io/aws-sdk-go-v2/docs/) [](https://aws.github.io/aws-sdk-go-v2/docs/migrating/) [](https://pkg.go.dev/mod/github.com/aws/aws-sdk-go-v2) [](https://github.com/aws/aws-sdk-go/blob/master/LICENSE.txt)
|
||||
|
||||
[](https://github.com/aws/aws-sdk-go-v2/actions/workflows/go.yml)[](https://github.com/aws/aws-sdk-go-v2/actions/workflows/codegen.yml) [](https://aws.github.io/aws-sdk-go-v2/docs/) [](https://aws.github.io/aws-sdk-go-v2/docs/migrating/) [](https://pkg.go.dev/mod/github.com/aws/aws-sdk-go-v2) [](https://github.com/aws/aws-sdk-go-v2/blob/main/LICENSE.txt)
|
||||
|
||||
`aws-sdk-go-v2` is the v2 AWS SDK for the Go programming language.
|
||||
|
||||
The v2 SDK requires a minimum version of `Go 1.15`.
|
||||
|
||||
Checkout out the [release notes](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md) for information about the latest bug
|
||||
Check out the [release notes](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md) for information about the latest bug
|
||||
fixes, updates, and features added to the SDK.
|
||||
|
||||
Jump To:
|
||||
|
@ -87,7 +86,7 @@ func main() {
|
|||
###### Compile and Execute
|
||||
```sh
|
||||
$ go run .
|
||||
Table:
|
||||
Tables:
|
||||
tableOne
|
||||
tableTwo
|
||||
```
|
||||
|
@ -97,9 +96,9 @@ tableTwo
|
|||
Please use these community resources for getting help. We use the GitHub issues
|
||||
for tracking bugs and feature requests.
|
||||
|
||||
* Ask a question on [StackOverflow](http://stackoverflow.com/) and tag it with the [`aws-sdk-go`](http://stackoverflow.com/questions/tagged/aws-sdk-go) tag.
|
||||
* Open a support ticket with [AWS Support](http://docs.aws.amazon.com/awssupport/latest/user/getting-started.html).
|
||||
* Ask us a [question](https://github.com/aws/aws-sdk-go-v2/discussions/new?category=q-a) or open a [discussion](https://github.com/aws/aws-sdk-go-v2/discussions/new?category=general).
|
||||
* If you think you may have found a bug, please open an [issue](https://github.com/aws/aws-sdk-go-v2/issues/new/choose).
|
||||
* Open a support ticket with [AWS Support](http://docs.aws.amazon.com/awssupport/latest/user/getting-started.html).
|
||||
|
||||
This SDK implements AWS service APIs. For general issues regarding the AWS services and their limitations, you may also take a look at the [Amazon Web Services Discussion Forums](https://forums.aws.amazon.com/).
|
||||
|
||||
|
@ -107,7 +106,7 @@ This SDK implements AWS service APIs. For general issues regarding the AWS servi
|
|||
|
||||
If you encounter a bug with the AWS SDK for Go we would like to hear about it.
|
||||
Search the [existing issues][Issues] and see
|
||||
if others are also experiencing the issue before opening a new issue. Please
|
||||
if others are also experiencing the same issue before opening a new issue. Please
|
||||
include the version of AWS SDK for Go, Go language, and OS you’re using. Please
|
||||
also include reproduction case when appropriate.
|
||||
|
||||
|
@ -118,7 +117,7 @@ Keeping the list of open issues lean will help us respond in a timely manner.
|
|||
|
||||
## Feedback and contributing
|
||||
|
||||
The v2 SDK will use GitHub [Issues] to track feature requests and issues with the SDK. In addition, we'll use GitHub [Projects] to track large tasks spanning multiple pull requests, such as refactoring the SDK's internal request lifecycle. You can provide feedback to us in several ways.
|
||||
The v2 SDK will use GitHub [Issues] to track feature requests and issues with the SDK. In addition, we'll use GitHub [Projects] to track large tasks spanning multiple pull requests, such as refactoring the SDK's internal request lifecycle. You can provide feedback to us in several ways.
|
||||
|
||||
**GitHub issues**. To provide feedback or report bugs, file GitHub [Issues] on the SDK. This is the preferred mechanism to give feedback so that other users can engage in the conversation, +1 issues, etc. Issues you open will be evaluated, and included in our roadmap for the GA launch.
|
||||
|
||||
|
@ -139,8 +138,8 @@ API operation require parameters.
|
|||
|
||||
[Service Documentation](https://aws.amazon.com/documentation/) - Use this
|
||||
documentation to learn how to interface with AWS services. These guides are
|
||||
great for getting started with a service, or when looking for more
|
||||
information about a service. While this document is not required for coding,
|
||||
great for getting started with a service, or when looking for more
|
||||
information about a service. While this document is not required for coding,
|
||||
services may supply helpful samples to look out for.
|
||||
|
||||
[Forum](https://forums.aws.amazon.com/forum.jspa?forumID=293) - Ask questions, get help, and give feedback
|
||||
|
@ -151,7 +150,7 @@ services may supply helpful samples to look out for.
|
|||
[Dep]: https://github.com/golang/dep
|
||||
[Issues]: https://github.com/aws/aws-sdk-go-v2/issues
|
||||
[Projects]: https://github.com/aws/aws-sdk-go-v2/projects
|
||||
[CHANGELOG]: https://github.com/aws/aws-sdk-go-v2/blob/master/CHANGELOG.md
|
||||
[CHANGELOG]: https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md
|
||||
[Amazon DynamoDB]: https://aws.amazon.com/dynamodb/
|
||||
[design]: https://github.com/aws/aws-sdk-go-v2/blob/master/DESIGN.md
|
||||
[design]: https://github.com/aws/aws-sdk-go-v2/blob/main/DESIGN.md
|
||||
[license]: http://aws.amazon.com/apache2.0/
|
||||
|
|
6
vendor/github.com/aws/aws-sdk-go-v2/aws/config.go
generated
vendored
6
vendor/github.com/aws/aws-sdk-go-v2/aws/config.go
generated
vendored
|
@ -26,9 +26,9 @@ type Config struct {
|
|||
// information on AWS regions.
|
||||
Region string
|
||||
|
||||
// The credentials object to use when signing requests. Defaults to a
|
||||
// chain of credential providers to search for credentials in environment
|
||||
// variables, shared credential file, and EC2 Instance Roles.
|
||||
// The credentials object to use when signing requests.
|
||||
// Use the LoadDefaultConfig to load configuration from all the SDK's supported
|
||||
// sources, and resolve credentials using the SDK's default credential chain.
|
||||
Credentials CredentialsProvider
|
||||
|
||||
// The Bearer Authentication token provider to use for authenticating API
|
||||
|
|
6
vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go
generated
vendored
6
vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go
generated
vendored
|
@ -178,6 +178,12 @@ func (p *CredentialsCache) Invalidate() {
|
|||
p.creds.Store((*Credentials)(nil))
|
||||
}
|
||||
|
||||
// IsCredentialsProvider returns whether credential provider wrapped by CredentialsCache
|
||||
// matches the target provider type.
|
||||
func (p *CredentialsCache) IsCredentialsProvider(target CredentialsProvider) bool {
|
||||
return IsCredentialsProvider(p.provider, target)
|
||||
}
|
||||
|
||||
// HandleFailRefreshCredentialsCacheStrategy is an interface for
|
||||
// CredentialsCache to allow CredentialsProvider how failed to refresh
|
||||
// credentials is handled.
|
||||
|
|
39
vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go
generated
vendored
39
vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go
generated
vendored
|
@ -3,6 +3,7 @@ package aws
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go-v2/internal/sdk"
|
||||
|
@ -129,3 +130,41 @@ type CredentialsProviderFunc func(context.Context) (Credentials, error)
|
|||
func (fn CredentialsProviderFunc) Retrieve(ctx context.Context) (Credentials, error) {
|
||||
return fn(ctx)
|
||||
}
|
||||
|
||||
type isCredentialsProvider interface {
|
||||
IsCredentialsProvider(CredentialsProvider) bool
|
||||
}
|
||||
|
||||
// IsCredentialsProvider returns whether the target CredentialProvider is the same type as provider when comparing the
|
||||
// implementation type.
|
||||
//
|
||||
// If provider has a method IsCredentialsProvider(CredentialsProvider) bool it will be responsible for validating
|
||||
// whether target matches the credential provider type.
|
||||
//
|
||||
// When comparing the CredentialProvider implementations provider and target for equality, the following rules are used:
|
||||
//
|
||||
// If provider is of type T and target is of type V, true if type *T is the same as type *V, otherwise false
|
||||
// If provider is of type *T and target is of type V, true if type *T is the same as type *V, otherwise false
|
||||
// If provider is of type T and target is of type *V, true if type *T is the same as type *V, otherwise false
|
||||
// If provider is of type *T and target is of type *V,true if type *T is the same as type *V, otherwise false
|
||||
func IsCredentialsProvider(provider, target CredentialsProvider) bool {
|
||||
if target == nil || provider == nil {
|
||||
return provider == target
|
||||
}
|
||||
|
||||
if x, ok := provider.(isCredentialsProvider); ok {
|
||||
return x.IsCredentialsProvider(target)
|
||||
}
|
||||
|
||||
targetType := reflect.TypeOf(target)
|
||||
if targetType.Kind() != reflect.Ptr {
|
||||
targetType = reflect.PtrTo(targetType)
|
||||
}
|
||||
|
||||
providerType := reflect.TypeOf(provider)
|
||||
if providerType.Kind() != reflect.Ptr {
|
||||
providerType = reflect.PtrTo(providerType)
|
||||
}
|
||||
|
||||
return targetType.AssignableTo(providerType)
|
||||
}
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
|||
package aws
|
||||
|
||||
// goModuleVersion is the tagged release for this module
|
||||
const goModuleVersion = "1.16.13"
|
||||
const goModuleVersion = "1.17.6"
|
||||
|
|
11
vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/array.go
generated
vendored
11
vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/query/array.go
generated
vendored
|
@ -36,20 +36,31 @@ type Array struct {
|
|||
memberName string
|
||||
// Elements are stored in values, so we keep track of the list size here.
|
||||
size int32
|
||||
// Empty lists are encoded as "<prefix>=", if we add a value later we will
|
||||
// remove this encoding
|
||||
emptyValue Value
|
||||
}
|
||||
|
||||
func newArray(values url.Values, prefix string, flat bool, memberName string) *Array {
|
||||
emptyValue := newValue(values, prefix, flat)
|
||||
emptyValue.String("")
|
||||
|
||||
return &Array{
|
||||
values: values,
|
||||
prefix: prefix,
|
||||
flat: flat,
|
||||
memberName: memberName,
|
||||
emptyValue: emptyValue,
|
||||
}
|
||||
}
|
||||
|
||||
// Value adds a new element to the Query Array. Returns a Value type used to
|
||||
// encode the array element.
|
||||
func (a *Array) Value() Value {
|
||||
if a.size == 0 {
|
||||
delete(a.values, a.emptyValue.key)
|
||||
}
|
||||
|
||||
// Query lists start a 1, so adjust the size first
|
||||
a.size++
|
||||
prefix := a.prefix
|
||||
|
|
16
vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/xml/error_utils.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/xml/error_utils.go
generated
vendored
|
@ -21,26 +21,18 @@ func GetErrorResponseComponents(r io.Reader, noErrorWrapping bool) (ErrorCompone
|
|||
if err := xml.NewDecoder(r).Decode(&errResponse); err != nil && err != io.EOF {
|
||||
return ErrorComponents{}, fmt.Errorf("error while deserializing xml error response: %w", err)
|
||||
}
|
||||
return ErrorComponents{
|
||||
Code: errResponse.Code,
|
||||
Message: errResponse.Message,
|
||||
RequestID: errResponse.RequestID,
|
||||
}, nil
|
||||
return ErrorComponents(errResponse), nil
|
||||
}
|
||||
|
||||
var errResponse wrappedErrorResponse
|
||||
if err := xml.NewDecoder(r).Decode(&errResponse); err != nil && err != io.EOF {
|
||||
return ErrorComponents{}, fmt.Errorf("error while deserializing xml error response: %w", err)
|
||||
}
|
||||
return ErrorComponents{
|
||||
Code: errResponse.Code,
|
||||
Message: errResponse.Message,
|
||||
RequestID: errResponse.RequestID,
|
||||
}, nil
|
||||
return ErrorComponents(errResponse), nil
|
||||
}
|
||||
|
||||
// noWrappedErrorResponse represents the error response body with
|
||||
// no internal <Error></Error wrapping
|
||||
// no internal Error wrapping
|
||||
type noWrappedErrorResponse struct {
|
||||
Code string `xml:"Code"`
|
||||
Message string `xml:"Message"`
|
||||
|
@ -48,7 +40,7 @@ type noWrappedErrorResponse struct {
|
|||
}
|
||||
|
||||
// wrappedErrorResponse represents the error response body
|
||||
// wrapped within <Error>...</Error>
|
||||
// wrapped within Error
|
||||
type wrappedErrorResponse struct {
|
||||
Code string `xml:"Error>Code"`
|
||||
Message string `xml:"Error>Message"`
|
||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go
generated
vendored
|
@ -30,10 +30,6 @@ func NewTokenRateLimit(tokens uint) *TokenRateLimit {
|
|||
}
|
||||
}
|
||||
|
||||
func isTimeoutError(error) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
type canceledError struct {
|
||||
Err error
|
||||
}
|
||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive.go
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/aws/retry/adaptive.go
generated
vendored
|
@ -93,7 +93,7 @@ func (a *AdaptiveMode) IsErrorRetryable(err error) bool {
|
|||
}
|
||||
|
||||
// MaxAttempts returns the maximum number of attempts that can be made for
|
||||
// a attempt before failing. A value of 0 implies that the attempt should
|
||||
// an attempt before failing. A value of 0 implies that the attempt should
|
||||
// be retried until it succeeds if the errors are retryable.
|
||||
func (a *AdaptiveMode) MaxAttempts() int {
|
||||
return a.retryer.MaxAttempts()
|
||||
|
@ -127,7 +127,7 @@ func (a *AdaptiveMode) GetInitialToken() (releaseToken func(error) error) {
|
|||
|
||||
// GetAttemptToken returns the attempt token that can be used to rate limit
|
||||
// attempt calls. Will be used by the SDK's retry package's Attempt
|
||||
// middleware to get a attempt token prior to calling the temp and releasing
|
||||
// middleware to get an attempt token prior to calling the temp and releasing
|
||||
// the attempt token after the attempt has been made.
|
||||
func (a *AdaptiveMode) GetAttemptToken(ctx context.Context) (func(error) error, error) {
|
||||
for {
|
||||
|
|
5
vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go
generated
vendored
5
vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go
generated
vendored
|
@ -11,7 +11,6 @@ import (
|
|||
awsmiddle "github.com/aws/aws-sdk-go-v2/aws/middleware"
|
||||
"github.com/aws/aws-sdk-go-v2/internal/sdk"
|
||||
"github.com/aws/smithy-go/logging"
|
||||
"github.com/aws/smithy-go/middleware"
|
||||
smithymiddle "github.com/aws/smithy-go/middleware"
|
||||
"github.com/aws/smithy-go/transport/http"
|
||||
)
|
||||
|
@ -292,7 +291,7 @@ type retryMetadataKey struct{}
|
|||
// Scoped to stack values. Use github.com/aws/smithy-go/middleware#ClearStackValues
|
||||
// to clear all stack values.
|
||||
func getRetryMetadata(ctx context.Context) (metadata retryMetadata, ok bool) {
|
||||
metadata, ok = middleware.GetStackValue(ctx, retryMetadataKey{}).(retryMetadata)
|
||||
metadata, ok = smithymiddle.GetStackValue(ctx, retryMetadataKey{}).(retryMetadata)
|
||||
return metadata, ok
|
||||
}
|
||||
|
||||
|
@ -301,7 +300,7 @@ func getRetryMetadata(ctx context.Context) (metadata retryMetadata, ok bool) {
|
|||
// Scoped to stack values. Use github.com/aws/smithy-go/middleware#ClearStackValues
|
||||
// to clear all stack values.
|
||||
func setRetryMetadata(ctx context.Context, metadata retryMetadata) context.Context {
|
||||
return middleware.WithStackValue(ctx, retryMetadataKey{}, metadata)
|
||||
return smithymiddle.WithStackValue(ctx, retryMetadataKey{}, metadata)
|
||||
}
|
||||
|
||||
// AddRetryMiddlewaresOptions is the set of options that can be passed to
|
||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/aws/retryer.go
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/aws/retryer.go
generated
vendored
|
@ -49,7 +49,7 @@ type Retryer interface {
|
|||
IsErrorRetryable(error) bool
|
||||
|
||||
// MaxAttempts returns the maximum number of attempts that can be made for
|
||||
// a attempt before failing. A value of 0 implies that the attempt should
|
||||
// an attempt before failing. A value of 0 implies that the attempt should
|
||||
// be retried until it succeeds if the errors are retryable.
|
||||
MaxAttempts() int
|
||||
|
||||
|
@ -66,7 +66,7 @@ type Retryer interface {
|
|||
GetInitialToken() (releaseToken func(error) error)
|
||||
}
|
||||
|
||||
// RetryerV2 is an interface to determine if a given error from a attempt
|
||||
// RetryerV2 is an interface to determine if a given error from an attempt
|
||||
// should be retried, and if so what backoff delay to apply. The default
|
||||
// implementation used by most services is the retry package's Standard type.
|
||||
// Which contains basic retry logic using exponential backoff.
|
||||
|
|
7
vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go
generated
vendored
7
vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go
generated
vendored
|
@ -371,13 +371,8 @@ func haveCredentialProvider(p aws.CredentialsProvider) bool {
|
|||
if p == nil {
|
||||
return false
|
||||
}
|
||||
switch p.(type) {
|
||||
case aws.AnonymousCredentials,
|
||||
*aws.AnonymousCredentials:
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
return !aws.IsCredentialsProvider(p, (*aws.AnonymousCredentials)(nil))
|
||||
}
|
||||
|
||||
type payloadHashKey struct{}
|
||||
|
|
99
vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
generated
vendored
99
vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,102 @@
|
|||
# v1.18.16 (2023-03-10)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.15 (2023-02-22)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.14 (2023-02-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.13 (2023-02-15)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.12 (2023-02-03)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.11 (2023-02-01)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.10 (2023-01-25)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.9 (2023-01-23)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.8 (2023-01-05)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.7 (2022-12-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.6 (2022-12-19)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.5 (2022-12-15)
|
||||
|
||||
* **Bug Fix**: Unify logic between shared config and in finding home directory
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.4 (2022-12-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.3 (2022-11-22)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.2 (2022-11-17)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.1 (2022-11-16)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.18.0 (2022-11-11)
|
||||
|
||||
* **Announcement**: When using the SSOTokenProvider, a previous implementation incorrectly compensated for invalid SSOTokenProvider configurations in the shared profile. This has been fixed via PR #1903 and tracked in issue #1846
|
||||
* **Feature**: Adds token refresh support (via SSOTokenProvider) when using the SSOCredentialProvider
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.17.11 (2022-11-10)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.17.10 (2022-10-24)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.17.9 (2022-10-21)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.17.8 (2022-09-30)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.17.7 (2022-09-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.17.6 (2022-09-14)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.17.5 (2022-09-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.17.4 (2022-08-31)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
|||
package config
|
||||
|
||||
// goModuleVersion is the tagged release for this module
|
||||
const goModuleVersion = "1.17.4"
|
||||
const goModuleVersion = "1.18.16"
|
||||
|
|
15
vendor/github.com/aws/aws-sdk-go-v2/config/resolve_bearer_token.go
generated
vendored
15
vendor/github.com/aws/aws-sdk-go-v2/config/resolve_bearer_token.go
generated
vendored
|
@ -54,20 +54,9 @@ func resolveBearerAuthTokenProviderChain(ctx context.Context, cfg *aws.Config, c
|
|||
|
||||
var provider smithybearer.TokenProvider
|
||||
|
||||
if sharedConfig.SSOSession != nil || (sharedConfig.SSORegion != "" && sharedConfig.SSOStartURL != "") {
|
||||
ssoSession := sharedConfig.SSOSession
|
||||
if ssoSession == nil {
|
||||
// Fallback to legacy SSO session config parameters, if the
|
||||
// sso-session section wasn't used.
|
||||
ssoSession = &SSOSession{
|
||||
Name: sharedConfig.SSOStartURL,
|
||||
SSORegion: sharedConfig.SSORegion,
|
||||
SSOStartURL: sharedConfig.SSOStartURL,
|
||||
}
|
||||
}
|
||||
|
||||
if sharedConfig.SSOSession != nil {
|
||||
provider, err = resolveBearerAuthSSOTokenProvider(
|
||||
ctx, cfg, ssoSession, configs)
|
||||
ctx, cfg, sharedConfig.SSOSession, configs)
|
||||
}
|
||||
|
||||
if err == nil && provider != nil {
|
||||
|
|
26
vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go
generated
vendored
26
vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go
generated
vendored
|
@ -15,6 +15,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go-v2/credentials/stscreds"
|
||||
"github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
|
||||
"github.com/aws/aws-sdk-go-v2/service/sso"
|
||||
"github.com/aws/aws-sdk-go-v2/service/ssooidc"
|
||||
"github.com/aws/aws-sdk-go-v2/service/sts"
|
||||
)
|
||||
|
||||
|
@ -171,7 +172,30 @@ func resolveSSOCredentials(ctx context.Context, cfg *aws.Config, sharedConfig *S
|
|||
}
|
||||
|
||||
cfgCopy := cfg.Copy()
|
||||
cfgCopy.Region = sharedConfig.SSORegion
|
||||
|
||||
if sharedConfig.SSOSession != nil {
|
||||
ssoTokenProviderOptionsFn, found, err := getSSOTokenProviderOptions(ctx, configs)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get SSOTokenProviderOptions from config sources, %w", err)
|
||||
}
|
||||
var optFns []func(*ssocreds.SSOTokenProviderOptions)
|
||||
if found {
|
||||
optFns = append(optFns, ssoTokenProviderOptionsFn)
|
||||
}
|
||||
cfgCopy.Region = sharedConfig.SSOSession.SSORegion
|
||||
cachedPath, err := ssocreds.StandardCachedTokenFilepath(sharedConfig.SSOSession.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
oidcClient := ssooidc.NewFromConfig(cfgCopy)
|
||||
tokenProvider := ssocreds.NewSSOTokenProvider(oidcClient, cachedPath, optFns...)
|
||||
options = append(options, func(o *ssocreds.Options) {
|
||||
o.SSOTokenProvider = tokenProvider
|
||||
o.CachedTokenFilepath = cachedPath
|
||||
})
|
||||
} else {
|
||||
cfgCopy.Region = sharedConfig.SSORegion
|
||||
}
|
||||
|
||||
cfg.Credentials = ssocreds.New(sso.NewFromConfig(cfgCopy), sharedConfig.SSOAccountID, sharedConfig.SSORoleName, sharedConfig.SSOStartURL, options...)
|
||||
|
||||
|
|
146
vendor/github.com/aws/aws-sdk-go-v2/config/shared_config.go
generated
vendored
146
vendor/github.com/aws/aws-sdk-go-v2/config/shared_config.go
generated
vendored
|
@ -8,7 +8,6 @@ import (
|
|||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -16,6 +15,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go-v2/aws"
|
||||
"github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
|
||||
"github.com/aws/aws-sdk-go-v2/internal/ini"
|
||||
"github.com/aws/aws-sdk-go-v2/internal/shareddefaults"
|
||||
"github.com/aws/smithy-go/logging"
|
||||
)
|
||||
|
||||
|
@ -108,7 +108,7 @@ var defaultSharedConfigProfile = DefaultSharedConfigProfile
|
|||
// - Linux/Unix: $HOME/.aws/credentials
|
||||
// - Windows: %USERPROFILE%\.aws\credentials
|
||||
func DefaultSharedCredentialsFilename() string {
|
||||
return filepath.Join(userHomeDir(), ".aws", "credentials")
|
||||
return filepath.Join(shareddefaults.UserHomeDir(), ".aws", "credentials")
|
||||
}
|
||||
|
||||
// DefaultSharedConfigFilename returns the SDK's default file path for
|
||||
|
@ -119,7 +119,7 @@ func DefaultSharedCredentialsFilename() string {
|
|||
// - Linux/Unix: $HOME/.aws/config
|
||||
// - Windows: %USERPROFILE%\.aws\config
|
||||
func DefaultSharedConfigFilename() string {
|
||||
return filepath.Join(userHomeDir(), ".aws", "config")
|
||||
return filepath.Join(shareddefaults.UserHomeDir(), ".aws", "config")
|
||||
}
|
||||
|
||||
// DefaultSharedConfigFiles is a slice of the default shared config files that
|
||||
|
@ -142,18 +142,10 @@ type SSOSession struct {
|
|||
SSOStartURL string
|
||||
}
|
||||
|
||||
func (s *SSOSession) setFromIniSection(section ini.Section) error {
|
||||
func (s *SSOSession) setFromIniSection(section ini.Section) {
|
||||
updateString(&s.Name, section, ssoSessionNameKey)
|
||||
updateString(&s.SSORegion, section, ssoRegionKey)
|
||||
updateString(&s.SSOStartURL, section, ssoStartURLKey)
|
||||
|
||||
if s.SSORegion == "" || s.SSOStartURL == "" {
|
||||
return fmt.Errorf(
|
||||
"%v and %v are required parameters in sso-session section",
|
||||
ssoRegionKey, ssoStartURLKey,
|
||||
)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// SharedConfig represents the configuration fields of the SDK config files.
|
||||
|
@ -846,9 +838,8 @@ func (c *SharedConfig) setFromIniSections(profiles map[string]struct{}, profile
|
|||
// profile only have credential provider options.
|
||||
c.clearAssumeRoleOptions()
|
||||
} else {
|
||||
// First time a profile has been seen, It must either be a assume role
|
||||
// credentials, or SSO. Assert if the credential type requires a role ARN,
|
||||
// the ARN is also set, or validate that the SSO configuration is complete.
|
||||
// First time a profile has been seen. Assert if the credential type
|
||||
// requires a role ARN, the ARN is also set
|
||||
if err := c.validateCredentialsConfig(profile); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -900,31 +891,20 @@ func (c *SharedConfig) setFromIniSections(profiles map[string]struct{}, profile
|
|||
// as a section in the config file. Load the SSO session using the name
|
||||
// provided. If the session section is not found or incomplete an error
|
||||
// will be returned.
|
||||
if c.SSOSessionName != "" {
|
||||
c.SSOSession, err = getSSOSession(c.SSOSessionName, sections, logger)
|
||||
if err != nil {
|
||||
return err
|
||||
if c.hasSSOTokenProviderConfiguration() {
|
||||
section, ok := sections.GetSection(ssoSectionPrefix + strings.TrimSpace(c.SSOSessionName))
|
||||
if !ok {
|
||||
return fmt.Errorf("failed to find SSO session section, %v", c.SSOSessionName)
|
||||
}
|
||||
var ssoSession SSOSession
|
||||
ssoSession.setFromIniSection(section)
|
||||
ssoSession.Name = c.SSOSessionName
|
||||
c.SSOSession = &ssoSession
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func getSSOSession(name string, sections ini.Sections, logger logging.Logger) (*SSOSession, error) {
|
||||
section, ok := sections.GetSection(ssoSectionPrefix + strings.TrimSpace(name))
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("failed to find SSO session section, %v", name)
|
||||
}
|
||||
|
||||
var ssoSession SSOSession
|
||||
if err := ssoSession.setFromIniSection(section); err != nil {
|
||||
return nil, fmt.Errorf("failed to load SSO session %v, %w", name, err)
|
||||
}
|
||||
ssoSession.Name = name
|
||||
|
||||
return &ssoSession, nil
|
||||
}
|
||||
|
||||
// setFromIniSection loads the configuration from the profile section defined in
|
||||
// the provided INI file. A SharedConfig pointer type value is used so that
|
||||
// multiple config file loadings can be chained.
|
||||
|
@ -1088,17 +1068,66 @@ func (c *SharedConfig) validateCredentialType() error {
|
|||
len(c.CredentialProcess) != 0,
|
||||
len(c.WebIdentityTokenFile) != 0,
|
||||
) {
|
||||
return fmt.Errorf("only one credential type may be specified per profile: source profile, credential source, credential process, web identity token, or sso")
|
||||
return fmt.Errorf("only one credential type may be specified per profile: source profile, credential source, credential process, web identity token")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *SharedConfig) validateSSOConfiguration() error {
|
||||
if !c.hasSSOConfiguration() {
|
||||
if c.hasSSOTokenProviderConfiguration() {
|
||||
err := c.validateSSOTokenProviderConfiguration()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
if c.hasLegacySSOConfiguration() {
|
||||
err := c.validateLegacySSOConfiguration()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *SharedConfig) validateSSOTokenProviderConfiguration() error {
|
||||
var missing []string
|
||||
|
||||
if len(c.SSOSessionName) == 0 {
|
||||
missing = append(missing, ssoSessionNameKey)
|
||||
}
|
||||
|
||||
if c.SSOSession == nil {
|
||||
missing = append(missing, ssoSectionPrefix)
|
||||
} else {
|
||||
if len(c.SSOSession.SSORegion) == 0 {
|
||||
missing = append(missing, ssoRegionKey)
|
||||
}
|
||||
|
||||
if len(c.SSOSession.SSOStartURL) == 0 {
|
||||
missing = append(missing, ssoStartURLKey)
|
||||
}
|
||||
}
|
||||
|
||||
if len(missing) > 0 {
|
||||
return fmt.Errorf("profile %q is configured to use SSO but is missing required configuration: %s",
|
||||
c.Profile, strings.Join(missing, ", "))
|
||||
}
|
||||
|
||||
if len(c.SSORegion) > 0 && c.SSORegion != c.SSOSession.SSORegion {
|
||||
return fmt.Errorf("%s in profile %q must match %s in %s", ssoRegionKey, c.Profile, ssoRegionKey, ssoSectionPrefix)
|
||||
}
|
||||
|
||||
if len(c.SSOStartURL) > 0 && c.SSOStartURL != c.SSOSession.SSOStartURL {
|
||||
return fmt.Errorf("%s in profile %q must match %s in %s", ssoStartURLKey, c.Profile, ssoStartURLKey, ssoSectionPrefix)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *SharedConfig) validateLegacySSOConfiguration() error {
|
||||
var missing []string
|
||||
|
||||
if len(c.SSORegion) == 0 {
|
||||
|
@ -1109,11 +1138,18 @@ func (c *SharedConfig) validateSSOConfiguration() error {
|
|||
missing = append(missing, ssoStartURLKey)
|
||||
}
|
||||
|
||||
if len(c.SSOAccountID) == 0 {
|
||||
missing = append(missing, ssoAccountIDKey)
|
||||
}
|
||||
|
||||
if len(c.SSORoleName) == 0 {
|
||||
missing = append(missing, ssoRoleNameKey)
|
||||
}
|
||||
|
||||
if len(missing) > 0 {
|
||||
return fmt.Errorf("profile %q is configured to use SSO but is missing required configuration: %s",
|
||||
c.Profile, strings.Join(missing, ", "))
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -1133,15 +1169,15 @@ func (c *SharedConfig) hasCredentials() bool {
|
|||
}
|
||||
|
||||
func (c *SharedConfig) hasSSOConfiguration() bool {
|
||||
switch {
|
||||
case len(c.SSOAccountID) != 0:
|
||||
case len(c.SSORegion) != 0:
|
||||
case len(c.SSORoleName) != 0:
|
||||
case len(c.SSOStartURL) != 0:
|
||||
default:
|
||||
return false
|
||||
}
|
||||
return true
|
||||
return c.hasSSOTokenProviderConfiguration() || c.hasLegacySSOConfiguration()
|
||||
}
|
||||
|
||||
func (c *SharedConfig) hasSSOTokenProviderConfiguration() bool {
|
||||
return len(c.SSOSessionName) > 0
|
||||
}
|
||||
|
||||
func (c *SharedConfig) hasLegacySSOConfiguration() bool {
|
||||
return len(c.SSORegion) > 0 || len(c.SSOAccountID) > 0 || len(c.SSOStartURL) > 0 || len(c.SSORoleName) > 0
|
||||
}
|
||||
|
||||
func (c *SharedConfig) clearAssumeRoleOptions() {
|
||||
|
@ -1232,22 +1268,6 @@ func (e CredentialRequiresARNError) Error() string {
|
|||
)
|
||||
}
|
||||
|
||||
func userHomeDir() string {
|
||||
// Ignore errors since we only care about Windows and *nix.
|
||||
home, _ := os.UserHomeDir()
|
||||
|
||||
if len(home) > 0 {
|
||||
return home
|
||||
}
|
||||
|
||||
currUser, _ := user.Current()
|
||||
if currUser != nil {
|
||||
home = currUser.HomeDir
|
||||
}
|
||||
|
||||
return home
|
||||
}
|
||||
|
||||
func oneOrNone(bs ...bool) bool {
|
||||
var count int
|
||||
|
||||
|
|
98
vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
generated
vendored
98
vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,101 @@
|
|||
# v1.13.16 (2023-03-10)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.15 (2023-02-22)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.14 (2023-02-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.13 (2023-02-15)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.12 (2023-02-03)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.11 (2023-02-01)
|
||||
|
||||
* No change notes available for this release.
|
||||
|
||||
# v1.13.10 (2023-01-25)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.9 (2023-01-23)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.8 (2023-01-05)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.7 (2022-12-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.6 (2022-12-19)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.5 (2022-12-15)
|
||||
|
||||
* **Bug Fix**: Unify logic between shared config and in finding home directory
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.4 (2022-12-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.3 (2022-11-22)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.2 (2022-11-17)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.1 (2022-11-16)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.13.0 (2022-11-11)
|
||||
|
||||
* **Announcement**: When using the SSOTokenProvider, a previous implementation incorrectly compensated for invalid SSOTokenProvider configurations in the shared profile. This has been fixed via PR #1903 and tracked in issue #1846
|
||||
* **Feature**: Adds token refresh support (via SSOTokenProvider) when using the SSOCredentialProvider
|
||||
|
||||
# v1.12.24 (2022-11-10)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.23 (2022-10-24)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.22 (2022-10-21)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.21 (2022-09-30)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.20 (2022-09-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.19 (2022-09-14)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.18 (2022-09-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.17 (2022-08-31)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/doc.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds/doc.go
generated
vendored
|
@ -11,7 +11,7 @@
|
|||
// # Loading credentials with the SDK's AWS Config
|
||||
//
|
||||
// The EC2 Instance role credentials provider will automatically be the resolved
|
||||
// credential provider int he credential chain if no other credential provider is
|
||||
// credential provider in the credential chain if no other credential provider is
|
||||
// resolved first.
|
||||
//
|
||||
// To explicitly instruct the SDK's credentials resolving to use the EC2 Instance
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
|||
package credentials
|
||||
|
||||
// goModuleVersion is the tagged release for this module
|
||||
const goModuleVersion = "1.12.17"
|
||||
const goModuleVersion = "1.13.16"
|
||||
|
|
24
vendor/github.com/aws/aws-sdk-go-v2/credentials/processcreds/provider.go
generated
vendored
24
vendor/github.com/aws/aws-sdk-go-v2/credentials/processcreds/provider.go
generated
vendored
|
@ -149,12 +149,24 @@ func NewProviderCommand(builder NewCommandBuilder, options ...func(*Options)) *P
|
|||
return p
|
||||
}
|
||||
|
||||
type credentialProcessResponse struct {
|
||||
Version int
|
||||
AccessKeyID string `json:"AccessKeyId"`
|
||||
// A CredentialProcessResponse is the AWS credentials format that must be
|
||||
// returned when executing an external credential_process.
|
||||
type CredentialProcessResponse struct {
|
||||
// As of this writing, the Version key must be set to 1. This might
|
||||
// increment over time as the structure evolves.
|
||||
Version int
|
||||
|
||||
// The access key ID that identifies the temporary security credentials.
|
||||
AccessKeyID string `json:"AccessKeyId"`
|
||||
|
||||
// The secret access key that can be used to sign requests.
|
||||
SecretAccessKey string
|
||||
SessionToken string
|
||||
Expiration *time.Time
|
||||
|
||||
// The token that users must pass to the service API to use the temporary credentials.
|
||||
SessionToken string
|
||||
|
||||
// The date on which the current credentials expire.
|
||||
Expiration *time.Time
|
||||
}
|
||||
|
||||
// Retrieve executes the credential process command and returns the
|
||||
|
@ -166,7 +178,7 @@ func (p *Provider) Retrieve(ctx context.Context) (aws.Credentials, error) {
|
|||
}
|
||||
|
||||
// Serialize and validate response
|
||||
resp := &credentialProcessResponse{}
|
||||
resp := &CredentialProcessResponse{}
|
||||
if err = json.Unmarshal(out, resp); err != nil {
|
||||
return aws.Credentials{Source: ProviderName}, &ProviderError{
|
||||
Err: fmt.Errorf("parse failed of process output: %s, error: %w", out, err),
|
||||
|
|
12
vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_cached_token.go
generated
vendored
12
vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_cached_token.go
generated
vendored
|
@ -13,9 +13,10 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go-v2/internal/sdk"
|
||||
"github.com/aws/aws-sdk-go-v2/internal/shareddefaults"
|
||||
)
|
||||
|
||||
var osUserHomeDur = os.UserHomeDir
|
||||
var osUserHomeDur = shareddefaults.UserHomeDir
|
||||
|
||||
// StandardCachedTokenFilepath returns the filepath for the cached SSO token file, or
|
||||
// error if unable get derive the path. Key that will be used to compute a SHA1
|
||||
|
@ -25,13 +26,12 @@ var osUserHomeDur = os.UserHomeDir
|
|||
//
|
||||
// ~/.aws/sso/cache/<sha1-hex-encoded-key>.json
|
||||
func StandardCachedTokenFilepath(key string) (string, error) {
|
||||
homeDir, err := osUserHomeDur()
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("unable to get USER's home directory for cached token, %w", err)
|
||||
homeDir := osUserHomeDur()
|
||||
if len(homeDir) == 0 {
|
||||
return "", fmt.Errorf("unable to get USER's home directory for cached token")
|
||||
}
|
||||
|
||||
hash := sha1.New()
|
||||
if _, err = hash.Write([]byte(key)); err != nil {
|
||||
if _, err := hash.Write([]byte(key)); err != nil {
|
||||
return "", fmt.Errorf("unable to compute cached token filepath key SHA1 hash, %w", err)
|
||||
}
|
||||
|
||||
|
|
42
vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_credentials_provider.go
generated
vendored
42
vendor/github.com/aws/aws-sdk-go-v2/credentials/ssocreds/sso_credentials_provider.go
generated
vendored
|
@ -45,6 +45,10 @@ type Options struct {
|
|||
// If custom cached token filepath is used, the Provider's startUrl
|
||||
// parameter will be ignored.
|
||||
CachedTokenFilepath string
|
||||
|
||||
// Used by the SSOCredentialProvider if a token configuration
|
||||
// profile is used in the shared config
|
||||
SSOTokenProvider *SSOTokenProvider
|
||||
}
|
||||
|
||||
// Provider is an AWS credential provider that retrieves temporary AWS
|
||||
|
@ -78,27 +82,39 @@ func New(client GetRoleCredentialsAPIClient, accountID, roleName, startURL strin
|
|||
|
||||
// Retrieve retrieves temporary AWS credentials from the configured Amazon
|
||||
// Single Sign-On (AWS SSO) user portal by exchanging the accessToken present
|
||||
// in ~/.aws/sso/cache.
|
||||
// in ~/.aws/sso/cache. However, if a token provider configuration exists
|
||||
// in the shared config, then we ought to use the token provider rather then
|
||||
// direct access on the cached token.
|
||||
func (p *Provider) Retrieve(ctx context.Context) (aws.Credentials, error) {
|
||||
if p.cachedTokenFilepath == "" {
|
||||
cachedTokenFilepath, err := StandardCachedTokenFilepath(p.options.StartURL)
|
||||
var accessToken *string
|
||||
if p.options.SSOTokenProvider != nil {
|
||||
token, err := p.options.SSOTokenProvider.RetrieveBearerToken(ctx)
|
||||
if err != nil {
|
||||
return aws.Credentials{}, err
|
||||
}
|
||||
accessToken = &token.Value
|
||||
} else {
|
||||
if p.cachedTokenFilepath == "" {
|
||||
cachedTokenFilepath, err := StandardCachedTokenFilepath(p.options.StartURL)
|
||||
if err != nil {
|
||||
return aws.Credentials{}, &InvalidTokenError{Err: err}
|
||||
}
|
||||
p.cachedTokenFilepath = cachedTokenFilepath
|
||||
}
|
||||
|
||||
tokenFile, err := loadCachedToken(p.cachedTokenFilepath)
|
||||
if err != nil {
|
||||
return aws.Credentials{}, &InvalidTokenError{Err: err}
|
||||
}
|
||||
p.cachedTokenFilepath = cachedTokenFilepath
|
||||
}
|
||||
|
||||
tokenFile, err := loadCachedToken(p.cachedTokenFilepath)
|
||||
if err != nil {
|
||||
return aws.Credentials{}, &InvalidTokenError{Err: err}
|
||||
}
|
||||
|
||||
if tokenFile.ExpiresAt == nil || sdk.NowTime().After(time.Time(*tokenFile.ExpiresAt)) {
|
||||
return aws.Credentials{}, &InvalidTokenError{}
|
||||
if tokenFile.ExpiresAt == nil || sdk.NowTime().After(time.Time(*tokenFile.ExpiresAt)) {
|
||||
return aws.Credentials{}, &InvalidTokenError{}
|
||||
}
|
||||
accessToken = &tokenFile.AccessToken
|
||||
}
|
||||
|
||||
output, err := p.options.Client.GetRoleCredentials(ctx, &sso.GetRoleCredentialsInput{
|
||||
AccessToken: &tokenFile.AccessToken,
|
||||
AccessToken: accessToken,
|
||||
AccountId: &p.options.AccountID,
|
||||
RoleName: &p.options.RoleName,
|
||||
})
|
||||
|
|
41
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
generated
vendored
41
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,44 @@
|
|||
# v1.12.24 (2023-03-10)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.23 (2023-02-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.22 (2023-02-03)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.21 (2022-12-15)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.20 (2022-12-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.19 (2022-10-24)
|
||||
|
||||
* **Bug Fix**: Fixes an issue that prevented logging of the API request or responses when the respective log modes were enabled.
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.18 (2022-10-21)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.17 (2022-09-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.16 (2022-09-14)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.15 (2022-09-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.12.14 (2022-08-31)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
|
6
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_client.go
generated
vendored
6
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/api_client.go
generated
vendored
|
@ -106,8 +106,10 @@ func New(options Options, optFns ...func(*Options)) *Client {
|
|||
// or adding custom middleware behavior.
|
||||
func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client {
|
||||
opts := Options{
|
||||
APIOptions: append([]func(*middleware.Stack) error{}, cfg.APIOptions...),
|
||||
HTTPClient: cfg.HTTPClient,
|
||||
APIOptions: append([]func(*middleware.Stack) error{}, cfg.APIOptions...),
|
||||
HTTPClient: cfg.HTTPClient,
|
||||
ClientLogMode: cfg.ClientLogMode,
|
||||
Logger: cfg.Logger,
|
||||
}
|
||||
|
||||
if cfg.Retryer != nil {
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
|||
package imds
|
||||
|
||||
// goModuleVersion is the tagged release for this module
|
||||
const goModuleVersion = "1.12.14"
|
||||
const goModuleVersion = "1.12.24"
|
||||
|
|
19
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/request_middleware.go
generated
vendored
19
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/request_middleware.go
generated
vendored
|
@ -86,6 +86,21 @@ func addRequestMiddleware(stack *middleware.Stack,
|
|||
return err
|
||||
}
|
||||
|
||||
err = stack.Deserialize.Add(&smithyhttp.RequestResponseLogger{
|
||||
LogRequest: options.ClientLogMode.IsRequest(),
|
||||
LogRequestWithBody: options.ClientLogMode.IsRequestWithBody(),
|
||||
LogResponse: options.ClientLogMode.IsResponse(),
|
||||
LogResponseWithBody: options.ClientLogMode.IsResponseWithBody(),
|
||||
}, middleware.After)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = addSetLoggerMiddleware(stack, options)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Retry support
|
||||
return retry.AddRetryMiddlewares(stack, retry.AddRetryMiddlewaresOptions{
|
||||
Retryer: options.Retryer,
|
||||
|
@ -93,6 +108,10 @@ func addRequestMiddleware(stack *middleware.Stack,
|
|||
})
|
||||
}
|
||||
|
||||
func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error {
|
||||
return middleware.AddSetLoggerMiddleware(stack, o.Logger)
|
||||
}
|
||||
|
||||
type serializeRequest struct {
|
||||
GetPath func(interface{}) (string, error)
|
||||
Method string
|
||||
|
|
40
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
generated
vendored
40
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,43 @@
|
|||
# v1.1.30 (2023-03-10)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.29 (2023-02-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.28 (2023-02-03)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.27 (2022-12-15)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.26 (2022-12-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.25 (2022-10-24)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.24 (2022-10-21)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.23 (2022-09-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.22 (2022-09-14)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.21 (2022-09-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.1.20 (2022-08-31)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
|||
package configsources
|
||||
|
||||
// goModuleVersion is the tagged release for this module
|
||||
const goModuleVersion = "1.1.20"
|
||||
const goModuleVersion = "1.1.30"
|
||||
|
|
40
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
generated
vendored
40
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,43 @@
|
|||
# v2.4.24 (2023-03-10)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.23 (2023-02-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.22 (2023-02-03)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.21 (2022-12-15)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.20 (2022-12-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.19 (2022-10-24)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.18 (2022-10-21)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.17 (2022-09-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.16 (2022-09-14)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.15 (2022-09-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v2.4.14 (2022-08-31)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
|||
package endpoints
|
||||
|
||||
// goModuleVersion is the tagged release for this module
|
||||
const goModuleVersion = "2.4.14"
|
||||
const goModuleVersion = "2.4.24"
|
||||
|
|
40
vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md
generated
vendored
40
vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,43 @@
|
|||
# v1.3.31 (2023-03-10)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.30 (2023-02-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.29 (2023-02-03)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.28 (2022-12-15)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.27 (2022-12-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.26 (2022-10-24)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.25 (2022-10-21)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.24 (2022-09-20)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.23 (2022-09-14)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.22 (2022-09-02)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
||||
# v1.3.21 (2022-08-31)
|
||||
|
||||
* **Dependency Update**: Updated to the latest SDK module versions
|
||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
|||
package ini
|
||||
|
||||
// goModuleVersion is the tagged release for this module
|
||||
const goModuleVersion = "1.3.21"
|
||||
const goModuleVersion = "1.3.31"
|
||||
|
|
47
vendor/github.com/aws/aws-sdk-go-v2/internal/shareddefaults/shared_config.go
generated
vendored
Normal file
47
vendor/github.com/aws/aws-sdk-go-v2/internal/shareddefaults/shared_config.go
generated
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
package shareddefaults
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// SharedCredentialsFilename returns the SDK's default file path
|
||||
// for the shared credentials file.
|
||||
//
|
||||
// Builds the shared config file path based on the OS's platform.
|
||||
//
|
||||
// - Linux/Unix: $HOME/.aws/credentials
|
||||
// - Windows: %USERPROFILE%\.aws\credentials
|
||||
func SharedCredentialsFilename() string {
|
||||
return filepath.Join(UserHomeDir(), ".aws", "credentials")
|
||||
}
|
||||
|
||||
// SharedConfigFilename returns the SDK's default file path for
|
||||
// the shared config file.
|
||||
//
|
||||
// Builds the shared config file path based on the OS's platform.
|
||||
//
|
||||
// - Linux/Unix: $HOME/.aws/config
|
||||
// - Windows: %USERPROFILE%\.aws\config
|
||||
func SharedConfigFilename() string {
|
||||
return filepath.Join(UserHomeDir(), ".aws", "config")
|
||||
}
|
||||
|
||||
// UserHomeDir returns the home directory for the user the process is
|
||||
// running under.
|
||||
func UserHomeDir() string {
|
||||
// Ignore errors since we only care about Windows and *nix.
|
||||
home, _ := os.UserHomeDir()
|
||||
|
||||
if len(home) > 0 {
|
||||
return home
|
||||
}
|
||||
|
||||
currUser, _ := user.Current()
|
||||
if currUser != nil {
|
||||
home = currUser.HomeDir
|
||||
}
|
||||
|
||||
return home
|
||||
}
|
4
vendor/github.com/aws/aws-sdk-go-v2/modman.toml
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/modman.toml
generated
vendored
|
@ -1,10 +1,10 @@
|
|||
|
||||
[dependencies]
|
||||
"github.com/aws/aws-sdk-go" = "v1.44.28"
|
||||
"github.com/aws/smithy-go" = "v1.13.1"
|
||||
"github.com/aws/smithy-go" = "v1.13.5"
|
||||
"github.com/google/go-cmp" = "v0.5.8"
|
||||
"github.com/jmespath/go-jmespath" = "v0.4.0"
|
||||
"golang.org/x/net" = "v0.0.0-20220127200216-cd36cc0744dd"
|
||||
"golang.org/x/net" = "v0.1.0"
|
||||
|
||||
[modules]
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue