mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-09 23:24:05 -08:00
*: Update go dependencies
Signed-off-by: Frederic Branczyk <fbranczyk@gmail.com>
This commit is contained in:
parent
da3ea43242
commit
a58489857d
49
go.mod
49
go.mod
|
@ -3,21 +3,22 @@ module github.com/prometheus/prometheus
|
||||||
go 1.14
|
go 1.14
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Azure/azure-sdk-for-go v45.1.0+incompatible
|
github.com/Azure/azure-sdk-for-go v46.4.0+incompatible
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect
|
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect
|
||||||
github.com/Azure/go-autorest/autorest v0.11.4
|
github.com/Azure/go-autorest/autorest v0.11.10
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.2
|
github.com/Azure/go-autorest/autorest/adal v0.9.5
|
||||||
github.com/Azure/go-autorest/autorest/to v0.3.0 // indirect
|
github.com/Azure/go-autorest/autorest/to v0.3.0 // indirect
|
||||||
github.com/Azure/go-autorest/autorest/validation v0.2.0 // indirect
|
github.com/Azure/go-autorest/autorest/validation v0.2.0 // indirect
|
||||||
|
github.com/HdrHistogram/hdrhistogram-go v0.9.0 // indirect
|
||||||
github.com/Microsoft/go-winio v0.4.14 // indirect
|
github.com/Microsoft/go-winio v0.4.14 // indirect
|
||||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d
|
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d
|
||||||
github.com/armon/go-metrics v0.3.3 // indirect
|
github.com/armon/go-metrics v0.3.3 // indirect
|
||||||
github.com/aws/aws-sdk-go v1.34.9
|
github.com/aws/aws-sdk-go v1.35.5
|
||||||
github.com/cespare/xxhash v1.1.0
|
github.com/cespare/xxhash v1.1.0
|
||||||
github.com/containerd/containerd v1.3.4 // indirect
|
github.com/containerd/containerd v1.3.4 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/dgryski/go-sip13 v0.0.0-20190329191031-25c5027a8c7b
|
github.com/dgryski/go-sip13 v0.0.0-20200911182023-62edffca9245
|
||||||
github.com/digitalocean/godo v1.42.1
|
github.com/digitalocean/godo v1.46.0
|
||||||
github.com/docker/distribution v2.7.1+incompatible // indirect
|
github.com/docker/distribution v2.7.1+incompatible // indirect
|
||||||
github.com/docker/docker v17.12.0-ce-rc1.0.20200706150819-a40b877fbb9e+incompatible
|
github.com/docker/docker v17.12.0-ce-rc1.0.20200706150819-a40b877fbb9e+incompatible
|
||||||
github.com/docker/go-connections v0.4.0 // indirect
|
github.com/docker/go-connections v0.4.0 // indirect
|
||||||
|
@ -26,16 +27,16 @@ require (
|
||||||
github.com/go-logfmt/logfmt v0.5.0
|
github.com/go-logfmt/logfmt v0.5.0
|
||||||
github.com/go-openapi/strfmt v0.19.5
|
github.com/go-openapi/strfmt v0.19.5
|
||||||
github.com/gogo/protobuf v1.3.1
|
github.com/gogo/protobuf v1.3.1
|
||||||
github.com/golang/snappy v0.0.1
|
github.com/golang/snappy v0.0.2
|
||||||
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99
|
github.com/google/pprof v0.0.0-20201007051231-1066cbb265c7
|
||||||
github.com/gophercloud/gophercloud v0.12.0
|
github.com/gophercloud/gophercloud v0.13.0
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.14.6
|
github.com/grpc-ecosystem/grpc-gateway v1.15.0
|
||||||
github.com/hashicorp/consul/api v1.6.0
|
github.com/hashicorp/consul/api v1.7.0
|
||||||
github.com/hashicorp/go-hclog v0.12.2 // indirect
|
github.com/hashicorp/go-hclog v0.12.2 // indirect
|
||||||
github.com/hashicorp/go-immutable-radix v1.2.0 // indirect
|
github.com/hashicorp/go-immutable-radix v1.2.0 // indirect
|
||||||
github.com/hashicorp/golang-lru v0.5.4 // indirect
|
github.com/hashicorp/golang-lru v0.5.4 // indirect
|
||||||
github.com/hetznercloud/hcloud-go v1.21.1
|
github.com/hetznercloud/hcloud-go v1.22.0
|
||||||
github.com/influxdata/influxdb v1.8.2
|
github.com/influxdata/influxdb v1.8.3
|
||||||
github.com/json-iterator/go v1.1.10
|
github.com/json-iterator/go v1.1.10
|
||||||
github.com/miekg/dns v1.1.31
|
github.com/miekg/dns v1.1.31
|
||||||
github.com/mitchellh/mapstructure v1.2.2 // indirect
|
github.com/mitchellh/mapstructure v1.2.2 // indirect
|
||||||
|
@ -55,21 +56,19 @@ require (
|
||||||
github.com/prometheus/common v0.14.0
|
github.com/prometheus/common v0.14.0
|
||||||
github.com/samuel/go-zookeeper v0.0.0-20200724154423-2164a8ac840e
|
github.com/samuel/go-zookeeper v0.0.0-20200724154423-2164a8ac840e
|
||||||
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749
|
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749
|
||||||
github.com/shurcooL/vfsgen v0.0.0-20200627165143-92b8a710ab6c
|
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546
|
||||||
github.com/uber/jaeger-client-go v2.25.0+incompatible
|
github.com/uber/jaeger-client-go v2.25.0+incompatible
|
||||||
github.com/uber/jaeger-lib v2.2.0+incompatible
|
github.com/uber/jaeger-lib v2.4.0+incompatible
|
||||||
go.mongodb.org/mongo-driver v1.3.2 // indirect
|
go.mongodb.org/mongo-driver v1.3.2 // indirect
|
||||||
go.uber.org/atomic v1.6.0
|
go.uber.org/atomic v1.7.0
|
||||||
go.uber.org/goleak v1.1.10
|
go.uber.org/goleak v1.1.10
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202
|
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0
|
||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43
|
||||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208
|
golang.org/x/sync v0.0.0-20200930132711-30421366ff76
|
||||||
golang.org/x/sys v0.0.0-20200918174421-af09f7315aff
|
golang.org/x/sys v0.0.0-20201008064518-c1f3e3309c71
|
||||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
|
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
|
||||||
golang.org/x/tools v0.0.0-20200822203824-307de81be3f4
|
golang.org/x/tools v0.0.0-20201008025239-9df69603baec
|
||||||
google.golang.org/api v0.29.0
|
google.golang.org/api v0.32.0
|
||||||
google.golang.org/appengine v1.6.6 // indirect
|
|
||||||
google.golang.org/genproto v0.0.0-20200815001618-f69a88009b70 // indirect
|
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6
|
gopkg.in/alecthomas/kingpin.v2 v2.2.6
|
||||||
gopkg.in/fsnotify/fsnotify.v1 v1.4.7
|
gopkg.in/fsnotify/fsnotify.v1 v1.4.7
|
||||||
gopkg.in/yaml.v2 v2.3.0
|
gopkg.in/yaml.v2 v2.3.0
|
||||||
|
@ -79,7 +78,7 @@ require (
|
||||||
k8s.io/apimachinery v0.19.2
|
k8s.io/apimachinery v0.19.2
|
||||||
k8s.io/client-go v0.19.2
|
k8s.io/client-go v0.19.2
|
||||||
k8s.io/klog v1.0.0
|
k8s.io/klog v1.0.0
|
||||||
k8s.io/klog/v2 v2.2.0
|
k8s.io/klog/v2 v2.3.0
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
|
|
176
go.sum
176
go.sum
|
@ -10,38 +10,46 @@ cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6T
|
||||||
cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw=
|
cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw=
|
||||||
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
|
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
|
||||||
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
|
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
|
||||||
|
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
|
||||||
cloud.google.com/go v0.56.0 h1:WRz29PgAsVEyPSDHyk+0fpEkwEFyfhHn+JbksT6gIL4=
|
cloud.google.com/go v0.56.0 h1:WRz29PgAsVEyPSDHyk+0fpEkwEFyfhHn+JbksT6gIL4=
|
||||||
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
|
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
|
||||||
|
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
|
||||||
|
cloud.google.com/go v0.65.0 h1:Dg9iHVQfrhq82rUNu9ZxUDrJLaxFUe/HlCVaLyRruq8=
|
||||||
|
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
|
||||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
cloud.google.com/go/bigquery v1.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.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.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/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o=
|
cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o=
|
||||||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
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/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
|
||||||
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
cloud.google.com/go/pubsub v1.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.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
|
||||||
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
|
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
|
||||||
|
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
|
||||||
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
||||||
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
|
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
|
||||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
cloud.google.com/go/storage v1.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=
|
||||||
collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE=
|
collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE=
|
||||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||||
github.com/Azure/azure-sdk-for-go v45.1.0+incompatible h1:kxtaPD8n2z5Za+9e3sKsYG2IX6PG2R6VXtgS7gAbh3A=
|
github.com/Azure/azure-sdk-for-go v46.4.0+incompatible h1:fCN6Pi+tEiEwFa8RSmtVlFHRXEZ+DJm9gfx/MKqYWw4=
|
||||||
github.com/Azure/azure-sdk-for-go v45.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
|
github.com/Azure/azure-sdk-for-go v46.4.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8=
|
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8=
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
|
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
|
||||||
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
|
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
|
||||||
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
|
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
|
||||||
github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
|
github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
|
||||||
github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630=
|
github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630=
|
||||||
github.com/Azure/go-autorest/autorest v0.11.4 h1:iWJqGEvip7mjibEqC/srXNdo+4wLEPiwlP/7dZLtoPc=
|
github.com/Azure/go-autorest/autorest v0.11.10 h1:j5sGbX7uj1ieYYkQ3Mpvewd4DCsEQ+ZeJpqnSM9pjnM=
|
||||||
github.com/Azure/go-autorest/autorest v0.11.4/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
|
github.com/Azure/go-autorest/autorest v0.11.10/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw=
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
|
github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
|
github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.0 h1:SigMbuFNuKgc1xcGhaeapbh+8fgsu+GxgDRFyg7f5lM=
|
github.com/Azure/go-autorest/autorest/adal v0.9.5 h1:Y3bBUV4rTuxenJJs41HU3qmqsb+auo+a3Lz+PlJPpL0=
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
|
github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.2 h1:Aze/GQeAN1RRbGmnUJvUj+tFGBzFdIg3293/A9rbxC4=
|
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.2/go.mod h1:/3SMAM86bP6wC9Ev35peQDUeqFZBMH07vvUOmg4z/fE=
|
|
||||||
github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
|
github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
|
||||||
github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=
|
github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=
|
||||||
github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
|
github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
|
||||||
|
@ -49,8 +57,6 @@ github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSY
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
|
github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
|
github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
|
github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.4.0 h1:z20OWOSG5aCye0HEkDp6TPmP17ZcfeMxPi6HnSALa8c=
|
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
|
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk=
|
github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk=
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
|
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
|
||||||
github.com/Azure/go-autorest/autorest/to v0.3.0 h1:zebkZaadz7+wIQYgC7GXaz3Wb28yKYfVkkBKwc38VF8=
|
github.com/Azure/go-autorest/autorest/to v0.3.0 h1:zebkZaadz7+wIQYgC7GXaz3Wb28yKYfVkkBKwc38VF8=
|
||||||
|
@ -69,6 +75,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
||||||
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
|
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
|
||||||
|
github.com/HdrHistogram/hdrhistogram-go v0.9.0 h1:dpujRju0R4M/QZzcnR1LH1qm+TVG3UzkWdp5tH1WMcg=
|
||||||
|
github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qEclQKK70g0KxO61gFFZD4=
|
||||||
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
|
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
|
||||||
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
|
github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
|
||||||
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
|
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
|
||||||
|
@ -113,8 +121,8 @@ github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 h1:zV3ejI06
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
||||||
github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
|
github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
|
||||||
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||||
github.com/aws/aws-sdk-go v1.34.9 h1:cUGBW9CVdi0mS7K1hDzxIqTpfeWhpoQiguq81M1tjK0=
|
github.com/aws/aws-sdk-go v1.35.5 h1:doSEOxC0UkirPcle20Rc+1kAhJ4Ip+GSEeZ3nKl7Qlk=
|
||||||
github.com/aws/aws-sdk-go v1.34.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
github.com/aws/aws-sdk-go v1.35.5/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
|
||||||
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
|
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||||
|
@ -158,10 +166,10 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ=
|
github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ=
|
||||||
github.com/dgryski/go-sip13 v0.0.0-20190329191031-25c5027a8c7b h1:Yqiad0+sloMPdd/0Fg22actpFx0dekpzt1xJmVNVkU0=
|
github.com/dgryski/go-sip13 v0.0.0-20200911182023-62edffca9245 h1:9cOfvEwjQxdwKuNDTQSaMKNRvwKwgZG+U4HrjeRKHso=
|
||||||
github.com/dgryski/go-sip13 v0.0.0-20190329191031-25c5027a8c7b/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
github.com/dgryski/go-sip13 v0.0.0-20200911182023-62edffca9245/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||||
github.com/digitalocean/godo v1.42.1 h1:SJ/XMVsp5CZmyQal8gLlOl9jSl1i3FaN20LlgtK5ZMs=
|
github.com/digitalocean/godo v1.46.0 h1:WRbwjATilgz2NE4NGMeSDpeicy9h4xSKNGuRJ/Nq/fA=
|
||||||
github.com/digitalocean/godo v1.42.1/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU=
|
github.com/digitalocean/godo v1.46.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU=
|
||||||
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
|
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
|
||||||
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
github.com/docker/docker v17.12.0-ce-rc1.0.20200706150819-a40b877fbb9e+incompatible h1:+mzU0jHyjWpYHiD0StRlsVXkCvecWS2hc55M3OlUJSk=
|
github.com/docker/docker v17.12.0-ce-rc1.0.20200706150819-a40b877fbb9e+incompatible h1:+mzU0jHyjWpYHiD0StRlsVXkCvecWS2hc55M3OlUJSk=
|
||||||
|
@ -193,6 +201,8 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv
|
||||||
github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
|
github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
|
||||||
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||||
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
|
||||||
|
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
|
||||||
|
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
|
||||||
github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
|
github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
|
||||||
github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
|
github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
|
||||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
||||||
|
@ -287,7 +297,6 @@ github.com/go-openapi/validate v0.19.8 h1:YFzsdWIDfVuLvIOF+ZmKjVg1MbPJ1QgY9PihMw
|
||||||
github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
|
github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
|
||||||
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
|
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
|
||||||
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
|
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
|
||||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
|
||||||
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
|
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
|
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
|
||||||
|
@ -314,6 +323,7 @@ github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWe
|
||||||
github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=
|
github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=
|
||||||
github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=
|
github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=
|
||||||
github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
|
github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
|
||||||
|
github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||||
github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
|
github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
|
@ -333,11 +343,14 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb
|
||||||
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||||
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
||||||
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||||
|
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||||
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||||
|
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||||
|
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||||
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
|
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
|
||||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
||||||
|
@ -350,6 +363,8 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
|
||||||
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
||||||
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
|
github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw=
|
||||||
|
github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
|
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
|
||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
|
@ -359,21 +374,29 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
|
||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
|
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
|
||||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
|
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
|
||||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
|
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
||||||
|
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
|
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
|
||||||
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
|
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
|
||||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=
|
github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=
|
||||||
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||||
|
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
github.com/google/pprof v0.0.0-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-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||||
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||||
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||||
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
github.com/google/pprof v0.0.0-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 h1:Ak8CrdlwwXwAZxzS66vgPt4U8yUZX7JwLvVR58FN5jM=
|
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99 h1:Ak8CrdlwwXwAZxzS66vgPt4U8yUZX7JwLvVR58FN5jM=
|
||||||
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/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-20201007051231-1066cbb265c7 h1:qYWTuM6SUNWgtvkhV8oH6GFHCpU+rKQOxPcepM3xKi0=
|
||||||
|
github.com/google/pprof v0.0.0-20201007051231-1066cbb265c7/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
||||||
|
@ -383,8 +406,8 @@ github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+
|
||||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||||
github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I=
|
github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I=
|
||||||
github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
|
github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
|
||||||
github.com/gophercloud/gophercloud v0.12.0 h1:mZrie07npp6ODiwHZolTicr5jV8Ogn43AvAsSMm6Ork=
|
github.com/gophercloud/gophercloud v0.13.0 h1:1XkslZZRm6Ks0bLup+hBNth+KQf+0JA1UeoB7YKw9E8=
|
||||||
github.com/gophercloud/gophercloud v0.12.0/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss=
|
github.com/gophercloud/gophercloud v0.13.0/go.mod h1:VX0Ibx85B60B5XOrZr6kaNwrmPUzcmMpwxvQ1WQIIWM=
|
||||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||||
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
||||||
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
|
@ -396,11 +419,11 @@ github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:Fecb
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
||||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.14.6 h1:8ERzHx8aj1Sc47mu9n/AksaKCSWrMchFtkdrS4BIj5o=
|
github.com/grpc-ecosystem/grpc-gateway v1.15.0 h1:ntPNC9TD/6l2XDenJZe6T5lSMg95thpV9sGAqHX4WU8=
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw=
|
github.com/grpc-ecosystem/grpc-gateway v1.15.0/go.mod h1:vO11I9oWA+KsxmfFQPhLnnIb1VDE24M+pdxZFiuZcA8=
|
||||||
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
|
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
|
||||||
github.com/hashicorp/consul/api v1.6.0 h1:SZB2hQW8AcTOpfDmiVblQbijxzsRuiyy0JpHfabvHio=
|
github.com/hashicorp/consul/api v1.7.0 h1:tGs8Oep67r8CcA2Ycmb/8BLBcJ70St44mF2X10a/qPg=
|
||||||
github.com/hashicorp/consul/api v1.6.0/go.mod h1:1NSuaUUkFaJzMasbfq/11wKYWSR67Xn6r2DXKhuDNFg=
|
github.com/hashicorp/consul/api v1.7.0/go.mod h1:1NSuaUUkFaJzMasbfq/11wKYWSR67Xn6r2DXKhuDNFg=
|
||||||
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
|
||||||
github.com/hashicorp/consul/sdk v0.6.0 h1:FfhMEkwvQl57CildXJyGHnwGGM4HMODGyfjGwNM1Vdw=
|
github.com/hashicorp/consul/sdk v0.6.0 h1:FfhMEkwvQl57CildXJyGHnwGGM4HMODGyfjGwNM1Vdw=
|
||||||
github.com/hashicorp/consul/sdk v0.6.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM=
|
github.com/hashicorp/consul/sdk v0.6.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM=
|
||||||
|
@ -447,8 +470,8 @@ github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOn
|
||||||
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
|
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
|
||||||
github.com/hashicorp/serf v0.9.3 h1:AVF6JDQQens6nMHT9OGERBvK0f8rPrAGILnsKLr6lzM=
|
github.com/hashicorp/serf v0.9.3 h1:AVF6JDQQens6nMHT9OGERBvK0f8rPrAGILnsKLr6lzM=
|
||||||
github.com/hashicorp/serf v0.9.3/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
|
github.com/hashicorp/serf v0.9.3/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
|
||||||
github.com/hetznercloud/hcloud-go v1.21.1 h1:LWNozxiZhKmeMqYbAS7KsAcPcxg47afCnTeLKmN+n7w=
|
github.com/hetznercloud/hcloud-go v1.22.0 h1:CC0jwkaBzwP4ObFE0sdJBTvGh5DE9kB/tuDETnRfOik=
|
||||||
github.com/hetznercloud/hcloud-go v1.21.1/go.mod h1:xng8lbDUg+xM1dgc0yGHX5EeqbwIq7UYlMWMTx3SQVg=
|
github.com/hetznercloud/hcloud-go v1.22.0/go.mod h1:xng8lbDUg+xM1dgc0yGHX5EeqbwIq7UYlMWMTx3SQVg=
|
||||||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||||
github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
|
github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
|
||||||
|
@ -456,11 +479,11 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6 h1:UDMh68U
|
||||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||||
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
github.com/influxdata/flux v0.65.0/go.mod h1:BwN2XG2lMszOoquQaFdPET8FRQfrXiZsWmcMO9rkaVY=
|
github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY=
|
||||||
github.com/influxdata/influxdb v1.8.2 h1:f+vS/DtIjoWMm5DsJtZvwN7ZiTBpOEz463DsipNQRE8=
|
github.com/influxdata/influxdb v1.8.3 h1:WEypI1BQFTT4teLM+1qkEcvUi0dAvopAI/ir0vAiBg8=
|
||||||
github.com/influxdata/influxdb v1.8.2/go.mod h1:SIzcnsjaHRFpmlxpJ4S3NT64qtEKYweNTUMb/vh0OMQ=
|
github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI=
|
||||||
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
|
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
|
||||||
github.com/influxdata/influxql v1.1.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo=
|
github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk=
|
||||||
github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=
|
github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=
|
||||||
github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8=
|
github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8=
|
||||||
github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=
|
github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=
|
||||||
|
@ -468,8 +491,10 @@ github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mq
|
||||||
github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=
|
github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=
|
||||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||||
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
||||||
github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc=
|
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
|
||||||
github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik=
|
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
|
||||||
|
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
|
||||||
|
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
|
||||||
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
|
||||||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
||||||
github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
|
github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
|
||||||
|
@ -508,6 +533,8 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
|
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
|
||||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
|
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
|
||||||
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
||||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
|
@ -692,7 +719,6 @@ github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0
|
||||||
github.com/samuel/go-zookeeper v0.0.0-20200724154423-2164a8ac840e h1:CGjiMQ0wMH4wtNWrlj6kiTbkPt2F3rbYnhGX6TWLfco=
|
github.com/samuel/go-zookeeper v0.0.0-20200724154423-2164a8ac840e h1:CGjiMQ0wMH4wtNWrlj6kiTbkPt2F3rbYnhGX6TWLfco=
|
||||||
github.com/samuel/go-zookeeper v0.0.0-20200724154423-2164a8ac840e/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
|
github.com/samuel/go-zookeeper v0.0.0-20200724154423-2164a8ac840e/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
|
||||||
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
||||||
github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
|
||||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
|
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
|
||||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||||
github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
|
github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
|
||||||
|
@ -703,8 +729,8 @@ github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJ
|
||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||||
github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd h1:ug7PpSOB5RBPK1Kg6qskGBoP3Vnj/aNYFTznWvlkGo0=
|
github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd h1:ug7PpSOB5RBPK1Kg6qskGBoP3Vnj/aNYFTznWvlkGo0=
|
||||||
github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
|
github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
|
||||||
github.com/shurcooL/vfsgen v0.0.0-20200627165143-92b8a710ab6c h1:XLPw6rny9Vrrvrzhw8pNLrC2+x/kH0a/3gOx5xWDa6Y=
|
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 h1:pXY9qYc/MP5zdvqWEUH6SjNiu7VhSjuVFTFiTcphaLU=
|
||||||
github.com/shurcooL/vfsgen v0.0.0-20200627165143-92b8a710ab6c/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
|
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
|
||||||
github.com/simonpasquier/klog-gokit v0.3.0 h1:TkFK21cbwDRS+CiystjqbAiq5ubJcVTk9hLUck5Ntcs=
|
github.com/simonpasquier/klog-gokit v0.3.0 h1:TkFK21cbwDRS+CiystjqbAiq5ubJcVTk9hLUck5Ntcs=
|
||||||
github.com/simonpasquier/klog-gokit v0.3.0/go.mod h1:+SUlDQNrhVtGt2FieaqNftzzk8P72zpWlACateWxA9k=
|
github.com/simonpasquier/klog-gokit v0.3.0/go.mod h1:+SUlDQNrhVtGt2FieaqNftzzk8P72zpWlACateWxA9k=
|
||||||
github.com/simonpasquier/klog-gokit/v2 v2.0.1 h1:v7vrNd8wve5mHjX6R7kKUfR/ebJJ/LUi06NveGAvdcU=
|
github.com/simonpasquier/klog-gokit/v2 v2.0.1 h1:v7vrNd8wve5mHjX6R7kKUfR/ebJJ/LUi06NveGAvdcU=
|
||||||
|
@ -751,8 +777,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1
|
||||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
||||||
github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U=
|
github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U=
|
||||||
github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
|
github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
|
||||||
github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw=
|
github.com/uber/jaeger-lib v2.4.0+incompatible h1:fY7QsGQWiCt8pajv4r7JEvmATdCVaWxXbjwyYwsNaLQ=
|
||||||
github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
|
github.com/uber/jaeger-lib v2.4.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
|
||||||
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
|
||||||
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
||||||
|
@ -765,6 +791,7 @@ github.com/xlab/treeprint v1.0.0/go.mod h1:IoImgRak9i3zJyuxOKUP1v4UZd1tMoKkq/Cim
|
||||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||||
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
|
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
|
||||||
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
||||||
|
@ -780,10 +807,12 @@ 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.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8=
|
go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8=
|
||||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
|
go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto=
|
||||||
|
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
|
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
|
||||||
go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk=
|
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||||
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
|
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||||
go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
|
go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
|
||||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
||||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||||
|
@ -809,6 +838,8 @@ golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPh
|
||||||
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 h1:hb9wdF1z5waM+dSIICn1l0DkLVDT3hqhhQsDNUmHPRE=
|
||||||
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
|
@ -865,29 +896,37 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
|
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
|
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
|
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA=
|
golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA=
|
||||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||||
|
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0 h1:wBouT66WTYFXdxfVdz9sVWARVd/2vfGcmI45D2gj45M=
|
||||||
|
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-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-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw=
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw=
|
||||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/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 h1:ld7aEMNHoBnnDAX15v1T6z31v8HwR2A9FYOuAhWqkwc=
|
||||||
|
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
@ -899,6 +938,8 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a h1:WXEvlFVvvGxCJLG6REjsT03i
|
||||||
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA=
|
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA=
|
||||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20200930132711-30421366ff76 h1:JnxiSYT3Nm0BT2a8CyvYyM6cnrWpidecD1UuSYbhKm0=
|
||||||
|
golang.org/x/sync v0.0.0-20200930132711-30421366ff76/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
@ -942,15 +983,23 @@ golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM/fAoGlaiiHYiFYdm80=
|
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 h1:ogLJMz+qpzav7lGMh10LMvAkM/fAoGlaiiHYiFYdm80=
|
||||||
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200918174421-af09f7315aff h1:1CPUrky56AcgSpxz/KfgzQWzfG09u5YOL8MvPYBlrL8=
|
golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20201008064518-c1f3e3309c71 h1:ZPX6UakxrJCxWiyGWpXtFY+fp86Esy7xJT/jJCG8bgU=
|
||||||
|
golang.org/x/sys v0.0.0-20201008064518-c1f3e3309c71/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
@ -1002,7 +1051,6 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
|
@ -1015,15 +1063,27 @@ golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapK
|
||||||
golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
|
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||||
|
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||||
|
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||||
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
|
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
|
||||||
|
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
|
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200513201620-d5fe73897c97 h1:DAuln/hGp+aJiHpID1Y1hYzMEPP5WLwtZHPb50mN0OE=
|
golang.org/x/tools v0.0.0-20200513201620-d5fe73897c97 h1:DAuln/hGp+aJiHpID1Y1hYzMEPP5WLwtZHPb50mN0OE=
|
||||||
golang.org/x/tools v0.0.0-20200513201620-d5fe73897c97/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200513201620-d5fe73897c97/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200822203824-307de81be3f4 h1:r0nbB2EeRbGpnVeqxlkgiBpNi/bednpSg78qzZGOuv0=
|
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200822203824-307de81be3f4/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
|
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||||
|
golang.org/x/tools v0.0.0-20200828161849-5deb26317202/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||||
|
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
|
||||||
|
golang.org/x/tools v0.0.0-20201008025239-9df69603baec h1:RY2OghEV/7X1MLaecgm1mwFd3sGvUddm5pGVSxQvX0c=
|
||||||
|
golang.org/x/tools v0.0.0-20201008025239-9df69603baec/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||||
|
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
|
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
|
||||||
gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
|
gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
|
||||||
gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
|
gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
|
||||||
|
@ -1040,9 +1100,14 @@ google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsb
|
||||||
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
|
||||||
google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||||
google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||||
|
google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||||
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||||
google.golang.org/api v0.29.0 h1:BaiDisFir8O4IJxvAabCGGkQ6yCJegNQqSVoYUNAnbk=
|
google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
|
||||||
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||||
|
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||||
|
google.golang.org/api v0.31.0/go.mod h1:CL+9IBCa2WWU6gRuBWaKqGWLFFwbEUXkfeMkHLQWYWo=
|
||||||
|
google.golang.org/api v0.32.0 h1:Le77IccnTqEa8ryp9wIpX5W3zYm7Gf9LhOp9PHcwFts=
|
||||||
|
google.golang.org/api v0.32.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
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.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
@ -1071,12 +1136,21 @@ google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvx
|
||||||
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
|
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
|
||||||
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
|
google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
|
google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
|
google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
|
google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
|
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884 h1:fiNLklpBwWK1mth30Hlwk+fcdBmIALlgF5iy77O37Ig=
|
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884 h1:fiNLklpBwWK1mth30Hlwk+fcdBmIALlgF5iy77O37Ig=
|
||||||
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||||
|
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
|
||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||||
google.golang.org/genproto v0.0.0-20200815001618-f69a88009b70 h1:wboULUXGF3c5qdUnKp+6gLAccE6PRpa/czkYvQ4UXv8=
|
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
|
||||||
google.golang.org/genproto v0.0.0-20200815001618-f69a88009b70/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-20200831141814-d751682dd103/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
|
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d h1:92D1fum1bJLKSdr11OJ+54YeCMCGYIygTA7R/YZxH5M=
|
||||||
|
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
|
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
|
||||||
|
@ -1093,6 +1167,10 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8
|
||||||
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
|
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
|
||||||
google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=
|
google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=
|
||||||
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
||||||
|
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.32.0 h1:zWTV+LMdc3kaiJMSTOFz2UgSBgx8RNQoTGiZu3fR9S0=
|
||||||
|
google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
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-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -1129,7 +1207,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
@ -1144,6 +1221,7 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
|
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
k8s.io/api v0.19.2 h1:q+/krnHWKsL7OBZg/rxnycsl9569Pud76UJ77MvKXms=
|
k8s.io/api v0.19.2 h1:q+/krnHWKsL7OBZg/rxnycsl9569Pud76UJ77MvKXms=
|
||||||
k8s.io/api v0.19.2/go.mod h1:IQpK0zFQ1xc5iNIQPqzgoOwuFugaYHK4iCknlAQP9nI=
|
k8s.io/api v0.19.2/go.mod h1:IQpK0zFQ1xc5iNIQPqzgoOwuFugaYHK4iCknlAQP9nI=
|
||||||
k8s.io/apimachinery v0.19.2 h1:5Gy9vQpAGTKHPVOh5c4plE274X8D/6cuEiTO2zve7tc=
|
k8s.io/apimachinery v0.19.2 h1:5Gy9vQpAGTKHPVOh5c4plE274X8D/6cuEiTO2zve7tc=
|
||||||
|
|
3
vendor/cloud.google.com/go/compute/metadata/metadata.go
generated
vendored
3
vendor/cloud.google.com/go/compute/metadata/metadata.go
generated
vendored
|
@ -140,7 +140,7 @@ func testOnGCE() bool {
|
||||||
}()
|
}()
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
addrs, err := net.LookupHost("metadata.google.internal")
|
addrs, err := net.DefaultResolver.LookupHost(ctx, "metadata.google.internal")
|
||||||
if err != nil || len(addrs) == 0 {
|
if err != nil || len(addrs) == 0 {
|
||||||
resc <- false
|
resc <- false
|
||||||
return
|
return
|
||||||
|
@ -296,6 +296,7 @@ func (c *Client) getETag(suffix string) (value, etag string, err error) {
|
||||||
// being stable anyway.
|
// being stable anyway.
|
||||||
host = metadataIP
|
host = metadataIP
|
||||||
}
|
}
|
||||||
|
suffix = strings.TrimLeft(suffix, "/")
|
||||||
u := "http://" + host + "/computeMetadata/v1/" + suffix
|
u := "http://" + host + "/computeMetadata/v1/" + suffix
|
||||||
req, err := http.NewRequest("GET", u, nil)
|
req, err := http.NewRequest("GET", u, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
2
vendor/github.com/Azure/azure-sdk-for-go/version/version.go
generated
vendored
2
vendor/github.com/Azure/azure-sdk-for-go/version/version.go
generated
vendored
|
@ -18,4 +18,4 @@ package version
|
||||||
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
||||||
|
|
||||||
// Number contains the semantic version of this SDK.
|
// Number contains the semantic version of this SDK.
|
||||||
const Number = "v45.1.0"
|
const Number = "v46.4.0"
|
||||||
|
|
4
vendor/github.com/Azure/go-autorest/autorest/adal/go.mod
generated
vendored
4
vendor/github.com/Azure/go-autorest/autorest/adal/go.mod
generated
vendored
|
@ -7,6 +7,6 @@ require (
|
||||||
github.com/Azure/go-autorest/autorest/date v0.3.0
|
github.com/Azure/go-autorest/autorest/date v0.3.0
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.4.1
|
github.com/Azure/go-autorest/autorest/mocks v0.4.1
|
||||||
github.com/Azure/go-autorest/tracing v0.6.0
|
github.com/Azure/go-autorest/tracing v0.6.0
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
github.com/form3tech-oss/jwt-go v3.2.2+incompatible
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0
|
||||||
)
|
)
|
||||||
|
|
8
vendor/github.com/Azure/go-autorest/autorest/adal/go.sum
generated
vendored
8
vendor/github.com/Azure/go-autorest/autorest/adal/go.sum
generated
vendored
|
@ -6,12 +6,12 @@ github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPu
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
|
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
|
||||||
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
|
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
|
||||||
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
|
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 h1:hb9wdF1z5waM+dSIICn1l0DkLVDT3hqhhQsDNUmHPRE=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
|
25
vendor/github.com/Azure/go-autorest/autorest/adal/token.go
generated
vendored
25
vendor/github.com/Azure/go-autorest/autorest/adal/token.go
generated
vendored
|
@ -35,7 +35,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/Azure/go-autorest/autorest/date"
|
"github.com/Azure/go-autorest/autorest/date"
|
||||||
"github.com/dgrijalva/jwt-go"
|
"github.com/form3tech-oss/jwt-go"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -941,9 +941,13 @@ func (spt *ServicePrincipalToken) refreshInternal(ctx context.Context, resource
|
||||||
}
|
}
|
||||||
|
|
||||||
var resp *http.Response
|
var resp *http.Response
|
||||||
if isMSIEndpoint(spt.inner.OauthConfig.TokenEndpoint) && !MSIAvailable(ctx, spt.sender) {
|
if isMSIEndpoint(spt.inner.OauthConfig.TokenEndpoint) {
|
||||||
// return a TokenRefreshError here so that we don't keep retrying
|
resp, err = getMSIEndpoint(ctx, spt.sender)
|
||||||
return newTokenRefreshError("the MSI endpoint is not available", nil)
|
if err != nil {
|
||||||
|
// return a TokenRefreshError here so that we don't keep retrying
|
||||||
|
return newTokenRefreshError(fmt.Sprintf("the MSI endpoint is not available. Failed HTTP request to MSI endpoint: %v", err), nil)
|
||||||
|
}
|
||||||
|
resp.Body.Close()
|
||||||
}
|
}
|
||||||
if isIMDS(spt.inner.OauthConfig.TokenEndpoint) {
|
if isIMDS(spt.inner.OauthConfig.TokenEndpoint) {
|
||||||
resp, err = retryForIMDS(spt.sender, req, spt.MaxMSIRefreshAttempts)
|
resp, err = retryForIMDS(spt.sender, req, spt.MaxMSIRefreshAttempts)
|
||||||
|
@ -1186,14 +1190,9 @@ func NewMultiTenantServicePrincipalToken(multiTenantCfg MultiTenantOAuthConfig,
|
||||||
|
|
||||||
// MSIAvailable returns true if the MSI endpoint is available for authentication.
|
// MSIAvailable returns true if the MSI endpoint is available for authentication.
|
||||||
func MSIAvailable(ctx context.Context, sender Sender) bool {
|
func MSIAvailable(ctx context.Context, sender Sender) bool {
|
||||||
// this cannot fail, the return sig is due to legacy reasons
|
resp, err := getMSIEndpoint(ctx, sender)
|
||||||
msiEndpoint, _ := GetMSIVMEndpoint()
|
if err == nil {
|
||||||
tempCtx, cancel := context.WithTimeout(ctx, 500*time.Millisecond)
|
resp.Body.Close()
|
||||||
defer cancel()
|
}
|
||||||
req, _ := http.NewRequestWithContext(tempCtx, http.MethodGet, msiEndpoint, nil)
|
|
||||||
q := req.URL.Query()
|
|
||||||
q.Add("api-version", msiAPIVersion)
|
|
||||||
req.URL.RawQuery = q.Encode()
|
|
||||||
_, err := sender.Do(req)
|
|
||||||
return err == nil
|
return err == nil
|
||||||
}
|
}
|
||||||
|
|
36
vendor/github.com/Azure/go-autorest/autorest/adal/token_1.13.go
generated
vendored
Normal file
36
vendor/github.com/Azure/go-autorest/autorest/adal/token_1.13.go
generated
vendored
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
// +build go1.13
|
||||||
|
|
||||||
|
// Copyright 2017 Microsoft Corporation
|
||||||
|
//
|
||||||
|
// 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 adal
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"net/http"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func getMSIEndpoint(ctx context.Context, sender Sender) (*http.Response, error) {
|
||||||
|
// this cannot fail, the return sig is due to legacy reasons
|
||||||
|
msiEndpoint, _ := GetMSIVMEndpoint()
|
||||||
|
tempCtx, cancel := context.WithTimeout(ctx, 500*time.Millisecond)
|
||||||
|
defer cancel()
|
||||||
|
// http.NewRequestWithContext() was added in Go 1.13
|
||||||
|
req, _ := http.NewRequestWithContext(tempCtx, http.MethodGet, msiEndpoint, nil)
|
||||||
|
q := req.URL.Query()
|
||||||
|
q.Add("api-version", msiAPIVersion)
|
||||||
|
req.URL.RawQuery = q.Encode()
|
||||||
|
return sender.Do(req)
|
||||||
|
}
|
36
vendor/github.com/Azure/go-autorest/autorest/adal/token_legacy.go
generated
vendored
Normal file
36
vendor/github.com/Azure/go-autorest/autorest/adal/token_legacy.go
generated
vendored
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
// +build !go1.13
|
||||||
|
|
||||||
|
// Copyright 2017 Microsoft Corporation
|
||||||
|
//
|
||||||
|
// 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 adal
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"net/http"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func getMSIEndpoint(ctx context.Context, sender Sender) (*http.Response, error) {
|
||||||
|
// this cannot fail, the return sig is due to legacy reasons
|
||||||
|
msiEndpoint, _ := GetMSIVMEndpoint()
|
||||||
|
tempCtx, cancel := context.WithTimeout(ctx, 500*time.Millisecond)
|
||||||
|
defer cancel()
|
||||||
|
req, _ := http.NewRequest(http.MethodGet, msiEndpoint, nil)
|
||||||
|
req = req.WithContext(tempCtx)
|
||||||
|
q := req.URL.Query()
|
||||||
|
q.Add("api-version", msiAPIVersion)
|
||||||
|
req.URL.RawQuery = q.Encode()
|
||||||
|
return sender.Do(req)
|
||||||
|
}
|
17
vendor/github.com/Azure/go-autorest/autorest/authorization.go
generated
vendored
17
vendor/github.com/Azure/go-autorest/autorest/authorization.go
generated
vendored
|
@ -299,18 +299,24 @@ type MultiTenantServicePrincipalTokenAuthorizer interface {
|
||||||
|
|
||||||
// NewMultiTenantServicePrincipalTokenAuthorizer crates a BearerAuthorizer using the given token provider
|
// NewMultiTenantServicePrincipalTokenAuthorizer crates a BearerAuthorizer using the given token provider
|
||||||
func NewMultiTenantServicePrincipalTokenAuthorizer(tp adal.MultitenantOAuthTokenProvider) MultiTenantServicePrincipalTokenAuthorizer {
|
func NewMultiTenantServicePrincipalTokenAuthorizer(tp adal.MultitenantOAuthTokenProvider) MultiTenantServicePrincipalTokenAuthorizer {
|
||||||
return &multiTenantSPTAuthorizer{tp: tp}
|
return NewMultiTenantBearerAuthorizer(tp)
|
||||||
}
|
}
|
||||||
|
|
||||||
type multiTenantSPTAuthorizer struct {
|
// MultiTenantBearerAuthorizer implements bearer authorization across multiple tenants.
|
||||||
|
type MultiTenantBearerAuthorizer struct {
|
||||||
tp adal.MultitenantOAuthTokenProvider
|
tp adal.MultitenantOAuthTokenProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewMultiTenantBearerAuthorizer creates a MultiTenantBearerAuthorizer using the given token provider.
|
||||||
|
func NewMultiTenantBearerAuthorizer(tp adal.MultitenantOAuthTokenProvider) *MultiTenantBearerAuthorizer {
|
||||||
|
return &MultiTenantBearerAuthorizer{tp: tp}
|
||||||
|
}
|
||||||
|
|
||||||
// WithAuthorization returns a PrepareDecorator that adds an HTTP Authorization header using the
|
// WithAuthorization returns a PrepareDecorator that adds an HTTP Authorization header using the
|
||||||
// primary token along with the auxiliary authorization header using the auxiliary tokens.
|
// primary token along with the auxiliary authorization header using the auxiliary tokens.
|
||||||
//
|
//
|
||||||
// By default, the token will be automatically refreshed through the Refresher interface.
|
// By default, the token will be automatically refreshed through the Refresher interface.
|
||||||
func (mt multiTenantSPTAuthorizer) WithAuthorization() PrepareDecorator {
|
func (mt *MultiTenantBearerAuthorizer) WithAuthorization() PrepareDecorator {
|
||||||
return func(p Preparer) Preparer {
|
return func(p Preparer) Preparer {
|
||||||
return PreparerFunc(func(r *http.Request) (*http.Request, error) {
|
return PreparerFunc(func(r *http.Request) (*http.Request, error) {
|
||||||
r, err := p.Prepare(r)
|
r, err := p.Prepare(r)
|
||||||
|
@ -340,3 +346,8 @@ func (mt multiTenantSPTAuthorizer) WithAuthorization() PrepareDecorator {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TokenProvider returns the underlying MultitenantOAuthTokenProvider for this authorizer.
|
||||||
|
func (mt *MultiTenantBearerAuthorizer) TokenProvider() adal.MultitenantOAuthTokenProvider {
|
||||||
|
return mt.tp
|
||||||
|
}
|
||||||
|
|
5
vendor/github.com/Azure/go-autorest/autorest/azure/environments.go
generated
vendored
5
vendor/github.com/Azure/go-autorest/autorest/azure/environments.go
generated
vendored
|
@ -47,6 +47,7 @@ type ResourceIdentifier struct {
|
||||||
OperationalInsights string `json:"operationalInsights"`
|
OperationalInsights string `json:"operationalInsights"`
|
||||||
Storage string `json:"storage"`
|
Storage string `json:"storage"`
|
||||||
Synapse string `json:"synapse"`
|
Synapse string `json:"synapse"`
|
||||||
|
ServiceBus string `json:"serviceBus"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Environment represents a set of endpoints for each of Azure's Clouds.
|
// Environment represents a set of endpoints for each of Azure's Clouds.
|
||||||
|
@ -111,6 +112,7 @@ var (
|
||||||
OperationalInsights: "https://api.loganalytics.io",
|
OperationalInsights: "https://api.loganalytics.io",
|
||||||
Storage: "https://storage.azure.com/",
|
Storage: "https://storage.azure.com/",
|
||||||
Synapse: "https://dev.azuresynapse.net",
|
Synapse: "https://dev.azuresynapse.net",
|
||||||
|
ServiceBus: "https://servicebus.azure.net/",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,6 +149,7 @@ var (
|
||||||
OperationalInsights: "https://api.loganalytics.us",
|
OperationalInsights: "https://api.loganalytics.us",
|
||||||
Storage: "https://storage.azure.com/",
|
Storage: "https://storage.azure.com/",
|
||||||
Synapse: NotAvailable,
|
Synapse: NotAvailable,
|
||||||
|
ServiceBus: "https://servicebus.azure.net/",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,6 +186,7 @@ var (
|
||||||
OperationalInsights: NotAvailable,
|
OperationalInsights: NotAvailable,
|
||||||
Storage: "https://storage.azure.com/",
|
Storage: "https://storage.azure.com/",
|
||||||
Synapse: "https://dev.azuresynapse.net",
|
Synapse: "https://dev.azuresynapse.net",
|
||||||
|
ServiceBus: "https://servicebus.azure.net/",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,6 +223,7 @@ var (
|
||||||
OperationalInsights: NotAvailable,
|
OperationalInsights: NotAvailable,
|
||||||
Storage: "https://storage.azure.com/",
|
Storage: "https://storage.azure.com/",
|
||||||
Synapse: NotAvailable,
|
Synapse: NotAvailable,
|
||||||
|
ServiceBus: "https://servicebus.azure.net/",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
6
vendor/github.com/Azure/go-autorest/autorest/go.mod
generated
vendored
6
vendor/github.com/Azure/go-autorest/autorest/go.mod
generated
vendored
|
@ -4,9 +4,9 @@ go 1.12
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Azure/go-autorest v14.2.0+incompatible
|
github.com/Azure/go-autorest v14.2.0+incompatible
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.0
|
github.com/Azure/go-autorest/autorest/adal v0.9.5
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.4.0
|
github.com/Azure/go-autorest/autorest/mocks v0.4.1
|
||||||
github.com/Azure/go-autorest/logger v0.2.0
|
github.com/Azure/go-autorest/logger v0.2.0
|
||||||
github.com/Azure/go-autorest/tracing v0.6.0
|
github.com/Azure/go-autorest/tracing v0.6.0
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0
|
||||||
)
|
)
|
||||||
|
|
16
vendor/github.com/Azure/go-autorest/autorest/go.sum
generated
vendored
16
vendor/github.com/Azure/go-autorest/autorest/go.sum
generated
vendored
|
@ -1,21 +1,21 @@
|
||||||
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
|
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
|
||||||
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
|
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.0 h1:SigMbuFNuKgc1xcGhaeapbh+8fgsu+GxgDRFyg7f5lM=
|
github.com/Azure/go-autorest/autorest/adal v0.9.5 h1:Y3bBUV4rTuxenJJs41HU3qmqsb+auo+a3Lz+PlJPpL0=
|
||||||
github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
|
github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
|
||||||
github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
|
github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
|
||||||
github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
|
github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.4.0 h1:z20OWOSG5aCye0HEkDp6TPmP17ZcfeMxPi6HnSALa8c=
|
github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk=
|
||||||
github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
|
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
|
||||||
github.com/Azure/go-autorest/logger v0.2.0 h1:e4RVHVZKC5p6UANLJHkM4OfR1UKZPj8Wt8Pcx+3oqrE=
|
github.com/Azure/go-autorest/logger v0.2.0 h1:e4RVHVZKC5p6UANLJHkM4OfR1UKZPj8Wt8Pcx+3oqrE=
|
||||||
github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
|
github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
|
||||||
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
|
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
|
||||||
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
|
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0 h1:hb9wdF1z5waM+dSIICn1l0DkLVDT3hqhhQsDNUmHPRE=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
|
29
vendor/github.com/Azure/go-autorest/autorest/preparer.go
generated
vendored
29
vendor/github.com/Azure/go-autorest/autorest/preparer.go
generated
vendored
|
@ -127,10 +127,7 @@ func WithHeader(header string, value string) PrepareDecorator {
|
||||||
return PreparerFunc(func(r *http.Request) (*http.Request, error) {
|
return PreparerFunc(func(r *http.Request) (*http.Request, error) {
|
||||||
r, err := p.Prepare(r)
|
r, err := p.Prepare(r)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if r.Header == nil {
|
setHeader(r, http.CanonicalHeaderKey(header), value)
|
||||||
r.Header = make(http.Header)
|
|
||||||
}
|
|
||||||
r.Header.Set(http.CanonicalHeaderKey(header), value)
|
|
||||||
}
|
}
|
||||||
return r, err
|
return r, err
|
||||||
})
|
})
|
||||||
|
@ -230,7 +227,7 @@ func AsPost() PrepareDecorator { return WithMethod("POST") }
|
||||||
func AsPut() PrepareDecorator { return WithMethod("PUT") }
|
func AsPut() PrepareDecorator { return WithMethod("PUT") }
|
||||||
|
|
||||||
// WithBaseURL returns a PrepareDecorator that populates the http.Request with a url.URL constructed
|
// WithBaseURL returns a PrepareDecorator that populates the http.Request with a url.URL constructed
|
||||||
// from the supplied baseUrl.
|
// from the supplied baseUrl. Query parameters will be encoded as required.
|
||||||
func WithBaseURL(baseURL string) PrepareDecorator {
|
func WithBaseURL(baseURL string) PrepareDecorator {
|
||||||
return func(p Preparer) Preparer {
|
return func(p Preparer) Preparer {
|
||||||
return PreparerFunc(func(r *http.Request) (*http.Request, error) {
|
return PreparerFunc(func(r *http.Request) (*http.Request, error) {
|
||||||
|
@ -241,11 +238,16 @@ func WithBaseURL(baseURL string) PrepareDecorator {
|
||||||
return r, err
|
return r, err
|
||||||
}
|
}
|
||||||
if u.Scheme == "" {
|
if u.Scheme == "" {
|
||||||
err = fmt.Errorf("autorest: No scheme detected in URL %s", baseURL)
|
return r, fmt.Errorf("autorest: No scheme detected in URL %s", baseURL)
|
||||||
}
|
}
|
||||||
if err == nil {
|
if u.RawQuery != "" {
|
||||||
r.URL = u
|
q, err := url.ParseQuery(u.RawQuery)
|
||||||
|
if err != nil {
|
||||||
|
return r, err
|
||||||
|
}
|
||||||
|
u.RawQuery = q.Encode()
|
||||||
}
|
}
|
||||||
|
r.URL = u
|
||||||
}
|
}
|
||||||
return r, err
|
return r, err
|
||||||
})
|
})
|
||||||
|
@ -290,10 +292,7 @@ func WithFormData(v url.Values) PrepareDecorator {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
s := v.Encode()
|
s := v.Encode()
|
||||||
|
|
||||||
if r.Header == nil {
|
setHeader(r, http.CanonicalHeaderKey(headerContentType), mimeTypeFormPost)
|
||||||
r.Header = make(http.Header)
|
|
||||||
}
|
|
||||||
r.Header.Set(http.CanonicalHeaderKey(headerContentType), mimeTypeFormPost)
|
|
||||||
r.ContentLength = int64(len(s))
|
r.ContentLength = int64(len(s))
|
||||||
r.Body = ioutil.NopCloser(strings.NewReader(s))
|
r.Body = ioutil.NopCloser(strings.NewReader(s))
|
||||||
}
|
}
|
||||||
|
@ -329,10 +328,7 @@ func WithMultiPartFormData(formDataParameters map[string]interface{}) PrepareDec
|
||||||
if err = writer.Close(); err != nil {
|
if err = writer.Close(); err != nil {
|
||||||
return r, err
|
return r, err
|
||||||
}
|
}
|
||||||
if r.Header == nil {
|
setHeader(r, http.CanonicalHeaderKey(headerContentType), writer.FormDataContentType())
|
||||||
r.Header = make(http.Header)
|
|
||||||
}
|
|
||||||
r.Header.Set(http.CanonicalHeaderKey(headerContentType), writer.FormDataContentType())
|
|
||||||
r.Body = ioutil.NopCloser(bytes.NewReader(body.Bytes()))
|
r.Body = ioutil.NopCloser(bytes.NewReader(body.Bytes()))
|
||||||
r.ContentLength = int64(body.Len())
|
r.ContentLength = int64(body.Len())
|
||||||
return r, err
|
return r, err
|
||||||
|
@ -437,6 +433,7 @@ func WithXML(v interface{}) PrepareDecorator {
|
||||||
bytesWithHeader := []byte(withHeader)
|
bytesWithHeader := []byte(withHeader)
|
||||||
|
|
||||||
r.ContentLength = int64(len(bytesWithHeader))
|
r.ContentLength = int64(len(bytesWithHeader))
|
||||||
|
setHeader(r, headerContentLength, fmt.Sprintf("%d", len(bytesWithHeader)))
|
||||||
r.Body = ioutil.NopCloser(bytes.NewReader(bytesWithHeader))
|
r.Body = ioutil.NopCloser(bytes.NewReader(bytesWithHeader))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
63
vendor/github.com/Azure/go-autorest/autorest/sender.go
generated
vendored
63
vendor/github.com/Azure/go-autorest/autorest/sender.go
generated
vendored
|
@ -23,11 +23,29 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/cookiejar"
|
"net/http/cookiejar"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/Azure/go-autorest/tracing"
|
"github.com/Azure/go-autorest/tracing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// there is one sender per TLS renegotiation type, i.e. count of tls.RenegotiationSupport enums
|
||||||
|
const defaultSendersCount = 3
|
||||||
|
|
||||||
|
type defaultSender struct {
|
||||||
|
sender Sender
|
||||||
|
init *sync.Once
|
||||||
|
}
|
||||||
|
|
||||||
|
// each type of sender will be created on demand in sender()
|
||||||
|
var defaultSenders [defaultSendersCount]defaultSender
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
for i := 0; i < defaultSendersCount; i++ {
|
||||||
|
defaultSenders[i].init = &sync.Once{}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// used as a key type in context.WithValue()
|
// used as a key type in context.WithValue()
|
||||||
type ctxSendDecorators struct{}
|
type ctxSendDecorators struct{}
|
||||||
|
|
||||||
|
@ -107,26 +125,31 @@ func SendWithSender(s Sender, r *http.Request, decorators ...SendDecorator) (*ht
|
||||||
}
|
}
|
||||||
|
|
||||||
func sender(renengotiation tls.RenegotiationSupport) Sender {
|
func sender(renengotiation tls.RenegotiationSupport) Sender {
|
||||||
// Use behaviour compatible with DefaultTransport, but require TLS minimum version.
|
// note that we can't init defaultSenders in init() since it will
|
||||||
defaultTransport := http.DefaultTransport.(*http.Transport)
|
// execute before calling code has had a chance to enable tracing
|
||||||
transport := &http.Transport{
|
defaultSenders[renengotiation].init.Do(func() {
|
||||||
Proxy: defaultTransport.Proxy,
|
// Use behaviour compatible with DefaultTransport, but require TLS minimum version.
|
||||||
DialContext: defaultTransport.DialContext,
|
defaultTransport := http.DefaultTransport.(*http.Transport)
|
||||||
MaxIdleConns: defaultTransport.MaxIdleConns,
|
transport := &http.Transport{
|
||||||
IdleConnTimeout: defaultTransport.IdleConnTimeout,
|
Proxy: defaultTransport.Proxy,
|
||||||
TLSHandshakeTimeout: defaultTransport.TLSHandshakeTimeout,
|
DialContext: defaultTransport.DialContext,
|
||||||
ExpectContinueTimeout: defaultTransport.ExpectContinueTimeout,
|
MaxIdleConns: defaultTransport.MaxIdleConns,
|
||||||
TLSClientConfig: &tls.Config{
|
IdleConnTimeout: defaultTransport.IdleConnTimeout,
|
||||||
MinVersion: tls.VersionTLS12,
|
TLSHandshakeTimeout: defaultTransport.TLSHandshakeTimeout,
|
||||||
Renegotiation: renengotiation,
|
ExpectContinueTimeout: defaultTransport.ExpectContinueTimeout,
|
||||||
},
|
TLSClientConfig: &tls.Config{
|
||||||
}
|
MinVersion: tls.VersionTLS12,
|
||||||
var roundTripper http.RoundTripper = transport
|
Renegotiation: renengotiation,
|
||||||
if tracing.IsEnabled() {
|
},
|
||||||
roundTripper = tracing.NewTransport(transport)
|
}
|
||||||
}
|
var roundTripper http.RoundTripper = transport
|
||||||
j, _ := cookiejar.New(nil)
|
if tracing.IsEnabled() {
|
||||||
return &http.Client{Jar: j, Transport: roundTripper}
|
roundTripper = tracing.NewTransport(transport)
|
||||||
|
}
|
||||||
|
j, _ := cookiejar.New(nil)
|
||||||
|
defaultSenders[renengotiation].sender = &http.Client{Jar: j, Transport: roundTripper}
|
||||||
|
})
|
||||||
|
return defaultSenders[renengotiation].sender
|
||||||
}
|
}
|
||||||
|
|
||||||
// AfterDelay returns a SendDecorator that delays for the passed time.Duration before
|
// AfterDelay returns a SendDecorator that delays for the passed time.Duration before
|
||||||
|
|
7
vendor/github.com/Azure/go-autorest/autorest/utility.go
generated
vendored
7
vendor/github.com/Azure/go-autorest/autorest/utility.go
generated
vendored
|
@ -237,3 +237,10 @@ func DrainResponseBody(resp *http.Response) error {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setHeader(r *http.Request, key, value string) {
|
||||||
|
if r.Header == nil {
|
||||||
|
r.Header = make(http.Header)
|
||||||
|
}
|
||||||
|
r.Header.Set(key, value)
|
||||||
|
}
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go
generated
vendored
4
vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go
generated
vendored
|
@ -173,7 +173,9 @@ type Expiry struct {
|
||||||
// the expiration time given to ensure no requests are made with expired
|
// the expiration time given to ensure no requests are made with expired
|
||||||
// tokens.
|
// tokens.
|
||||||
func (e *Expiry) SetExpiration(expiration time.Time, window time.Duration) {
|
func (e *Expiry) SetExpiration(expiration time.Time, window time.Duration) {
|
||||||
e.expiration = expiration
|
// Passed in expirations should have the monotonic clock values stripped.
|
||||||
|
// This ensures time comparisons will be based on wall-time.
|
||||||
|
e.expiration = expiration.Round(0)
|
||||||
if window > 0 {
|
if window > 0 {
|
||||||
e.expiration = e.expiration.Add(-window)
|
e.expiration = e.expiration.Add(-window)
|
||||||
}
|
}
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go
generated
vendored
8
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go
generated
vendored
|
@ -20,7 +20,7 @@ func (c *EC2Metadata) getToken(ctx aws.Context, duration time.Duration) (tokenOu
|
||||||
op := &request.Operation{
|
op := &request.Operation{
|
||||||
Name: "GetToken",
|
Name: "GetToken",
|
||||||
HTTPMethod: "PUT",
|
HTTPMethod: "PUT",
|
||||||
HTTPPath: "/api/token",
|
HTTPPath: "/latest/api/token",
|
||||||
}
|
}
|
||||||
|
|
||||||
var output tokenOutput
|
var output tokenOutput
|
||||||
|
@ -62,7 +62,7 @@ func (c *EC2Metadata) GetMetadataWithContext(ctx aws.Context, p string) (string,
|
||||||
op := &request.Operation{
|
op := &request.Operation{
|
||||||
Name: "GetMetadata",
|
Name: "GetMetadata",
|
||||||
HTTPMethod: "GET",
|
HTTPMethod: "GET",
|
||||||
HTTPPath: sdkuri.PathJoin("/meta-data", p),
|
HTTPPath: sdkuri.PathJoin("/latest/meta-data", p),
|
||||||
}
|
}
|
||||||
output := &metadataOutput{}
|
output := &metadataOutput{}
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ func (c *EC2Metadata) GetUserDataWithContext(ctx aws.Context) (string, error) {
|
||||||
op := &request.Operation{
|
op := &request.Operation{
|
||||||
Name: "GetUserData",
|
Name: "GetUserData",
|
||||||
HTTPMethod: "GET",
|
HTTPMethod: "GET",
|
||||||
HTTPPath: "/user-data",
|
HTTPPath: "/latest/user-data",
|
||||||
}
|
}
|
||||||
|
|
||||||
output := &metadataOutput{}
|
output := &metadataOutput{}
|
||||||
|
@ -113,7 +113,7 @@ func (c *EC2Metadata) GetDynamicDataWithContext(ctx aws.Context, p string) (stri
|
||||||
op := &request.Operation{
|
op := &request.Operation{
|
||||||
Name: "GetDynamicData",
|
Name: "GetDynamicData",
|
||||||
HTTPMethod: "GET",
|
HTTPMethod: "GET",
|
||||||
HTTPPath: sdkuri.PathJoin("/dynamic", p),
|
HTTPPath: sdkuri.PathJoin("/latest/dynamic", p),
|
||||||
}
|
}
|
||||||
|
|
||||||
output := &metadataOutput{}
|
output := &metadataOutput{}
|
||||||
|
|
17
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
generated
vendored
17
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
generated
vendored
|
@ -5,6 +5,10 @@
|
||||||
// variable "AWS_EC2_METADATA_DISABLED=true". This environment variable set to
|
// variable "AWS_EC2_METADATA_DISABLED=true". This environment variable set to
|
||||||
// true instructs the SDK to disable the EC2 Metadata client. The client cannot
|
// true instructs the SDK to disable the EC2 Metadata client. The client cannot
|
||||||
// be used while the environment variable is set to true, (case insensitive).
|
// be used while the environment variable is set to true, (case insensitive).
|
||||||
|
//
|
||||||
|
// The endpoint of the EC2 IMDS client can be configured via the environment
|
||||||
|
// variable, AWS_EC2_METADATA_SERVICE_ENDPOINT when creating the client with a
|
||||||
|
// Session. See aws/session#Options.EC2IMDSEndpoint for more details.
|
||||||
package ec2metadata
|
package ec2metadata
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
@ -12,6 +16,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -69,6 +74,9 @@ func New(p client.ConfigProvider, cfgs ...*aws.Config) *EC2Metadata {
|
||||||
// a client when not using a session. Generally using just New with a session
|
// a client when not using a session. Generally using just New with a session
|
||||||
// is preferred.
|
// is preferred.
|
||||||
//
|
//
|
||||||
|
// Will remove the URL path from the endpoint provided to ensure the EC2 IMDS
|
||||||
|
// client is able to communicate with the EC2 IMDS API.
|
||||||
|
//
|
||||||
// If an unmodified HTTP client is provided from the stdlib default, or no client
|
// If an unmodified HTTP client is provided from the stdlib default, or no client
|
||||||
// the EC2RoleProvider's EC2Metadata HTTP client's timeout will be shortened.
|
// the EC2RoleProvider's EC2Metadata HTTP client's timeout will be shortened.
|
||||||
// To disable this set Config.EC2MetadataDisableTimeoutOverride to false. Enabled by default.
|
// To disable this set Config.EC2MetadataDisableTimeoutOverride to false. Enabled by default.
|
||||||
|
@ -86,6 +94,15 @@ func NewClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegio
|
||||||
cfg.MaxRetries = aws.Int(2)
|
cfg.MaxRetries = aws.Int(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if u, err := url.Parse(endpoint); err == nil {
|
||||||
|
// Remove path from the endpoint since it will be added by requests.
|
||||||
|
// This is an artifact of the SDK adding `/latest` to the endpoint for
|
||||||
|
// EC2 IMDS, but this is now moved to the operation definition.
|
||||||
|
u.Path = ""
|
||||||
|
u.RawPath = ""
|
||||||
|
endpoint = u.String()
|
||||||
|
}
|
||||||
|
|
||||||
svc := &EC2Metadata{
|
svc := &EC2Metadata{
|
||||||
Client: client.New(
|
Client: client.New(
|
||||||
cfg,
|
cfg,
|
||||||
|
|
1
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go
generated
vendored
1
vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/token_provider.go
generated
vendored
|
@ -87,6 +87,7 @@ func (t *tokenProvider) enableTokenProviderHandler(r *request.Request) {
|
||||||
// If the error code status is 401, we enable the token provider
|
// If the error code status is 401, we enable the token provider
|
||||||
if e, ok := r.Error.(awserr.RequestFailure); ok && e != nil &&
|
if e, ok := r.Error.(awserr.RequestFailure); ok && e != nil &&
|
||||||
e.StatusCode() == http.StatusUnauthorized {
|
e.StatusCode() == http.StatusUnauthorized {
|
||||||
|
t.token.Store(ec2Token{})
|
||||||
atomic.StoreUint32(&t.disabled, 0)
|
atomic.StoreUint32(&t.disabled, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
267
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
267
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
|
@ -292,6 +292,7 @@ var awsPartition = partition{
|
||||||
Protocols: []string{"https"},
|
Protocols: []string{"https"},
|
||||||
},
|
},
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"af-south-1": endpoint{},
|
||||||
"ap-east-1": endpoint{},
|
"ap-east-1": endpoint{},
|
||||||
"ap-northeast-1": endpoint{},
|
"ap-northeast-1": endpoint{},
|
||||||
"ap-northeast-2": endpoint{},
|
"ap-northeast-2": endpoint{},
|
||||||
|
@ -301,6 +302,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -347,6 +349,8 @@ var awsPartition = partition{
|
||||||
Protocols: []string{"https"},
|
Protocols: []string{"https"},
|
||||||
},
|
},
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"af-south-1": endpoint{},
|
||||||
|
"ap-east-1": endpoint{},
|
||||||
"ap-northeast-1": endpoint{},
|
"ap-northeast-1": endpoint{},
|
||||||
"ap-northeast-2": endpoint{},
|
"ap-northeast-2": endpoint{},
|
||||||
"ap-south-1": endpoint{},
|
"ap-south-1": endpoint{},
|
||||||
|
@ -355,9 +359,11 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
"me-south-1": endpoint{},
|
||||||
"sa-east-1": endpoint{},
|
"sa-east-1": endpoint{},
|
||||||
"us-east-1": endpoint{},
|
"us-east-1": endpoint{},
|
||||||
"us-east-2": endpoint{},
|
"us-east-2": endpoint{},
|
||||||
|
@ -656,6 +662,26 @@ var awsPartition = partition{
|
||||||
"us-west-2": endpoint{},
|
"us-west-2": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"appflow": service{
|
||||||
|
|
||||||
|
Endpoints: endpoints{
|
||||||
|
"ap-northeast-1": endpoint{},
|
||||||
|
"ap-northeast-2": endpoint{},
|
||||||
|
"ap-south-1": endpoint{},
|
||||||
|
"ap-southeast-1": endpoint{},
|
||||||
|
"ap-southeast-2": endpoint{},
|
||||||
|
"ca-central-1": endpoint{},
|
||||||
|
"eu-central-1": endpoint{},
|
||||||
|
"eu-west-1": endpoint{},
|
||||||
|
"eu-west-2": endpoint{},
|
||||||
|
"eu-west-3": endpoint{},
|
||||||
|
"sa-east-1": endpoint{},
|
||||||
|
"us-east-1": endpoint{},
|
||||||
|
"us-east-2": endpoint{},
|
||||||
|
"us-west-1": endpoint{},
|
||||||
|
"us-west-2": endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"application-autoscaling": service{
|
"application-autoscaling": service{
|
||||||
Defaults: endpoint{
|
Defaults: endpoint{
|
||||||
Protocols: []string{"http", "https"},
|
Protocols: []string{"http", "https"},
|
||||||
|
@ -765,6 +791,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -1178,6 +1205,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -1225,6 +1253,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -1749,6 +1778,8 @@ var awsPartition = partition{
|
||||||
"ap-northeast-1": endpoint{},
|
"ap-northeast-1": endpoint{},
|
||||||
"ap-southeast-2": endpoint{},
|
"ap-southeast-2": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
|
"eu-west-1": endpoint{},
|
||||||
|
"eu-west-2": endpoint{},
|
||||||
"us-east-1": endpoint{},
|
"us-east-1": endpoint{},
|
||||||
"us-west-2": endpoint{},
|
"us-west-2": endpoint{},
|
||||||
},
|
},
|
||||||
|
@ -1986,6 +2017,31 @@ var awsPartition = partition{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"ebs": service{
|
||||||
|
|
||||||
|
Endpoints: endpoints{
|
||||||
|
"af-south-1": endpoint{},
|
||||||
|
"ap-east-1": endpoint{},
|
||||||
|
"ap-northeast-1": endpoint{},
|
||||||
|
"ap-northeast-2": endpoint{},
|
||||||
|
"ap-south-1": endpoint{},
|
||||||
|
"ap-southeast-1": endpoint{},
|
||||||
|
"ap-southeast-2": endpoint{},
|
||||||
|
"ca-central-1": endpoint{},
|
||||||
|
"eu-central-1": endpoint{},
|
||||||
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
|
"eu-west-1": endpoint{},
|
||||||
|
"eu-west-2": endpoint{},
|
||||||
|
"eu-west-3": endpoint{},
|
||||||
|
"me-south-1": endpoint{},
|
||||||
|
"sa-east-1": endpoint{},
|
||||||
|
"us-east-1": endpoint{},
|
||||||
|
"us-east-2": endpoint{},
|
||||||
|
"us-west-1": endpoint{},
|
||||||
|
"us-west-2": endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"ec2": service{
|
"ec2": service{
|
||||||
Defaults: endpoint{
|
Defaults: endpoint{
|
||||||
Protocols: []string{"http", "https"},
|
Protocols: []string{"http", "https"},
|
||||||
|
@ -2144,6 +2200,7 @@ var awsPartition = partition{
|
||||||
"sa-east-1": endpoint{},
|
"sa-east-1": endpoint{},
|
||||||
"us-east-1": endpoint{},
|
"us-east-1": endpoint{},
|
||||||
"us-east-2": endpoint{},
|
"us-east-2": endpoint{},
|
||||||
|
"us-west-1": endpoint{},
|
||||||
"us-west-2": endpoint{},
|
"us-west-2": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -2653,6 +2710,7 @@ var awsPartition = partition{
|
||||||
Protocols: []string{"https"},
|
Protocols: []string{"https"},
|
||||||
},
|
},
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"af-south-1": endpoint{},
|
||||||
"ap-east-1": endpoint{},
|
"ap-east-1": endpoint{},
|
||||||
"ap-northeast-1": endpoint{},
|
"ap-northeast-1": endpoint{},
|
||||||
"ap-northeast-2": endpoint{},
|
"ap-northeast-2": endpoint{},
|
||||||
|
@ -2662,6 +2720,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -2808,6 +2867,7 @@ var awsPartition = partition{
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
"sa-east-1": endpoint{},
|
||||||
"us-east-1": endpoint{},
|
"us-east-1": endpoint{},
|
||||||
"us-east-2": endpoint{},
|
"us-east-2": endpoint{},
|
||||||
"us-west-1": endpoint{},
|
"us-west-1": endpoint{},
|
||||||
|
@ -2902,6 +2962,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -2959,6 +3020,7 @@ var awsPartition = partition{
|
||||||
"groundstation": service{
|
"groundstation": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"af-south-1": endpoint{},
|
||||||
"ap-southeast-2": endpoint{},
|
"ap-southeast-2": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
|
@ -3062,6 +3124,24 @@ var awsPartition = partition{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"identitystore": service{
|
||||||
|
|
||||||
|
Endpoints: endpoints{
|
||||||
|
"ap-northeast-1": endpoint{},
|
||||||
|
"ap-northeast-2": endpoint{},
|
||||||
|
"ap-south-1": endpoint{},
|
||||||
|
"ap-southeast-1": endpoint{},
|
||||||
|
"ap-southeast-2": endpoint{},
|
||||||
|
"ca-central-1": endpoint{},
|
||||||
|
"eu-central-1": endpoint{},
|
||||||
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-west-1": endpoint{},
|
||||||
|
"eu-west-2": endpoint{},
|
||||||
|
"us-east-1": endpoint{},
|
||||||
|
"us-east-2": endpoint{},
|
||||||
|
"us-west-2": endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"importexport": service{
|
"importexport": service{
|
||||||
PartitionEndpoint: "aws-global",
|
PartitionEndpoint: "aws-global",
|
||||||
IsRegionalized: boxedFalse,
|
IsRegionalized: boxedFalse,
|
||||||
|
@ -3287,6 +3367,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -3359,6 +3440,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -3425,6 +3507,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -3679,6 +3762,7 @@ var awsPartition = partition{
|
||||||
"ap-northeast-2": endpoint{},
|
"ap-northeast-2": endpoint{},
|
||||||
"ap-southeast-1": endpoint{},
|
"ap-southeast-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
|
"eu-west-2": endpoint{},
|
||||||
"us-east-1": endpoint{},
|
"us-east-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -3865,6 +3949,8 @@ var awsPartition = partition{
|
||||||
"ap-northeast-1": endpoint{},
|
"ap-northeast-1": endpoint{},
|
||||||
"ap-southeast-2": endpoint{},
|
"ap-southeast-2": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
|
"eu-west-1": endpoint{},
|
||||||
|
"eu-west-2": endpoint{},
|
||||||
"us-east-1": endpoint{},
|
"us-east-1": endpoint{},
|
||||||
"us-west-2": endpoint{},
|
"us-west-2": endpoint{},
|
||||||
},
|
},
|
||||||
|
@ -3955,6 +4041,7 @@ var awsPartition = partition{
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-north-1": endpoint{},
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -4116,6 +4203,24 @@ var awsPartition = partition{
|
||||||
"oidc": service{
|
"oidc": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"ap-northeast-1": endpoint{
|
||||||
|
Hostname: "oidc.ap-northeast-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ap-northeast-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"ap-northeast-2": endpoint{
|
||||||
|
Hostname: "oidc.ap-northeast-2.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ap-northeast-2",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"ap-south-1": endpoint{
|
||||||
|
Hostname: "oidc.ap-south-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ap-south-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
"ap-southeast-1": endpoint{
|
"ap-southeast-1": endpoint{
|
||||||
Hostname: "oidc.ap-southeast-1.amazonaws.com",
|
Hostname: "oidc.ap-southeast-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
|
@ -4293,11 +4398,14 @@ var awsPartition = partition{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"ap-northeast-1": endpoint{},
|
||||||
"ap-northeast-2": endpoint{},
|
"ap-northeast-2": endpoint{},
|
||||||
"ap-south-1": endpoint{},
|
"ap-south-1": endpoint{},
|
||||||
"ap-southeast-2": endpoint{},
|
"ap-southeast-2": endpoint{},
|
||||||
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
|
"eu-west-2": endpoint{},
|
||||||
"fips-us-east-1": endpoint{
|
"fips-us-east-1": endpoint{
|
||||||
Hostname: "pinpoint-fips.us-east-1.amazonaws.com",
|
Hostname: "pinpoint-fips.us-east-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
|
@ -4601,9 +4709,16 @@ var awsPartition = partition{
|
||||||
"ap-south-1": endpoint{},
|
"ap-south-1": endpoint{},
|
||||||
"ap-southeast-1": endpoint{},
|
"ap-southeast-1": endpoint{},
|
||||||
"ap-southeast-2": endpoint{},
|
"ap-southeast-2": endpoint{},
|
||||||
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
|
"rekognition-fips.ca-central-1": endpoint{
|
||||||
|
Hostname: "rekognition-fips.ca-central-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ca-central-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
"rekognition-fips.us-east-1": endpoint{
|
"rekognition-fips.us-east-1": endpoint{
|
||||||
Hostname: "rekognition-fips.us-east-1.amazonaws.com",
|
Hostname: "rekognition-fips.us-east-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
|
@ -4927,6 +5042,13 @@ var awsPartition = partition{
|
||||||
Region: "ca-central-1",
|
Region: "ca-central-1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"ca-central-1-fips": endpoint{
|
||||||
|
Hostname: "s3-control-fips.ca-central-1.amazonaws.com",
|
||||||
|
SignatureVersions: []string{"s3v4"},
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ca-central-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
"eu-central-1": endpoint{
|
"eu-central-1": endpoint{
|
||||||
Hostname: "s3-control.eu-central-1.amazonaws.com",
|
Hostname: "s3-control.eu-central-1.amazonaws.com",
|
||||||
SignatureVersions: []string{"s3v4"},
|
SignatureVersions: []string{"s3v4"},
|
||||||
|
@ -5426,6 +5548,7 @@ var awsPartition = partition{
|
||||||
"snowball": service{
|
"snowball": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"ap-east-1": endpoint{},
|
||||||
"ap-northeast-1": endpoint{},
|
"ap-northeast-1": endpoint{},
|
||||||
"ap-northeast-2": endpoint{},
|
"ap-northeast-2": endpoint{},
|
||||||
"ap-south-1": endpoint{},
|
"ap-south-1": endpoint{},
|
||||||
|
@ -5433,6 +5556,8 @@ var awsPartition = partition{
|
||||||
"ap-southeast-2": endpoint{},
|
"ap-southeast-2": endpoint{},
|
||||||
"ca-central-1": endpoint{},
|
"ca-central-1": endpoint{},
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
|
"eu-north-1": endpoint{},
|
||||||
|
"eu-south-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"eu-west-3": endpoint{},
|
"eu-west-3": endpoint{},
|
||||||
|
@ -5448,6 +5573,12 @@ var awsPartition = partition{
|
||||||
Region: "ap-northeast-2",
|
Region: "ap-northeast-2",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"fips-ap-northeast-3": endpoint{
|
||||||
|
Hostname: "snowball-fips.ap-northeast-3.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ap-northeast-3",
|
||||||
|
},
|
||||||
|
},
|
||||||
"fips-ap-south-1": endpoint{
|
"fips-ap-south-1": endpoint{
|
||||||
Hostname: "snowball-fips.ap-south-1.amazonaws.com",
|
Hostname: "snowball-fips.ap-south-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
|
@ -6170,6 +6301,12 @@ var awsPartition = partition{
|
||||||
"waf-regional": service{
|
"waf-regional": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"af-south-1": endpoint{
|
||||||
|
Hostname: "waf-regional.af-south-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "af-south-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
"ap-east-1": endpoint{
|
"ap-east-1": endpoint{
|
||||||
Hostname: "waf-regional.ap-east-1.amazonaws.com",
|
Hostname: "waf-regional.ap-east-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
|
@ -6224,6 +6361,12 @@ var awsPartition = partition{
|
||||||
Region: "eu-north-1",
|
Region: "eu-north-1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"eu-south-1": endpoint{
|
||||||
|
Hostname: "waf-regional.eu-south-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "eu-south-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
"eu-west-1": endpoint{
|
"eu-west-1": endpoint{
|
||||||
Hostname: "waf-regional.eu-west-1.amazonaws.com",
|
Hostname: "waf-regional.eu-west-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
|
@ -6242,6 +6385,12 @@ var awsPartition = partition{
|
||||||
Region: "eu-west-3",
|
Region: "eu-west-3",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"fips-af-south-1": endpoint{
|
||||||
|
Hostname: "waf-regional-fips.af-south-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "af-south-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
"fips-ap-east-1": endpoint{
|
"fips-ap-east-1": endpoint{
|
||||||
Hostname: "waf-regional-fips.ap-east-1.amazonaws.com",
|
Hostname: "waf-regional-fips.ap-east-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
|
@ -6296,6 +6445,12 @@ var awsPartition = partition{
|
||||||
Region: "eu-north-1",
|
Region: "eu-north-1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"fips-eu-south-1": endpoint{
|
||||||
|
Hostname: "waf-regional-fips.eu-south-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "eu-south-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
"fips-eu-west-1": endpoint{
|
"fips-eu-west-1": endpoint{
|
||||||
Hostname: "waf-regional-fips.eu-west-1.amazonaws.com",
|
Hostname: "waf-regional-fips.eu-west-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
|
@ -6432,9 +6587,21 @@ var awsPartition = partition{
|
||||||
"eu-central-1": endpoint{},
|
"eu-central-1": endpoint{},
|
||||||
"eu-west-1": endpoint{},
|
"eu-west-1": endpoint{},
|
||||||
"eu-west-2": endpoint{},
|
"eu-west-2": endpoint{},
|
||||||
"sa-east-1": endpoint{},
|
"fips-us-east-1": endpoint{
|
||||||
"us-east-1": endpoint{},
|
Hostname: "workspaces-fips.us-east-1.amazonaws.com",
|
||||||
"us-west-2": endpoint{},
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-east-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"fips-us-west-2": endpoint{
|
||||||
|
Hostname: "workspaces-fips.us-west-2.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-west-2",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"sa-east-1": endpoint{},
|
||||||
|
"us-east-1": endpoint{},
|
||||||
|
"us-west-2": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"xray": service{
|
"xray": service{
|
||||||
|
@ -6723,6 +6890,13 @@ var awscnPartition = partition{
|
||||||
"cn-northwest-1": endpoint{},
|
"cn-northwest-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"ebs": service{
|
||||||
|
|
||||||
|
Endpoints: endpoints{
|
||||||
|
"cn-north-1": endpoint{},
|
||||||
|
"cn-northwest-1": endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"ec2": service{
|
"ec2": service{
|
||||||
Defaults: endpoint{
|
Defaults: endpoint{
|
||||||
Protocols: []string{"http", "https"},
|
Protocols: []string{"http", "https"},
|
||||||
|
@ -6893,6 +7067,23 @@ var awscnPartition = partition{
|
||||||
"cn-northwest-1": endpoint{},
|
"cn-northwest-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"iotevents": service{
|
||||||
|
|
||||||
|
Endpoints: endpoints{
|
||||||
|
"cn-north-1": endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"ioteventsdata": service{
|
||||||
|
|
||||||
|
Endpoints: endpoints{
|
||||||
|
"cn-north-1": endpoint{
|
||||||
|
Hostname: "data.iotevents.cn-north-1.amazonaws.com.cn",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "cn-north-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
"iotsecuredtunneling": service{
|
"iotsecuredtunneling": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
@ -7019,6 +7210,13 @@ var awscnPartition = partition{
|
||||||
"cn-northwest-1": endpoint{},
|
"cn-northwest-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"resource-groups": service{
|
||||||
|
|
||||||
|
Endpoints: endpoints{
|
||||||
|
"cn-north-1": endpoint{},
|
||||||
|
"cn-northwest-1": endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"route53": service{
|
"route53": service{
|
||||||
PartitionEndpoint: "aws-cn-global",
|
PartitionEndpoint: "aws-cn-global",
|
||||||
IsRegionalized: boxedFalse,
|
IsRegionalized: boxedFalse,
|
||||||
|
@ -7747,6 +7945,13 @@ var awsusgovPartition = partition{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"ebs": service{
|
||||||
|
|
||||||
|
Endpoints: endpoints{
|
||||||
|
"us-gov-east-1": endpoint{},
|
||||||
|
"us-gov-west-1": endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"ec2": service{
|
"ec2": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
@ -7856,13 +8061,13 @@ var awsusgovPartition = partition{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
"fips-us-gov-east-1": endpoint{
|
"fips-us-gov-east-1": endpoint{
|
||||||
Hostname: "elasticloadbalancing-fips.us-gov-east-1.amazonaws.com",
|
Hostname: "elasticloadbalancing.us-gov-east-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
Region: "us-gov-east-1",
|
Region: "us-gov-east-1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"fips-us-gov-west-1": endpoint{
|
"fips-us-gov-west-1": endpoint{
|
||||||
Hostname: "elasticloadbalancing-fips.us-gov-west-1.amazonaws.com",
|
Hostname: "elasticloadbalancing.us-gov-west-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
Region: "us-gov-west-1",
|
Region: "us-gov-west-1",
|
||||||
},
|
},
|
||||||
|
@ -8024,7 +8229,12 @@ var awsusgovPartition = partition{
|
||||||
"health": service{
|
"health": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
"us-gov-west-1": endpoint{},
|
"fips-us-gov-west-1": endpoint{
|
||||||
|
Hostname: "health-fips.us-gov-west-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"iam": service{
|
"iam": service{
|
||||||
|
@ -8072,12 +8282,14 @@ var awsusgovPartition = partition{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"us-gov-east-1": endpoint{},
|
||||||
"us-gov-west-1": endpoint{},
|
"us-gov-west-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"iotsecuredtunneling": service{
|
"iotsecuredtunneling": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"us-gov-east-1": endpoint{},
|
||||||
"us-gov-west-1": endpoint{},
|
"us-gov-west-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -8091,20 +8303,18 @@ var awsusgovPartition = partition{
|
||||||
"kinesis": service{
|
"kinesis": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
"fips-us-gov-east-1": endpoint{
|
"us-gov-east-1": endpoint{
|
||||||
Hostname: "kinesis-fips.us-gov-east-1.amazonaws.com",
|
Hostname: "kinesis.us-gov-east-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
Region: "us-gov-east-1",
|
Region: "us-gov-east-1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"fips-us-gov-west-1": endpoint{
|
"us-gov-west-1": endpoint{
|
||||||
Hostname: "kinesis-fips.us-gov-west-1.amazonaws.com",
|
Hostname: "kinesis.us-gov-west-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
Region: "us-gov-west-1",
|
Region: "us-gov-west-1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"us-gov-east-1": endpoint{},
|
|
||||||
"us-gov-west-1": endpoint{},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"kinesisanalytics": service{
|
"kinesisanalytics": service{
|
||||||
|
@ -8283,6 +8493,12 @@ var awsusgovPartition = partition{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"fips-us-gov-west-1": endpoint{
|
||||||
|
Hostname: "pinpoint.us-gov-west-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
"us-gov-west-1": endpoint{},
|
"us-gov-west-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -8407,7 +8623,7 @@ var awsusgovPartition = partition{
|
||||||
},
|
},
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
"fips-us-gov-west-1": endpoint{
|
"fips-us-gov-west-1": endpoint{
|
||||||
Hostname: "s3-fips-us-gov-west-1.amazonaws.com",
|
Hostname: "s3-fips.us-gov-west-1.amazonaws.com",
|
||||||
CredentialScope: credentialScope{
|
CredentialScope: credentialScope{
|
||||||
Region: "us-gov-west-1",
|
Region: "us-gov-west-1",
|
||||||
},
|
},
|
||||||
|
@ -8782,6 +8998,25 @@ var awsusgovPartition = partition{
|
||||||
"us-gov-west-1": endpoint{},
|
"us-gov-west-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"transfer": service{
|
||||||
|
|
||||||
|
Endpoints: endpoints{
|
||||||
|
"fips-us-gov-east-1": endpoint{
|
||||||
|
Hostname: "transfer-fips.us-gov-east-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-east-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"fips-us-gov-west-1": endpoint{
|
||||||
|
Hostname: "transfer-fips.us-gov-west-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"us-gov-east-1": endpoint{},
|
||||||
|
"us-gov-west-1": endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"translate": service{
|
"translate": service{
|
||||||
Defaults: endpoint{
|
Defaults: endpoint{
|
||||||
Protocols: []string{"https"},
|
Protocols: []string{"https"},
|
||||||
|
@ -8816,6 +9051,12 @@ var awsusgovPartition = partition{
|
||||||
"workspaces": service{
|
"workspaces": service{
|
||||||
|
|
||||||
Endpoints: endpoints{
|
Endpoints: endpoints{
|
||||||
|
"fips-us-gov-west-1": endpoint{
|
||||||
|
Hostname: "workspaces-fips.us-gov-west-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
"us-gov-west-1": endpoint{},
|
"us-gov-west-1": endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
17
vendor/github.com/aws/aws-sdk-go/aws/session/doc.go
generated
vendored
17
vendor/github.com/aws/aws-sdk-go/aws/session/doc.go
generated
vendored
|
@ -241,5 +241,22 @@ over the AWS_CA_BUNDLE environment variable, and will be used if both are set.
|
||||||
Setting a custom HTTPClient in the aws.Config options will override this setting.
|
Setting a custom HTTPClient in the aws.Config options will override this setting.
|
||||||
To use this option and custom HTTP client, the HTTP client needs to be provided
|
To use this option and custom HTTP client, the HTTP client needs to be provided
|
||||||
when creating the session. Not the service client.
|
when creating the session. Not the service client.
|
||||||
|
|
||||||
|
The endpoint of the EC2 IMDS client can be configured via the environment
|
||||||
|
variable, AWS_EC2_METADATA_SERVICE_ENDPOINT when creating the client with a
|
||||||
|
Session. See Options.EC2IMDSEndpoint for more details.
|
||||||
|
|
||||||
|
AWS_EC2_METADATA_SERVICE_ENDPOINT=http://169.254.169.254
|
||||||
|
|
||||||
|
If using an URL with an IPv6 address literal, the IPv6 address
|
||||||
|
component must be enclosed in square brackets.
|
||||||
|
|
||||||
|
AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1]
|
||||||
|
|
||||||
|
The custom EC2 IMDS endpoint can also be specified via the Session options.
|
||||||
|
|
||||||
|
sess, err := session.NewSessionWithOptions(session.Options{
|
||||||
|
EC2IMDSEndpoint: "http://[::1]",
|
||||||
|
})
|
||||||
*/
|
*/
|
||||||
package session
|
package session
|
||||||
|
|
10
vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
generated
vendored
10
vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
generated
vendored
|
@ -148,6 +148,11 @@ type envConfig struct {
|
||||||
//
|
//
|
||||||
// AWS_S3_USE_ARN_REGION=true
|
// AWS_S3_USE_ARN_REGION=true
|
||||||
S3UseARNRegion bool
|
S3UseARNRegion bool
|
||||||
|
|
||||||
|
// Specifies the alternative endpoint to use for EC2 IMDS.
|
||||||
|
//
|
||||||
|
// AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1]
|
||||||
|
EC2IMDSEndpoint string
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -211,6 +216,9 @@ var (
|
||||||
s3UseARNRegionEnvKey = []string{
|
s3UseARNRegionEnvKey = []string{
|
||||||
"AWS_S3_USE_ARN_REGION",
|
"AWS_S3_USE_ARN_REGION",
|
||||||
}
|
}
|
||||||
|
ec2IMDSEndpointEnvKey = []string{
|
||||||
|
"AWS_EC2_METADATA_SERVICE_ENDPOINT",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// loadEnvConfig retrieves the SDK's environment configuration.
|
// loadEnvConfig retrieves the SDK's environment configuration.
|
||||||
|
@ -332,6 +340,8 @@ func envConfigLoad(enableSharedConfig bool) (envConfig, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setFromEnvVal(&cfg.EC2IMDSEndpoint, ec2IMDSEndpointEnvKey)
|
||||||
|
|
||||||
return cfg, nil
|
return cfg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
61
vendor/github.com/aws/aws-sdk-go/aws/session/session.go
generated
vendored
61
vendor/github.com/aws/aws-sdk-go/aws/session/session.go
generated
vendored
|
@ -48,6 +48,8 @@ var ErrSharedConfigInvalidCredSource = awserr.New(ErrCodeSharedConfig, "credenti
|
||||||
type Session struct {
|
type Session struct {
|
||||||
Config *aws.Config
|
Config *aws.Config
|
||||||
Handlers request.Handlers
|
Handlers request.Handlers
|
||||||
|
|
||||||
|
options Options
|
||||||
}
|
}
|
||||||
|
|
||||||
// New creates a new instance of the handlers merging in the provided configs
|
// New creates a new instance of the handlers merging in the provided configs
|
||||||
|
@ -99,7 +101,7 @@ func New(cfgs ...*aws.Config) *Session {
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
s := deprecatedNewSession(cfgs...)
|
s := deprecatedNewSession(envCfg, cfgs...)
|
||||||
if envErr != nil {
|
if envErr != nil {
|
||||||
msg := "failed to load env config"
|
msg := "failed to load env config"
|
||||||
s.logDeprecatedNewSessionError(msg, envErr, cfgs)
|
s.logDeprecatedNewSessionError(msg, envErr, cfgs)
|
||||||
|
@ -243,6 +245,23 @@ type Options struct {
|
||||||
// function to initialize this value before changing the handlers to be
|
// function to initialize this value before changing the handlers to be
|
||||||
// used by the SDK.
|
// used by the SDK.
|
||||||
Handlers request.Handlers
|
Handlers request.Handlers
|
||||||
|
|
||||||
|
// Allows specifying a custom endpoint to be used by the EC2 IMDS client
|
||||||
|
// when making requests to the EC2 IMDS API. The must endpoint value must
|
||||||
|
// include protocol prefix.
|
||||||
|
//
|
||||||
|
// If unset, will the EC2 IMDS client will use its default endpoint.
|
||||||
|
//
|
||||||
|
// Can also be specified via the environment variable,
|
||||||
|
// AWS_EC2_METADATA_SERVICE_ENDPOINT.
|
||||||
|
//
|
||||||
|
// AWS_EC2_METADATA_SERVICE_ENDPOINT=http://169.254.169.254
|
||||||
|
//
|
||||||
|
// If using an URL with an IPv6 address literal, the IPv6 address
|
||||||
|
// component must be enclosed in square brackets.
|
||||||
|
//
|
||||||
|
// AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1]
|
||||||
|
EC2IMDSEndpoint string
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewSessionWithOptions returns a new Session created from SDK defaults, config files,
|
// NewSessionWithOptions returns a new Session created from SDK defaults, config files,
|
||||||
|
@ -329,7 +348,25 @@ func Must(sess *Session, err error) *Session {
|
||||||
return sess
|
return sess
|
||||||
}
|
}
|
||||||
|
|
||||||
func deprecatedNewSession(cfgs ...*aws.Config) *Session {
|
// Wraps the endpoint resolver with a resolver that will return a custom
|
||||||
|
// endpoint for EC2 IMDS.
|
||||||
|
func wrapEC2IMDSEndpoint(resolver endpoints.Resolver, endpoint string) endpoints.Resolver {
|
||||||
|
return endpoints.ResolverFunc(
|
||||||
|
func(service, region string, opts ...func(*endpoints.Options)) (
|
||||||
|
endpoints.ResolvedEndpoint, error,
|
||||||
|
) {
|
||||||
|
if service == ec2MetadataServiceID {
|
||||||
|
return endpoints.ResolvedEndpoint{
|
||||||
|
URL: endpoint,
|
||||||
|
SigningName: ec2MetadataServiceID,
|
||||||
|
SigningRegion: region,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
return resolver.EndpointFor(service, region)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func deprecatedNewSession(envCfg envConfig, cfgs ...*aws.Config) *Session {
|
||||||
cfg := defaults.Config()
|
cfg := defaults.Config()
|
||||||
handlers := defaults.Handlers()
|
handlers := defaults.Handlers()
|
||||||
|
|
||||||
|
@ -341,6 +378,11 @@ func deprecatedNewSession(cfgs ...*aws.Config) *Session {
|
||||||
// endpoints for service client configurations.
|
// endpoints for service client configurations.
|
||||||
cfg.EndpointResolver = endpoints.DefaultResolver()
|
cfg.EndpointResolver = endpoints.DefaultResolver()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(envCfg.EC2IMDSEndpoint) != 0 {
|
||||||
|
cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, envCfg.EC2IMDSEndpoint)
|
||||||
|
}
|
||||||
|
|
||||||
cfg.Credentials = defaults.CredChain(cfg, handlers)
|
cfg.Credentials = defaults.CredChain(cfg, handlers)
|
||||||
|
|
||||||
// Reapply any passed in configs to override credentials if set
|
// Reapply any passed in configs to override credentials if set
|
||||||
|
@ -349,6 +391,9 @@ func deprecatedNewSession(cfgs ...*aws.Config) *Session {
|
||||||
s := &Session{
|
s := &Session{
|
||||||
Config: cfg,
|
Config: cfg,
|
||||||
Handlers: handlers,
|
Handlers: handlers,
|
||||||
|
options: Options{
|
||||||
|
EC2IMDSEndpoint: envCfg.EC2IMDSEndpoint,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
initHandlers(s)
|
initHandlers(s)
|
||||||
|
@ -418,6 +463,7 @@ func newSession(opts Options, envCfg envConfig, cfgs ...*aws.Config) (*Session,
|
||||||
s := &Session{
|
s := &Session{
|
||||||
Config: cfg,
|
Config: cfg,
|
||||||
Handlers: handlers,
|
Handlers: handlers,
|
||||||
|
options: opts,
|
||||||
}
|
}
|
||||||
|
|
||||||
initHandlers(s)
|
initHandlers(s)
|
||||||
|
@ -570,6 +616,14 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config,
|
||||||
endpoints.LegacyS3UsEast1Endpoint,
|
endpoints.LegacyS3UsEast1Endpoint,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
ec2IMDSEndpoint := sessOpts.EC2IMDSEndpoint
|
||||||
|
if len(ec2IMDSEndpoint) == 0 {
|
||||||
|
ec2IMDSEndpoint = envCfg.EC2IMDSEndpoint
|
||||||
|
}
|
||||||
|
if len(ec2IMDSEndpoint) != 0 {
|
||||||
|
cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, ec2IMDSEndpoint)
|
||||||
|
}
|
||||||
|
|
||||||
// Configure credentials if not already set by the user when creating the
|
// Configure credentials if not already set by the user when creating the
|
||||||
// Session.
|
// Session.
|
||||||
if cfg.Credentials == credentials.AnonymousCredentials && userCfg.Credentials == nil {
|
if cfg.Credentials == credentials.AnonymousCredentials && userCfg.Credentials == nil {
|
||||||
|
@ -627,6 +681,7 @@ func (s *Session) Copy(cfgs ...*aws.Config) *Session {
|
||||||
newSession := &Session{
|
newSession := &Session{
|
||||||
Config: s.Config.Copy(cfgs...),
|
Config: s.Config.Copy(cfgs...),
|
||||||
Handlers: s.Handlers.Copy(),
|
Handlers: s.Handlers.Copy(),
|
||||||
|
options: s.options,
|
||||||
}
|
}
|
||||||
|
|
||||||
initHandlers(newSession)
|
initHandlers(newSession)
|
||||||
|
@ -665,6 +720,8 @@ func (s *Session) ClientConfig(service string, cfgs ...*aws.Config) client.Confi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ec2MetadataServiceID = "ec2metadata"
|
||||||
|
|
||||||
func (s *Session) resolveEndpoint(service, region string, cfg *aws.Config) (endpoints.ResolvedEndpoint, error) {
|
func (s *Session) resolveEndpoint(service, region string, cfg *aws.Config) (endpoints.ResolvedEndpoint, error) {
|
||||||
|
|
||||||
if ep := aws.StringValue(cfg.Endpoint); len(ep) != 0 {
|
if ep := aws.StringValue(cfg.Endpoint); len(ep) != 0 {
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
|
@ -5,4 +5,4 @@ package aws
|
||||||
const SDKName = "aws-sdk-go"
|
const SDKName = "aws-sdk-go"
|
||||||
|
|
||||||
// SDKVersion is the version of this SDK
|
// SDKVersion is the version of this SDK
|
||||||
const SDKVersion = "1.34.9"
|
const SDKVersion = "1.35.5"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go
generated
vendored
4
vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go
generated
vendored
|
@ -27,7 +27,7 @@ const (
|
||||||
// RFC3339 a subset of the ISO8601 timestamp format. e.g 2014-04-29T18:30:38Z
|
// RFC3339 a subset of the ISO8601 timestamp format. e.g 2014-04-29T18:30:38Z
|
||||||
ISO8601TimeFormat = "2006-01-02T15:04:05.999999999Z"
|
ISO8601TimeFormat = "2006-01-02T15:04:05.999999999Z"
|
||||||
|
|
||||||
// This format is used for output time without seconds precision
|
// This format is used for output time with fractional second precision up to milliseconds
|
||||||
ISO8601OutputTimeFormat = "2006-01-02T15:04:05.999999999Z"
|
ISO8601OutputTimeFormat = "2006-01-02T15:04:05.999999999Z"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ func IsKnownTimestampFormat(name string) bool {
|
||||||
|
|
||||||
// FormatTime returns a string value of the time.
|
// FormatTime returns a string value of the time.
|
||||||
func FormatTime(name string, t time.Time) string {
|
func FormatTime(name string, t time.Time) string {
|
||||||
t = t.UTC()
|
t = t.UTC().Truncate(time.Millisecond)
|
||||||
|
|
||||||
switch name {
|
switch name {
|
||||||
case RFC822TimeFormatName:
|
case RFC822TimeFormatName:
|
||||||
|
|
1969
vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
generated
vendored
1969
vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
generated
vendored
File diff suppressed because it is too large
Load diff
10
vendor/github.com/aws/aws-sdk-go/service/sts/api.go
generated
vendored
10
vendor/github.com/aws/aws-sdk-go/service/sts/api.go
generated
vendored
|
@ -207,6 +207,10 @@ func (c *STS) AssumeRoleRequest(input *AssumeRoleInput) (req *request.Request, o
|
||||||
// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
|
// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
|
||||||
// in the IAM User Guide.
|
// in the IAM User Guide.
|
||||||
//
|
//
|
||||||
|
// * ErrCodeExpiredTokenException "ExpiredTokenException"
|
||||||
|
// The web identity token that was passed is expired or is not valid. Get a
|
||||||
|
// new identity token from the identity provider and then retry the request.
|
||||||
|
//
|
||||||
// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole
|
// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole
|
||||||
func (c *STS) AssumeRole(input *AssumeRoleInput) (*AssumeRoleOutput, error) {
|
func (c *STS) AssumeRole(input *AssumeRoleInput) (*AssumeRoleOutput, error) {
|
||||||
req, out := c.AssumeRoleRequest(input)
|
req, out := c.AssumeRoleRequest(input)
|
||||||
|
@ -626,7 +630,7 @@ func (c *STS) AssumeRoleWithWebIdentityRequest(input *AssumeRoleWithWebIdentityI
|
||||||
// * Using Web Identity Federation API Operations for Mobile Apps (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html)
|
// * Using Web Identity Federation API Operations for Mobile Apps (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html)
|
||||||
// and Federation Through a Web-based Identity Provider (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).
|
// and Federation Through a Web-based Identity Provider (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity).
|
||||||
//
|
//
|
||||||
// * Web Identity Federation Playground (https://web-identity-federation-playground.s3.amazonaws.com/index.html).
|
// * Web Identity Federation Playground (https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/).
|
||||||
// Walk through the process of authenticating through Login with Amazon,
|
// Walk through the process of authenticating through Login with Amazon,
|
||||||
// Facebook, or Google, getting temporary security credentials, and then
|
// Facebook, or Google, getting temporary security credentials, and then
|
||||||
// using those credentials to make a request to AWS.
|
// using those credentials to make a request to AWS.
|
||||||
|
@ -1788,7 +1792,7 @@ type AssumeRoleWithSAMLInput struct {
|
||||||
// in the IAM User Guide.
|
// in the IAM User Guide.
|
||||||
//
|
//
|
||||||
// SAMLAssertion is a required field
|
// SAMLAssertion is a required field
|
||||||
SAMLAssertion *string `min:"4" type:"string" required:"true" sensitive:"true"`
|
SAMLAssertion *string `min:"4" type:"string" required:"true"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// String returns the string representation
|
// String returns the string representation
|
||||||
|
@ -2100,7 +2104,7 @@ type AssumeRoleWithWebIdentityInput struct {
|
||||||
// the application makes an AssumeRoleWithWebIdentity call.
|
// the application makes an AssumeRoleWithWebIdentity call.
|
||||||
//
|
//
|
||||||
// WebIdentityToken is a required field
|
// WebIdentityToken is a required field
|
||||||
WebIdentityToken *string `min:"4" type:"string" required:"true" sensitive:"true"`
|
WebIdentityToken *string `min:"4" type:"string" required:"true"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// String returns the string representation
|
// String returns the string representation
|
||||||
|
|
86
vendor/github.com/aws/aws-sdk-go/service/sts/doc.go
generated
vendored
86
vendor/github.com/aws/aws-sdk-go/service/sts/doc.go
generated
vendored
|
@ -3,87 +3,11 @@
|
||||||
// Package sts provides the client and types for making API
|
// Package sts provides the client and types for making API
|
||||||
// requests to AWS Security Token Service.
|
// requests to AWS Security Token Service.
|
||||||
//
|
//
|
||||||
// The AWS Security Token Service (STS) is a web service that enables you to
|
// AWS Security Token Service (STS) enables you to request temporary, limited-privilege
|
||||||
// request temporary, limited-privilege credentials for AWS Identity and Access
|
// credentials for AWS Identity and Access Management (IAM) users or for users
|
||||||
// Management (IAM) users or for users that you authenticate (federated users).
|
// that you authenticate (federated users). This guide provides descriptions
|
||||||
// This guide provides descriptions of the STS API. For more detailed information
|
// of the STS API. For more information about using this service, see Temporary
|
||||||
// about using this service, go to Temporary Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html).
|
// Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html).
|
||||||
//
|
|
||||||
// For information about setting up signatures and authorization through the
|
|
||||||
// API, go to Signing AWS API Requests (https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)
|
|
||||||
// in the AWS General Reference. For general information about the Query API,
|
|
||||||
// go to Making Query Requests (https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html)
|
|
||||||
// in Using IAM. For information about using security tokens with other AWS
|
|
||||||
// products, go to AWS Services That Work with IAM (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)
|
|
||||||
// in the IAM User Guide.
|
|
||||||
//
|
|
||||||
// If you're new to AWS and need additional technical information about a specific
|
|
||||||
// AWS product, you can find the product's technical documentation at http://aws.amazon.com/documentation/
|
|
||||||
// (http://aws.amazon.com/documentation/).
|
|
||||||
//
|
|
||||||
// Endpoints
|
|
||||||
//
|
|
||||||
// By default, AWS Security Token Service (STS) is available as a global service,
|
|
||||||
// and all AWS STS requests go to a single endpoint at https://sts.amazonaws.com.
|
|
||||||
// Global requests map to the US East (N. Virginia) region. AWS recommends using
|
|
||||||
// Regional AWS STS endpoints instead of the global endpoint to reduce latency,
|
|
||||||
// build in redundancy, and increase session token validity. For more information,
|
|
||||||
// see Managing AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
|
|
||||||
// in the IAM User Guide.
|
|
||||||
//
|
|
||||||
// Most AWS Regions are enabled for operations in all AWS services by default.
|
|
||||||
// Those Regions are automatically activated for use with AWS STS. Some Regions,
|
|
||||||
// such as Asia Pacific (Hong Kong), must be manually enabled. To learn more
|
|
||||||
// about enabling and disabling AWS Regions, see Managing AWS Regions (https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)
|
|
||||||
// in the AWS General Reference. When you enable these AWS Regions, they are
|
|
||||||
// automatically activated for use with AWS STS. You cannot activate the STS
|
|
||||||
// endpoint for a Region that is disabled. Tokens that are valid in all AWS
|
|
||||||
// Regions are longer than tokens that are valid in Regions that are enabled
|
|
||||||
// by default. Changing this setting might affect existing systems where you
|
|
||||||
// temporarily store tokens. For more information, see Managing Global Endpoint
|
|
||||||
// Session Tokens (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-manage-tokens)
|
|
||||||
// in the IAM User Guide.
|
|
||||||
//
|
|
||||||
// After you activate a Region for use with AWS STS, you can direct AWS STS
|
|
||||||
// API calls to that Region. AWS STS recommends that you provide both the Region
|
|
||||||
// and endpoint when you make calls to a Regional endpoint. You can provide
|
|
||||||
// the Region alone for manually enabled Regions, such as Asia Pacific (Hong
|
|
||||||
// Kong). In this case, the calls are directed to the STS Regional endpoint.
|
|
||||||
// However, if you provide the Region alone for Regions enabled by default,
|
|
||||||
// the calls are directed to the global endpoint of https://sts.amazonaws.com.
|
|
||||||
//
|
|
||||||
// To view the list of AWS STS endpoints and whether they are active by default,
|
|
||||||
// see Writing Code to Use AWS STS Regions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#id_credentials_temp_enable-regions_writing_code)
|
|
||||||
// in the IAM User Guide.
|
|
||||||
//
|
|
||||||
// Recording API requests
|
|
||||||
//
|
|
||||||
// STS supports AWS CloudTrail, which is a service that records AWS calls for
|
|
||||||
// your AWS account and delivers log files to an Amazon S3 bucket. By using
|
|
||||||
// information collected by CloudTrail, you can determine what requests were
|
|
||||||
// successfully made to STS, who made the request, when it was made, and so
|
|
||||||
// on.
|
|
||||||
//
|
|
||||||
// If you activate AWS STS endpoints in Regions other than the default global
|
|
||||||
// endpoint, then you must also turn on CloudTrail logging in those Regions.
|
|
||||||
// This is necessary to record any AWS STS API calls that are made in those
|
|
||||||
// Regions. For more information, see Turning On CloudTrail in Additional Regions
|
|
||||||
// (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/aggregating_logs_regions_turn_on_ct.html)
|
|
||||||
// in the AWS CloudTrail User Guide.
|
|
||||||
//
|
|
||||||
// AWS Security Token Service (STS) is a global service with a single endpoint
|
|
||||||
// at https://sts.amazonaws.com. Calls to this endpoint are logged as calls
|
|
||||||
// to a global service. However, because this endpoint is physically located
|
|
||||||
// in the US East (N. Virginia) Region, your logs list us-east-1 as the event
|
|
||||||
// Region. CloudTrail does not write these logs to the US East (Ohio) Region
|
|
||||||
// unless you choose to include global service logs in that Region. CloudTrail
|
|
||||||
// writes calls to all Regional endpoints to their respective Regions. For example,
|
|
||||||
// calls to sts.us-east-2.amazonaws.com are published to the US East (Ohio)
|
|
||||||
// Region and calls to sts.eu-central-1.amazonaws.com are published to the EU
|
|
||||||
// (Frankfurt) Region.
|
|
||||||
//
|
|
||||||
// To learn more about CloudTrail, including how to turn it on and find your
|
|
||||||
// log files, see the AWS CloudTrail User Guide (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html).
|
|
||||||
//
|
//
|
||||||
// See https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15 for more information on this service.
|
// See https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15 for more information on this service.
|
||||||
//
|
//
|
||||||
|
|
125
vendor/github.com/dgryski/go-sip13/sip13.go
generated
vendored
125
vendor/github.com/dgryski/go-sip13/sip13.go
generated
vendored
|
@ -3,86 +3,81 @@
|
||||||
package sip13
|
package sip13
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/binary"
|
|
||||||
"math/bits"
|
"math/bits"
|
||||||
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
type sip struct {
|
func Sum64(k0, k1 uint64, b []byte) uint64 {
|
||||||
v0, v1, v2, v3 uint64
|
return Sum64Str(k0, k1, unsafeB2S(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *sip) round() {
|
func readUint64(b string) uint64 {
|
||||||
s.v0 += s.v1
|
_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808
|
||||||
s.v2 += s.v3
|
return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |
|
||||||
s.v1 = bits.RotateLeft64(s.v1, 13)
|
uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56
|
||||||
s.v3 = bits.RotateLeft64(s.v3, 16)
|
}
|
||||||
s.v1 ^= s.v0
|
|
||||||
s.v3 ^= s.v2
|
func unsafeB2S(b []byte) string {
|
||||||
s.v0 = bits.RotateLeft64(s.v0, 32)
|
return *(*string)(unsafe.Pointer(&b))
|
||||||
s.v2 += s.v1
|
|
||||||
s.v0 += s.v3
|
|
||||||
s.v1 = bits.RotateLeft64(s.v1, 17)
|
|
||||||
s.v3 = bits.RotateLeft64(s.v3, 21)
|
|
||||||
s.v1 ^= s.v2
|
|
||||||
s.v3 ^= s.v0
|
|
||||||
s.v2 = bits.RotateLeft64(s.v2, 32)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Sum64Str(k0, k1 uint64, p string) uint64 {
|
func Sum64Str(k0, k1 uint64, p string) uint64 {
|
||||||
return Sum64(k0, k1, []byte(p))
|
var v0, v1, v2, v3 uint64
|
||||||
}
|
|
||||||
|
|
||||||
func Sum64(k0, k1 uint64, p []byte) uint64 {
|
v0 = k0 ^ 0x736f6d6570736575
|
||||||
|
v1 = k1 ^ 0x646f72616e646f6d
|
||||||
s := sip{
|
v2 = k0 ^ 0x6c7967656e657261
|
||||||
v0: k0 ^ 0x736f6d6570736575,
|
v3 = k1 ^ 0x7465646279746573
|
||||||
v1: k1 ^ 0x646f72616e646f6d,
|
|
||||||
v2: k0 ^ 0x6c7967656e657261,
|
|
||||||
v3: k1 ^ 0x7465646279746573,
|
|
||||||
}
|
|
||||||
b := uint64(len(p)) << 56
|
b := uint64(len(p)) << 56
|
||||||
|
|
||||||
for len(p) >= 8 {
|
for len(p) >= 8 {
|
||||||
m := binary.LittleEndian.Uint64(p[:8])
|
m := readUint64(p)
|
||||||
s.v3 ^= m
|
v3 ^= m
|
||||||
s.round()
|
v0 += v1
|
||||||
s.v0 ^= m
|
v2 += v3
|
||||||
|
v1 = bits.RotateLeft64(v1, 13)
|
||||||
|
v3 = bits.RotateLeft64(v3, 16)
|
||||||
|
v1 ^= v0
|
||||||
|
v3 ^= v2
|
||||||
|
v0 = bits.RotateLeft64(v0, 32)
|
||||||
|
v2 += v1
|
||||||
|
v0 += v3
|
||||||
|
v1 = bits.RotateLeft64(v1, 17)
|
||||||
|
v3 = bits.RotateLeft64(v3, 21)
|
||||||
|
v1 ^= v2
|
||||||
|
v3 ^= v0
|
||||||
|
v2 = bits.RotateLeft64(v2, 32)
|
||||||
|
v0 ^= m
|
||||||
p = p[8:]
|
p = p[8:]
|
||||||
}
|
}
|
||||||
|
|
||||||
switch len(p) {
|
for _, c := range []byte(p) {
|
||||||
case 7:
|
b = bits.RotateLeft64(b|uint64(c), 56)
|
||||||
b |= uint64(p[6]) << 48
|
}
|
||||||
fallthrough
|
m := bits.RotateLeft64(b, len(p)*8)
|
||||||
case 6:
|
|
||||||
b |= uint64(p[5]) << 40
|
// last block with finalization
|
||||||
fallthrough
|
v3 ^= m
|
||||||
case 5:
|
f := uint64(0xff)
|
||||||
b |= uint64(p[4]) << 32
|
for i := 0; i < 4; i++ {
|
||||||
fallthrough
|
v0 += v1
|
||||||
case 4:
|
v2 += v3
|
||||||
b |= uint64(p[3]) << 24
|
v1 = bits.RotateLeft64(v1, 13)
|
||||||
fallthrough
|
v3 = bits.RotateLeft64(v3, 16)
|
||||||
case 3:
|
v1 ^= v0
|
||||||
b |= uint64(p[2]) << 16
|
v3 ^= v2
|
||||||
fallthrough
|
v0 = bits.RotateLeft64(v0, 32)
|
||||||
case 2:
|
v2 += v1
|
||||||
b |= uint64(p[1]) << 8
|
v0 += v3
|
||||||
fallthrough
|
v1 = bits.RotateLeft64(v1, 17)
|
||||||
case 1:
|
v3 = bits.RotateLeft64(v3, 21)
|
||||||
b |= uint64(p[0])
|
v1 ^= v2
|
||||||
|
v3 ^= v0
|
||||||
|
v2 = bits.RotateLeft64(v2, 32)
|
||||||
|
v2 ^= f
|
||||||
|
v0 ^= m
|
||||||
|
m, f = 0, 0 // clear last block and finalization mixins
|
||||||
}
|
}
|
||||||
|
|
||||||
// last block
|
return v0 ^ v1 ^ v2 ^ v3
|
||||||
s.v3 ^= b
|
|
||||||
s.round()
|
|
||||||
s.v0 ^= b
|
|
||||||
|
|
||||||
// finalization
|
|
||||||
s.v2 ^= 0xff
|
|
||||||
s.round()
|
|
||||||
s.round()
|
|
||||||
s.round()
|
|
||||||
|
|
||||||
return s.v0 ^ s.v1 ^ s.v2 ^ s.v3
|
|
||||||
}
|
}
|
||||||
|
|
62
vendor/github.com/dgryski/go-sip13/sip13_amd64.s
generated
vendored
62
vendor/github.com/dgryski/go-sip13/sip13_amd64.s
generated
vendored
|
@ -1,5 +1,7 @@
|
||||||
// Code generated by command: go run asm.go -out sip13_amd64.s. DO NOT EDIT.
|
// Code generated by command: go run asm.go -out sip13_amd64.s. DO NOT EDIT.
|
||||||
|
|
||||||
|
// +build !noasm
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
// func Sum64(k0 uint64, k1 uint64, p []byte) uint64
|
// func Sum64(k0 uint64, k1 uint64, p []byte) uint64
|
||||||
|
@ -47,22 +49,20 @@ loop_begin:
|
||||||
JGE loop_begin
|
JGE loop_begin
|
||||||
|
|
||||||
loop_end:
|
loop_end:
|
||||||
CMPQ SI, $0x00
|
CMPQ SI, $0x00
|
||||||
JE sw0
|
JE sw0
|
||||||
CMPQ SI, $0x01
|
CMPQ SI, $0x01
|
||||||
JE sw1
|
JE sw1
|
||||||
CMPQ SI, $0x02
|
CMPQ SI, $0x02
|
||||||
JE sw2
|
JE sw2
|
||||||
CMPQ SI, $0x03
|
CMPQ SI, $0x03
|
||||||
JE sw3
|
JE sw3
|
||||||
CMPQ SI, $0x04
|
CMPQ SI, $0x04
|
||||||
JE sw4
|
JE sw4
|
||||||
CMPQ SI, $0x05
|
CMPQ SI, $0x05
|
||||||
JE sw5
|
JE sw5
|
||||||
CMPQ SI, $0x06
|
CMPQ SI, $0x06
|
||||||
JE sw6
|
JE sw6
|
||||||
|
|
||||||
sw7:
|
|
||||||
MOVBQZX 6(BP), SI
|
MOVBQZX 6(BP), SI
|
||||||
SHLQ $0x30, SI
|
SHLQ $0x30, SI
|
||||||
ORQ SI, DI
|
ORQ SI, DI
|
||||||
|
@ -208,22 +208,20 @@ loop_begin:
|
||||||
JGE loop_begin
|
JGE loop_begin
|
||||||
|
|
||||||
loop_end:
|
loop_end:
|
||||||
CMPQ SI, $0x00
|
CMPQ SI, $0x00
|
||||||
JE sw0
|
JE sw0
|
||||||
CMPQ SI, $0x01
|
CMPQ SI, $0x01
|
||||||
JE sw1
|
JE sw1
|
||||||
CMPQ SI, $0x02
|
CMPQ SI, $0x02
|
||||||
JE sw2
|
JE sw2
|
||||||
CMPQ SI, $0x03
|
CMPQ SI, $0x03
|
||||||
JE sw3
|
JE sw3
|
||||||
CMPQ SI, $0x04
|
CMPQ SI, $0x04
|
||||||
JE sw4
|
JE sw4
|
||||||
CMPQ SI, $0x05
|
CMPQ SI, $0x05
|
||||||
JE sw5
|
JE sw5
|
||||||
CMPQ SI, $0x06
|
CMPQ SI, $0x06
|
||||||
JE sw6
|
JE sw6
|
||||||
|
|
||||||
sw7:
|
|
||||||
MOVBQZX 6(BP), SI
|
MOVBQZX 6(BP), SI
|
||||||
SHLQ $0x30, SI
|
SHLQ $0x30, SI
|
||||||
ORQ SI, DI
|
ORQ SI, DI
|
||||||
|
|
2
vendor/github.com/dgryski/go-sip13/sip13_stub.go
generated
vendored
2
vendor/github.com/dgryski/go-sip13/sip13_stub.go
generated
vendored
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
package sip13
|
package sip13
|
||||||
|
|
||||||
//go:generate go run asm.go -out sip13_amd64.s
|
//go:generate go run _avo/asm.go -out sip13_amd64.s
|
||||||
//go:noescape
|
//go:noescape
|
||||||
|
|
||||||
func Sum64(k0, k1 uint64, p []byte) uint64
|
func Sum64(k0, k1 uint64, p []byte) uint64
|
||||||
|
|
20
vendor/github.com/digitalocean/godo/CHANGELOG.md
generated
vendored
20
vendor/github.com/digitalocean/godo/CHANGELOG.md
generated
vendored
|
@ -1,5 +1,25 @@
|
||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
## [v1.46.0] - 2020-10-05
|
||||||
|
|
||||||
|
- #373 load balancers: add LB size field, currently in closed beta - @anitgandhi
|
||||||
|
|
||||||
|
## [v1.45.0] - 2020-09-25
|
||||||
|
|
||||||
|
**Note**: This release contains breaking changes to App Platform features currently in closed beta.
|
||||||
|
|
||||||
|
- #369 update apps types to latest - @kamaln7
|
||||||
|
- #368 Kubernetes: add taints field to node pool create and update requests - @timoreimann
|
||||||
|
- #367 update apps types, address marshaling bug - @kamaln7
|
||||||
|
|
||||||
|
## [v1.44.0] - 2020-09-08
|
||||||
|
|
||||||
|
- #364 apps: support aggregate deployment logs - @kamaln7
|
||||||
|
|
||||||
|
## [v1.43.0] - 2020-09-08
|
||||||
|
|
||||||
|
- #362 update apps types - @kamaln7
|
||||||
|
|
||||||
## [v1.42.1] - 2020-08-06
|
## [v1.42.1] - 2020-08-06
|
||||||
|
|
||||||
- #360 domains: Allow for SRV records with port 0. - @andrewsomething
|
- #360 domains: Allow for SRV records with port 0. - @andrewsomething
|
||||||
|
|
378
vendor/github.com/digitalocean/godo/apps.gen.go
generated
vendored
378
vendor/github.com/digitalocean/godo/apps.gen.go
generated
vendored
|
@ -3,15 +3,43 @@
|
||||||
|
|
||||||
package godo
|
package godo
|
||||||
|
|
||||||
import ()
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// App An application's configuration and status.
|
||||||
|
type App struct {
|
||||||
|
ID string `json:"id,omitempty"`
|
||||||
|
OwnerUUID string `json:"owner_uuid,omitempty"`
|
||||||
|
Spec *AppSpec `json:"spec"`
|
||||||
|
DefaultIngress string `json:"default_ingress,omitempty"`
|
||||||
|
CreatedAt time.Time `json:"created_at,omitempty"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at,omitempty"`
|
||||||
|
ActiveDeployment *Deployment `json:"active_deployment,omitempty"`
|
||||||
|
InProgressDeployment *Deployment `json:"in_progress_deployment,omitempty"`
|
||||||
|
LastDeploymentCreatedAt time.Time `json:"last_deployment_created_at,omitempty"`
|
||||||
|
LiveURL string `json:"live_url,omitempty"`
|
||||||
|
Region *AppRegion `json:"region,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// AppDatabaseSpec struct for AppDatabaseSpec
|
// AppDatabaseSpec struct for AppDatabaseSpec
|
||||||
type AppDatabaseSpec struct {
|
type AppDatabaseSpec struct {
|
||||||
Name string `json:"name"`
|
// The name. Must be unique across all components within the same app.
|
||||||
Engine AppDatabaseSpecEngine `json:"engine,omitempty"`
|
Name string `json:"name"`
|
||||||
Version string `json:"version,omitempty"`
|
Engine AppDatabaseSpecEngine `json:"engine,omitempty"`
|
||||||
Size string `json:"size,omitempty"`
|
Version string `json:"version,omitempty"`
|
||||||
NumNodes int64 `json:"num_nodes,omitempty"`
|
// Deprecated.
|
||||||
|
Size string `json:"size,omitempty"`
|
||||||
|
// Deprecated.
|
||||||
|
NumNodes int64 `json:"num_nodes,omitempty"`
|
||||||
|
// Whether this is a production or dev database.
|
||||||
|
Production bool `json:"production,omitempty"`
|
||||||
|
// The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned.
|
||||||
|
ClusterName string `json:"cluster_name,omitempty"`
|
||||||
|
// The name of the MySQL or PostgreSQL database to configure.
|
||||||
|
DBName string `json:"db_name,omitempty"`
|
||||||
|
// The name of the MySQL or PostgreSQL user to configure.
|
||||||
|
DBUser string `json:"db_user,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppDatabaseSpecEngine the model 'AppDatabaseSpecEngine'
|
// AppDatabaseSpecEngine the model 'AppDatabaseSpecEngine'
|
||||||
|
@ -19,118 +47,322 @@ type AppDatabaseSpecEngine string
|
||||||
|
|
||||||
// List of AppDatabaseSpecEngine
|
// List of AppDatabaseSpecEngine
|
||||||
const (
|
const (
|
||||||
APPDATABASESPECENGINE_UNSET AppDatabaseSpecEngine = "UNSET"
|
AppDatabaseSpecEngine_Unset AppDatabaseSpecEngine = "UNSET"
|
||||||
APPDATABASESPECENGINE_MYSQL AppDatabaseSpecEngine = "MYSQL"
|
AppDatabaseSpecEngine_MySQL AppDatabaseSpecEngine = "MYSQL"
|
||||||
APPDATABASESPECENGINE_PG AppDatabaseSpecEngine = "PG"
|
AppDatabaseSpecEngine_PG AppDatabaseSpecEngine = "PG"
|
||||||
APPDATABASESPECENGINE_REDIS AppDatabaseSpecEngine = "REDIS"
|
AppDatabaseSpecEngine_Redis AppDatabaseSpecEngine = "REDIS"
|
||||||
)
|
)
|
||||||
|
|
||||||
// AppDomainSpec struct for AppDomainSpec
|
// AppDomainSpec struct for AppDomainSpec
|
||||||
type AppDomainSpec struct {
|
type AppDomainSpec struct {
|
||||||
Domain string `json:"domain"`
|
// The hostname.
|
||||||
|
Domain string `json:"domain"`
|
||||||
|
Type AppDomainSpecType `json:"type,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// AppDomainSpecType - DEFAULT: The default .ondigitalocean.app domain assigned to this app. - PRIMARY: The primary domain for this app. This is the domain that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary. - ALIAS: A non-primary domain.
|
||||||
|
type AppDomainSpecType string
|
||||||
|
|
||||||
|
// List of AppDomainSpecType
|
||||||
|
const (
|
||||||
|
AppDomainSpecType_Unspecified AppDomainSpecType = "UNSPECIFIED"
|
||||||
|
AppDomainSpecType_Default AppDomainSpecType = "DEFAULT"
|
||||||
|
AppDomainSpecType_Primary AppDomainSpecType = "PRIMARY"
|
||||||
|
AppDomainSpecType_Alias AppDomainSpecType = "ALIAS"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AppJobSpec struct for AppJobSpec
|
||||||
|
type AppJobSpec struct {
|
||||||
|
// The name. Must be unique across all components within the same app.
|
||||||
|
Name string `json:"name"`
|
||||||
|
Git *GitSourceSpec `json:"git,omitempty"`
|
||||||
|
GitHub *GitHubSourceSpec `json:"github,omitempty"`
|
||||||
|
// The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks.
|
||||||
|
DockerfilePath string `json:"dockerfile_path,omitempty"`
|
||||||
|
// An optional build command to run while building this component from source.
|
||||||
|
BuildCommand string `json:"build_command,omitempty"`
|
||||||
|
// An optional run command to override the component's default.
|
||||||
|
RunCommand string `json:"run_command,omitempty"`
|
||||||
|
// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
|
||||||
|
SourceDir string `json:"source_dir,omitempty"`
|
||||||
|
// An environment slug describing the type of this app. For a full list, please refer to [the product documentation](https://www.digitalocean.com/docs/app-platform/).
|
||||||
|
EnvironmentSlug string `json:"environment_slug,omitempty"`
|
||||||
|
// A list of environment variables made available to the component.
|
||||||
|
Envs []*AppVariableDefinition `json:"envs,omitempty"`
|
||||||
|
// The instance size to use for this component.
|
||||||
|
InstanceSizeSlug string `json:"instance_size_slug,omitempty"`
|
||||||
|
InstanceCount int64 `json:"instance_count,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppRouteSpec struct for AppRouteSpec
|
// AppRouteSpec struct for AppRouteSpec
|
||||||
type AppRouteSpec struct {
|
type AppRouteSpec struct {
|
||||||
|
// An HTTP path prefix. Paths must start with / and must be unique across all components within an app.
|
||||||
Path string `json:"path,omitempty"`
|
Path string `json:"path,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppServiceSpec struct for AppServiceSpec
|
// AppServiceSpec struct for AppServiceSpec
|
||||||
type AppServiceSpec struct {
|
type AppServiceSpec struct {
|
||||||
Name string `json:"name"`
|
// The name. Must be unique across all components within the same app.
|
||||||
RunCommand string `json:"run_command,omitempty"`
|
Name string `json:"name"`
|
||||||
BuildCommand string `json:"build_command,omitempty"`
|
Git *GitSourceSpec `json:"git,omitempty"`
|
||||||
HTTPPort int64 `json:"http_port,omitempty"`
|
GitHub *GitHubSourceSpec `json:"github,omitempty"`
|
||||||
DockerfilePath string `json:"dockerfile_path,omitempty"`
|
// The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks.
|
||||||
Git GitSourceSpec `json:"git,omitempty"`
|
DockerfilePath string `json:"dockerfile_path,omitempty"`
|
||||||
GitHub GitHubSourceSpec `json:"github,omitempty"`
|
// An optional build command to run while building this component from source.
|
||||||
Envs []AppVariableDefinition `json:"envs,omitempty"`
|
BuildCommand string `json:"build_command,omitempty"`
|
||||||
InstanceSizeSlug string `json:"instance_size_slug,omitempty"`
|
// An optional run command to override the component's default.
|
||||||
InstanceCount int64 `json:"instance_count,omitempty"`
|
RunCommand string `json:"run_command,omitempty"`
|
||||||
Routes []AppRouteSpec `json:"routes,omitempty"`
|
// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
|
||||||
SourceDir string `json:"source_dir,omitempty"`
|
SourceDir string `json:"source_dir,omitempty"`
|
||||||
EnvironmentSlug string `json:"environment_slug,omitempty"`
|
// An environment slug describing the type of this app. For a full list, please refer to [the product documentation](https://www.digitalocean.com/docs/app-platform/).
|
||||||
|
EnvironmentSlug string `json:"environment_slug,omitempty"`
|
||||||
|
// A list of environment variables made available to the component.
|
||||||
|
Envs []*AppVariableDefinition `json:"envs,omitempty"`
|
||||||
|
// The instance size to use for this component.
|
||||||
|
InstanceSizeSlug string `json:"instance_size_slug,omitempty"`
|
||||||
|
InstanceCount int64 `json:"instance_count,omitempty"`
|
||||||
|
// The internal port on which this service's run command will listen. Default: 8080 If there is not an environment variable with the name `PORT`, one will be automatically added with its value set to the value of this field.
|
||||||
|
HTTPPort int64 `json:"http_port,omitempty"`
|
||||||
|
// A list of HTTP routes that should be routed to this component.
|
||||||
|
Routes []*AppRouteSpec `json:"routes,omitempty"`
|
||||||
|
HealthCheck *AppServiceSpecHealthCheck `json:"health_check,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppSpec struct for AppSpec
|
// AppServiceSpecHealthCheck struct for AppServiceSpecHealthCheck
|
||||||
|
type AppServiceSpecHealthCheck struct {
|
||||||
|
// Deprecated. Use http_path instead.
|
||||||
|
Path string `json:"path,omitempty"`
|
||||||
|
// The number of seconds to wait before beginning health checks.
|
||||||
|
InitialDelaySeconds int32 `json:"initial_delay_seconds,omitempty"`
|
||||||
|
// The number of seconds to wait between health checks.
|
||||||
|
PeriodSeconds int32 `json:"period_seconds,omitempty"`
|
||||||
|
// The number of seconds after which the check times out.
|
||||||
|
TimeoutSeconds int32 `json:"timeout_seconds,omitempty"`
|
||||||
|
// The number of successful health checks before considered healthy.
|
||||||
|
SuccessThreshold int32 `json:"success_threshold,omitempty"`
|
||||||
|
// The number of failed health checks before considered unhealthy.
|
||||||
|
FailureThreshold int32 `json:"failure_threshold,omitempty"`
|
||||||
|
// The route path used for the HTTP health check ping. If not set, the HTTP health check will be disabled and a TCP health check used instead.
|
||||||
|
HTTPPath string `json:"http_path,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// AppSpec The desired configuration of an application.
|
||||||
type AppSpec struct {
|
type AppSpec struct {
|
||||||
Services []AppServiceSpec `json:"services,omitempty"`
|
// The name of the app. Must be unique across all in the same account.
|
||||||
StaticSites []AppStaticSiteSpec `json:"static_sites,omitempty"`
|
Name string `json:"name"`
|
||||||
Databases []AppDatabaseSpec `json:"databases,omitempty"`
|
// Workloads which expose publicy-accessible HTTP services.
|
||||||
Workers []AppWorkerSpec `json:"workers,omitempty"`
|
Services []*AppServiceSpec `json:"services,omitempty"`
|
||||||
Region string `json:"region,omitempty"`
|
// Content which can be rendered to static web assets.
|
||||||
Name string `json:"name"`
|
StaticSites []*AppStaticSiteSpec `json:"static_sites,omitempty"`
|
||||||
Domains []AppDomainSpec `json:"domains,omitempty"`
|
// Workloads which do not expose publicly-accessible HTTP services.
|
||||||
|
Workers []*AppWorkerSpec `json:"workers,omitempty"`
|
||||||
|
// One-time or recurring workloads which do not expose publicly-accessible HTTP routes.
|
||||||
|
Jobs []*AppJobSpec `json:"jobs,omitempty"`
|
||||||
|
// Database instances which can provide persistence to workloads within the application.
|
||||||
|
Databases []*AppDatabaseSpec `json:"databases,omitempty"`
|
||||||
|
// A set of hostnames where the application will be available.
|
||||||
|
Domains []*AppDomainSpec `json:"domains,omitempty"`
|
||||||
|
// The slug form of the geographical origin of the app.
|
||||||
|
Region string `json:"region,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppStaticSiteSpec struct for AppStaticSiteSpec
|
// AppStaticSiteSpec struct for AppStaticSiteSpec
|
||||||
type AppStaticSiteSpec struct {
|
type AppStaticSiteSpec struct {
|
||||||
Name string `json:"name"`
|
// The name. Must be unique across all components within the same app.
|
||||||
BuildCommand string `json:"build_command,omitempty"`
|
Name string `json:"name"`
|
||||||
Git GitSourceSpec `json:"git,omitempty"`
|
Git *GitSourceSpec `json:"git,omitempty"`
|
||||||
GitHub GitHubSourceSpec `json:"github,omitempty"`
|
GitHub *GitHubSourceSpec `json:"github,omitempty"`
|
||||||
Envs []AppVariableDefinition `json:"envs,omitempty"`
|
// The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks.
|
||||||
Routes []AppRouteSpec `json:"routes,omitempty"`
|
DockerfilePath string `json:"dockerfile_path,omitempty"`
|
||||||
SourceDir string `json:"source_dir,omitempty"`
|
// An optional build command to run while building this component from source.
|
||||||
EnvironmentSlug string `json:"environment_slug,omitempty"`
|
BuildCommand string `json:"build_command,omitempty"`
|
||||||
|
// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
|
||||||
|
SourceDir string `json:"source_dir,omitempty"`
|
||||||
|
// An environment slug describing the type of this app. For a full list, please refer to [the product documentation](https://www.digitalocean.com/docs/app-platform/).
|
||||||
|
EnvironmentSlug string `json:"environment_slug,omitempty"`
|
||||||
|
// An optional path to where the built assets will be located, relative to the build context. If not set, App Platform will automatically scan for these directory names: `_static`, `dist`, `public`.
|
||||||
|
OutputDir string `json:"output_dir,omitempty"`
|
||||||
|
IndexDocument string `json:"index_document,omitempty"`
|
||||||
|
// The name of the error document to use when serving this static site. Default: 404.html. If no such file exists within the built assets, App Platform will supply one.
|
||||||
|
ErrorDocument string `json:"error_document,omitempty"`
|
||||||
|
// A list of environment variables made available to the component.
|
||||||
|
Envs []*AppVariableDefinition `json:"envs,omitempty"`
|
||||||
|
// A list of HTTP routes that should be routed to this component.
|
||||||
|
Routes []*AppRouteSpec `json:"routes,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppVariableDefinition struct for AppVariableDefinition
|
// AppVariableDefinition struct for AppVariableDefinition
|
||||||
type AppVariableDefinition struct {
|
type AppVariableDefinition struct {
|
||||||
|
// The name
|
||||||
|
Key string `json:"key"`
|
||||||
|
// The value. If the type is SECRET, the value will be encrypted on first submission. On following submissions, the encrypted value must be used.
|
||||||
Value string `json:"value,omitempty"`
|
Value string `json:"value,omitempty"`
|
||||||
Scope VariableScope `json:"scope,omitempty"`
|
Scope AppVariableScope `json:"scope,omitempty"`
|
||||||
// POSIX allows a broader env var definition, but we restrict to what is allowed by bash. http://git.savannah.gnu.org/cgit/bash.git/tree/general.h?h=bash-5.0#n124 Based on the POSIX spec and some casting to unsigned char in bash code I think this is restricted to ASCII (not unicode).
|
Type AppVariableType `json:"type,omitempty"`
|
||||||
Key string `json:"key"`
|
|
||||||
Type VariableType `json:"type,omitempty"`
|
|
||||||
EncryptedValue string `json:"encrypted_value,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppWorkerSpec struct for AppWorkerSpec
|
// AppWorkerSpec struct for AppWorkerSpec
|
||||||
type AppWorkerSpec struct {
|
type AppWorkerSpec struct {
|
||||||
Name string `json:"name"`
|
// The name. Must be unique across all components within the same app.
|
||||||
RunCommand string `json:"run_command,omitempty"`
|
Name string `json:"name"`
|
||||||
BuildCommand string `json:"build_command,omitempty"`
|
Git *GitSourceSpec `json:"git,omitempty"`
|
||||||
DockerfilePath string `json:"dockerfile_path,omitempty"`
|
GitHub *GitHubSourceSpec `json:"github,omitempty"`
|
||||||
Git GitSourceSpec `json:"git,omitempty"`
|
// The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks.
|
||||||
GitHub GitHubSourceSpec `json:"github,omitempty"`
|
DockerfilePath string `json:"dockerfile_path,omitempty"`
|
||||||
Envs []AppVariableDefinition `json:"envs,omitempty"`
|
// An optional build command to run while building this component from source.
|
||||||
InstanceSizeSlug string `json:"instance_size_slug,omitempty"`
|
BuildCommand string `json:"build_command,omitempty"`
|
||||||
InstanceCount int64 `json:"instance_count,omitempty"`
|
// An optional run command to override the component's default.
|
||||||
SourceDir string `json:"source_dir,omitempty"`
|
RunCommand string `json:"run_command,omitempty"`
|
||||||
EnvironmentSlug string `json:"environment_slug,omitempty"`
|
// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
|
||||||
|
SourceDir string `json:"source_dir,omitempty"`
|
||||||
|
// An environment slug describing the type of this app. For a full list, please refer to [the product documentation](https://www.digitalocean.com/docs/app-platform/).
|
||||||
|
EnvironmentSlug string `json:"environment_slug,omitempty"`
|
||||||
|
// A list of environment variables made available to the component.
|
||||||
|
Envs []*AppVariableDefinition `json:"envs,omitempty"`
|
||||||
|
// The instance size to use for this component.
|
||||||
|
InstanceSizeSlug string `json:"instance_size_slug,omitempty"`
|
||||||
|
InstanceCount int64 `json:"instance_count,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deployment struct for Deployment
|
||||||
|
type Deployment struct {
|
||||||
|
ID string `json:"id,omitempty"`
|
||||||
|
Spec *AppSpec `json:"spec,omitempty"`
|
||||||
|
Services []*DeploymentService `json:"services,omitempty"`
|
||||||
|
StaticSites []*DeploymentStaticSite `json:"static_sites,omitempty"`
|
||||||
|
Workers []*DeploymentWorker `json:"workers,omitempty"`
|
||||||
|
Jobs []*DeploymentJob `json:"jobs,omitempty"`
|
||||||
|
PhaseLastUpdatedAt time.Time `json:"phase_last_updated_at,omitempty"`
|
||||||
|
CreatedAt time.Time `json:"created_at,omitempty"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at,omitempty"`
|
||||||
|
Cause string `json:"cause,omitempty"`
|
||||||
|
ClonedFrom string `json:"cloned_from,omitempty"`
|
||||||
|
Progress *DeploymentProgress `json:"progress,omitempty"`
|
||||||
|
Phase DeploymentPhase `json:"phase,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeploymentJob struct for DeploymentJob
|
||||||
|
type DeploymentJob struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
SourceCommitHash string `json:"source_commit_hash,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeploymentPhase the model 'DeploymentPhase'
|
||||||
|
type DeploymentPhase string
|
||||||
|
|
||||||
|
// List of DeploymentPhase
|
||||||
|
const (
|
||||||
|
DeploymentPhase_Unknown DeploymentPhase = "UNKNOWN"
|
||||||
|
DeploymentPhase_PendingBuild DeploymentPhase = "PENDING_BUILD"
|
||||||
|
DeploymentPhase_Building DeploymentPhase = "BUILDING"
|
||||||
|
DeploymentPhase_PendingDeploy DeploymentPhase = "PENDING_DEPLOY"
|
||||||
|
DeploymentPhase_Deploying DeploymentPhase = "DEPLOYING"
|
||||||
|
DeploymentPhase_Active DeploymentPhase = "ACTIVE"
|
||||||
|
DeploymentPhase_Superseded DeploymentPhase = "SUPERSEDED"
|
||||||
|
DeploymentPhase_Error DeploymentPhase = "ERROR"
|
||||||
|
DeploymentPhase_Canceled DeploymentPhase = "CANCELED"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DeploymentProgress struct for DeploymentProgress
|
||||||
|
type DeploymentProgress struct {
|
||||||
|
PendingSteps int32 `json:"pending_steps,omitempty"`
|
||||||
|
RunningSteps int32 `json:"running_steps,omitempty"`
|
||||||
|
SuccessSteps int32 `json:"success_steps,omitempty"`
|
||||||
|
ErrorSteps int32 `json:"error_steps,omitempty"`
|
||||||
|
TotalSteps int32 `json:"total_steps,omitempty"`
|
||||||
|
Steps []*DeploymentProgressStep `json:"steps,omitempty"`
|
||||||
|
SummarySteps []*DeploymentProgressStep `json:"summary_steps,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeploymentService struct for DeploymentService
|
||||||
|
type DeploymentService struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
SourceCommitHash string `json:"source_commit_hash,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeploymentStaticSite struct for DeploymentStaticSite
|
||||||
|
type DeploymentStaticSite struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
SourceCommitHash string `json:"source_commit_hash,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeploymentWorker struct for DeploymentWorker
|
||||||
|
type DeploymentWorker struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
SourceCommitHash string `json:"source_commit_hash,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GitHubSourceSpec struct for GitHubSourceSpec
|
// GitHubSourceSpec struct for GitHubSourceSpec
|
||||||
type GitHubSourceSpec struct {
|
type GitHubSourceSpec struct {
|
||||||
Repo string `json:"repo"`
|
Repo string `json:"repo,omitempty"`
|
||||||
Branch string `json:"branch"`
|
Branch string `json:"branch,omitempty"`
|
||||||
DeployOnPush bool `json:"deploy_on_push,omitempty"`
|
DeployOnPush bool `json:"deploy_on_push,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GitSourceSpec struct for GitSourceSpec
|
// GitSourceSpec struct for GitSourceSpec
|
||||||
type GitSourceSpec struct {
|
type GitSourceSpec struct {
|
||||||
Repo string `json:"repo,omitempty"`
|
|
||||||
RequiresAuth bool `json:"requires_auth,omitempty"`
|
|
||||||
Branch string `json:"branch,omitempty"`
|
|
||||||
RepoCloneURL string `json:"repo_clone_url,omitempty"`
|
RepoCloneURL string `json:"repo_clone_url,omitempty"`
|
||||||
|
Branch string `json:"branch,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// VariableScope the model 'VariableScope'
|
// DeploymentProgressStep struct for DeploymentProgressStep
|
||||||
type VariableScope string
|
type DeploymentProgressStep struct {
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
Status DeploymentProgressStepStatus `json:"status,omitempty"`
|
||||||
|
Steps []*DeploymentProgressStep `json:"steps,omitempty"`
|
||||||
|
StartedAt time.Time `json:"started_at,omitempty"`
|
||||||
|
EndedAt time.Time `json:"ended_at,omitempty"`
|
||||||
|
Reason *DeploymentProgressStepReason `json:"reason,omitempty"`
|
||||||
|
ComponentName string `json:"component_name,omitempty"`
|
||||||
|
// The base of a human-readable description of the step intended to be combined with the component name for presentation. For example: message_base = \"Building service\" component_name = \"api\"
|
||||||
|
MessageBase string `json:"message_base,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// List of VariableScope
|
// DeploymentProgressStepStatus the model 'DeploymentProgressStepStatus'
|
||||||
|
type DeploymentProgressStepStatus string
|
||||||
|
|
||||||
|
// List of DeploymentProgressStepStatus
|
||||||
const (
|
const (
|
||||||
VARIABLESCOPE_UNSET VariableScope = "UNSET"
|
DeploymentProgressStepStatus_Unknown DeploymentProgressStepStatus = "UNKNOWN"
|
||||||
VARIABLESCOPE_RUN_TIME VariableScope = "RUN_TIME"
|
DeploymentProgressStepStatus_Pending DeploymentProgressStepStatus = "PENDING"
|
||||||
VARIABLESCOPE_BUILD_TIME VariableScope = "BUILD_TIME"
|
DeploymentProgressStepStatus_Running DeploymentProgressStepStatus = "RUNNING"
|
||||||
VARIABLESCOPE_RUN_AND_BUILD_TIME VariableScope = "RUN_AND_BUILD_TIME"
|
DeploymentProgressStepStatus_Error DeploymentProgressStepStatus = "ERROR"
|
||||||
|
DeploymentProgressStepStatus_Success DeploymentProgressStepStatus = "SUCCESS"
|
||||||
)
|
)
|
||||||
|
|
||||||
// VariableType the model 'VariableType'
|
// AppRegion struct for AppRegion
|
||||||
type VariableType string
|
type AppRegion struct {
|
||||||
|
Slug string `json:"slug,omitempty"`
|
||||||
|
Label string `json:"label,omitempty"`
|
||||||
|
Flag string `json:"flag,omitempty"`
|
||||||
|
Continent string `json:"continent,omitempty"`
|
||||||
|
Disabled bool `json:"disabled,omitempty"`
|
||||||
|
DataCenters []string `json:"data_centers,omitempty"`
|
||||||
|
Reason string `json:"reason,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// List of VariableType
|
// DeploymentProgressStepReason struct for DeploymentProgressStepReason
|
||||||
|
type DeploymentProgressStepReason struct {
|
||||||
|
Code string `json:"code,omitempty"`
|
||||||
|
Message string `json:"message,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// AppVariableScope the model 'AppVariableScope'
|
||||||
|
type AppVariableScope string
|
||||||
|
|
||||||
|
// List of AppVariableScope
|
||||||
const (
|
const (
|
||||||
VARIABLETYPE_GENERAL VariableType = "GENERAL"
|
AppVariableScope_Unset AppVariableScope = "UNSET"
|
||||||
VARIABLETYPE_SECRET VariableType = "SECRET"
|
AppVariableScope_RunTime AppVariableScope = "RUN_TIME"
|
||||||
|
AppVariableScope_BuildTime AppVariableScope = "BUILD_TIME"
|
||||||
|
AppVariableScope_RunAndBuildTime AppVariableScope = "RUN_AND_BUILD_TIME"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AppVariableType the model 'AppVariableType'
|
||||||
|
type AppVariableType string
|
||||||
|
|
||||||
|
// List of AppVariableType
|
||||||
|
const (
|
||||||
|
AppVariableType_General AppVariableType = "GENERAL"
|
||||||
|
AppVariableType_Secret AppVariableType = "SECRET"
|
||||||
)
|
)
|
||||||
|
|
74
vendor/github.com/digitalocean/godo/apps.go
generated
vendored
74
vendor/github.com/digitalocean/godo/apps.go
generated
vendored
|
@ -4,7 +4,6 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -39,71 +38,6 @@ type AppsService interface {
|
||||||
GetLogs(ctx context.Context, appID, deploymentID, component string, logType AppLogType, follow bool) (*AppLogs, *Response, error)
|
GetLogs(ctx context.Context, appID, deploymentID, component string, logType AppLogType, follow bool) (*AppLogs, *Response, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// App represents an app.
|
|
||||||
type App struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Spec *AppSpec `json:"spec"`
|
|
||||||
DefaultIngress string `json:"default_ingress"`
|
|
||||||
CreatedAt time.Time `json:"created_at"`
|
|
||||||
UpdatedAt time.Time `json:"updated_at,omitempty"`
|
|
||||||
ActiveDeployment *Deployment `json:"active_deployment,omitempty"`
|
|
||||||
InProgressDeployment *Deployment `json:"in_progress_deployment,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deployment represents a deployment for an app.
|
|
||||||
type Deployment struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Spec *AppSpec `json:"spec"`
|
|
||||||
Services []*DeploymentService `json:"services,omitempty"`
|
|
||||||
Workers []*DeploymentWorker `json:"workers,omitempty"`
|
|
||||||
StaticSites []*DeploymentStaticSite `json:"static_sites,omitempty"`
|
|
||||||
|
|
||||||
Cause string `json:"cause"`
|
|
||||||
Progress *DeploymentProgress `json:"progress"`
|
|
||||||
|
|
||||||
CreatedAt time.Time `json:"created_at"`
|
|
||||||
UpdatedAt time.Time `json:"updated_at,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeploymentService represents a service component in a deployment.
|
|
||||||
type DeploymentService struct {
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
SourceCommitHash string `json:"source_commit_hash"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeploymentWorker represents a worker component in a deployment.
|
|
||||||
type DeploymentWorker struct {
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
SourceCommitHash string `json:"source_commit_hash"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeploymentStaticSite represents a static site component in a deployment.
|
|
||||||
type DeploymentStaticSite struct {
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
SourceCommitHash string `json:"source_commit_hash"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeploymentProgress represents the total progress of a deployment.
|
|
||||||
type DeploymentProgress struct {
|
|
||||||
PendingSteps int `json:"pending_steps"`
|
|
||||||
RunningSteps int `json:"running_steps"`
|
|
||||||
SuccessSteps int `json:"success_steps"`
|
|
||||||
ErrorSteps int `json:"error_steps"`
|
|
||||||
TotalSteps int `json:"total_steps"`
|
|
||||||
|
|
||||||
Steps []*DeploymentProgressStep `json:"steps"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeploymentProgressStep represents the progress of a deployment step.
|
|
||||||
type DeploymentProgressStep struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
Steps []*DeploymentProgressStep `json:"steps,omitempty"`
|
|
||||||
Attempts uint32 `json:"attempts"`
|
|
||||||
StartedAt time.Time `json:"started_at,omitempty"`
|
|
||||||
EndedAt time.Time `json:"ended_at,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// AppLogs represent app logs.
|
// AppLogs represent app logs.
|
||||||
type AppLogs struct {
|
type AppLogs struct {
|
||||||
LiveURL string `json:"live_url"`
|
LiveURL string `json:"live_url"`
|
||||||
|
@ -141,7 +75,7 @@ type AppsServiceOp struct {
|
||||||
client *Client
|
client *Client
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates an app.
|
// Create an app.
|
||||||
func (s *AppsServiceOp) Create(ctx context.Context, create *AppCreateRequest) (*App, *Response, error) {
|
func (s *AppsServiceOp) Create(ctx context.Context, create *AppCreateRequest) (*App, *Response, error) {
|
||||||
path := appsBasePath
|
path := appsBasePath
|
||||||
req, err := s.client.NewRequest(ctx, http.MethodPost, path, create)
|
req, err := s.client.NewRequest(ctx, http.MethodPost, path, create)
|
||||||
|
@ -264,7 +198,11 @@ func (s *AppsServiceOp) CreateDeployment(ctx context.Context, appID string) (*De
|
||||||
|
|
||||||
// GetLogs retrieves app logs.
|
// GetLogs retrieves app logs.
|
||||||
func (s *AppsServiceOp) GetLogs(ctx context.Context, appID, deploymentID, component string, logType AppLogType, follow bool) (*AppLogs, *Response, error) {
|
func (s *AppsServiceOp) GetLogs(ctx context.Context, appID, deploymentID, component string, logType AppLogType, follow bool) (*AppLogs, *Response, error) {
|
||||||
url := fmt.Sprintf("%s/%s/deployments/%s/components/%s/logs?type=%s&follow=%t", appsBasePath, appID, deploymentID, component, logType, follow)
|
url := fmt.Sprintf("%s/%s/deployments/%s/logs?type=%s&follow=%t", appsBasePath, appID, deploymentID, logType, follow)
|
||||||
|
if component != "" {
|
||||||
|
url = fmt.Sprintf("%s&component_name=%s", url, component)
|
||||||
|
}
|
||||||
|
|
||||||
req, err := s.client.NewRequest(ctx, http.MethodGet, url, nil)
|
req, err := s.client.NewRequest(ctx, http.MethodGet, url, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
|
|
7
vendor/github.com/digitalocean/godo/godo.go
generated
vendored
7
vendor/github.com/digitalocean/godo/godo.go
generated
vendored
|
@ -19,7 +19,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
libraryVersion = "1.42.1"
|
libraryVersion = "1.46.0"
|
||||||
defaultBaseURL = "https://api.digitalocean.com/"
|
defaultBaseURL = "https://api.digitalocean.com/"
|
||||||
userAgent = "godo/" + libraryVersion
|
userAgent = "godo/" + libraryVersion
|
||||||
mediaType = "application/json"
|
mediaType = "application/json"
|
||||||
|
@ -166,10 +166,7 @@ func addOptions(s string, opt interface{}) (string, error) {
|
||||||
// token.
|
// token.
|
||||||
func NewFromToken(token string) *Client {
|
func NewFromToken(token string) *Client {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
ts := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token})
|
||||||
config := &oauth2.Config{}
|
|
||||||
ts := config.TokenSource(ctx, &oauth2.Token{AccessToken: token})
|
|
||||||
|
|
||||||
return NewClient(oauth2.NewClient(ctx, ts))
|
return NewClient(oauth2.NewClient(ctx, ts))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
18
vendor/github.com/digitalocean/godo/kubernetes.go
generated
vendored
18
vendor/github.com/digitalocean/godo/kubernetes.go
generated
vendored
|
@ -83,6 +83,21 @@ type KubernetesClusterUpgradeRequest struct {
|
||||||
VersionSlug string `json:"version,omitempty"`
|
VersionSlug string `json:"version,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Taint represents a Kubernetes taint that can be associated with a node pool
|
||||||
|
// (and, transitively, with all nodes of that pool).
|
||||||
|
type Taint struct {
|
||||||
|
Key string
|
||||||
|
Value string
|
||||||
|
Effect string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t Taint) String() string {
|
||||||
|
if t.Value == "" {
|
||||||
|
return fmt.Sprintf("%s:%s", t.Key, t.Effect)
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%s=%s:%s", t.Key, t.Value, t.Effect)
|
||||||
|
}
|
||||||
|
|
||||||
// KubernetesNodePoolCreateRequest represents a request to create a node pool for a
|
// KubernetesNodePoolCreateRequest represents a request to create a node pool for a
|
||||||
// Kubernetes cluster.
|
// Kubernetes cluster.
|
||||||
type KubernetesNodePoolCreateRequest struct {
|
type KubernetesNodePoolCreateRequest struct {
|
||||||
|
@ -91,6 +106,7 @@ type KubernetesNodePoolCreateRequest struct {
|
||||||
Count int `json:"count,omitempty"`
|
Count int `json:"count,omitempty"`
|
||||||
Tags []string `json:"tags,omitempty"`
|
Tags []string `json:"tags,omitempty"`
|
||||||
Labels map[string]string `json:"labels,omitempty"`
|
Labels map[string]string `json:"labels,omitempty"`
|
||||||
|
Taints []Taint `json:"taints,omitempty"`
|
||||||
AutoScale bool `json:"auto_scale,omitempty"`
|
AutoScale bool `json:"auto_scale,omitempty"`
|
||||||
MinNodes int `json:"min_nodes,omitempty"`
|
MinNodes int `json:"min_nodes,omitempty"`
|
||||||
MaxNodes int `json:"max_nodes,omitempty"`
|
MaxNodes int `json:"max_nodes,omitempty"`
|
||||||
|
@ -103,6 +119,7 @@ type KubernetesNodePoolUpdateRequest struct {
|
||||||
Count *int `json:"count,omitempty"`
|
Count *int `json:"count,omitempty"`
|
||||||
Tags []string `json:"tags,omitempty"`
|
Tags []string `json:"tags,omitempty"`
|
||||||
Labels map[string]string `json:"labels,omitempty"`
|
Labels map[string]string `json:"labels,omitempty"`
|
||||||
|
Taints *[]Taint `json:"taints,omitempty"`
|
||||||
AutoScale *bool `json:"auto_scale,omitempty"`
|
AutoScale *bool `json:"auto_scale,omitempty"`
|
||||||
MinNodes *int `json:"min_nodes,omitempty"`
|
MinNodes *int `json:"min_nodes,omitempty"`
|
||||||
MaxNodes *int `json:"max_nodes,omitempty"`
|
MaxNodes *int `json:"max_nodes,omitempty"`
|
||||||
|
@ -308,6 +325,7 @@ type KubernetesNodePool struct {
|
||||||
Count int `json:"count,omitempty"`
|
Count int `json:"count,omitempty"`
|
||||||
Tags []string `json:"tags,omitempty"`
|
Tags []string `json:"tags,omitempty"`
|
||||||
Labels map[string]string `json:"labels,omitempty"`
|
Labels map[string]string `json:"labels,omitempty"`
|
||||||
|
Taints []Taint `json:"taints,omitempty"`
|
||||||
AutoScale bool `json:"auto_scale,omitempty"`
|
AutoScale bool `json:"auto_scale,omitempty"`
|
||||||
MinNodes int `json:"min_nodes,omitempty"`
|
MinNodes int `json:"min_nodes,omitempty"`
|
||||||
MaxNodes int `json:"max_nodes,omitempty"`
|
MaxNodes int `json:"max_nodes,omitempty"`
|
||||||
|
|
3
vendor/github.com/digitalocean/godo/load_balancers.go
generated
vendored
3
vendor/github.com/digitalocean/godo/load_balancers.go
generated
vendored
|
@ -31,6 +31,7 @@ type LoadBalancer struct {
|
||||||
ID string `json:"id,omitempty"`
|
ID string `json:"id,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
IP string `json:"ip,omitempty"`
|
IP string `json:"ip,omitempty"`
|
||||||
|
SizeSlug string `json:"size,omitempty"`
|
||||||
Algorithm string `json:"algorithm,omitempty"`
|
Algorithm string `json:"algorithm,omitempty"`
|
||||||
Status string `json:"status,omitempty"`
|
Status string `json:"status,omitempty"`
|
||||||
Created string `json:"created_at,omitempty"`
|
Created string `json:"created_at,omitempty"`
|
||||||
|
@ -62,6 +63,7 @@ func (l LoadBalancer) AsRequest() *LoadBalancerRequest {
|
||||||
r := LoadBalancerRequest{
|
r := LoadBalancerRequest{
|
||||||
Name: l.Name,
|
Name: l.Name,
|
||||||
Algorithm: l.Algorithm,
|
Algorithm: l.Algorithm,
|
||||||
|
SizeSlug: l.SizeSlug,
|
||||||
ForwardingRules: append([]ForwardingRule(nil), l.ForwardingRules...),
|
ForwardingRules: append([]ForwardingRule(nil), l.ForwardingRules...),
|
||||||
DropletIDs: append([]int(nil), l.DropletIDs...),
|
DropletIDs: append([]int(nil), l.DropletIDs...),
|
||||||
Tag: l.Tag,
|
Tag: l.Tag,
|
||||||
|
@ -134,6 +136,7 @@ type LoadBalancerRequest struct {
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Algorithm string `json:"algorithm,omitempty"`
|
Algorithm string `json:"algorithm,omitempty"`
|
||||||
Region string `json:"region,omitempty"`
|
Region string `json:"region,omitempty"`
|
||||||
|
SizeSlug string `json:"size,omitempty"`
|
||||||
ForwardingRules []ForwardingRule `json:"forwarding_rules,omitempty"`
|
ForwardingRules []ForwardingRule `json:"forwarding_rules,omitempty"`
|
||||||
HealthCheck *HealthCheck `json:"health_check,omitempty"`
|
HealthCheck *HealthCheck `json:"health_check,omitempty"`
|
||||||
StickySessions *StickySessions `json:"sticky_sessions,omitempty"`
|
StickySessions *StickySessions `json:"sticky_sessions,omitempty"`
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
bin
|
bin
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,8 @@ script:
|
||||||
- go test -v ./...
|
- go test -v ./...
|
||||||
|
|
||||||
go:
|
go:
|
||||||
- 1.3
|
- 1.12
|
||||||
- 1.4
|
- 1.13
|
||||||
- 1.5
|
- 1.14
|
||||||
- 1.6
|
- 1.15
|
||||||
- 1.7
|
|
||||||
- tip
|
- tip
|
|
@ -9,7 +9,7 @@ A [go](http://www.golang.org) (or 'golang' for search engine friendliness) imple
|
||||||
|
|
||||||
**SECURITY NOTICE:** Some older versions of Go have a security issue in the cryotp/elliptic. Recommendation is to upgrade to at least 1.8.3. See issue #216 for more detail.
|
**SECURITY NOTICE:** Some older versions of Go have a security issue in the cryotp/elliptic. Recommendation is to upgrade to at least 1.8.3. See issue #216 for more detail.
|
||||||
|
|
||||||
**SECURITY NOTICE:** It's important that you [validate the `alg` presented is what you expect](https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/). This library attempts to make it easy to do the right thing by requiring key types match the expected alg, but you should take the extra step to verify it in your usage. See the examples provided.
|
**SECURITY NOTICE:** It's important that you [validate the `alg` presented is what you expect](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/). This library attempts to make it easy to do the right thing by requiring key types match the expected alg, but you should take the extra step to verify it in your usage. See the examples provided.
|
||||||
|
|
||||||
## What the heck is a JWT?
|
## What the heck is a JWT?
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ In short, it's a signed JSON object that does something useful (for example, aut
|
||||||
|
|
||||||
The first part is called the header. It contains the necessary information for verifying the last part, the signature. For example, which encryption method was used for signing and what key was used.
|
The first part is called the header. It contains the necessary information for verifying the last part, the signature. For example, which encryption method was used for signing and what key was used.
|
||||||
|
|
||||||
The part in the middle is the interesting bit. It's called the Claims and contains the actual stuff you care about. Refer to [the RFC](http://self-issued.info/docs/draft-jones-json-web-token.html) for information about reserved keys and the proper way to add your own.
|
The part in the middle is the interesting bit. It's called the Claims and contains the actual stuff you care about. Refer to [the RFC](http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html) for information about reserved keys and the proper way to add your own.
|
||||||
|
|
||||||
## What's in the box?
|
## What's in the box?
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ See [the project documentation](https://godoc.org/github.com/dgrijalva/jwt-go) f
|
||||||
|
|
||||||
This library publishes all the necessary components for adding your own signing methods. Simply implement the `SigningMethod` interface and register a factory method using `RegisterSigningMethod`.
|
This library publishes all the necessary components for adding your own signing methods. Simply implement the `SigningMethod` interface and register a factory method using `RegisterSigningMethod`.
|
||||||
|
|
||||||
Here's an example of an extension that integrates with the Google App Engine signing tools: https://github.com/someone1/gcp-jwt-go
|
Here's an example of an extension that integrates with multiple Google Cloud Platform signing tools (AppEngine, IAM API, Cloud KMS): https://github.com/someone1/gcp-jwt-go
|
||||||
|
|
||||||
## Compliance
|
## Compliance
|
||||||
|
|
||||||
|
@ -93,6 +93,10 @@ Without going too far down the rabbit hole, here's a description of the interact
|
||||||
* OAuth defines several options for passing around authentication data. One popular method is called a "bearer token". A bearer token is simply a string that _should_ only be held by an authenticated user. Thus, simply presenting this token proves your identity. You can probably derive from here why a JWT might make a good bearer token.
|
* OAuth defines several options for passing around authentication data. One popular method is called a "bearer token". A bearer token is simply a string that _should_ only be held by an authenticated user. Thus, simply presenting this token proves your identity. You can probably derive from here why a JWT might make a good bearer token.
|
||||||
* Because bearer tokens are used for authentication, it's important they're kept secret. This is why transactions that use bearer tokens typically happen over SSL.
|
* Because bearer tokens are used for authentication, it's important they're kept secret. This is why transactions that use bearer tokens typically happen over SSL.
|
||||||
|
|
||||||
|
### Troubleshooting
|
||||||
|
|
||||||
|
This library uses descriptive error messages whenever possible. If you are not getting the expected result, have a look at the errors. The most common place people get stuck is providing the correct type of key to the parser. See the above section on signing methods and key types.
|
||||||
|
|
||||||
## More
|
## More
|
||||||
|
|
||||||
Documentation can be found [on godoc.org](http://godoc.org/github.com/dgrijalva/jwt-go).
|
Documentation can be found [on godoc.org](http://godoc.org/github.com/dgrijalva/jwt-go).
|
|
@ -16,7 +16,7 @@ type Claims interface {
|
||||||
// https://tools.ietf.org/html/rfc7519#section-4.1
|
// https://tools.ietf.org/html/rfc7519#section-4.1
|
||||||
// See examples for how to use this with your own claim types
|
// See examples for how to use this with your own claim types
|
||||||
type StandardClaims struct {
|
type StandardClaims struct {
|
||||||
Audience string `json:"aud,omitempty"`
|
Audience []string `json:"aud,omitempty"`
|
||||||
ExpiresAt int64 `json:"exp,omitempty"`
|
ExpiresAt int64 `json:"exp,omitempty"`
|
||||||
Id string `json:"jti,omitempty"`
|
Id string `json:"jti,omitempty"`
|
||||||
IssuedAt int64 `json:"iat,omitempty"`
|
IssuedAt int64 `json:"iat,omitempty"`
|
||||||
|
@ -90,15 +90,17 @@ func (c *StandardClaims) VerifyNotBefore(cmp int64, req bool) bool {
|
||||||
|
|
||||||
// ----- helpers
|
// ----- helpers
|
||||||
|
|
||||||
func verifyAud(aud string, cmp string, required bool) bool {
|
func verifyAud(aud []string, cmp string, required bool) bool {
|
||||||
if aud == "" {
|
if len(aud) == 0 {
|
||||||
return !required
|
return !required
|
||||||
}
|
}
|
||||||
if subtle.ConstantTimeCompare([]byte(aud), []byte(cmp)) != 0 {
|
|
||||||
return true
|
for _, a := range aud {
|
||||||
} else {
|
if subtle.ConstantTimeCompare([]byte(a), []byte(cmp)) != 0 {
|
||||||
return false
|
return true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func verifyExp(exp int64, now int64, required bool) bool {
|
func verifyExp(exp int64, now int64, required bool) bool {
|
|
@ -25,7 +25,9 @@ func ParseECPrivateKeyFromPEM(key []byte) (*ecdsa.PrivateKey, error) {
|
||||||
// Parse the key
|
// Parse the key
|
||||||
var parsedKey interface{}
|
var parsedKey interface{}
|
||||||
if parsedKey, err = x509.ParseECPrivateKey(block.Bytes); err != nil {
|
if parsedKey, err = x509.ParseECPrivateKey(block.Bytes); err != nil {
|
||||||
return nil, err
|
if parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var pkey *ecdsa.PrivateKey
|
var pkey *ecdsa.PrivateKey
|
|
@ -13,7 +13,15 @@ type MapClaims map[string]interface{}
|
||||||
// Compares the aud claim against cmp.
|
// Compares the aud claim against cmp.
|
||||||
// If required is false, this method will return true if the value matches or is unset
|
// If required is false, this method will return true if the value matches or is unset
|
||||||
func (m MapClaims) VerifyAudience(cmp string, req bool) bool {
|
func (m MapClaims) VerifyAudience(cmp string, req bool) bool {
|
||||||
aud, _ := m["aud"].(string)
|
aud, ok := m["aud"].([]string)
|
||||||
|
if !ok {
|
||||||
|
strAud, ok := m["aud"].(string)
|
||||||
|
if !ok {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
aud = append(aud, strAud)
|
||||||
|
}
|
||||||
|
|
||||||
return verifyAud(aud, cmp, req)
|
return verifyAud(aud, cmp, req)
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,9 +12,14 @@ import (
|
||||||
type SigningMethodRSAPSS struct {
|
type SigningMethodRSAPSS struct {
|
||||||
*SigningMethodRSA
|
*SigningMethodRSA
|
||||||
Options *rsa.PSSOptions
|
Options *rsa.PSSOptions
|
||||||
|
// VerifyOptions is optional. If set overrides Options for rsa.VerifyPPS.
|
||||||
|
// Used to accept tokens signed with rsa.PSSSaltLengthAuto, what doesn't follow
|
||||||
|
// https://tools.ietf.org/html/rfc7518#section-3.5 but was used previously.
|
||||||
|
// See https://github.com/dgrijalva/jwt-go/issues/285#issuecomment-437451244 for details.
|
||||||
|
VerifyOptions *rsa.PSSOptions
|
||||||
}
|
}
|
||||||
|
|
||||||
// Specific instances for RS/PS and company
|
// Specific instances for RS/PS and company.
|
||||||
var (
|
var (
|
||||||
SigningMethodPS256 *SigningMethodRSAPSS
|
SigningMethodPS256 *SigningMethodRSAPSS
|
||||||
SigningMethodPS384 *SigningMethodRSAPSS
|
SigningMethodPS384 *SigningMethodRSAPSS
|
||||||
|
@ -24,13 +29,15 @@ var (
|
||||||
func init() {
|
func init() {
|
||||||
// PS256
|
// PS256
|
||||||
SigningMethodPS256 = &SigningMethodRSAPSS{
|
SigningMethodPS256 = &SigningMethodRSAPSS{
|
||||||
&SigningMethodRSA{
|
SigningMethodRSA: &SigningMethodRSA{
|
||||||
Name: "PS256",
|
Name: "PS256",
|
||||||
Hash: crypto.SHA256,
|
Hash: crypto.SHA256,
|
||||||
},
|
},
|
||||||
&rsa.PSSOptions{
|
Options: &rsa.PSSOptions{
|
||||||
|
SaltLength: rsa.PSSSaltLengthEqualsHash,
|
||||||
|
},
|
||||||
|
VerifyOptions: &rsa.PSSOptions{
|
||||||
SaltLength: rsa.PSSSaltLengthAuto,
|
SaltLength: rsa.PSSSaltLengthAuto,
|
||||||
Hash: crypto.SHA256,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
RegisterSigningMethod(SigningMethodPS256.Alg(), func() SigningMethod {
|
RegisterSigningMethod(SigningMethodPS256.Alg(), func() SigningMethod {
|
||||||
|
@ -39,13 +46,15 @@ func init() {
|
||||||
|
|
||||||
// PS384
|
// PS384
|
||||||
SigningMethodPS384 = &SigningMethodRSAPSS{
|
SigningMethodPS384 = &SigningMethodRSAPSS{
|
||||||
&SigningMethodRSA{
|
SigningMethodRSA: &SigningMethodRSA{
|
||||||
Name: "PS384",
|
Name: "PS384",
|
||||||
Hash: crypto.SHA384,
|
Hash: crypto.SHA384,
|
||||||
},
|
},
|
||||||
&rsa.PSSOptions{
|
Options: &rsa.PSSOptions{
|
||||||
|
SaltLength: rsa.PSSSaltLengthEqualsHash,
|
||||||
|
},
|
||||||
|
VerifyOptions: &rsa.PSSOptions{
|
||||||
SaltLength: rsa.PSSSaltLengthAuto,
|
SaltLength: rsa.PSSSaltLengthAuto,
|
||||||
Hash: crypto.SHA384,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
RegisterSigningMethod(SigningMethodPS384.Alg(), func() SigningMethod {
|
RegisterSigningMethod(SigningMethodPS384.Alg(), func() SigningMethod {
|
||||||
|
@ -54,13 +63,15 @@ func init() {
|
||||||
|
|
||||||
// PS512
|
// PS512
|
||||||
SigningMethodPS512 = &SigningMethodRSAPSS{
|
SigningMethodPS512 = &SigningMethodRSAPSS{
|
||||||
&SigningMethodRSA{
|
SigningMethodRSA: &SigningMethodRSA{
|
||||||
Name: "PS512",
|
Name: "PS512",
|
||||||
Hash: crypto.SHA512,
|
Hash: crypto.SHA512,
|
||||||
},
|
},
|
||||||
&rsa.PSSOptions{
|
Options: &rsa.PSSOptions{
|
||||||
|
SaltLength: rsa.PSSSaltLengthEqualsHash,
|
||||||
|
},
|
||||||
|
VerifyOptions: &rsa.PSSOptions{
|
||||||
SaltLength: rsa.PSSSaltLengthAuto,
|
SaltLength: rsa.PSSSaltLengthAuto,
|
||||||
Hash: crypto.SHA512,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
RegisterSigningMethod(SigningMethodPS512.Alg(), func() SigningMethod {
|
RegisterSigningMethod(SigningMethodPS512.Alg(), func() SigningMethod {
|
||||||
|
@ -94,7 +105,12 @@ func (m *SigningMethodRSAPSS) Verify(signingString, signature string, key interf
|
||||||
hasher := m.Hash.New()
|
hasher := m.Hash.New()
|
||||||
hasher.Write([]byte(signingString))
|
hasher.Write([]byte(signingString))
|
||||||
|
|
||||||
return rsa.VerifyPSS(rsaKey, m.Hash, hasher.Sum(nil), sig, m.Options)
|
opts := m.Options
|
||||||
|
if m.VerifyOptions != nil {
|
||||||
|
opts = m.VerifyOptions
|
||||||
|
}
|
||||||
|
|
||||||
|
return rsa.VerifyPSS(rsaKey, m.Hash, hasher.Sum(nil), sig, opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implements the Sign method from SigningMethod
|
// Implements the Sign method from SigningMethod
|
|
@ -8,7 +8,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrKeyMustBePEMEncoded = errors.New("Invalid Key: Key must be PEM encoded PKCS1 or PKCS8 private key")
|
ErrKeyMustBePEMEncoded = errors.New("Invalid Key: Key must be a PEM encoded PKCS1 or PKCS8 key")
|
||||||
ErrNotRSAPrivateKey = errors.New("Key is not a valid RSA private key")
|
ErrNotRSAPrivateKey = errors.New("Key is not a valid RSA private key")
|
||||||
ErrNotRSAPublicKey = errors.New("Key is not a valid RSA public key")
|
ErrNotRSAPublicKey = errors.New("Key is not a valid RSA public key")
|
||||||
)
|
)
|
2
vendor/github.com/golang/snappy/AUTHORS
generated
vendored
2
vendor/github.com/golang/snappy/AUTHORS
generated
vendored
|
@ -8,8 +8,10 @@
|
||||||
|
|
||||||
# Please keep the list sorted.
|
# Please keep the list sorted.
|
||||||
|
|
||||||
|
Amazon.com, Inc
|
||||||
Damian Gryski <dgryski@gmail.com>
|
Damian Gryski <dgryski@gmail.com>
|
||||||
Google Inc.
|
Google Inc.
|
||||||
Jan Mercl <0xjnml@gmail.com>
|
Jan Mercl <0xjnml@gmail.com>
|
||||||
|
Klaus Post <klauspost@gmail.com>
|
||||||
Rodolfo Carvalho <rhcarvalho@gmail.com>
|
Rodolfo Carvalho <rhcarvalho@gmail.com>
|
||||||
Sebastien Binet <seb.binet@gmail.com>
|
Sebastien Binet <seb.binet@gmail.com>
|
||||||
|
|
2
vendor/github.com/golang/snappy/CONTRIBUTORS
generated
vendored
2
vendor/github.com/golang/snappy/CONTRIBUTORS
generated
vendored
|
@ -28,7 +28,9 @@
|
||||||
|
|
||||||
Damian Gryski <dgryski@gmail.com>
|
Damian Gryski <dgryski@gmail.com>
|
||||||
Jan Mercl <0xjnml@gmail.com>
|
Jan Mercl <0xjnml@gmail.com>
|
||||||
|
Jonathan Swinney <jswinney@amazon.com>
|
||||||
Kai Backman <kaib@golang.org>
|
Kai Backman <kaib@golang.org>
|
||||||
|
Klaus Post <klauspost@gmail.com>
|
||||||
Marc-Antoine Ruel <maruel@chromium.org>
|
Marc-Antoine Ruel <maruel@chromium.org>
|
||||||
Nigel Tao <nigeltao@golang.org>
|
Nigel Tao <nigeltao@golang.org>
|
||||||
Rob Pike <r@golang.org>
|
Rob Pike <r@golang.org>
|
||||||
|
|
4
vendor/github.com/golang/snappy/decode.go
generated
vendored
4
vendor/github.com/golang/snappy/decode.go
generated
vendored
|
@ -52,6 +52,8 @@ const (
|
||||||
// Otherwise, a newly allocated slice will be returned.
|
// Otherwise, a newly allocated slice will be returned.
|
||||||
//
|
//
|
||||||
// The dst and src must not overlap. It is valid to pass a nil dst.
|
// The dst and src must not overlap. It is valid to pass a nil dst.
|
||||||
|
//
|
||||||
|
// Decode handles the Snappy block format, not the Snappy stream format.
|
||||||
func Decode(dst, src []byte) ([]byte, error) {
|
func Decode(dst, src []byte) ([]byte, error) {
|
||||||
dLen, s, err := decodedLen(src)
|
dLen, s, err := decodedLen(src)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -83,6 +85,8 @@ func NewReader(r io.Reader) *Reader {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reader is an io.Reader that can read Snappy-compressed bytes.
|
// Reader is an io.Reader that can read Snappy-compressed bytes.
|
||||||
|
//
|
||||||
|
// Reader handles the Snappy stream format, not the Snappy block format.
|
||||||
type Reader struct {
|
type Reader struct {
|
||||||
r io.Reader
|
r io.Reader
|
||||||
err error
|
err error
|
||||||
|
|
503
vendor/github.com/golang/snappy/decode_arm64.s
generated
vendored
Normal file
503
vendor/github.com/golang/snappy/decode_arm64.s
generated
vendored
Normal file
|
@ -0,0 +1,503 @@
|
||||||
|
// Copyright 2020 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// +build !appengine
|
||||||
|
// +build gc
|
||||||
|
// +build !noasm
|
||||||
|
|
||||||
|
#include "textflag.h"
|
||||||
|
|
||||||
|
// The asm code generally follows the pure Go code in decode_other.go, except
|
||||||
|
// where marked with a "!!!".
|
||||||
|
|
||||||
|
// func decode(dst, src []byte) int
|
||||||
|
//
|
||||||
|
// All local variables fit into registers. The non-zero stack size is only to
|
||||||
|
// spill registers and push args when issuing a CALL. The register allocation:
|
||||||
|
// - R2 scratch
|
||||||
|
// - R3 scratch
|
||||||
|
// - R4 length or x
|
||||||
|
// - R5 offset
|
||||||
|
// - R6 &src[s]
|
||||||
|
// - R7 &dst[d]
|
||||||
|
// + R8 dst_base
|
||||||
|
// + R9 dst_len
|
||||||
|
// + R10 dst_base + dst_len
|
||||||
|
// + R11 src_base
|
||||||
|
// + R12 src_len
|
||||||
|
// + R13 src_base + src_len
|
||||||
|
// - R14 used by doCopy
|
||||||
|
// - R15 used by doCopy
|
||||||
|
//
|
||||||
|
// The registers R8-R13 (marked with a "+") are set at the start of the
|
||||||
|
// function, and after a CALL returns, and are not otherwise modified.
|
||||||
|
//
|
||||||
|
// The d variable is implicitly R7 - R8, and len(dst)-d is R10 - R7.
|
||||||
|
// The s variable is implicitly R6 - R11, and len(src)-s is R13 - R6.
|
||||||
|
TEXT ·decode(SB), NOSPLIT, $56-56
|
||||||
|
// Initialize R6, R7 and R8-R13.
|
||||||
|
MOVD dst_base+0(FP), R8
|
||||||
|
MOVD dst_len+8(FP), R9
|
||||||
|
MOVD R8, R7
|
||||||
|
MOVD R8, R10
|
||||||
|
ADD R9, R10, R10
|
||||||
|
MOVD src_base+24(FP), R11
|
||||||
|
MOVD src_len+32(FP), R12
|
||||||
|
MOVD R11, R6
|
||||||
|
MOVD R11, R13
|
||||||
|
ADD R12, R13, R13
|
||||||
|
|
||||||
|
loop:
|
||||||
|
// for s < len(src)
|
||||||
|
CMP R13, R6
|
||||||
|
BEQ end
|
||||||
|
|
||||||
|
// R4 = uint32(src[s])
|
||||||
|
//
|
||||||
|
// switch src[s] & 0x03
|
||||||
|
MOVBU (R6), R4
|
||||||
|
MOVW R4, R3
|
||||||
|
ANDW $3, R3
|
||||||
|
MOVW $1, R1
|
||||||
|
CMPW R1, R3
|
||||||
|
BGE tagCopy
|
||||||
|
|
||||||
|
// ----------------------------------------
|
||||||
|
// The code below handles literal tags.
|
||||||
|
|
||||||
|
// case tagLiteral:
|
||||||
|
// x := uint32(src[s] >> 2)
|
||||||
|
// switch
|
||||||
|
MOVW $60, R1
|
||||||
|
ADD R4>>2, ZR, R4
|
||||||
|
CMPW R4, R1
|
||||||
|
BLS tagLit60Plus
|
||||||
|
|
||||||
|
// case x < 60:
|
||||||
|
// s++
|
||||||
|
ADD $1, R6, R6
|
||||||
|
|
||||||
|
doLit:
|
||||||
|
// This is the end of the inner "switch", when we have a literal tag.
|
||||||
|
//
|
||||||
|
// We assume that R4 == x and x fits in a uint32, where x is the variable
|
||||||
|
// used in the pure Go decode_other.go code.
|
||||||
|
|
||||||
|
// length = int(x) + 1
|
||||||
|
//
|
||||||
|
// Unlike the pure Go code, we don't need to check if length <= 0 because
|
||||||
|
// R4 can hold 64 bits, so the increment cannot overflow.
|
||||||
|
ADD $1, R4, R4
|
||||||
|
|
||||||
|
// Prepare to check if copying length bytes will run past the end of dst or
|
||||||
|
// src.
|
||||||
|
//
|
||||||
|
// R2 = len(dst) - d
|
||||||
|
// R3 = len(src) - s
|
||||||
|
MOVD R10, R2
|
||||||
|
SUB R7, R2, R2
|
||||||
|
MOVD R13, R3
|
||||||
|
SUB R6, R3, R3
|
||||||
|
|
||||||
|
// !!! Try a faster technique for short (16 or fewer bytes) copies.
|
||||||
|
//
|
||||||
|
// if length > 16 || len(dst)-d < 16 || len(src)-s < 16 {
|
||||||
|
// goto callMemmove // Fall back on calling runtime·memmove.
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// The C++ snappy code calls this TryFastAppend. It also checks len(src)-s
|
||||||
|
// against 21 instead of 16, because it cannot assume that all of its input
|
||||||
|
// is contiguous in memory and so it needs to leave enough source bytes to
|
||||||
|
// read the next tag without refilling buffers, but Go's Decode assumes
|
||||||
|
// contiguousness (the src argument is a []byte).
|
||||||
|
MOVD $16, R1
|
||||||
|
CMP R1, R4
|
||||||
|
BGT callMemmove
|
||||||
|
CMP R1, R2
|
||||||
|
BLT callMemmove
|
||||||
|
CMP R1, R3
|
||||||
|
BLT callMemmove
|
||||||
|
|
||||||
|
// !!! Implement the copy from src to dst as a 16-byte load and store.
|
||||||
|
// (Decode's documentation says that dst and src must not overlap.)
|
||||||
|
//
|
||||||
|
// This always copies 16 bytes, instead of only length bytes, but that's
|
||||||
|
// OK. If the input is a valid Snappy encoding then subsequent iterations
|
||||||
|
// will fix up the overrun. Otherwise, Decode returns a nil []byte (and a
|
||||||
|
// non-nil error), so the overrun will be ignored.
|
||||||
|
//
|
||||||
|
// Note that on arm64, it is legal and cheap to issue unaligned 8-byte or
|
||||||
|
// 16-byte loads and stores. This technique probably wouldn't be as
|
||||||
|
// effective on architectures that are fussier about alignment.
|
||||||
|
|
||||||
|
VLD1 0(R6), [V0.B16]
|
||||||
|
VST1 [V0.B16], 0(R7)
|
||||||
|
|
||||||
|
// d += length
|
||||||
|
// s += length
|
||||||
|
ADD R4, R7, R7
|
||||||
|
ADD R4, R6, R6
|
||||||
|
B loop
|
||||||
|
|
||||||
|
callMemmove:
|
||||||
|
// if length > len(dst)-d || length > len(src)-s { etc }
|
||||||
|
CMP R2, R4
|
||||||
|
BGT errCorrupt
|
||||||
|
CMP R3, R4
|
||||||
|
BGT errCorrupt
|
||||||
|
|
||||||
|
// copy(dst[d:], src[s:s+length])
|
||||||
|
//
|
||||||
|
// This means calling runtime·memmove(&dst[d], &src[s], length), so we push
|
||||||
|
// R7, R6 and R4 as arguments. Coincidentally, we also need to spill those
|
||||||
|
// three registers to the stack, to save local variables across the CALL.
|
||||||
|
MOVD R7, 8(RSP)
|
||||||
|
MOVD R6, 16(RSP)
|
||||||
|
MOVD R4, 24(RSP)
|
||||||
|
MOVD R7, 32(RSP)
|
||||||
|
MOVD R6, 40(RSP)
|
||||||
|
MOVD R4, 48(RSP)
|
||||||
|
CALL runtime·memmove(SB)
|
||||||
|
|
||||||
|
// Restore local variables: unspill registers from the stack and
|
||||||
|
// re-calculate R8-R13.
|
||||||
|
MOVD 32(RSP), R7
|
||||||
|
MOVD 40(RSP), R6
|
||||||
|
MOVD 48(RSP), R4
|
||||||
|
MOVD dst_base+0(FP), R8
|
||||||
|
MOVD dst_len+8(FP), R9
|
||||||
|
MOVD R8, R10
|
||||||
|
ADD R9, R10, R10
|
||||||
|
MOVD src_base+24(FP), R11
|
||||||
|
MOVD src_len+32(FP), R12
|
||||||
|
MOVD R11, R13
|
||||||
|
ADD R12, R13, R13
|
||||||
|
|
||||||
|
// d += length
|
||||||
|
// s += length
|
||||||
|
ADD R4, R7, R7
|
||||||
|
ADD R4, R6, R6
|
||||||
|
B loop
|
||||||
|
|
||||||
|
tagLit60Plus:
|
||||||
|
// !!! This fragment does the
|
||||||
|
//
|
||||||
|
// s += x - 58; if uint(s) > uint(len(src)) { etc }
|
||||||
|
//
|
||||||
|
// checks. In the asm version, we code it once instead of once per switch case.
|
||||||
|
ADD R4, R6, R6
|
||||||
|
SUB $58, R6, R6
|
||||||
|
MOVD R6, R3
|
||||||
|
SUB R11, R3, R3
|
||||||
|
CMP R12, R3
|
||||||
|
BGT errCorrupt
|
||||||
|
|
||||||
|
// case x == 60:
|
||||||
|
MOVW $61, R1
|
||||||
|
CMPW R1, R4
|
||||||
|
BEQ tagLit61
|
||||||
|
BGT tagLit62Plus
|
||||||
|
|
||||||
|
// x = uint32(src[s-1])
|
||||||
|
MOVBU -1(R6), R4
|
||||||
|
B doLit
|
||||||
|
|
||||||
|
tagLit61:
|
||||||
|
// case x == 61:
|
||||||
|
// x = uint32(src[s-2]) | uint32(src[s-1])<<8
|
||||||
|
MOVHU -2(R6), R4
|
||||||
|
B doLit
|
||||||
|
|
||||||
|
tagLit62Plus:
|
||||||
|
MOVW $62, R1
|
||||||
|
CMPW R1, R4
|
||||||
|
BHI tagLit63
|
||||||
|
|
||||||
|
// case x == 62:
|
||||||
|
// x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16
|
||||||
|
MOVHU -3(R6), R4
|
||||||
|
MOVBU -1(R6), R3
|
||||||
|
ORR R3<<16, R4
|
||||||
|
B doLit
|
||||||
|
|
||||||
|
tagLit63:
|
||||||
|
// case x == 63:
|
||||||
|
// x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24
|
||||||
|
MOVWU -4(R6), R4
|
||||||
|
B doLit
|
||||||
|
|
||||||
|
// The code above handles literal tags.
|
||||||
|
// ----------------------------------------
|
||||||
|
// The code below handles copy tags.
|
||||||
|
|
||||||
|
tagCopy4:
|
||||||
|
// case tagCopy4:
|
||||||
|
// s += 5
|
||||||
|
ADD $5, R6, R6
|
||||||
|
|
||||||
|
// if uint(s) > uint(len(src)) { etc }
|
||||||
|
MOVD R6, R3
|
||||||
|
SUB R11, R3, R3
|
||||||
|
CMP R12, R3
|
||||||
|
BGT errCorrupt
|
||||||
|
|
||||||
|
// length = 1 + int(src[s-5])>>2
|
||||||
|
MOVD $1, R1
|
||||||
|
ADD R4>>2, R1, R4
|
||||||
|
|
||||||
|
// offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24)
|
||||||
|
MOVWU -4(R6), R5
|
||||||
|
B doCopy
|
||||||
|
|
||||||
|
tagCopy2:
|
||||||
|
// case tagCopy2:
|
||||||
|
// s += 3
|
||||||
|
ADD $3, R6, R6
|
||||||
|
|
||||||
|
// if uint(s) > uint(len(src)) { etc }
|
||||||
|
MOVD R6, R3
|
||||||
|
SUB R11, R3, R3
|
||||||
|
CMP R12, R3
|
||||||
|
BGT errCorrupt
|
||||||
|
|
||||||
|
// length = 1 + int(src[s-3])>>2
|
||||||
|
MOVD $1, R1
|
||||||
|
ADD R4>>2, R1, R4
|
||||||
|
|
||||||
|
// offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8)
|
||||||
|
MOVHU -2(R6), R5
|
||||||
|
B doCopy
|
||||||
|
|
||||||
|
tagCopy:
|
||||||
|
// We have a copy tag. We assume that:
|
||||||
|
// - R3 == src[s] & 0x03
|
||||||
|
// - R4 == src[s]
|
||||||
|
MOVD $2, R1
|
||||||
|
CMP R1, R3
|
||||||
|
BEQ tagCopy2
|
||||||
|
BGT tagCopy4
|
||||||
|
|
||||||
|
// case tagCopy1:
|
||||||
|
// s += 2
|
||||||
|
ADD $2, R6, R6
|
||||||
|
|
||||||
|
// if uint(s) > uint(len(src)) { etc }
|
||||||
|
MOVD R6, R3
|
||||||
|
SUB R11, R3, R3
|
||||||
|
CMP R12, R3
|
||||||
|
BGT errCorrupt
|
||||||
|
|
||||||
|
// offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1]))
|
||||||
|
MOVD R4, R5
|
||||||
|
AND $0xe0, R5
|
||||||
|
MOVBU -1(R6), R3
|
||||||
|
ORR R5<<3, R3, R5
|
||||||
|
|
||||||
|
// length = 4 + int(src[s-2])>>2&0x7
|
||||||
|
MOVD $7, R1
|
||||||
|
AND R4>>2, R1, R4
|
||||||
|
ADD $4, R4, R4
|
||||||
|
|
||||||
|
doCopy:
|
||||||
|
// This is the end of the outer "switch", when we have a copy tag.
|
||||||
|
//
|
||||||
|
// We assume that:
|
||||||
|
// - R4 == length && R4 > 0
|
||||||
|
// - R5 == offset
|
||||||
|
|
||||||
|
// if offset <= 0 { etc }
|
||||||
|
MOVD $0, R1
|
||||||
|
CMP R1, R5
|
||||||
|
BLE errCorrupt
|
||||||
|
|
||||||
|
// if d < offset { etc }
|
||||||
|
MOVD R7, R3
|
||||||
|
SUB R8, R3, R3
|
||||||
|
CMP R5, R3
|
||||||
|
BLT errCorrupt
|
||||||
|
|
||||||
|
// if length > len(dst)-d { etc }
|
||||||
|
MOVD R10, R3
|
||||||
|
SUB R7, R3, R3
|
||||||
|
CMP R3, R4
|
||||||
|
BGT errCorrupt
|
||||||
|
|
||||||
|
// forwardCopy(dst[d:d+length], dst[d-offset:]); d += length
|
||||||
|
//
|
||||||
|
// Set:
|
||||||
|
// - R14 = len(dst)-d
|
||||||
|
// - R15 = &dst[d-offset]
|
||||||
|
MOVD R10, R14
|
||||||
|
SUB R7, R14, R14
|
||||||
|
MOVD R7, R15
|
||||||
|
SUB R5, R15, R15
|
||||||
|
|
||||||
|
// !!! Try a faster technique for short (16 or fewer bytes) forward copies.
|
||||||
|
//
|
||||||
|
// First, try using two 8-byte load/stores, similar to the doLit technique
|
||||||
|
// above. Even if dst[d:d+length] and dst[d-offset:] can overlap, this is
|
||||||
|
// still OK if offset >= 8. Note that this has to be two 8-byte load/stores
|
||||||
|
// and not one 16-byte load/store, and the first store has to be before the
|
||||||
|
// second load, due to the overlap if offset is in the range [8, 16).
|
||||||
|
//
|
||||||
|
// if length > 16 || offset < 8 || len(dst)-d < 16 {
|
||||||
|
// goto slowForwardCopy
|
||||||
|
// }
|
||||||
|
// copy 16 bytes
|
||||||
|
// d += length
|
||||||
|
MOVD $16, R1
|
||||||
|
MOVD $8, R0
|
||||||
|
CMP R1, R4
|
||||||
|
BGT slowForwardCopy
|
||||||
|
CMP R0, R5
|
||||||
|
BLT slowForwardCopy
|
||||||
|
CMP R1, R14
|
||||||
|
BLT slowForwardCopy
|
||||||
|
MOVD 0(R15), R2
|
||||||
|
MOVD R2, 0(R7)
|
||||||
|
MOVD 8(R15), R3
|
||||||
|
MOVD R3, 8(R7)
|
||||||
|
ADD R4, R7, R7
|
||||||
|
B loop
|
||||||
|
|
||||||
|
slowForwardCopy:
|
||||||
|
// !!! If the forward copy is longer than 16 bytes, or if offset < 8, we
|
||||||
|
// can still try 8-byte load stores, provided we can overrun up to 10 extra
|
||||||
|
// bytes. As above, the overrun will be fixed up by subsequent iterations
|
||||||
|
// of the outermost loop.
|
||||||
|
//
|
||||||
|
// The C++ snappy code calls this technique IncrementalCopyFastPath. Its
|
||||||
|
// commentary says:
|
||||||
|
//
|
||||||
|
// ----
|
||||||
|
//
|
||||||
|
// The main part of this loop is a simple copy of eight bytes at a time
|
||||||
|
// until we've copied (at least) the requested amount of bytes. However,
|
||||||
|
// if d and d-offset are less than eight bytes apart (indicating a
|
||||||
|
// repeating pattern of length < 8), we first need to expand the pattern in
|
||||||
|
// order to get the correct results. For instance, if the buffer looks like
|
||||||
|
// this, with the eight-byte <d-offset> and <d> patterns marked as
|
||||||
|
// intervals:
|
||||||
|
//
|
||||||
|
// abxxxxxxxxxxxx
|
||||||
|
// [------] d-offset
|
||||||
|
// [------] d
|
||||||
|
//
|
||||||
|
// a single eight-byte copy from <d-offset> to <d> will repeat the pattern
|
||||||
|
// once, after which we can move <d> two bytes without moving <d-offset>:
|
||||||
|
//
|
||||||
|
// ababxxxxxxxxxx
|
||||||
|
// [------] d-offset
|
||||||
|
// [------] d
|
||||||
|
//
|
||||||
|
// and repeat the exercise until the two no longer overlap.
|
||||||
|
//
|
||||||
|
// This allows us to do very well in the special case of one single byte
|
||||||
|
// repeated many times, without taking a big hit for more general cases.
|
||||||
|
//
|
||||||
|
// The worst case of extra writing past the end of the match occurs when
|
||||||
|
// offset == 1 and length == 1; the last copy will read from byte positions
|
||||||
|
// [0..7] and write to [4..11], whereas it was only supposed to write to
|
||||||
|
// position 1. Thus, ten excess bytes.
|
||||||
|
//
|
||||||
|
// ----
|
||||||
|
//
|
||||||
|
// That "10 byte overrun" worst case is confirmed by Go's
|
||||||
|
// TestSlowForwardCopyOverrun, which also tests the fixUpSlowForwardCopy
|
||||||
|
// and finishSlowForwardCopy algorithm.
|
||||||
|
//
|
||||||
|
// if length > len(dst)-d-10 {
|
||||||
|
// goto verySlowForwardCopy
|
||||||
|
// }
|
||||||
|
SUB $10, R14, R14
|
||||||
|
CMP R14, R4
|
||||||
|
BGT verySlowForwardCopy
|
||||||
|
|
||||||
|
makeOffsetAtLeast8:
|
||||||
|
// !!! As above, expand the pattern so that offset >= 8 and we can use
|
||||||
|
// 8-byte load/stores.
|
||||||
|
//
|
||||||
|
// for offset < 8 {
|
||||||
|
// copy 8 bytes from dst[d-offset:] to dst[d:]
|
||||||
|
// length -= offset
|
||||||
|
// d += offset
|
||||||
|
// offset += offset
|
||||||
|
// // The two previous lines together means that d-offset, and therefore
|
||||||
|
// // R15, is unchanged.
|
||||||
|
// }
|
||||||
|
MOVD $8, R1
|
||||||
|
CMP R1, R5
|
||||||
|
BGE fixUpSlowForwardCopy
|
||||||
|
MOVD (R15), R3
|
||||||
|
MOVD R3, (R7)
|
||||||
|
SUB R5, R4, R4
|
||||||
|
ADD R5, R7, R7
|
||||||
|
ADD R5, R5, R5
|
||||||
|
B makeOffsetAtLeast8
|
||||||
|
|
||||||
|
fixUpSlowForwardCopy:
|
||||||
|
// !!! Add length (which might be negative now) to d (implied by R7 being
|
||||||
|
// &dst[d]) so that d ends up at the right place when we jump back to the
|
||||||
|
// top of the loop. Before we do that, though, we save R7 to R2 so that, if
|
||||||
|
// length is positive, copying the remaining length bytes will write to the
|
||||||
|
// right place.
|
||||||
|
MOVD R7, R2
|
||||||
|
ADD R4, R7, R7
|
||||||
|
|
||||||
|
finishSlowForwardCopy:
|
||||||
|
// !!! Repeat 8-byte load/stores until length <= 0. Ending with a negative
|
||||||
|
// length means that we overrun, but as above, that will be fixed up by
|
||||||
|
// subsequent iterations of the outermost loop.
|
||||||
|
MOVD $0, R1
|
||||||
|
CMP R1, R4
|
||||||
|
BLE loop
|
||||||
|
MOVD (R15), R3
|
||||||
|
MOVD R3, (R2)
|
||||||
|
ADD $8, R15, R15
|
||||||
|
ADD $8, R2, R2
|
||||||
|
SUB $8, R4, R4
|
||||||
|
B finishSlowForwardCopy
|
||||||
|
|
||||||
|
verySlowForwardCopy:
|
||||||
|
// verySlowForwardCopy is a simple implementation of forward copy. In C
|
||||||
|
// parlance, this is a do/while loop instead of a while loop, since we know
|
||||||
|
// that length > 0. In Go syntax:
|
||||||
|
//
|
||||||
|
// for {
|
||||||
|
// dst[d] = dst[d - offset]
|
||||||
|
// d++
|
||||||
|
// length--
|
||||||
|
// if length == 0 {
|
||||||
|
// break
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
MOVB (R15), R3
|
||||||
|
MOVB R3, (R7)
|
||||||
|
ADD $1, R15, R15
|
||||||
|
ADD $1, R7, R7
|
||||||
|
SUB $1, R4, R4
|
||||||
|
MOVD $0, R1
|
||||||
|
CMP R1, R4
|
||||||
|
BNE verySlowForwardCopy
|
||||||
|
B loop
|
||||||
|
|
||||||
|
// The code above handles copy tags.
|
||||||
|
// ----------------------------------------
|
||||||
|
|
||||||
|
end:
|
||||||
|
// This is the end of the "for s < len(src)".
|
||||||
|
//
|
||||||
|
// if d != len(dst) { etc }
|
||||||
|
CMP R10, R7
|
||||||
|
BNE errCorrupt
|
||||||
|
|
||||||
|
// return 0
|
||||||
|
MOVD $0, ret+48(FP)
|
||||||
|
RET
|
||||||
|
|
||||||
|
errCorrupt:
|
||||||
|
// return decodeErrCodeCorrupt
|
||||||
|
MOVD $1, R2
|
||||||
|
MOVD R2, ret+48(FP)
|
||||||
|
RET
|
|
@ -5,6 +5,7 @@
|
||||||
// +build !appengine
|
// +build !appengine
|
||||||
// +build gc
|
// +build gc
|
||||||
// +build !noasm
|
// +build !noasm
|
||||||
|
// +build amd64 arm64
|
||||||
|
|
||||||
package snappy
|
package snappy
|
||||||
|
|
24
vendor/github.com/golang/snappy/decode_other.go
generated
vendored
24
vendor/github.com/golang/snappy/decode_other.go
generated
vendored
|
@ -2,7 +2,7 @@
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !amd64 appengine !gc noasm
|
// +build !amd64,!arm64 appengine !gc noasm
|
||||||
|
|
||||||
package snappy
|
package snappy
|
||||||
|
|
||||||
|
@ -85,14 +85,28 @@ func decode(dst, src []byte) int {
|
||||||
if offset <= 0 || d < offset || length > len(dst)-d {
|
if offset <= 0 || d < offset || length > len(dst)-d {
|
||||||
return decodeErrCodeCorrupt
|
return decodeErrCodeCorrupt
|
||||||
}
|
}
|
||||||
// Copy from an earlier sub-slice of dst to a later sub-slice. Unlike
|
// Copy from an earlier sub-slice of dst to a later sub-slice.
|
||||||
// the built-in copy function, this byte-by-byte copy always runs
|
// If no overlap, use the built-in copy:
|
||||||
|
if offset >= length {
|
||||||
|
copy(dst[d:d+length], dst[d-offset:])
|
||||||
|
d += length
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unlike the built-in copy function, this byte-by-byte copy always runs
|
||||||
// forwards, even if the slices overlap. Conceptually, this is:
|
// forwards, even if the slices overlap. Conceptually, this is:
|
||||||
//
|
//
|
||||||
// d += forwardCopy(dst[d:d+length], dst[d-offset:])
|
// d += forwardCopy(dst[d:d+length], dst[d-offset:])
|
||||||
for end := d + length; d != end; d++ {
|
//
|
||||||
dst[d] = dst[d-offset]
|
// We align the slices into a and b and show the compiler they are the same size.
|
||||||
|
// This allows the loop to run without bounds checks.
|
||||||
|
a := dst[d : d+length]
|
||||||
|
b := dst[d-offset:]
|
||||||
|
b = b[:len(a)]
|
||||||
|
for i := range a {
|
||||||
|
a[i] = b[i]
|
||||||
}
|
}
|
||||||
|
d += length
|
||||||
}
|
}
|
||||||
if d != len(dst) {
|
if d != len(dst) {
|
||||||
return decodeErrCodeCorrupt
|
return decodeErrCodeCorrupt
|
||||||
|
|
4
vendor/github.com/golang/snappy/encode.go
generated
vendored
4
vendor/github.com/golang/snappy/encode.go
generated
vendored
|
@ -15,6 +15,8 @@ import (
|
||||||
// Otherwise, a newly allocated slice will be returned.
|
// Otherwise, a newly allocated slice will be returned.
|
||||||
//
|
//
|
||||||
// The dst and src must not overlap. It is valid to pass a nil dst.
|
// The dst and src must not overlap. It is valid to pass a nil dst.
|
||||||
|
//
|
||||||
|
// Encode handles the Snappy block format, not the Snappy stream format.
|
||||||
func Encode(dst, src []byte) []byte {
|
func Encode(dst, src []byte) []byte {
|
||||||
if n := MaxEncodedLen(len(src)); n < 0 {
|
if n := MaxEncodedLen(len(src)); n < 0 {
|
||||||
panic(ErrTooLarge)
|
panic(ErrTooLarge)
|
||||||
|
@ -139,6 +141,8 @@ func NewBufferedWriter(w io.Writer) *Writer {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Writer is an io.Writer that can write Snappy-compressed bytes.
|
// Writer is an io.Writer that can write Snappy-compressed bytes.
|
||||||
|
//
|
||||||
|
// Writer handles the Snappy stream format, not the Snappy block format.
|
||||||
type Writer struct {
|
type Writer struct {
|
||||||
w io.Writer
|
w io.Writer
|
||||||
err error
|
err error
|
||||||
|
|
729
vendor/github.com/golang/snappy/encode_arm64.s
generated
vendored
Normal file
729
vendor/github.com/golang/snappy/encode_arm64.s
generated
vendored
Normal file
|
@ -0,0 +1,729 @@
|
||||||
|
// Copyright 2020 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// +build !appengine
|
||||||
|
// +build gc
|
||||||
|
// +build !noasm
|
||||||
|
|
||||||
|
#include "textflag.h"
|
||||||
|
|
||||||
|
// The asm code generally follows the pure Go code in encode_other.go, except
|
||||||
|
// where marked with a "!!!".
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// func emitLiteral(dst, lit []byte) int
|
||||||
|
//
|
||||||
|
// All local variables fit into registers. The register allocation:
|
||||||
|
// - R3 len(lit)
|
||||||
|
// - R4 n
|
||||||
|
// - R6 return value
|
||||||
|
// - R8 &dst[i]
|
||||||
|
// - R10 &lit[0]
|
||||||
|
//
|
||||||
|
// The 32 bytes of stack space is to call runtime·memmove.
|
||||||
|
//
|
||||||
|
// The unusual register allocation of local variables, such as R10 for the
|
||||||
|
// source pointer, matches the allocation used at the call site in encodeBlock,
|
||||||
|
// which makes it easier to manually inline this function.
|
||||||
|
TEXT ·emitLiteral(SB), NOSPLIT, $32-56
|
||||||
|
MOVD dst_base+0(FP), R8
|
||||||
|
MOVD lit_base+24(FP), R10
|
||||||
|
MOVD lit_len+32(FP), R3
|
||||||
|
MOVD R3, R6
|
||||||
|
MOVW R3, R4
|
||||||
|
SUBW $1, R4, R4
|
||||||
|
|
||||||
|
MOVW $60, R2
|
||||||
|
CMPW R2, R4
|
||||||
|
BLT oneByte
|
||||||
|
MOVW $256, R2
|
||||||
|
CMPW R2, R4
|
||||||
|
BLT twoBytes
|
||||||
|
|
||||||
|
threeBytes:
|
||||||
|
MOVD $0xf4, R2
|
||||||
|
MOVB R2, 0(R8)
|
||||||
|
MOVW R4, 1(R8)
|
||||||
|
ADD $3, R8, R8
|
||||||
|
ADD $3, R6, R6
|
||||||
|
B memmove
|
||||||
|
|
||||||
|
twoBytes:
|
||||||
|
MOVD $0xf0, R2
|
||||||
|
MOVB R2, 0(R8)
|
||||||
|
MOVB R4, 1(R8)
|
||||||
|
ADD $2, R8, R8
|
||||||
|
ADD $2, R6, R6
|
||||||
|
B memmove
|
||||||
|
|
||||||
|
oneByte:
|
||||||
|
LSLW $2, R4, R4
|
||||||
|
MOVB R4, 0(R8)
|
||||||
|
ADD $1, R8, R8
|
||||||
|
ADD $1, R6, R6
|
||||||
|
|
||||||
|
memmove:
|
||||||
|
MOVD R6, ret+48(FP)
|
||||||
|
|
||||||
|
// copy(dst[i:], lit)
|
||||||
|
//
|
||||||
|
// This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push
|
||||||
|
// R8, R10 and R3 as arguments.
|
||||||
|
MOVD R8, 8(RSP)
|
||||||
|
MOVD R10, 16(RSP)
|
||||||
|
MOVD R3, 24(RSP)
|
||||||
|
CALL runtime·memmove(SB)
|
||||||
|
RET
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// func emitCopy(dst []byte, offset, length int) int
|
||||||
|
//
|
||||||
|
// All local variables fit into registers. The register allocation:
|
||||||
|
// - R3 length
|
||||||
|
// - R7 &dst[0]
|
||||||
|
// - R8 &dst[i]
|
||||||
|
// - R11 offset
|
||||||
|
//
|
||||||
|
// The unusual register allocation of local variables, such as R11 for the
|
||||||
|
// offset, matches the allocation used at the call site in encodeBlock, which
|
||||||
|
// makes it easier to manually inline this function.
|
||||||
|
TEXT ·emitCopy(SB), NOSPLIT, $0-48
|
||||||
|
MOVD dst_base+0(FP), R8
|
||||||
|
MOVD R8, R7
|
||||||
|
MOVD offset+24(FP), R11
|
||||||
|
MOVD length+32(FP), R3
|
||||||
|
|
||||||
|
loop0:
|
||||||
|
// for length >= 68 { etc }
|
||||||
|
MOVW $68, R2
|
||||||
|
CMPW R2, R3
|
||||||
|
BLT step1
|
||||||
|
|
||||||
|
// Emit a length 64 copy, encoded as 3 bytes.
|
||||||
|
MOVD $0xfe, R2
|
||||||
|
MOVB R2, 0(R8)
|
||||||
|
MOVW R11, 1(R8)
|
||||||
|
ADD $3, R8, R8
|
||||||
|
SUB $64, R3, R3
|
||||||
|
B loop0
|
||||||
|
|
||||||
|
step1:
|
||||||
|
// if length > 64 { etc }
|
||||||
|
MOVD $64, R2
|
||||||
|
CMP R2, R3
|
||||||
|
BLE step2
|
||||||
|
|
||||||
|
// Emit a length 60 copy, encoded as 3 bytes.
|
||||||
|
MOVD $0xee, R2
|
||||||
|
MOVB R2, 0(R8)
|
||||||
|
MOVW R11, 1(R8)
|
||||||
|
ADD $3, R8, R8
|
||||||
|
SUB $60, R3, R3
|
||||||
|
|
||||||
|
step2:
|
||||||
|
// if length >= 12 || offset >= 2048 { goto step3 }
|
||||||
|
MOVD $12, R2
|
||||||
|
CMP R2, R3
|
||||||
|
BGE step3
|
||||||
|
MOVW $2048, R2
|
||||||
|
CMPW R2, R11
|
||||||
|
BGE step3
|
||||||
|
|
||||||
|
// Emit the remaining copy, encoded as 2 bytes.
|
||||||
|
MOVB R11, 1(R8)
|
||||||
|
LSRW $3, R11, R11
|
||||||
|
AND $0xe0, R11, R11
|
||||||
|
SUB $4, R3, R3
|
||||||
|
LSLW $2, R3
|
||||||
|
AND $0xff, R3, R3
|
||||||
|
ORRW R3, R11, R11
|
||||||
|
ORRW $1, R11, R11
|
||||||
|
MOVB R11, 0(R8)
|
||||||
|
ADD $2, R8, R8
|
||||||
|
|
||||||
|
// Return the number of bytes written.
|
||||||
|
SUB R7, R8, R8
|
||||||
|
MOVD R8, ret+40(FP)
|
||||||
|
RET
|
||||||
|
|
||||||
|
step3:
|
||||||
|
// Emit the remaining copy, encoded as 3 bytes.
|
||||||
|
SUB $1, R3, R3
|
||||||
|
AND $0xff, R3, R3
|
||||||
|
LSLW $2, R3, R3
|
||||||
|
ORRW $2, R3, R3
|
||||||
|
MOVB R3, 0(R8)
|
||||||
|
MOVW R11, 1(R8)
|
||||||
|
ADD $3, R8, R8
|
||||||
|
|
||||||
|
// Return the number of bytes written.
|
||||||
|
SUB R7, R8, R8
|
||||||
|
MOVD R8, ret+40(FP)
|
||||||
|
RET
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// func extendMatch(src []byte, i, j int) int
|
||||||
|
//
|
||||||
|
// All local variables fit into registers. The register allocation:
|
||||||
|
// - R6 &src[0]
|
||||||
|
// - R7 &src[j]
|
||||||
|
// - R13 &src[len(src) - 8]
|
||||||
|
// - R14 &src[len(src)]
|
||||||
|
// - R15 &src[i]
|
||||||
|
//
|
||||||
|
// The unusual register allocation of local variables, such as R15 for a source
|
||||||
|
// pointer, matches the allocation used at the call site in encodeBlock, which
|
||||||
|
// makes it easier to manually inline this function.
|
||||||
|
TEXT ·extendMatch(SB), NOSPLIT, $0-48
|
||||||
|
MOVD src_base+0(FP), R6
|
||||||
|
MOVD src_len+8(FP), R14
|
||||||
|
MOVD i+24(FP), R15
|
||||||
|
MOVD j+32(FP), R7
|
||||||
|
ADD R6, R14, R14
|
||||||
|
ADD R6, R15, R15
|
||||||
|
ADD R6, R7, R7
|
||||||
|
MOVD R14, R13
|
||||||
|
SUB $8, R13, R13
|
||||||
|
|
||||||
|
cmp8:
|
||||||
|
// As long as we are 8 or more bytes before the end of src, we can load and
|
||||||
|
// compare 8 bytes at a time. If those 8 bytes are equal, repeat.
|
||||||
|
CMP R13, R7
|
||||||
|
BHI cmp1
|
||||||
|
MOVD (R15), R3
|
||||||
|
MOVD (R7), R4
|
||||||
|
CMP R4, R3
|
||||||
|
BNE bsf
|
||||||
|
ADD $8, R15, R15
|
||||||
|
ADD $8, R7, R7
|
||||||
|
B cmp8
|
||||||
|
|
||||||
|
bsf:
|
||||||
|
// If those 8 bytes were not equal, XOR the two 8 byte values, and return
|
||||||
|
// the index of the first byte that differs.
|
||||||
|
// RBIT reverses the bit order, then CLZ counts the leading zeros, the
|
||||||
|
// combination of which finds the least significant bit which is set.
|
||||||
|
// The arm64 architecture is little-endian, and the shift by 3 converts
|
||||||
|
// a bit index to a byte index.
|
||||||
|
EOR R3, R4, R4
|
||||||
|
RBIT R4, R4
|
||||||
|
CLZ R4, R4
|
||||||
|
ADD R4>>3, R7, R7
|
||||||
|
|
||||||
|
// Convert from &src[ret] to ret.
|
||||||
|
SUB R6, R7, R7
|
||||||
|
MOVD R7, ret+40(FP)
|
||||||
|
RET
|
||||||
|
|
||||||
|
cmp1:
|
||||||
|
// In src's tail, compare 1 byte at a time.
|
||||||
|
CMP R7, R14
|
||||||
|
BLS extendMatchEnd
|
||||||
|
MOVB (R15), R3
|
||||||
|
MOVB (R7), R4
|
||||||
|
CMP R4, R3
|
||||||
|
BNE extendMatchEnd
|
||||||
|
ADD $1, R15, R15
|
||||||
|
ADD $1, R7, R7
|
||||||
|
B cmp1
|
||||||
|
|
||||||
|
extendMatchEnd:
|
||||||
|
// Convert from &src[ret] to ret.
|
||||||
|
SUB R6, R7, R7
|
||||||
|
MOVD R7, ret+40(FP)
|
||||||
|
RET
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// func encodeBlock(dst, src []byte) (d int)
|
||||||
|
//
|
||||||
|
// All local variables fit into registers, other than "var table". The register
|
||||||
|
// allocation:
|
||||||
|
// - R3 . .
|
||||||
|
// - R4 . .
|
||||||
|
// - R5 64 shift
|
||||||
|
// - R6 72 &src[0], tableSize
|
||||||
|
// - R7 80 &src[s]
|
||||||
|
// - R8 88 &dst[d]
|
||||||
|
// - R9 96 sLimit
|
||||||
|
// - R10 . &src[nextEmit]
|
||||||
|
// - R11 104 prevHash, currHash, nextHash, offset
|
||||||
|
// - R12 112 &src[base], skip
|
||||||
|
// - R13 . &src[nextS], &src[len(src) - 8]
|
||||||
|
// - R14 . len(src), bytesBetweenHashLookups, &src[len(src)], x
|
||||||
|
// - R15 120 candidate
|
||||||
|
// - R16 . hash constant, 0x1e35a7bd
|
||||||
|
// - R17 . &table
|
||||||
|
// - . 128 table
|
||||||
|
//
|
||||||
|
// The second column (64, 72, etc) is the stack offset to spill the registers
|
||||||
|
// when calling other functions. We could pack this slightly tighter, but it's
|
||||||
|
// simpler to have a dedicated spill map independent of the function called.
|
||||||
|
//
|
||||||
|
// "var table [maxTableSize]uint16" takes up 32768 bytes of stack space. An
|
||||||
|
// extra 64 bytes, to call other functions, and an extra 64 bytes, to spill
|
||||||
|
// local variables (registers) during calls gives 32768 + 64 + 64 = 32896.
|
||||||
|
TEXT ·encodeBlock(SB), 0, $32896-56
|
||||||
|
MOVD dst_base+0(FP), R8
|
||||||
|
MOVD src_base+24(FP), R7
|
||||||
|
MOVD src_len+32(FP), R14
|
||||||
|
|
||||||
|
// shift, tableSize := uint32(32-8), 1<<8
|
||||||
|
MOVD $24, R5
|
||||||
|
MOVD $256, R6
|
||||||
|
MOVW $0xa7bd, R16
|
||||||
|
MOVKW $(0x1e35<<16), R16
|
||||||
|
|
||||||
|
calcShift:
|
||||||
|
// for ; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 {
|
||||||
|
// shift--
|
||||||
|
// }
|
||||||
|
MOVD $16384, R2
|
||||||
|
CMP R2, R6
|
||||||
|
BGE varTable
|
||||||
|
CMP R14, R6
|
||||||
|
BGE varTable
|
||||||
|
SUB $1, R5, R5
|
||||||
|
LSL $1, R6, R6
|
||||||
|
B calcShift
|
||||||
|
|
||||||
|
varTable:
|
||||||
|
// var table [maxTableSize]uint16
|
||||||
|
//
|
||||||
|
// In the asm code, unlike the Go code, we can zero-initialize only the
|
||||||
|
// first tableSize elements. Each uint16 element is 2 bytes and each VST1
|
||||||
|
// writes 64 bytes, so we can do only tableSize/32 writes instead of the
|
||||||
|
// 2048 writes that would zero-initialize all of table's 32768 bytes.
|
||||||
|
// This clear could overrun the first tableSize elements, but it won't
|
||||||
|
// overrun the allocated stack size.
|
||||||
|
ADD $128, RSP, R17
|
||||||
|
MOVD R17, R4
|
||||||
|
|
||||||
|
// !!! R6 = &src[tableSize]
|
||||||
|
ADD R6<<1, R17, R6
|
||||||
|
|
||||||
|
// zero the SIMD registers
|
||||||
|
VEOR V0.B16, V0.B16, V0.B16
|
||||||
|
VEOR V1.B16, V1.B16, V1.B16
|
||||||
|
VEOR V2.B16, V2.B16, V2.B16
|
||||||
|
VEOR V3.B16, V3.B16, V3.B16
|
||||||
|
|
||||||
|
memclr:
|
||||||
|
VST1.P [V0.B16, V1.B16, V2.B16, V3.B16], 64(R4)
|
||||||
|
CMP R4, R6
|
||||||
|
BHI memclr
|
||||||
|
|
||||||
|
// !!! R6 = &src[0]
|
||||||
|
MOVD R7, R6
|
||||||
|
|
||||||
|
// sLimit := len(src) - inputMargin
|
||||||
|
MOVD R14, R9
|
||||||
|
SUB $15, R9, R9
|
||||||
|
|
||||||
|
// !!! Pre-emptively spill R5, R6 and R9 to the stack. Their values don't
|
||||||
|
// change for the rest of the function.
|
||||||
|
MOVD R5, 64(RSP)
|
||||||
|
MOVD R6, 72(RSP)
|
||||||
|
MOVD R9, 96(RSP)
|
||||||
|
|
||||||
|
// nextEmit := 0
|
||||||
|
MOVD R6, R10
|
||||||
|
|
||||||
|
// s := 1
|
||||||
|
ADD $1, R7, R7
|
||||||
|
|
||||||
|
// nextHash := hash(load32(src, s), shift)
|
||||||
|
MOVW 0(R7), R11
|
||||||
|
MULW R16, R11, R11
|
||||||
|
LSRW R5, R11, R11
|
||||||
|
|
||||||
|
outer:
|
||||||
|
// for { etc }
|
||||||
|
|
||||||
|
// skip := 32
|
||||||
|
MOVD $32, R12
|
||||||
|
|
||||||
|
// nextS := s
|
||||||
|
MOVD R7, R13
|
||||||
|
|
||||||
|
// candidate := 0
|
||||||
|
MOVD $0, R15
|
||||||
|
|
||||||
|
inner0:
|
||||||
|
// for { etc }
|
||||||
|
|
||||||
|
// s := nextS
|
||||||
|
MOVD R13, R7
|
||||||
|
|
||||||
|
// bytesBetweenHashLookups := skip >> 5
|
||||||
|
MOVD R12, R14
|
||||||
|
LSR $5, R14, R14
|
||||||
|
|
||||||
|
// nextS = s + bytesBetweenHashLookups
|
||||||
|
ADD R14, R13, R13
|
||||||
|
|
||||||
|
// skip += bytesBetweenHashLookups
|
||||||
|
ADD R14, R12, R12
|
||||||
|
|
||||||
|
// if nextS > sLimit { goto emitRemainder }
|
||||||
|
MOVD R13, R3
|
||||||
|
SUB R6, R3, R3
|
||||||
|
CMP R9, R3
|
||||||
|
BHI emitRemainder
|
||||||
|
|
||||||
|
// candidate = int(table[nextHash])
|
||||||
|
MOVHU 0(R17)(R11<<1), R15
|
||||||
|
|
||||||
|
// table[nextHash] = uint16(s)
|
||||||
|
MOVD R7, R3
|
||||||
|
SUB R6, R3, R3
|
||||||
|
|
||||||
|
MOVH R3, 0(R17)(R11<<1)
|
||||||
|
|
||||||
|
// nextHash = hash(load32(src, nextS), shift)
|
||||||
|
MOVW 0(R13), R11
|
||||||
|
MULW R16, R11
|
||||||
|
LSRW R5, R11, R11
|
||||||
|
|
||||||
|
// if load32(src, s) != load32(src, candidate) { continue } break
|
||||||
|
MOVW 0(R7), R3
|
||||||
|
MOVW (R6)(R15*1), R4
|
||||||
|
CMPW R4, R3
|
||||||
|
BNE inner0
|
||||||
|
|
||||||
|
fourByteMatch:
|
||||||
|
// As per the encode_other.go code:
|
||||||
|
//
|
||||||
|
// A 4-byte match has been found. We'll later see etc.
|
||||||
|
|
||||||
|
// !!! Jump to a fast path for short (<= 16 byte) literals. See the comment
|
||||||
|
// on inputMargin in encode.go.
|
||||||
|
MOVD R7, R3
|
||||||
|
SUB R10, R3, R3
|
||||||
|
MOVD $16, R2
|
||||||
|
CMP R2, R3
|
||||||
|
BLE emitLiteralFastPath
|
||||||
|
|
||||||
|
// ----------------------------------------
|
||||||
|
// Begin inline of the emitLiteral call.
|
||||||
|
//
|
||||||
|
// d += emitLiteral(dst[d:], src[nextEmit:s])
|
||||||
|
|
||||||
|
MOVW R3, R4
|
||||||
|
SUBW $1, R4, R4
|
||||||
|
|
||||||
|
MOVW $60, R2
|
||||||
|
CMPW R2, R4
|
||||||
|
BLT inlineEmitLiteralOneByte
|
||||||
|
MOVW $256, R2
|
||||||
|
CMPW R2, R4
|
||||||
|
BLT inlineEmitLiteralTwoBytes
|
||||||
|
|
||||||
|
inlineEmitLiteralThreeBytes:
|
||||||
|
MOVD $0xf4, R1
|
||||||
|
MOVB R1, 0(R8)
|
||||||
|
MOVW R4, 1(R8)
|
||||||
|
ADD $3, R8, R8
|
||||||
|
B inlineEmitLiteralMemmove
|
||||||
|
|
||||||
|
inlineEmitLiteralTwoBytes:
|
||||||
|
MOVD $0xf0, R1
|
||||||
|
MOVB R1, 0(R8)
|
||||||
|
MOVB R4, 1(R8)
|
||||||
|
ADD $2, R8, R8
|
||||||
|
B inlineEmitLiteralMemmove
|
||||||
|
|
||||||
|
inlineEmitLiteralOneByte:
|
||||||
|
LSLW $2, R4, R4
|
||||||
|
MOVB R4, 0(R8)
|
||||||
|
ADD $1, R8, R8
|
||||||
|
|
||||||
|
inlineEmitLiteralMemmove:
|
||||||
|
// Spill local variables (registers) onto the stack; call; unspill.
|
||||||
|
//
|
||||||
|
// copy(dst[i:], lit)
|
||||||
|
//
|
||||||
|
// This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push
|
||||||
|
// R8, R10 and R3 as arguments.
|
||||||
|
MOVD R8, 8(RSP)
|
||||||
|
MOVD R10, 16(RSP)
|
||||||
|
MOVD R3, 24(RSP)
|
||||||
|
|
||||||
|
// Finish the "d +=" part of "d += emitLiteral(etc)".
|
||||||
|
ADD R3, R8, R8
|
||||||
|
MOVD R7, 80(RSP)
|
||||||
|
MOVD R8, 88(RSP)
|
||||||
|
MOVD R15, 120(RSP)
|
||||||
|
CALL runtime·memmove(SB)
|
||||||
|
MOVD 64(RSP), R5
|
||||||
|
MOVD 72(RSP), R6
|
||||||
|
MOVD 80(RSP), R7
|
||||||
|
MOVD 88(RSP), R8
|
||||||
|
MOVD 96(RSP), R9
|
||||||
|
MOVD 120(RSP), R15
|
||||||
|
B inner1
|
||||||
|
|
||||||
|
inlineEmitLiteralEnd:
|
||||||
|
// End inline of the emitLiteral call.
|
||||||
|
// ----------------------------------------
|
||||||
|
|
||||||
|
emitLiteralFastPath:
|
||||||
|
// !!! Emit the 1-byte encoding "uint8(len(lit)-1)<<2".
|
||||||
|
MOVB R3, R4
|
||||||
|
SUBW $1, R4, R4
|
||||||
|
AND $0xff, R4, R4
|
||||||
|
LSLW $2, R4, R4
|
||||||
|
MOVB R4, (R8)
|
||||||
|
ADD $1, R8, R8
|
||||||
|
|
||||||
|
// !!! Implement the copy from lit to dst as a 16-byte load and store.
|
||||||
|
// (Encode's documentation says that dst and src must not overlap.)
|
||||||
|
//
|
||||||
|
// This always copies 16 bytes, instead of only len(lit) bytes, but that's
|
||||||
|
// OK. Subsequent iterations will fix up the overrun.
|
||||||
|
//
|
||||||
|
// Note that on arm64, it is legal and cheap to issue unaligned 8-byte or
|
||||||
|
// 16-byte loads and stores. This technique probably wouldn't be as
|
||||||
|
// effective on architectures that are fussier about alignment.
|
||||||
|
VLD1 0(R10), [V0.B16]
|
||||||
|
VST1 [V0.B16], 0(R8)
|
||||||
|
ADD R3, R8, R8
|
||||||
|
|
||||||
|
inner1:
|
||||||
|
// for { etc }
|
||||||
|
|
||||||
|
// base := s
|
||||||
|
MOVD R7, R12
|
||||||
|
|
||||||
|
// !!! offset := base - candidate
|
||||||
|
MOVD R12, R11
|
||||||
|
SUB R15, R11, R11
|
||||||
|
SUB R6, R11, R11
|
||||||
|
|
||||||
|
// ----------------------------------------
|
||||||
|
// Begin inline of the extendMatch call.
|
||||||
|
//
|
||||||
|
// s = extendMatch(src, candidate+4, s+4)
|
||||||
|
|
||||||
|
// !!! R14 = &src[len(src)]
|
||||||
|
MOVD src_len+32(FP), R14
|
||||||
|
ADD R6, R14, R14
|
||||||
|
|
||||||
|
// !!! R13 = &src[len(src) - 8]
|
||||||
|
MOVD R14, R13
|
||||||
|
SUB $8, R13, R13
|
||||||
|
|
||||||
|
// !!! R15 = &src[candidate + 4]
|
||||||
|
ADD $4, R15, R15
|
||||||
|
ADD R6, R15, R15
|
||||||
|
|
||||||
|
// !!! s += 4
|
||||||
|
ADD $4, R7, R7
|
||||||
|
|
||||||
|
inlineExtendMatchCmp8:
|
||||||
|
// As long as we are 8 or more bytes before the end of src, we can load and
|
||||||
|
// compare 8 bytes at a time. If those 8 bytes are equal, repeat.
|
||||||
|
CMP R13, R7
|
||||||
|
BHI inlineExtendMatchCmp1
|
||||||
|
MOVD (R15), R3
|
||||||
|
MOVD (R7), R4
|
||||||
|
CMP R4, R3
|
||||||
|
BNE inlineExtendMatchBSF
|
||||||
|
ADD $8, R15, R15
|
||||||
|
ADD $8, R7, R7
|
||||||
|
B inlineExtendMatchCmp8
|
||||||
|
|
||||||
|
inlineExtendMatchBSF:
|
||||||
|
// If those 8 bytes were not equal, XOR the two 8 byte values, and return
|
||||||
|
// the index of the first byte that differs.
|
||||||
|
// RBIT reverses the bit order, then CLZ counts the leading zeros, the
|
||||||
|
// combination of which finds the least significant bit which is set.
|
||||||
|
// The arm64 architecture is little-endian, and the shift by 3 converts
|
||||||
|
// a bit index to a byte index.
|
||||||
|
EOR R3, R4, R4
|
||||||
|
RBIT R4, R4
|
||||||
|
CLZ R4, R4
|
||||||
|
ADD R4>>3, R7, R7
|
||||||
|
B inlineExtendMatchEnd
|
||||||
|
|
||||||
|
inlineExtendMatchCmp1:
|
||||||
|
// In src's tail, compare 1 byte at a time.
|
||||||
|
CMP R7, R14
|
||||||
|
BLS inlineExtendMatchEnd
|
||||||
|
MOVB (R15), R3
|
||||||
|
MOVB (R7), R4
|
||||||
|
CMP R4, R3
|
||||||
|
BNE inlineExtendMatchEnd
|
||||||
|
ADD $1, R15, R15
|
||||||
|
ADD $1, R7, R7
|
||||||
|
B inlineExtendMatchCmp1
|
||||||
|
|
||||||
|
inlineExtendMatchEnd:
|
||||||
|
// End inline of the extendMatch call.
|
||||||
|
// ----------------------------------------
|
||||||
|
|
||||||
|
// ----------------------------------------
|
||||||
|
// Begin inline of the emitCopy call.
|
||||||
|
//
|
||||||
|
// d += emitCopy(dst[d:], base-candidate, s-base)
|
||||||
|
|
||||||
|
// !!! length := s - base
|
||||||
|
MOVD R7, R3
|
||||||
|
SUB R12, R3, R3
|
||||||
|
|
||||||
|
inlineEmitCopyLoop0:
|
||||||
|
// for length >= 68 { etc }
|
||||||
|
MOVW $68, R2
|
||||||
|
CMPW R2, R3
|
||||||
|
BLT inlineEmitCopyStep1
|
||||||
|
|
||||||
|
// Emit a length 64 copy, encoded as 3 bytes.
|
||||||
|
MOVD $0xfe, R1
|
||||||
|
MOVB R1, 0(R8)
|
||||||
|
MOVW R11, 1(R8)
|
||||||
|
ADD $3, R8, R8
|
||||||
|
SUBW $64, R3, R3
|
||||||
|
B inlineEmitCopyLoop0
|
||||||
|
|
||||||
|
inlineEmitCopyStep1:
|
||||||
|
// if length > 64 { etc }
|
||||||
|
MOVW $64, R2
|
||||||
|
CMPW R2, R3
|
||||||
|
BLE inlineEmitCopyStep2
|
||||||
|
|
||||||
|
// Emit a length 60 copy, encoded as 3 bytes.
|
||||||
|
MOVD $0xee, R1
|
||||||
|
MOVB R1, 0(R8)
|
||||||
|
MOVW R11, 1(R8)
|
||||||
|
ADD $3, R8, R8
|
||||||
|
SUBW $60, R3, R3
|
||||||
|
|
||||||
|
inlineEmitCopyStep2:
|
||||||
|
// if length >= 12 || offset >= 2048 { goto inlineEmitCopyStep3 }
|
||||||
|
MOVW $12, R2
|
||||||
|
CMPW R2, R3
|
||||||
|
BGE inlineEmitCopyStep3
|
||||||
|
MOVW $2048, R2
|
||||||
|
CMPW R2, R11
|
||||||
|
BGE inlineEmitCopyStep3
|
||||||
|
|
||||||
|
// Emit the remaining copy, encoded as 2 bytes.
|
||||||
|
MOVB R11, 1(R8)
|
||||||
|
LSRW $8, R11, R11
|
||||||
|
LSLW $5, R11, R11
|
||||||
|
SUBW $4, R3, R3
|
||||||
|
AND $0xff, R3, R3
|
||||||
|
LSLW $2, R3, R3
|
||||||
|
ORRW R3, R11, R11
|
||||||
|
ORRW $1, R11, R11
|
||||||
|
MOVB R11, 0(R8)
|
||||||
|
ADD $2, R8, R8
|
||||||
|
B inlineEmitCopyEnd
|
||||||
|
|
||||||
|
inlineEmitCopyStep3:
|
||||||
|
// Emit the remaining copy, encoded as 3 bytes.
|
||||||
|
SUBW $1, R3, R3
|
||||||
|
LSLW $2, R3, R3
|
||||||
|
ORRW $2, R3, R3
|
||||||
|
MOVB R3, 0(R8)
|
||||||
|
MOVW R11, 1(R8)
|
||||||
|
ADD $3, R8, R8
|
||||||
|
|
||||||
|
inlineEmitCopyEnd:
|
||||||
|
// End inline of the emitCopy call.
|
||||||
|
// ----------------------------------------
|
||||||
|
|
||||||
|
// nextEmit = s
|
||||||
|
MOVD R7, R10
|
||||||
|
|
||||||
|
// if s >= sLimit { goto emitRemainder }
|
||||||
|
MOVD R7, R3
|
||||||
|
SUB R6, R3, R3
|
||||||
|
CMP R3, R9
|
||||||
|
BLS emitRemainder
|
||||||
|
|
||||||
|
// As per the encode_other.go code:
|
||||||
|
//
|
||||||
|
// We could immediately etc.
|
||||||
|
|
||||||
|
// x := load64(src, s-1)
|
||||||
|
MOVD -1(R7), R14
|
||||||
|
|
||||||
|
// prevHash := hash(uint32(x>>0), shift)
|
||||||
|
MOVW R14, R11
|
||||||
|
MULW R16, R11, R11
|
||||||
|
LSRW R5, R11, R11
|
||||||
|
|
||||||
|
// table[prevHash] = uint16(s-1)
|
||||||
|
MOVD R7, R3
|
||||||
|
SUB R6, R3, R3
|
||||||
|
SUB $1, R3, R3
|
||||||
|
|
||||||
|
MOVHU R3, 0(R17)(R11<<1)
|
||||||
|
|
||||||
|
// currHash := hash(uint32(x>>8), shift)
|
||||||
|
LSR $8, R14, R14
|
||||||
|
MOVW R14, R11
|
||||||
|
MULW R16, R11, R11
|
||||||
|
LSRW R5, R11, R11
|
||||||
|
|
||||||
|
// candidate = int(table[currHash])
|
||||||
|
MOVHU 0(R17)(R11<<1), R15
|
||||||
|
|
||||||
|
// table[currHash] = uint16(s)
|
||||||
|
ADD $1, R3, R3
|
||||||
|
MOVHU R3, 0(R17)(R11<<1)
|
||||||
|
|
||||||
|
// if uint32(x>>8) == load32(src, candidate) { continue }
|
||||||
|
MOVW (R6)(R15*1), R4
|
||||||
|
CMPW R4, R14
|
||||||
|
BEQ inner1
|
||||||
|
|
||||||
|
// nextHash = hash(uint32(x>>16), shift)
|
||||||
|
LSR $8, R14, R14
|
||||||
|
MOVW R14, R11
|
||||||
|
MULW R16, R11, R11
|
||||||
|
LSRW R5, R11, R11
|
||||||
|
|
||||||
|
// s++
|
||||||
|
ADD $1, R7, R7
|
||||||
|
|
||||||
|
// break out of the inner1 for loop, i.e. continue the outer loop.
|
||||||
|
B outer
|
||||||
|
|
||||||
|
emitRemainder:
|
||||||
|
// if nextEmit < len(src) { etc }
|
||||||
|
MOVD src_len+32(FP), R3
|
||||||
|
ADD R6, R3, R3
|
||||||
|
CMP R3, R10
|
||||||
|
BEQ encodeBlockEnd
|
||||||
|
|
||||||
|
// d += emitLiteral(dst[d:], src[nextEmit:])
|
||||||
|
//
|
||||||
|
// Push args.
|
||||||
|
MOVD R8, 8(RSP)
|
||||||
|
MOVD $0, 16(RSP) // Unnecessary, as the callee ignores it, but conservative.
|
||||||
|
MOVD $0, 24(RSP) // Unnecessary, as the callee ignores it, but conservative.
|
||||||
|
MOVD R10, 32(RSP)
|
||||||
|
SUB R10, R3, R3
|
||||||
|
MOVD R3, 40(RSP)
|
||||||
|
MOVD R3, 48(RSP) // Unnecessary, as the callee ignores it, but conservative.
|
||||||
|
|
||||||
|
// Spill local variables (registers) onto the stack; call; unspill.
|
||||||
|
MOVD R8, 88(RSP)
|
||||||
|
CALL ·emitLiteral(SB)
|
||||||
|
MOVD 88(RSP), R8
|
||||||
|
|
||||||
|
// Finish the "d +=" part of "d += emitLiteral(etc)".
|
||||||
|
MOVD 56(RSP), R1
|
||||||
|
ADD R1, R8, R8
|
||||||
|
|
||||||
|
encodeBlockEnd:
|
||||||
|
MOVD dst_base+0(FP), R3
|
||||||
|
SUB R3, R8, R8
|
||||||
|
MOVD R8, d+48(FP)
|
||||||
|
RET
|
|
@ -5,6 +5,7 @@
|
||||||
// +build !appengine
|
// +build !appengine
|
||||||
// +build gc
|
// +build gc
|
||||||
// +build !noasm
|
// +build !noasm
|
||||||
|
// +build amd64 arm64
|
||||||
|
|
||||||
package snappy
|
package snappy
|
||||||
|
|
2
vendor/github.com/golang/snappy/encode_other.go
generated
vendored
2
vendor/github.com/golang/snappy/encode_other.go
generated
vendored
|
@ -2,7 +2,7 @@
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !amd64 appengine !gc noasm
|
// +build !amd64,!arm64 appengine !gc noasm
|
||||||
|
|
||||||
package snappy
|
package snappy
|
||||||
|
|
||||||
|
|
8
vendor/github.com/google/go-cmp/cmp/compare.go
generated
vendored
8
vendor/github.com/google/go-cmp/cmp/compare.go
generated
vendored
|
@ -95,12 +95,12 @@ func Equal(x, y interface{}, opts ...Option) bool {
|
||||||
return s.result.Equal()
|
return s.result.Equal()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Diff returns a human-readable report of the differences between two values.
|
// Diff returns a human-readable report of the differences between two values:
|
||||||
// It returns an empty string if and only if Equal returns true for the same
|
// y - x. It returns an empty string if and only if Equal returns true for the
|
||||||
// input values and options.
|
// same input values and options.
|
||||||
//
|
//
|
||||||
// The output is displayed as a literal in pseudo-Go syntax.
|
// The output is displayed as a literal in pseudo-Go syntax.
|
||||||
// At the start of each line, a "-" prefix indicates an element removed from x,
|
// At the start of each line, a "-" prefix indicates an element removed from y,
|
||||||
// a "+" prefix to indicates an element added to y, and the lack of a prefix
|
// a "+" prefix to indicates an element added to y, and the lack of a prefix
|
||||||
// indicates an element common to both x and y. If possible, the output
|
// indicates an element common to both x and y. If possible, the output
|
||||||
// uses fmt.Stringer.String or error.Error methods to produce more humanly
|
// uses fmt.Stringer.String or error.Error methods to produce more humanly
|
||||||
|
|
5
vendor/github.com/google/go-cmp/cmp/options.go
generated
vendored
5
vendor/github.com/google/go-cmp/cmp/options.go
generated
vendored
|
@ -225,11 +225,14 @@ func (validator) apply(s *state, vx, vy reflect.Value) {
|
||||||
|
|
||||||
// Unable to Interface implies unexported field without visibility access.
|
// Unable to Interface implies unexported field without visibility access.
|
||||||
if !vx.CanInterface() || !vy.CanInterface() {
|
if !vx.CanInterface() || !vy.CanInterface() {
|
||||||
const help = "consider using a custom Comparer; if you control the implementation of type, you can also consider using an Exporter, AllowUnexported, or cmpopts.IgnoreUnexported"
|
help := "consider using a custom Comparer; if you control the implementation of type, you can also consider using an Exporter, AllowUnexported, or cmpopts.IgnoreUnexported"
|
||||||
var name string
|
var name string
|
||||||
if t := s.curPath.Index(-2).Type(); t.Name() != "" {
|
if t := s.curPath.Index(-2).Type(); t.Name() != "" {
|
||||||
// Named type with unexported fields.
|
// Named type with unexported fields.
|
||||||
name = fmt.Sprintf("%q.%v", t.PkgPath(), t.Name()) // e.g., "path/to/package".MyType
|
name = fmt.Sprintf("%q.%v", t.PkgPath(), t.Name()) // e.g., "path/to/package".MyType
|
||||||
|
if _, ok := reflect.New(t).Interface().(error); ok {
|
||||||
|
help = "consider using cmpopts.EquateErrors to compare error values"
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Unnamed type with unexported fields. Derive PkgPath from field.
|
// Unnamed type with unexported fields. Derive PkgPath from field.
|
||||||
var pkgPath string
|
var pkgPath string
|
||||||
|
|
91
vendor/github.com/google/go-cmp/cmp/report_reflect.go
generated
vendored
91
vendor/github.com/google/go-cmp/cmp/report_reflect.go
generated
vendored
|
@ -5,6 +5,7 @@
|
||||||
package cmp
|
package cmp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -125,21 +126,20 @@ func (opts formatOptions) FormatValue(v reflect.Value, parentKind reflect.Kind,
|
||||||
// implementations crash when doing so.
|
// implementations crash when doing so.
|
||||||
if (t.Kind() != reflect.Ptr && t.Kind() != reflect.Interface) || !v.IsNil() {
|
if (t.Kind() != reflect.Ptr && t.Kind() != reflect.Interface) || !v.IsNil() {
|
||||||
var prefix, strVal string
|
var prefix, strVal string
|
||||||
switch v := v.Interface().(type) {
|
func() {
|
||||||
case error:
|
// Swallow and ignore any panics from String or Error.
|
||||||
prefix, strVal = "e", v.Error()
|
defer func() { recover() }()
|
||||||
case fmt.Stringer:
|
switch v := v.Interface().(type) {
|
||||||
prefix, strVal = "s", v.String()
|
case error:
|
||||||
}
|
strVal = v.Error()
|
||||||
|
prefix = "e"
|
||||||
|
case fmt.Stringer:
|
||||||
|
strVal = v.String()
|
||||||
|
prefix = "s"
|
||||||
|
}
|
||||||
|
}()
|
||||||
if prefix != "" {
|
if prefix != "" {
|
||||||
maxLen := len(strVal)
|
return opts.formatString(prefix, strVal)
|
||||||
if opts.LimitVerbosity {
|
|
||||||
maxLen = (1 << opts.verbosity()) << 5 // 32, 64, 128, 256, etc...
|
|
||||||
}
|
|
||||||
if len(strVal) > maxLen+len(textEllipsis) {
|
|
||||||
return textLine(prefix + formatString(strVal[:maxLen]) + string(textEllipsis))
|
|
||||||
}
|
|
||||||
return textLine(prefix + formatString(strVal))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,14 +171,7 @@ func (opts formatOptions) FormatValue(v reflect.Value, parentKind reflect.Kind,
|
||||||
case reflect.Complex64, reflect.Complex128:
|
case reflect.Complex64, reflect.Complex128:
|
||||||
return textLine(fmt.Sprint(v.Complex()))
|
return textLine(fmt.Sprint(v.Complex()))
|
||||||
case reflect.String:
|
case reflect.String:
|
||||||
maxLen := v.Len()
|
return opts.formatString("", v.String())
|
||||||
if opts.LimitVerbosity {
|
|
||||||
maxLen = (1 << opts.verbosity()) << 5 // 32, 64, 128, 256, etc...
|
|
||||||
}
|
|
||||||
if v.Len() > maxLen+len(textEllipsis) {
|
|
||||||
return textLine(formatString(v.String()[:maxLen]) + string(textEllipsis))
|
|
||||||
}
|
|
||||||
return textLine(formatString(v.String()))
|
|
||||||
case reflect.UnsafePointer, reflect.Chan, reflect.Func:
|
case reflect.UnsafePointer, reflect.Chan, reflect.Func:
|
||||||
return textLine(formatPointer(value.PointerOf(v), true))
|
return textLine(formatPointer(value.PointerOf(v), true))
|
||||||
case reflect.Struct:
|
case reflect.Struct:
|
||||||
|
@ -210,6 +203,17 @@ func (opts formatOptions) FormatValue(v reflect.Value, parentKind reflect.Kind,
|
||||||
if v.IsNil() {
|
if v.IsNil() {
|
||||||
return textNil
|
return textNil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check whether this is a []byte of text data.
|
||||||
|
if t.Elem() == reflect.TypeOf(byte(0)) {
|
||||||
|
b := v.Bytes()
|
||||||
|
isPrintSpace := func(r rune) bool { return unicode.IsPrint(r) && unicode.IsSpace(r) }
|
||||||
|
if len(b) > 0 && utf8.Valid(b) && len(bytes.TrimFunc(b, isPrintSpace)) == 0 {
|
||||||
|
out = opts.formatString("", string(b))
|
||||||
|
return opts.WithTypeMode(emitType).FormatType(t, out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fallthrough
|
fallthrough
|
||||||
case reflect.Array:
|
case reflect.Array:
|
||||||
maxLen := v.Len()
|
maxLen := v.Len()
|
||||||
|
@ -295,6 +299,49 @@ func (opts formatOptions) FormatValue(v reflect.Value, parentKind reflect.Kind,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (opts formatOptions) formatString(prefix, s string) textNode {
|
||||||
|
maxLen := len(s)
|
||||||
|
maxLines := strings.Count(s, "\n") + 1
|
||||||
|
if opts.LimitVerbosity {
|
||||||
|
maxLen = (1 << opts.verbosity()) << 5 // 32, 64, 128, 256, etc...
|
||||||
|
maxLines = (1 << opts.verbosity()) << 2 // 4, 8, 16, 32, 64, etc...
|
||||||
|
}
|
||||||
|
|
||||||
|
// For multiline strings, use the triple-quote syntax,
|
||||||
|
// but only use it when printing removed or inserted nodes since
|
||||||
|
// we only want the extra verbosity for those cases.
|
||||||
|
lines := strings.Split(strings.TrimSuffix(s, "\n"), "\n")
|
||||||
|
isTripleQuoted := len(lines) >= 4 && (opts.DiffMode == '-' || opts.DiffMode == '+')
|
||||||
|
for i := 0; i < len(lines) && isTripleQuoted; i++ {
|
||||||
|
lines[i] = strings.TrimPrefix(strings.TrimSuffix(lines[i], "\r"), "\r") // trim leading/trailing carriage returns for legacy Windows endline support
|
||||||
|
isPrintable := func(r rune) bool {
|
||||||
|
return unicode.IsPrint(r) || r == '\t' // specially treat tab as printable
|
||||||
|
}
|
||||||
|
line := lines[i]
|
||||||
|
isTripleQuoted = !strings.HasPrefix(strings.TrimPrefix(line, prefix), `"""`) && !strings.HasPrefix(line, "...") && strings.TrimFunc(line, isPrintable) == "" && len(line) <= maxLen
|
||||||
|
}
|
||||||
|
if isTripleQuoted {
|
||||||
|
var list textList
|
||||||
|
list = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(prefix + `"""`), ElideComma: true})
|
||||||
|
for i, line := range lines {
|
||||||
|
if numElided := len(lines) - i; i == maxLines-1 && numElided > 1 {
|
||||||
|
comment := commentString(fmt.Sprintf("%d elided lines", numElided))
|
||||||
|
list = append(list, textRecord{Diff: opts.DiffMode, Value: textEllipsis, ElideComma: true, Comment: comment})
|
||||||
|
break
|
||||||
|
}
|
||||||
|
list = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(line), ElideComma: true})
|
||||||
|
}
|
||||||
|
list = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(prefix + `"""`), ElideComma: true})
|
||||||
|
return &textWrap{Prefix: "(", Value: list, Suffix: ")"}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format the string as a single-line quoted string.
|
||||||
|
if len(s) > maxLen+len(textEllipsis) {
|
||||||
|
return textLine(prefix + formatString(s[:maxLen]) + string(textEllipsis))
|
||||||
|
}
|
||||||
|
return textLine(prefix + formatString(s))
|
||||||
|
}
|
||||||
|
|
||||||
// formatMapKey formats v as if it were a map key.
|
// formatMapKey formats v as if it were a map key.
|
||||||
// The result is guaranteed to be a single line.
|
// The result is guaranteed to be a single line.
|
||||||
func formatMapKey(v reflect.Value, disambiguate bool, ptrs *pointerReferences) string {
|
func formatMapKey(v reflect.Value, disambiguate bool, ptrs *pointerReferences) string {
|
||||||
|
|
4
vendor/github.com/gophercloud/gophercloud/.travis.yml
generated
vendored
4
vendor/github.com/gophercloud/gophercloud/.travis.yml
generated
vendored
|
@ -7,9 +7,9 @@ install:
|
||||||
- GO111MODULE=off go get github.com/mattn/goveralls
|
- GO111MODULE=off go get github.com/mattn/goveralls
|
||||||
- GO111MODULE=off go get golang.org/x/tools/cmd/goimports
|
- GO111MODULE=off go get golang.org/x/tools/cmd/goimports
|
||||||
go:
|
go:
|
||||||
- "1.11"
|
|
||||||
- "1.12"
|
|
||||||
- "1.13"
|
- "1.13"
|
||||||
|
- "1.14"
|
||||||
|
- "1.15"
|
||||||
- "tip"
|
- "tip"
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
|
|
30
vendor/github.com/gophercloud/gophercloud/.zuul.yaml
generated
vendored
30
vendor/github.com/gophercloud/gophercloud/.zuul.yaml
generated
vendored
|
@ -12,6 +12,7 @@
|
||||||
description: |
|
description: |
|
||||||
Run gophercloud acceptance test on master branch
|
Run gophercloud acceptance test on master branch
|
||||||
run: .zuul/playbooks/gophercloud-acceptance-test/run.yaml
|
run: .zuul/playbooks/gophercloud-acceptance-test/run.yaml
|
||||||
|
timeout: 18000 # 5 hours
|
||||||
nodeset: ubuntu-bionic
|
nodeset: ubuntu-bionic
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
|
@ -22,6 +23,24 @@
|
||||||
run: .zuul/playbooks/gophercloud-acceptance-test-ironic/run.yaml
|
run: .zuul/playbooks/gophercloud-acceptance-test-ironic/run.yaml
|
||||||
nodeset: ubuntu-bionic
|
nodeset: ubuntu-bionic
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: gophercloud-acceptance-test-ussuri
|
||||||
|
parent: gophercloud-acceptance-test
|
||||||
|
description: |
|
||||||
|
Run gophercloud acceptance test on ussuri branch
|
||||||
|
vars:
|
||||||
|
global_env:
|
||||||
|
OS_BRANCH: stable/ussuri
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: gophercloud-acceptance-test-train
|
||||||
|
parent: gophercloud-acceptance-test
|
||||||
|
description: |
|
||||||
|
Run gophercloud acceptance test on train branch
|
||||||
|
vars:
|
||||||
|
global_env:
|
||||||
|
OS_BRANCH: stable/train
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: gophercloud-acceptance-test-stein
|
name: gophercloud-acceptance-test-stein
|
||||||
parent: gophercloud-acceptance-test
|
parent: gophercloud-acceptance-test
|
||||||
|
@ -36,7 +55,6 @@
|
||||||
parent: gophercloud-acceptance-test
|
parent: gophercloud-acceptance-test
|
||||||
description: |
|
description: |
|
||||||
Run gophercloud acceptance test on rocky branch
|
Run gophercloud acceptance test on rocky branch
|
||||||
nodeset: ubuntu-xenial
|
|
||||||
vars:
|
vars:
|
||||||
global_env:
|
global_env:
|
||||||
OS_BRANCH: stable/rocky
|
OS_BRANCH: stable/rocky
|
||||||
|
@ -51,6 +69,8 @@
|
||||||
global_env:
|
global_env:
|
||||||
OS_BRANCH: stable/queens
|
OS_BRANCH: stable/queens
|
||||||
|
|
||||||
|
# NOTE: A Pike-based devstack environment is currently
|
||||||
|
# not building correctly. This might be a temporary issue.
|
||||||
- job:
|
- job:
|
||||||
name: gophercloud-acceptance-test-pike
|
name: gophercloud-acceptance-test-pike
|
||||||
parent: gophercloud-acceptance-test
|
parent: gophercloud-acceptance-test
|
||||||
|
@ -71,6 +91,8 @@
|
||||||
global_env:
|
global_env:
|
||||||
OS_BRANCH: stable/ocata
|
OS_BRANCH: stable/ocata
|
||||||
|
|
||||||
|
# NOTE: A Newton-based devstack environment is currently
|
||||||
|
# not building correctly. This might be a temporary issue.
|
||||||
- job:
|
- job:
|
||||||
name: gophercloud-acceptance-test-newton
|
name: gophercloud-acceptance-test-newton
|
||||||
parent: gophercloud-acceptance-test
|
parent: gophercloud-acceptance-test
|
||||||
|
@ -106,3 +128,9 @@
|
||||||
recheck-stein:
|
recheck-stein:
|
||||||
jobs:
|
jobs:
|
||||||
- gophercloud-acceptance-test-stein
|
- gophercloud-acceptance-test-stein
|
||||||
|
recheck-train:
|
||||||
|
jobs:
|
||||||
|
- gophercloud-acceptance-test-train
|
||||||
|
recheck-ussuri:
|
||||||
|
jobs:
|
||||||
|
- gophercloud-acceptance-test-ussuri
|
||||||
|
|
32
vendor/github.com/gophercloud/gophercloud/CHANGELOG.md
generated
vendored
32
vendor/github.com/gophercloud/gophercloud/CHANGELOG.md
generated
vendored
|
@ -1,4 +1,31 @@
|
||||||
## 0.13.0 (Unlreleased)
|
## 0.14.0 (Unreleased)
|
||||||
|
|
||||||
|
## 0.13.0 (September 27, 2020)
|
||||||
|
|
||||||
|
IMPROVEMENTS
|
||||||
|
|
||||||
|
* Added `ProtocolTerminatedHTTPS` as a valid listener protocol to `loadbalancer/v2/listeners` [GH-1992](https://github.com/gophercloud/gophercloud/pull/1992)
|
||||||
|
* Added `objectstorage/v1/objects.CreateTempURLOpts.Timestamp` [GH-1994](https://github.com/gophercloud/gophercloud/pull/1994)
|
||||||
|
* Added `compute/v2/extensions/schedulerhints.SchedulerHints.DifferentCell` [GH-2012](https://github.com/gophercloud/gophercloud/pull/2012)
|
||||||
|
* Added `loadbalancer/v2/quotas.Get` [GH-2010](https://github.com/gophercloud/gophercloud/pull/2010)
|
||||||
|
* Added `messaging/v2/queues.CreateOpts.EnableEncryptMessages` [GH-2016](https://github.com/gophercloud/gophercloud/pull/2016)
|
||||||
|
* Added `messaging/v2/queues.ListOpts.Name` [GH-2018](https://github.com/gophercloud/gophercloud/pull/2018)
|
||||||
|
* Added `messaging/v2/queues.ListOpts.WithCount` [GH-2018](https://github.com/gophercloud/gophercloud/pull/2018)
|
||||||
|
* Added `loadbalancer/v2/quotas.Update` [GH-2023](https://github.com/gophercloud/gophercloud/pull/2023)
|
||||||
|
* Added `loadbalancer/v2/loadbalancers.ListOpts.AvailabilityZone` [GH-2026](https://github.com/gophercloud/gophercloud/pull/2026)
|
||||||
|
* Added `loadbalancer/v2/loadbalancers.CreateOpts.AvailabilityZone` [GH-2026](https://github.com/gophercloud/gophercloud/pull/2026)
|
||||||
|
* Added `loadbalancer/v2/loadbalancers.LoadBalancer.AvailabilityZone` [GH-2026](https://github.com/gophercloud/gophercloud/pull/2026)
|
||||||
|
* Added `networking/v2/extensions/layer3/routers.ListL3Agents` [GH-2025](https://github.com/gophercloud/gophercloud/pull/2025)
|
||||||
|
|
||||||
|
BUG FIXES
|
||||||
|
|
||||||
|
* Fixed URL escaping in `objectstorage/v1/objects.CreateTempURL` [GH-1994](https://github.com/gophercloud/gophercloud/pull/1994)
|
||||||
|
* Remove unused `ServiceClient` from `compute/v2/servers.CreateOpts` [GH-2004](https://github.com/gophercloud/gophercloud/pull/2004)
|
||||||
|
* Changed `objectstorage/v1/objects.CreateOpts.DeleteAfter` from `int` to `int64` [GH-2014](https://github.com/gophercloud/gophercloud/pull/2014)
|
||||||
|
* Changed `objectstorage/v1/objects.CreateOpts.DeleteAt` from `int` to `int64` [GH-2014](https://github.com/gophercloud/gophercloud/pull/2014)
|
||||||
|
* Changed `objectstorage/v1/objects.UpdateOpts.DeleteAfter` from `int` to `int64` [GH-2014](https://github.com/gophercloud/gophercloud/pull/2014)
|
||||||
|
* Changed `objectstorage/v1/objects.UpdateOpts.DeleteAt` from `int` to `int64` [GH-2014](https://github.com/gophercloud/gophercloud/pull/2014)
|
||||||
|
|
||||||
|
|
||||||
## 0.12.0 (June 25, 2020)
|
## 0.12.0 (June 25, 2020)
|
||||||
|
|
||||||
|
@ -20,6 +47,7 @@ BUG FIXES
|
||||||
* Fixed marshalling of `blockstorage/extensions/backups.ImportBackup.Metadata` [GH-1967](https://github.com/gophercloud/gophercloud/pull/1967)
|
* Fixed marshalling of `blockstorage/extensions/backups.ImportBackup.Metadata` [GH-1967](https://github.com/gophercloud/gophercloud/pull/1967)
|
||||||
* Fixed typo of "OAUth" to "OAuth" in `identity/v3/extensions/oauth1` [GH-1969](https://github.com/gophercloud/gophercloud/pull/1969)
|
* Fixed typo of "OAUth" to "OAuth" in `identity/v3/extensions/oauth1` [GH-1969](https://github.com/gophercloud/gophercloud/pull/1969)
|
||||||
* Fixed goroutine leak during reauthentication [GH-1978](https://github.com/gophercloud/gophercloud/pull/1978)
|
* Fixed goroutine leak during reauthentication [GH-1978](https://github.com/gophercloud/gophercloud/pull/1978)
|
||||||
|
* Changed `baremetalintrospection/v1/introspection.RootDiskType.Size` from `int` to `int64` [GH-1988](https://github.com/gophercloud/gophercloud/pull/1988)
|
||||||
|
|
||||||
## 0.11.0 (May 14, 2020)
|
## 0.11.0 (May 14, 2020)
|
||||||
|
|
||||||
|
@ -197,7 +225,7 @@ IMPROVEMENTS
|
||||||
* Added `MonitorAddress` to `loadbalancer/v2/pools.CreateMemberOpts` [GH-1824](https://github.com/gophercloud/gophercloud/pull/1824)
|
* Added `MonitorAddress` to `loadbalancer/v2/pools.CreateMemberOpts` [GH-1824](https://github.com/gophercloud/gophercloud/pull/1824)
|
||||||
* Added `MonitorPort` to `loadbalancer/v2/pools.CreateMemberOpts` [GH-1824](https://github.com/gophercloud/gophercloud/pull/1824)
|
* Added `MonitorPort` to `loadbalancer/v2/pools.CreateMemberOpts` [GH-1824](https://github.com/gophercloud/gophercloud/pull/1824)
|
||||||
* Changed `Impersonation` to a non-required field in `identity/v3/extensions/trusts.CreateOpts` [GH-1818](https://github.com/gophercloud/gophercloud/pull/1818)
|
* Changed `Impersonation` to a non-required field in `identity/v3/extensions/trusts.CreateOpts` [GH-1818](https://github.com/gophercloud/gophercloud/pull/1818)
|
||||||
* Added `InsertHeaders` to `loadbalancer/v2/listeners.UpdateOpts` [GH-1835]
|
* Added `InsertHeaders` to `loadbalancer/v2/listeners.UpdateOpts` [GH-1835](https://github.com/gophercloud/gophercloud/pull/1835)
|
||||||
* Added `NUMATopology` to `baremetalintrospection/v1/introspection.Data` [GH-1842](https://github.com/gophercloud/gophercloud/pull/1842)
|
* Added `NUMATopology` to `baremetalintrospection/v1/introspection.Data` [GH-1842](https://github.com/gophercloud/gophercloud/pull/1842)
|
||||||
* Added `placement/v1/resourceproviders.Create` [GH-1841](https://github.com/gophercloud/gophercloud/pull/1841)
|
* Added `placement/v1/resourceproviders.Create` [GH-1841](https://github.com/gophercloud/gophercloud/pull/1841)
|
||||||
* Added `blockstorage/extensions/volumeactions.UploadImageOpts.Visibility` [GH-1873](https://github.com/gophercloud/gophercloud/pull/1873)
|
* Added `blockstorage/extensions/volumeactions.UploadImageOpts.Visibility` [GH-1873](https://github.com/gophercloud/gophercloud/pull/1873)
|
||||||
|
|
10
vendor/github.com/gophercloud/gophercloud/go.mod
generated
vendored
10
vendor/github.com/gophercloud/gophercloud/go.mod
generated
vendored
|
@ -1,13 +1,11 @@
|
||||||
module github.com/gophercloud/gophercloud
|
module github.com/gophercloud/gophercloud
|
||||||
|
|
||||||
|
go 1.13
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/kr/pretty v0.2.1 // indirect
|
||||||
golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e
|
golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e
|
||||||
golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933 // indirect
|
|
||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e // indirect
|
|
||||||
golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9 // indirect
|
golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9 // indirect
|
||||||
golang.org/x/text v0.3.2 // indirect
|
|
||||||
golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371 // indirect
|
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 // indirect
|
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
|
||||||
gopkg.in/yaml.v2 v2.2.7
|
gopkg.in/yaml.v2 v2.3.0
|
||||||
)
|
)
|
||||||
|
|
25
vendor/github.com/gophercloud/gophercloud/go.sum
generated
vendored
25
vendor/github.com/gophercloud/gophercloud/go.sum
generated
vendored
|
@ -1,26 +1,19 @@
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
|
||||||
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
|
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e h1:egKlR8l7Nu9vHGWbcUV8lqR4987UfUbBd7GbhqGzNYU=
|
golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e h1:egKlR8l7Nu9vHGWbcUV8lqR4987UfUbBd7GbhqGzNYU=
|
||||||
golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9 h1:ZBzSG/7F4eNKz2L3GE9o300RX0Az1Bw5HF7PDraD+qU=
|
||||||
golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo=
|
|
||||||
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
|
|
9
vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/requests.go
generated
vendored
9
vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/requests.go
generated
vendored
|
@ -199,10 +199,6 @@ type CreateOpts struct {
|
||||||
// Max specifies Maximum number of servers to launch.
|
// Max specifies Maximum number of servers to launch.
|
||||||
Max int `json:"max_count,omitempty"`
|
Max int `json:"max_count,omitempty"`
|
||||||
|
|
||||||
// ServiceClient will allow calls to be made to retrieve an image or
|
|
||||||
// flavor ID by name.
|
|
||||||
ServiceClient *gophercloud.ServiceClient `json:"-"`
|
|
||||||
|
|
||||||
// Tags allows a server to be tagged with single-word metadata.
|
// Tags allows a server to be tagged with single-word metadata.
|
||||||
// Requires microversion 2.52 or later.
|
// Requires microversion 2.52 or later.
|
||||||
Tags []string `json:"tags,omitempty"`
|
Tags []string `json:"tags,omitempty"`
|
||||||
|
@ -211,7 +207,6 @@ type CreateOpts struct {
|
||||||
// ToServerCreateMap assembles a request body based on the contents of a
|
// ToServerCreateMap assembles a request body based on the contents of a
|
||||||
// CreateOpts.
|
// CreateOpts.
|
||||||
func (opts CreateOpts) ToServerCreateMap() (map[string]interface{}, error) {
|
func (opts CreateOpts) ToServerCreateMap() (map[string]interface{}, error) {
|
||||||
opts.ServiceClient = nil
|
|
||||||
b, err := gophercloud.BuildRequestBody(opts, "")
|
b, err := gophercloud.BuildRequestBody(opts, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -447,10 +442,6 @@ type RebuildOpts struct {
|
||||||
// Personality [optional] includes files to inject into the server at launch.
|
// Personality [optional] includes files to inject into the server at launch.
|
||||||
// Rebuild will base64-encode file contents for you.
|
// Rebuild will base64-encode file contents for you.
|
||||||
Personality Personality `json:"personality,omitempty"`
|
Personality Personality `json:"personality,omitempty"`
|
||||||
|
|
||||||
// ServiceClient will allow calls to be made to retrieve an image or
|
|
||||||
// flavor ID by name.
|
|
||||||
ServiceClient *gophercloud.ServiceClient `json:"-"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToServerRebuildMap formats a RebuildOpts struct into a map for use in JSON
|
// ToServerRebuildMap formats a RebuildOpts struct into a map for use in JSON
|
||||||
|
|
2
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway/BUILD.bazel
generated
vendored
2
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway/BUILD.bazel
generated
vendored
|
@ -35,10 +35,12 @@ go_proto_compiler(
|
||||||
deps = [
|
deps = [
|
||||||
"//runtime:go_default_library",
|
"//runtime:go_default_library",
|
||||||
"//utilities:go_default_library",
|
"//utilities:go_default_library",
|
||||||
|
"@com_github_golang_protobuf//descriptor:go_default_library_gen",
|
||||||
"@com_github_golang_protobuf//proto:go_default_library",
|
"@com_github_golang_protobuf//proto:go_default_library",
|
||||||
"@org_golang_google_grpc//:go_default_library",
|
"@org_golang_google_grpc//:go_default_library",
|
||||||
"@org_golang_google_grpc//codes:go_default_library",
|
"@org_golang_google_grpc//codes:go_default_library",
|
||||||
"@org_golang_google_grpc//grpclog:go_default_library",
|
"@org_golang_google_grpc//grpclog:go_default_library",
|
||||||
|
"@org_golang_google_grpc//metadata:go_default_library",
|
||||||
"@org_golang_google_grpc//status:go_default_library",
|
"@org_golang_google_grpc//status:go_default_library",
|
||||||
"@org_golang_x_net//context:go_default_library",
|
"@org_golang_x_net//context:go_default_library",
|
||||||
],
|
],
|
||||||
|
|
|
@ -86,6 +86,14 @@ type Registry struct {
|
||||||
// simpleOperationIDs removes the service prefix from the generated
|
// simpleOperationIDs removes the service prefix from the generated
|
||||||
// operationIDs. This risks generating duplicate operationIDs.
|
// operationIDs. This risks generating duplicate operationIDs.
|
||||||
simpleOperationIDs bool
|
simpleOperationIDs bool
|
||||||
|
|
||||||
|
// warnOnUnboundMethods causes the registry to emit warning logs if an RPC method
|
||||||
|
// has no HttpRule annotation.
|
||||||
|
warnOnUnboundMethods bool
|
||||||
|
|
||||||
|
// generateUnboundMethods causes the registry to generate proxy methods even for
|
||||||
|
// RPC methods that have no HttpRule annotation.
|
||||||
|
generateUnboundMethods bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type repeatedFieldSeparator struct {
|
type repeatedFieldSeparator struct {
|
||||||
|
@ -524,6 +532,16 @@ func (r *Registry) GetSimpleOperationIDs() bool {
|
||||||
return r.simpleOperationIDs
|
return r.simpleOperationIDs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetWarnOnUnboundMethods sets warnOnUnboundMethods
|
||||||
|
func (r *Registry) SetWarnOnUnboundMethods(warn bool) {
|
||||||
|
r.warnOnUnboundMethods = warn
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetGenerateUnboundMethods sets generateUnboundMethods
|
||||||
|
func (r *Registry) SetGenerateUnboundMethods(generate bool) {
|
||||||
|
r.generateUnboundMethods = generate
|
||||||
|
}
|
||||||
|
|
||||||
// sanitizePackageName replaces unallowed character in package name
|
// sanitizePackageName replaces unallowed character in package name
|
||||||
// with allowed character.
|
// with allowed character.
|
||||||
func sanitizePackageName(pkgName string) string {
|
func sanitizePackageName(pkgName string) string {
|
||||||
|
|
|
@ -35,7 +35,20 @@ func (r *Registry) loadServices(file *File) error {
|
||||||
optsList = append(optsList, opts)
|
optsList = append(optsList, opts)
|
||||||
}
|
}
|
||||||
if len(optsList) == 0 {
|
if len(optsList) == 0 {
|
||||||
glog.Warningf("No HttpRule found for method: %s.%s", svc.GetName(), md.GetName())
|
if r.generateUnboundMethods {
|
||||||
|
defaultOpts, err := defaultAPIOptions(svc, md)
|
||||||
|
if err != nil {
|
||||||
|
glog.Errorf("Failed to generate default HttpRule from %s.%s: %v", svc.GetName(), md.GetName(), err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
optsList = append(optsList, defaultOpts)
|
||||||
|
} else {
|
||||||
|
logFn := glog.V(1).Infof
|
||||||
|
if r.warnOnUnboundMethods {
|
||||||
|
logFn = glog.Warningf
|
||||||
|
}
|
||||||
|
logFn("No HttpRule found for method: %s.%s", svc.GetName(), md.GetName())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
meth, err := r.newMethod(svc, md, optsList)
|
meth, err := r.newMethod(svc, md, optsList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -201,6 +214,25 @@ func extractAPIOptions(meth *descriptor.MethodDescriptorProto) (*options.HttpRul
|
||||||
return opts, nil
|
return opts, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func defaultAPIOptions(svc *Service, md *descriptor.MethodDescriptorProto) (*options.HttpRule, error) {
|
||||||
|
// FQSN prefixes the service's full name with a '.', e.g.: '.example.ExampleService'
|
||||||
|
fqsn := strings.TrimPrefix(svc.FQSN(), ".")
|
||||||
|
|
||||||
|
// This generates an HttpRule that matches the gRPC mapping to HTTP/2 described in
|
||||||
|
// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests
|
||||||
|
// i.e.:
|
||||||
|
// * method is POST
|
||||||
|
// * path is "/<service name>/<method name>"
|
||||||
|
// * body should contain the serialized request message
|
||||||
|
rule := &options.HttpRule{
|
||||||
|
Pattern: &options.HttpRule_Post{
|
||||||
|
Post: fmt.Sprintf("/%s/%s", fqsn, md.GetName()),
|
||||||
|
},
|
||||||
|
Body: "*",
|
||||||
|
}
|
||||||
|
return rule, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (r *Registry) newParam(meth *Method, path string) (Parameter, error) {
|
func (r *Registry) newParam(meth *Method, path string) (Parameter, error) {
|
||||||
msg := meth.RequestType
|
msg := meth.RequestType
|
||||||
fields, err := r.resolveFieldPath(msg, path, true)
|
fields, err := r.resolveFieldPath(msg, path, true)
|
||||||
|
|
|
@ -32,11 +32,12 @@ type generator struct {
|
||||||
useRequestContext bool
|
useRequestContext bool
|
||||||
registerFuncSuffix string
|
registerFuncSuffix string
|
||||||
pathType pathType
|
pathType pathType
|
||||||
|
modulePath string
|
||||||
allowPatchFeature bool
|
allowPatchFeature bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// New returns a new generator which generates grpc gateway files.
|
// New returns a new generator which generates grpc gateway files.
|
||||||
func New(reg *descriptor.Registry, useRequestContext bool, registerFuncSuffix, pathTypeString string, allowPatchFeature bool) gen.Generator {
|
func New(reg *descriptor.Registry, useRequestContext bool, registerFuncSuffix, pathTypeString, modulePathString string, allowPatchFeature bool) gen.Generator {
|
||||||
var imports []descriptor.GoPackage
|
var imports []descriptor.GoPackage
|
||||||
for _, pkgpath := range []string{
|
for _, pkgpath := range []string{
|
||||||
"context",
|
"context",
|
||||||
|
@ -49,6 +50,7 @@ func New(reg *descriptor.Registry, useRequestContext bool, registerFuncSuffix, p
|
||||||
"google.golang.org/grpc",
|
"google.golang.org/grpc",
|
||||||
"google.golang.org/grpc/codes",
|
"google.golang.org/grpc/codes",
|
||||||
"google.golang.org/grpc/grpclog",
|
"google.golang.org/grpc/grpclog",
|
||||||
|
"google.golang.org/grpc/metadata",
|
||||||
"google.golang.org/grpc/status",
|
"google.golang.org/grpc/status",
|
||||||
} {
|
} {
|
||||||
pkg := descriptor.GoPackage{
|
pkg := descriptor.GoPackage{
|
||||||
|
@ -84,6 +86,7 @@ func New(reg *descriptor.Registry, useRequestContext bool, registerFuncSuffix, p
|
||||||
useRequestContext: useRequestContext,
|
useRequestContext: useRequestContext,
|
||||||
registerFuncSuffix: registerFuncSuffix,
|
registerFuncSuffix: registerFuncSuffix,
|
||||||
pathType: pathType,
|
pathType: pathType,
|
||||||
|
modulePath: modulePathString,
|
||||||
allowPatchFeature: allowPatchFeature,
|
allowPatchFeature: allowPatchFeature,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,9 +108,10 @@ func (g *generator) Generate(targets []*descriptor.File) ([]*plugin.CodeGenerato
|
||||||
glog.Errorf("%v: %s", err, code)
|
glog.Errorf("%v: %s", err, code)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
name := file.GetName()
|
name, err := g.getFilePath(file)
|
||||||
if g.pathType == pathTypeImport && file.GoPkg.Path != "" {
|
if err != nil {
|
||||||
name = fmt.Sprintf("%s/%s", file.GoPkg.Path, filepath.Base(name))
|
glog.Errorf("%v: %s", err, code)
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
ext := filepath.Ext(name)
|
ext := filepath.Ext(name)
|
||||||
base := strings.TrimSuffix(name, ext)
|
base := strings.TrimSuffix(name, ext)
|
||||||
|
@ -121,6 +125,27 @@ func (g *generator) Generate(targets []*descriptor.File) ([]*plugin.CodeGenerato
|
||||||
return files, nil
|
return files, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (g *generator) getFilePath(file *descriptor.File) (string, error) {
|
||||||
|
name := file.GetName()
|
||||||
|
switch {
|
||||||
|
case g.modulePath != "" && g.pathType != pathTypeImport:
|
||||||
|
return "", errors.New("cannot use module= with paths=")
|
||||||
|
|
||||||
|
case g.modulePath != "":
|
||||||
|
trimPath, pkgPath := g.modulePath+"/", file.GoPkg.Path+"/"
|
||||||
|
if !strings.HasPrefix(pkgPath, trimPath) {
|
||||||
|
return "", fmt.Errorf("%v: file go path does not match module prefix: %v", file.GoPkg.Path, trimPath)
|
||||||
|
}
|
||||||
|
return filepath.Join(strings.TrimPrefix(pkgPath, trimPath), filepath.Base(name)), nil
|
||||||
|
|
||||||
|
case g.pathType == pathTypeImport && file.GoPkg.Path != "":
|
||||||
|
return fmt.Sprintf("%s/%s", file.GoPkg.Path, filepath.Base(name)), nil
|
||||||
|
|
||||||
|
default:
|
||||||
|
return name, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (g *generator) generate(file *descriptor.File) (string, error) {
|
func (g *generator) generate(file *descriptor.File) (string, error) {
|
||||||
pkgSeen := make(map[string]bool)
|
pkgSeen := make(map[string]bool)
|
||||||
var imports []descriptor.GoPackage
|
var imports []descriptor.GoPackage
|
||||||
|
|
|
@ -240,6 +240,7 @@ var _ status.Status
|
||||||
var _ = runtime.String
|
var _ = runtime.String
|
||||||
var _ = utilities.NewDoubleArray
|
var _ = utilities.NewDoubleArray
|
||||||
var _ = descriptor.ForMessage
|
var _ = descriptor.ForMessage
|
||||||
|
var _ = metadata.Join
|
||||||
`))
|
`))
|
||||||
|
|
||||||
handlerTemplate = template.Must(template.New("handler").Parse(`
|
handlerTemplate = template.Must(template.New("handler").Parse(`
|
||||||
|
@ -359,10 +360,10 @@ var (
|
||||||
{{if $param.IsNestedProto3}}
|
{{if $param.IsNestedProto3}}
|
||||||
err = runtime.PopulateFieldFromPath(&protoReq, {{$param | printf "%q"}}, val)
|
err = runtime.PopulateFieldFromPath(&protoReq, {{$param | printf "%q"}}, val)
|
||||||
{{if $enum}}
|
{{if $enum}}
|
||||||
e{{if $param.IsRepeated}}s{{end}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}}, {{$enum.GoType $param.Target.Message.File.GoPkg.Path}}_value)
|
e{{if $param.IsRepeated}}s{{end}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}}, {{$enum.GoType $param.Method.Service.File.GoPkg.Path}}_value)
|
||||||
{{end}}
|
{{end}}
|
||||||
{{else if $enum}}
|
{{else if $enum}}
|
||||||
e{{if $param.IsRepeated}}s{{end}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}}, {{$enum.GoType $param.Target.Message.File.GoPkg.Path}}_value)
|
e{{if $param.IsRepeated}}s{{end}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}}, {{$enum.GoType $param.Method.Service.File.GoPkg.Path}}_value)
|
||||||
{{else}}
|
{{else}}
|
||||||
{{$param.AssignableExpr "protoReq"}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}})
|
{{$param.AssignableExpr "protoReq"}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}})
|
||||||
{{end}}
|
{{end}}
|
||||||
|
@ -370,13 +371,13 @@ var (
|
||||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", {{$param | printf "%q"}}, err)
|
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", {{$param | printf "%q"}}, err)
|
||||||
}
|
}
|
||||||
{{if and $enum $param.IsRepeated}}
|
{{if and $enum $param.IsRepeated}}
|
||||||
s := make([]{{$enum.GoType $param.Target.Message.File.GoPkg.Path}}, len(es))
|
s := make([]{{$enum.GoType $param.Method.Service.File.GoPkg.Path}}, len(es))
|
||||||
for i, v := range es {
|
for i, v := range es {
|
||||||
s[i] = {{$enum.GoType $param.Target.Message.File.GoPkg.Path}}(v)
|
s[i] = {{$enum.GoType $param.Method.Service.File.GoPkg.Path}}(v)
|
||||||
}
|
}
|
||||||
{{$param.AssignableExpr "protoReq"}} = s
|
{{$param.AssignableExpr "protoReq"}} = s
|
||||||
{{else if $enum}}
|
{{else if $enum}}
|
||||||
{{$param.AssignableExpr "protoReq"}} = {{$enum.GoType $param.Target.Message.File.GoPkg.Path}}(e)
|
{{$param.AssignableExpr "protoReq"}} = {{$enum.GoType $param.Method.Service.File.GoPkg.Path}}(e)
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
|
@ -521,10 +522,10 @@ func local_request_{{.Method.Service.GetName}}_{{.Method.GetName}}_{{.Index}}(ct
|
||||||
{{if $param.IsNestedProto3}}
|
{{if $param.IsNestedProto3}}
|
||||||
err = runtime.PopulateFieldFromPath(&protoReq, {{$param | printf "%q"}}, val)
|
err = runtime.PopulateFieldFromPath(&protoReq, {{$param | printf "%q"}}, val)
|
||||||
{{if $enum}}
|
{{if $enum}}
|
||||||
e{{if $param.IsRepeated}}s{{end}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}}, {{$enum.GoType $param.Target.Message.File.GoPkg.Path}}_value)
|
e{{if $param.IsRepeated}}s{{end}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}}, {{$enum.GoType $param.Method.Service.File.GoPkg.Path}}_value)
|
||||||
{{end}}
|
{{end}}
|
||||||
{{else if $enum}}
|
{{else if $enum}}
|
||||||
e{{if $param.IsRepeated}}s{{end}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}}, {{$enum.GoType $param.Target.Message.File.GoPkg.Path}}_value)
|
e{{if $param.IsRepeated}}s{{end}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}}, {{$enum.GoType $param.Method.Service.File.GoPkg.Path}}_value)
|
||||||
{{else}}
|
{{else}}
|
||||||
{{$param.AssignableExpr "protoReq"}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}})
|
{{$param.AssignableExpr "protoReq"}}, err = {{$param.ConvertFuncExpr}}(val{{if $param.IsRepeated}}, {{$binding.Registry.GetRepeatedPathParamSeparator | printf "%c" | printf "%q"}}{{end}})
|
||||||
{{end}}
|
{{end}}
|
||||||
|
@ -532,13 +533,13 @@ func local_request_{{.Method.Service.GetName}}_{{.Method.GetName}}_{{.Index}}(ct
|
||||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", {{$param | printf "%q"}}, err)
|
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", {{$param | printf "%q"}}, err)
|
||||||
}
|
}
|
||||||
{{if and $enum $param.IsRepeated}}
|
{{if and $enum $param.IsRepeated}}
|
||||||
s := make([]{{$enum.GoType $param.Target.Message.File.GoPkg.Path}}, len(es))
|
s := make([]{{$enum.GoType $param.Method.Service.File.GoPkg.Path}}, len(es))
|
||||||
for i, v := range es {
|
for i, v := range es {
|
||||||
s[i] = {{$enum.GoType $param.Target.Message.File.GoPkg.Path}}(v)
|
s[i] = {{$enum.GoType $param.Method.Service.File.GoPkg.Path}}(v)
|
||||||
}
|
}
|
||||||
{{$param.AssignableExpr "protoReq"}} = s
|
{{$param.AssignableExpr "protoReq"}} = s
|
||||||
{{else if $enum}}
|
{{else if $enum}}
|
||||||
{{$param.AssignableExpr "protoReq"}} = {{$enum.GoType $param.Target.Message.File.GoPkg.Path}}(e)
|
{{$param.AssignableExpr "protoReq"}} = {{$enum.GoType $param.Method.Service.File.GoPkg.Path}}(e)
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
|
@ -564,6 +565,7 @@ func local_request_{{.Method.Service.GetName}}_{{.Method.GetName}}_{{.Index}}(ct
|
||||||
// Register{{$svc.GetName}}{{$.RegisterFuncSuffix}}Server registers the http handlers for service {{$svc.GetName}} to "mux".
|
// Register{{$svc.GetName}}{{$.RegisterFuncSuffix}}Server registers the http handlers for service {{$svc.GetName}} to "mux".
|
||||||
// UnaryRPC :call {{$svc.GetName}}Server directly.
|
// UnaryRPC :call {{$svc.GetName}}Server directly.
|
||||||
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
|
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
|
||||||
|
// Note that using this registration option will cause many gRPC library features to stop working. Consider using Register{{$svc.GetName}}{{$.RegisterFuncSuffix}}FromEndpoint instead.
|
||||||
func Register{{$svc.GetName}}{{$.RegisterFuncSuffix}}Server(ctx context.Context, mux *runtime.ServeMux, server {{$svc.GetName}}Server) error {
|
func Register{{$svc.GetName}}{{$.RegisterFuncSuffix}}Server(ctx context.Context, mux *runtime.ServeMux, server {{$svc.GetName}}Server) error {
|
||||||
{{range $m := $svc.Methods}}
|
{{range $m := $svc.Methods}}
|
||||||
{{range $b := $m.Bindings}}
|
{{range $b := $m.Bindings}}
|
||||||
|
@ -582,6 +584,8 @@ func Register{{$svc.GetName}}{{$.RegisterFuncSuffix}}Server(ctx context.Context,
|
||||||
ctx, cancel := context.WithCancel(ctx)
|
ctx, cancel := context.WithCancel(ctx)
|
||||||
{{- end }}
|
{{- end }}
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
var stream runtime.ServerTransportStream
|
||||||
|
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
||||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||||
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
|
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -589,6 +593,7 @@ func Register{{$svc.GetName}}{{$.RegisterFuncSuffix}}Server(ctx context.Context,
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
resp, md, err := local_request_{{$svc.GetName}}_{{$m.GetName}}_{{$b.Index}}(rctx, inboundMarshaler, server, req, pathParams)
|
resp, md, err := local_request_{{$svc.GetName}}_{{$m.GetName}}_{{$b.Index}}(rctx, inboundMarshaler, server, req, pathParams)
|
||||||
|
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
|
||||||
ctx = runtime.NewServerMetadataContext(ctx, md)
|
ctx = runtime.NewServerMetadataContext(ctx, md)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||||
|
|
12
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway/main.go
generated
vendored
12
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway/main.go
generated
vendored
|
@ -30,11 +30,14 @@ var (
|
||||||
allowDeleteBody = flag.Bool("allow_delete_body", false, "unless set, HTTP DELETE methods may not have a body")
|
allowDeleteBody = flag.Bool("allow_delete_body", false, "unless set, HTTP DELETE methods may not have a body")
|
||||||
grpcAPIConfiguration = flag.String("grpc_api_configuration", "", "path to gRPC API Configuration in YAML format")
|
grpcAPIConfiguration = flag.String("grpc_api_configuration", "", "path to gRPC API Configuration in YAML format")
|
||||||
pathType = flag.String("paths", "", "specifies how the paths of generated files are structured")
|
pathType = flag.String("paths", "", "specifies how the paths of generated files are structured")
|
||||||
|
modulePath = flag.String("module", "", "specifies a module prefix that will be stripped from the go package to determine the output directory")
|
||||||
allowRepeatedFieldsInBody = flag.Bool("allow_repeated_fields_in_body", false, "allows to use repeated field in `body` and `response_body` field of `google.api.http` annotation option")
|
allowRepeatedFieldsInBody = flag.Bool("allow_repeated_fields_in_body", false, "allows to use repeated field in `body` and `response_body` field of `google.api.http` annotation option")
|
||||||
repeatedPathParamSeparator = flag.String("repeated_path_param_separator", "csv", "configures how repeated fields should be split. Allowed values are `csv`, `pipes`, `ssv` and `tsv`.")
|
repeatedPathParamSeparator = flag.String("repeated_path_param_separator", "csv", "configures how repeated fields should be split. Allowed values are `csv`, `pipes`, `ssv` and `tsv`.")
|
||||||
allowPatchFeature = flag.Bool("allow_patch_feature", true, "determines whether to use PATCH feature involving update masks (using google.protobuf.FieldMask).")
|
allowPatchFeature = flag.Bool("allow_patch_feature", true, "determines whether to use PATCH feature involving update masks (using google.protobuf.FieldMask).")
|
||||||
allowColonFinalSegments = flag.Bool("allow_colon_final_segments", false, "determines whether colons are permitted in the final segment of a path")
|
allowColonFinalSegments = flag.Bool("allow_colon_final_segments", false, "determines whether colons are permitted in the final segment of a path")
|
||||||
versionFlag = flag.Bool("version", false, "print the current version")
|
versionFlag = flag.Bool("version", false, "print the current version")
|
||||||
|
warnOnUnboundMethods = flag.Bool("warn_on_unbound_methods", false, "emit a warning message if an RPC method has no HttpRule annotation")
|
||||||
|
generateUnboundMethods = flag.Bool("generate_unbound_methods", false, "generate proxy methods even for RPC methods that have no HttpRule annotation")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Variables set by goreleaser at build time
|
// Variables set by goreleaser at build time
|
||||||
|
@ -81,7 +84,7 @@ func main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g := gengateway.New(reg, *useRequestContext, *registerFuncSuffix, *pathType, *allowPatchFeature)
|
g := gengateway.New(reg, *useRequestContext, *registerFuncSuffix, *pathType, *modulePath, *allowPatchFeature)
|
||||||
|
|
||||||
if *grpcAPIConfiguration != "" {
|
if *grpcAPIConfiguration != "" {
|
||||||
if err := reg.LoadGrpcAPIServiceFromYAML(*grpcAPIConfiguration); err != nil {
|
if err := reg.LoadGrpcAPIServiceFromYAML(*grpcAPIConfiguration); err != nil {
|
||||||
|
@ -95,6 +98,13 @@ func main() {
|
||||||
reg.SetAllowDeleteBody(*allowDeleteBody)
|
reg.SetAllowDeleteBody(*allowDeleteBody)
|
||||||
reg.SetAllowRepeatedFieldsInBody(*allowRepeatedFieldsInBody)
|
reg.SetAllowRepeatedFieldsInBody(*allowRepeatedFieldsInBody)
|
||||||
reg.SetAllowColonFinalSegments(*allowColonFinalSegments)
|
reg.SetAllowColonFinalSegments(*allowColonFinalSegments)
|
||||||
|
|
||||||
|
if *warnOnUnboundMethods && *generateUnboundMethods {
|
||||||
|
glog.Warningf("Option warn_on_unbound_methods has no effect when generate_unbound_methods is used.")
|
||||||
|
}
|
||||||
|
|
||||||
|
reg.SetWarnOnUnboundMethods(*warnOnUnboundMethods)
|
||||||
|
reg.SetGenerateUnboundMethods(*generateUnboundMethods)
|
||||||
if err := reg.SetRepeatedPathParamSeparator(*repeatedPathParamSeparator); err != nil {
|
if err := reg.SetRepeatedPathParamSeparator(*repeatedPathParamSeparator); err != nil {
|
||||||
emitError(err)
|
emitError(err)
|
||||||
return
|
return
|
||||||
|
|
11
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/defs.bzl
generated
vendored
11
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/defs.bzl
generated
vendored
|
@ -53,7 +53,8 @@ def _run_proto_gen_swagger(
|
||||||
protoc_gen_swagger,
|
protoc_gen_swagger,
|
||||||
grpc_api_configuration,
|
grpc_api_configuration,
|
||||||
single_output,
|
single_output,
|
||||||
json_names_for_fields):
|
json_names_for_fields,
|
||||||
|
fqn_for_swagger_name):
|
||||||
args = actions.args()
|
args = actions.args()
|
||||||
|
|
||||||
args.add("--plugin", "protoc-gen-swagger=%s" % protoc_gen_swagger.path)
|
args.add("--plugin", "protoc-gen-swagger=%s" % protoc_gen_swagger.path)
|
||||||
|
@ -69,6 +70,9 @@ def _run_proto_gen_swagger(
|
||||||
if json_names_for_fields:
|
if json_names_for_fields:
|
||||||
args.add("--swagger_opt", "json_names_for_fields=true")
|
args.add("--swagger_opt", "json_names_for_fields=true")
|
||||||
|
|
||||||
|
if fqn_for_swagger_name:
|
||||||
|
args.add("--swagger_opt", "fqn_for_swagger_name=true")
|
||||||
|
|
||||||
proto_file_infos = _direct_source_infos(proto_info)
|
proto_file_infos = _direct_source_infos(proto_info)
|
||||||
|
|
||||||
# TODO(yannic): Use |proto_info.transitive_descriptor_sets| when
|
# TODO(yannic): Use |proto_info.transitive_descriptor_sets| when
|
||||||
|
@ -153,6 +157,7 @@ def _proto_gen_swagger_impl(ctx):
|
||||||
grpc_api_configuration = ctx.file.grpc_api_configuration,
|
grpc_api_configuration = ctx.file.grpc_api_configuration,
|
||||||
single_output = ctx.attr.single_output,
|
single_output = ctx.attr.single_output,
|
||||||
json_names_for_fields = ctx.attr.json_names_for_fields,
|
json_names_for_fields = ctx.attr.json_names_for_fields,
|
||||||
|
fqn_for_swagger_name = ctx.attr.fqn_for_swagger_name,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -176,6 +181,10 @@ protoc_gen_swagger = rule(
|
||||||
default = False,
|
default = False,
|
||||||
mandatory = False,
|
mandatory = False,
|
||||||
),
|
),
|
||||||
|
"fqn_for_swagger_name": attr.bool(
|
||||||
|
default = False,
|
||||||
|
mandatory = False,
|
||||||
|
),
|
||||||
"_protoc": attr.label(
|
"_protoc": attr.label(
|
||||||
default = "@com_google_protobuf//:protoc",
|
default = "@com_google_protobuf//:protoc",
|
||||||
executable = True,
|
executable = True,
|
||||||
|
|
|
@ -40,7 +40,6 @@ go_test(
|
||||||
"//protoc-gen-grpc-gateway/httprule:go_default_library",
|
"//protoc-gen-grpc-gateway/httprule:go_default_library",
|
||||||
"//protoc-gen-swagger/options:go_default_library",
|
"//protoc-gen-swagger/options:go_default_library",
|
||||||
"@com_github_golang_protobuf//proto:go_default_library",
|
"@com_github_golang_protobuf//proto:go_default_library",
|
||||||
"@io_bazel_rules_go//proto/wkt:any_go_proto",
|
|
||||||
"@io_bazel_rules_go//proto/wkt:compiler_plugin_go_proto",
|
"@io_bazel_rules_go//proto/wkt:compiler_plugin_go_proto",
|
||||||
"@io_bazel_rules_go//proto/wkt:descriptor_go_proto",
|
"@io_bazel_rules_go//proto/wkt:descriptor_go_proto",
|
||||||
"@io_bazel_rules_go//proto/wkt:struct_go_proto",
|
"@io_bazel_rules_go//proto/wkt:struct_go_proto",
|
||||||
|
|
|
@ -168,7 +168,7 @@ func (g *generator) Generate(targets []*descriptor.File) ([]*plugin.CodeGenerato
|
||||||
for _, f := range targets {
|
for _, f := range targets {
|
||||||
if mergedTarget == nil {
|
if mergedTarget == nil {
|
||||||
mergedTarget = f
|
mergedTarget = f
|
||||||
} else {
|
} else if mergedTarget != f {
|
||||||
mergedTarget.Enums = append(mergedTarget.Enums, f.Enums...)
|
mergedTarget.Enums = append(mergedTarget.Enums, f.Enums...)
|
||||||
mergedTarget.Messages = append(mergedTarget.Messages, f.Messages...)
|
mergedTarget.Messages = append(mergedTarget.Messages, f.Messages...)
|
||||||
mergedTarget.Services = append(mergedTarget.Services, f.Services...)
|
mergedTarget.Services = append(mergedTarget.Services, f.Services...)
|
||||||
|
|
81
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/genswagger/template.go
generated
vendored
81
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/genswagger/template.go
generated
vendored
|
@ -64,8 +64,7 @@ var wktSchemas = map[string]schemaCore{
|
||||||
Format: "double",
|
Format: "double",
|
||||||
},
|
},
|
||||||
".google.protobuf.BoolValue": schemaCore{
|
".google.protobuf.BoolValue": schemaCore{
|
||||||
Type: "boolean",
|
Type: "boolean",
|
||||||
Format: "boolean",
|
|
||||||
},
|
},
|
||||||
".google.protobuf.Empty": schemaCore{},
|
".google.protobuf.Empty": schemaCore{},
|
||||||
".google.protobuf.Struct": schemaCore{
|
".google.protobuf.Struct": schemaCore{
|
||||||
|
@ -109,9 +108,9 @@ func getEnumDefault(enum *descriptor.Enum) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// messageToQueryParameters converts a message to a list of swagger query parameters.
|
// messageToQueryParameters converts a message to a list of swagger query parameters.
|
||||||
func messageToQueryParameters(message *descriptor.Message, reg *descriptor.Registry, pathParams []descriptor.Parameter) (params []swaggerParameterObject, err error) {
|
func messageToQueryParameters(message *descriptor.Message, reg *descriptor.Registry, pathParams []descriptor.Parameter, body *descriptor.Body) (params []swaggerParameterObject, err error) {
|
||||||
for _, field := range message.Fields {
|
for _, field := range message.Fields {
|
||||||
p, err := queryParams(message, field, "", reg, pathParams)
|
p, err := queryParams(message, field, "", reg, pathParams, body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -121,8 +120,8 @@ func messageToQueryParameters(message *descriptor.Message, reg *descriptor.Regis
|
||||||
}
|
}
|
||||||
|
|
||||||
// queryParams converts a field to a list of swagger query parameters recursively through the use of nestedQueryParams.
|
// queryParams converts a field to a list of swagger query parameters recursively through the use of nestedQueryParams.
|
||||||
func queryParams(message *descriptor.Message, field *descriptor.Field, prefix string, reg *descriptor.Registry, pathParams []descriptor.Parameter) (params []swaggerParameterObject, err error) {
|
func queryParams(message *descriptor.Message, field *descriptor.Field, prefix string, reg *descriptor.Registry, pathParams []descriptor.Parameter, body *descriptor.Body) (params []swaggerParameterObject, err error) {
|
||||||
return nestedQueryParams(message, field, prefix, reg, pathParams, map[string]bool{})
|
return nestedQueryParams(message, field, prefix, reg, pathParams, body, map[string]bool{})
|
||||||
}
|
}
|
||||||
|
|
||||||
// nestedQueryParams converts a field to a list of swagger query parameters recursively.
|
// nestedQueryParams converts a field to a list of swagger query parameters recursively.
|
||||||
|
@ -131,13 +130,24 @@ func queryParams(message *descriptor.Message, field *descriptor.Field, prefix st
|
||||||
// touched map[string]bool
|
// touched map[string]bool
|
||||||
// If a cycle is discovered, an error is returned, as cyclical data structures aren't allowed
|
// If a cycle is discovered, an error is returned, as cyclical data structures aren't allowed
|
||||||
// in query parameters.
|
// in query parameters.
|
||||||
func nestedQueryParams(message *descriptor.Message, field *descriptor.Field, prefix string, reg *descriptor.Registry, pathParams []descriptor.Parameter, touched map[string]bool) (params []swaggerParameterObject, err error) {
|
func nestedQueryParams(message *descriptor.Message, field *descriptor.Field, prefix string, reg *descriptor.Registry, pathParams []descriptor.Parameter, body *descriptor.Body, touchedIn map[string]bool) (params []swaggerParameterObject, err error) {
|
||||||
// make sure the parameter is not already listed as a path parameter
|
// make sure the parameter is not already listed as a path parameter
|
||||||
for _, pathParam := range pathParams {
|
for _, pathParam := range pathParams {
|
||||||
if pathParam.Target == field {
|
if pathParam.Target == field {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// make sure the parameter is not already listed as a body parameter
|
||||||
|
if body != nil {
|
||||||
|
if body.FieldPath == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
for _, fieldPath := range body.FieldPath {
|
||||||
|
if fieldPath.Target == field {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
schema := schemaOfField(field, reg, nil)
|
schema := schemaOfField(field, reg, nil)
|
||||||
fieldType := field.GetTypeName()
|
fieldType := field.GetTypeName()
|
||||||
if message.File != nil {
|
if message.File != nil {
|
||||||
|
@ -226,13 +236,21 @@ func nestedQueryParams(message *descriptor.Message, field *descriptor.Field, pre
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("unknown message type %s", fieldType)
|
return nil, fmt.Errorf("unknown message type %s", fieldType)
|
||||||
}
|
}
|
||||||
// Check for cyclical message reference:
|
|
||||||
isCycle := touched[*msg.Name]
|
// Check for cyclical message reference:
|
||||||
if isCycle {
|
isCycle := touchedIn[*msg.Name]
|
||||||
return nil, fmt.Errorf("Recursive types are not allowed for query parameters, cycle found on %q", fieldType)
|
if isCycle {
|
||||||
}
|
return nil, fmt.Errorf("Recursive types are not allowed for query parameters, cycle found on %q", fieldType)
|
||||||
// Update map with the massage name so a cycle further down the recursive path can be detected.
|
}
|
||||||
touched[*msg.Name] = true
|
|
||||||
|
// Construct a new map with the message name so a cycle further down the recursive path can be detected.
|
||||||
|
// Do not keep anything in the original touched reference and do not pass that reference along. This will
|
||||||
|
// prevent clobbering adjacent records while recursing.
|
||||||
|
touchedOut := make(map[string]bool)
|
||||||
|
for k, v := range touchedIn {
|
||||||
|
touchedOut[k] = v
|
||||||
|
}
|
||||||
|
touchedOut[*msg.Name] = true
|
||||||
|
|
||||||
for _, nestedField := range msg.Fields {
|
for _, nestedField := range msg.Fields {
|
||||||
var fieldName string
|
var fieldName string
|
||||||
|
@ -241,7 +259,7 @@ func nestedQueryParams(message *descriptor.Message, field *descriptor.Field, pre
|
||||||
} else {
|
} else {
|
||||||
fieldName = field.GetName()
|
fieldName = field.GetName()
|
||||||
}
|
}
|
||||||
p, err := nestedQueryParams(msg, nestedField, prefix+fieldName+".", reg, pathParams, touched)
|
p, err := nestedQueryParams(msg, nestedField, prefix+fieldName+".", reg, pathParams, body, touchedOut)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -486,7 +504,7 @@ func schemaOfField(f *descriptor.Field, reg *descriptor.Registry, refs refMap) s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if j, err := extractJSONSchemaFromFieldDescriptor(fd); err == nil {
|
if j, err := extractJSONSchemaFromFieldDescriptor(f.FieldDescriptorProto); err == nil {
|
||||||
updateSwaggerObjectFromJSONSchema(&ret, j, reg, f)
|
updateSwaggerObjectFromJSONSchema(&ret, j, reg, f)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -520,9 +538,10 @@ func primitiveSchema(t pbdescriptor.FieldDescriptorProto_Type) (ftype, format st
|
||||||
// Ditto.
|
// Ditto.
|
||||||
return "integer", "int64", true
|
return "integer", "int64", true
|
||||||
case pbdescriptor.FieldDescriptorProto_TYPE_BOOL:
|
case pbdescriptor.FieldDescriptorProto_TYPE_BOOL:
|
||||||
return "boolean", "boolean", true
|
// NOTE: in swagger specification, format should be empty on boolean type
|
||||||
|
return "boolean", "", true
|
||||||
case pbdescriptor.FieldDescriptorProto_TYPE_STRING:
|
case pbdescriptor.FieldDescriptorProto_TYPE_STRING:
|
||||||
// NOTE: in swagger specifition, format should be empty on string type
|
// NOTE: in swagger specification, format should be empty on string type
|
||||||
return "string", "", true
|
return "string", "", true
|
||||||
case pbdescriptor.FieldDescriptorProto_TYPE_BYTES:
|
case pbdescriptor.FieldDescriptorProto_TYPE_BYTES:
|
||||||
return "string", "byte", true
|
return "string", "byte", true
|
||||||
|
@ -751,7 +770,13 @@ func isResourceName(prefix string) bool {
|
||||||
|
|
||||||
func renderServices(services []*descriptor.Service, paths swaggerPathsObject, reg *descriptor.Registry, requestResponseRefs, customRefs refMap, msgs []*descriptor.Message) error {
|
func renderServices(services []*descriptor.Service, paths swaggerPathsObject, reg *descriptor.Registry, requestResponseRefs, customRefs refMap, msgs []*descriptor.Message) error {
|
||||||
// Correctness of svcIdx and methIdx depends on 'services' containing the services in the same order as the 'file.Service' array.
|
// Correctness of svcIdx and methIdx depends on 'services' containing the services in the same order as the 'file.Service' array.
|
||||||
|
svcBaseIdx := 0
|
||||||
|
var lastFile *descriptor.File = nil
|
||||||
for svcIdx, svc := range services {
|
for svcIdx, svc := range services {
|
||||||
|
if svc.File != lastFile {
|
||||||
|
lastFile = svc.File
|
||||||
|
svcBaseIdx = svcIdx
|
||||||
|
}
|
||||||
for methIdx, meth := range svc.Methods {
|
for methIdx, meth := range svc.Methods {
|
||||||
for bIdx, b := range meth.Bindings {
|
for bIdx, b := range meth.Bindings {
|
||||||
// Iterate over all the swagger parameters
|
// Iterate over all the swagger parameters
|
||||||
|
@ -885,9 +910,15 @@ func renderServices(services []*descriptor.Service, paths swaggerPathsObject, re
|
||||||
Required: true,
|
Required: true,
|
||||||
Schema: &schema,
|
Schema: &schema,
|
||||||
})
|
})
|
||||||
|
// add the parameters to the query string
|
||||||
|
queryParams, err := messageToQueryParameters(meth.RequestType, reg, b.PathParams, b.Body)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
parameters = append(parameters, queryParams...)
|
||||||
} else if b.HTTPMethod == "GET" || b.HTTPMethod == "DELETE" {
|
} else if b.HTTPMethod == "GET" || b.HTTPMethod == "DELETE" {
|
||||||
// add the parameters to the query string
|
// add the parameters to the query string
|
||||||
queryParams, err := messageToQueryParameters(meth.RequestType, reg, b.PathParams)
|
queryParams, err := messageToQueryParameters(meth.RequestType, reg, b.PathParams, b.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -986,7 +1017,7 @@ func renderServices(services []*descriptor.Service, paths swaggerPathsObject, re
|
||||||
if hasErrDef {
|
if hasErrDef {
|
||||||
// https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#responses-object
|
// https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#responses-object
|
||||||
operationObject.Responses["default"] = swaggerResponseObject{
|
operationObject.Responses["default"] = swaggerResponseObject{
|
||||||
Description: "An unexpected error response",
|
Description: "An unexpected error response.",
|
||||||
Schema: swaggerSchemaObject{
|
Schema: swaggerSchemaObject{
|
||||||
schemaCore: schemaCore{
|
schemaCore: schemaCore{
|
||||||
Ref: fmt.Sprintf("#/definitions/%s", errDef),
|
Ref: fmt.Sprintf("#/definitions/%s", errDef),
|
||||||
|
@ -1011,7 +1042,7 @@ func renderServices(services []*descriptor.Service, paths swaggerPathsObject, re
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
methComments := protoComments(reg, svc.File, nil, "Service", int32(svcIdx), methProtoPath, int32(methIdx))
|
methComments := protoComments(reg, svc.File, nil, "Service", int32(svcIdx-svcBaseIdx), methProtoPath, int32(methIdx))
|
||||||
if err := updateSwaggerDataFromComments(reg, operationObject, meth, methComments, false); err != nil {
|
if err := updateSwaggerDataFromComments(reg, operationObject, meth, methComments, false); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -1846,6 +1877,9 @@ func swaggerSchemaFromProtoSchema(s *swagger_options.Schema, reg *descriptor.Reg
|
||||||
if s != nil && s.Example != nil {
|
if s != nil && s.Example != nil {
|
||||||
ret.Example = json.RawMessage(s.Example.Value)
|
ret.Example = json.RawMessage(s.Example.Value)
|
||||||
}
|
}
|
||||||
|
if s != nil && s.ExampleString != "" {
|
||||||
|
ret.Example = json.RawMessage(s.ExampleString)
|
||||||
|
}
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
@ -1889,13 +1923,14 @@ func protoJSONSchemaTypeToFormat(in []swagger_options.JSONSchema_JSONSchemaSimpl
|
||||||
case swagger_options.JSONSchema_ARRAY:
|
case swagger_options.JSONSchema_ARRAY:
|
||||||
return "array", ""
|
return "array", ""
|
||||||
case swagger_options.JSONSchema_BOOLEAN:
|
case swagger_options.JSONSchema_BOOLEAN:
|
||||||
return "boolean", "boolean"
|
// NOTE: in swagger specification, format should be empty on boolean type
|
||||||
|
return "boolean", ""
|
||||||
case swagger_options.JSONSchema_INTEGER:
|
case swagger_options.JSONSchema_INTEGER:
|
||||||
return "integer", "int32"
|
return "integer", "int32"
|
||||||
case swagger_options.JSONSchema_NUMBER:
|
case swagger_options.JSONSchema_NUMBER:
|
||||||
return "number", "double"
|
return "number", "double"
|
||||||
case swagger_options.JSONSchema_STRING:
|
case swagger_options.JSONSchema_STRING:
|
||||||
// NOTE: in swagger specifition, format should be empty on string type
|
// NOTE: in swagger specification, format should be empty on string type
|
||||||
return "string", ""
|
return "string", ""
|
||||||
default:
|
default:
|
||||||
// Maybe panic?
|
// Maybe panic?
|
||||||
|
|
2
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/main.go
generated
vendored
2
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/main.go
generated
vendored
|
@ -31,6 +31,7 @@ var (
|
||||||
disableDefaultErrors = flag.Bool("disable_default_errors", false, "if set, disables generation of default errors. This is useful if you have defined custom error handling")
|
disableDefaultErrors = flag.Bool("disable_default_errors", false, "if set, disables generation of default errors. This is useful if you have defined custom error handling")
|
||||||
enumsAsInts = flag.Bool("enums_as_ints", false, "whether to render enum values as integers, as opposed to string values")
|
enumsAsInts = flag.Bool("enums_as_ints", false, "whether to render enum values as integers, as opposed to string values")
|
||||||
simpleOperationIDs = flag.Bool("simple_operation_ids", false, "whether to remove the service prefix in the operationID generation. Can introduce duplicate operationIDs, use with caution.")
|
simpleOperationIDs = flag.Bool("simple_operation_ids", false, "whether to remove the service prefix in the operationID generation. Can introduce duplicate operationIDs, use with caution.")
|
||||||
|
generateUnboundMethods = flag.Bool("generate_unbound_methods", false, "generate swagger metadata even for RPC methods that have no HttpRule annotation")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Variables set by goreleaser at build time
|
// Variables set by goreleaser at build time
|
||||||
|
@ -86,6 +87,7 @@ func main() {
|
||||||
reg.SetEnumsAsInts(*enumsAsInts)
|
reg.SetEnumsAsInts(*enumsAsInts)
|
||||||
reg.SetDisableDefaultErrors(*disableDefaultErrors)
|
reg.SetDisableDefaultErrors(*disableDefaultErrors)
|
||||||
reg.SetSimpleOperationIDs(*simpleOperationIDs)
|
reg.SetSimpleOperationIDs(*simpleOperationIDs)
|
||||||
|
reg.SetGenerateUnboundMethods(*generateUnboundMethods)
|
||||||
if err := reg.SetRepeatedPathParamSeparator(*repeatedPathParamSeparator); err != nil {
|
if err := reg.SetRepeatedPathParamSeparator(*repeatedPathParamSeparator); err != nil {
|
||||||
emitError(err)
|
emitError(err)
|
||||||
return
|
return
|
||||||
|
|
379
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options/openapiv2.pb.go
generated
vendored
379
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options/openapiv2.pb.go
generated
vendored
|
@ -201,6 +201,28 @@ func (SecurityScheme_Flow) EnumDescriptor() ([]byte, []int) {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#swaggerObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#swaggerObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// info: {
|
||||||
|
// title: "Echo API";
|
||||||
|
// version: "1.0";
|
||||||
|
// description: ";
|
||||||
|
// contact: {
|
||||||
|
// name: "gRPC-Gateway project";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway";
|
||||||
|
// email: "none@example.com";
|
||||||
|
// };
|
||||||
|
// license: {
|
||||||
|
// name: "BSD 3-Clause License";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt";
|
||||||
|
// };
|
||||||
|
// };
|
||||||
|
// schemes: HTTPS;
|
||||||
|
// consumes: "application/json";
|
||||||
|
// produces: "application/json";
|
||||||
|
// };
|
||||||
|
//
|
||||||
type Swagger struct {
|
type Swagger struct {
|
||||||
// Specifies the Swagger Specification version being used. It can be
|
// Specifies the Swagger Specification version being used. It can be
|
||||||
// used by the Swagger UI and other clients to interpret the API listing. The
|
// used by the Swagger UI and other clients to interpret the API listing. The
|
||||||
|
@ -367,6 +389,27 @@ func (m *Swagger) GetExtensions() map[string]*_struct.Value {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#operationObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#operationObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// service EchoService {
|
||||||
|
// rpc Echo(SimpleMessage) returns (SimpleMessage) {
|
||||||
|
// option (google.api.http) = {
|
||||||
|
// get: "/v1/example/echo/{id}"
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
|
||||||
|
// summary: "Get a message.";
|
||||||
|
// operation_id: "getMessage";
|
||||||
|
// tags: "echo";
|
||||||
|
// responses: {
|
||||||
|
// key: "200"
|
||||||
|
// value: {
|
||||||
|
// description: "OK";
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// }
|
||||||
type Operation struct {
|
type Operation struct {
|
||||||
// A list of tags for API documentation control. Tags can be used for logical
|
// A list of tags for API documentation control. Tags can be used for logical
|
||||||
// grouping of operations by resources or any other qualifier.
|
// grouping of operations by resources or any other qualifier.
|
||||||
|
@ -600,6 +643,26 @@ func (m *Response) GetExtensions() map[string]*_struct.Value {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#infoObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#infoObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// info: {
|
||||||
|
// title: "Echo API";
|
||||||
|
// version: "1.0";
|
||||||
|
// description: ";
|
||||||
|
// contact: {
|
||||||
|
// name: "gRPC-Gateway project";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway";
|
||||||
|
// email: "none@example.com";
|
||||||
|
// };
|
||||||
|
// license: {
|
||||||
|
// name: "BSD 3-Clause License";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt";
|
||||||
|
// };
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
//
|
||||||
type Info struct {
|
type Info struct {
|
||||||
// The title of the application.
|
// The title of the application.
|
||||||
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
|
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
|
||||||
|
@ -699,6 +762,21 @@ func (m *Info) GetExtensions() map[string]*_struct.Value {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#contactObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#contactObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// info: {
|
||||||
|
// ...
|
||||||
|
// contact: {
|
||||||
|
// name: "gRPC-Gateway project";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway";
|
||||||
|
// email: "none@example.com";
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
//
|
||||||
type Contact struct {
|
type Contact struct {
|
||||||
// The identifying name of the contact person/organization.
|
// The identifying name of the contact person/organization.
|
||||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||||
|
@ -763,6 +841,20 @@ func (m *Contact) GetEmail() string {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#licenseObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#licenseObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// info: {
|
||||||
|
// ...
|
||||||
|
// license: {
|
||||||
|
// name: "BSD 3-Clause License";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt";
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
//
|
||||||
type License struct {
|
type License struct {
|
||||||
// The license name used for the API.
|
// The license name used for the API.
|
||||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||||
|
@ -817,6 +909,17 @@ func (m *License) GetUrl() string {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#externalDocumentationObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#externalDocumentationObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// ...
|
||||||
|
// external_docs: {
|
||||||
|
// description: "More about gRPC-Gateway";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway";
|
||||||
|
// }
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
//
|
||||||
type ExternalDocumentation struct {
|
type ExternalDocumentation struct {
|
||||||
// A short description of the target documentation. GFM syntax can be used for
|
// A short description of the target documentation. GFM syntax can be used for
|
||||||
// rich text representation.
|
// rich text representation.
|
||||||
|
@ -889,7 +992,11 @@ type Schema struct {
|
||||||
// Additional external documentation for this schema.
|
// Additional external documentation for this schema.
|
||||||
ExternalDocs *ExternalDocumentation `protobuf:"bytes,5,opt,name=external_docs,json=externalDocs,proto3" json:"external_docs,omitempty"`
|
ExternalDocs *ExternalDocumentation `protobuf:"bytes,5,opt,name=external_docs,json=externalDocs,proto3" json:"external_docs,omitempty"`
|
||||||
// A free-form property to include an example of an instance for this schema.
|
// A free-form property to include an example of an instance for this schema.
|
||||||
Example *any.Any `protobuf:"bytes,6,opt,name=example,proto3" json:"example,omitempty"`
|
// Deprecated, please use example_string instead.
|
||||||
|
Example *any.Any `protobuf:"bytes,6,opt,name=example,proto3" json:"example,omitempty"` // Deprecated: Do not use.
|
||||||
|
// A free-form property to include a JSON example of this field. This is copied
|
||||||
|
// verbatim to the output swagger.json. Quotes must be escaped.
|
||||||
|
ExampleString string `protobuf:"bytes,7,opt,name=example_string,json=exampleString,proto3" json:"example_string,omitempty"`
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
XXX_unrecognized []byte `json:"-"`
|
XXX_unrecognized []byte `json:"-"`
|
||||||
XXX_sizecache int32 `json:"-"`
|
XXX_sizecache int32 `json:"-"`
|
||||||
|
@ -948,6 +1055,7 @@ func (m *Schema) GetExternalDocs() *ExternalDocumentation {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: Do not use.
|
||||||
func (m *Schema) GetExample() *any.Any {
|
func (m *Schema) GetExample() *any.Any {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Example
|
return m.Example
|
||||||
|
@ -955,6 +1063,13 @@ func (m *Schema) GetExample() *any.Any {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Schema) GetExampleString() string {
|
||||||
|
if m != nil {
|
||||||
|
return m.ExampleString
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
// `JSONSchema` represents properties from JSON Schema taken, and as used, in
|
// `JSONSchema` represents properties from JSON Schema taken, and as used, in
|
||||||
// the OpenAPI v2 spec.
|
// the OpenAPI v2 spec.
|
||||||
//
|
//
|
||||||
|
@ -965,7 +1080,24 @@ func (m *Schema) GetExample() *any.Any {
|
||||||
// See also: https://cswr.github.io/JsonSchema/spec/basic_types/,
|
// See also: https://cswr.github.io/JsonSchema/spec/basic_types/,
|
||||||
// https://github.com/json-schema-org/json-schema-spec/blob/master/schema.json
|
// https://github.com/json-schema-org/json-schema-spec/blob/master/schema.json
|
||||||
//
|
//
|
||||||
// TODO(ivucica): document fields
|
// Example:
|
||||||
|
//
|
||||||
|
// message SimpleMessage {
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = {
|
||||||
|
// json_schema: {
|
||||||
|
// title: "SimpleMessage"
|
||||||
|
// description: "A simple message."
|
||||||
|
// required: ["id"]
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// // Id represents the message identifier.
|
||||||
|
// string id = 1; [
|
||||||
|
// (grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = {
|
||||||
|
// {description: "The unique identifier of the simple message."
|
||||||
|
// }];
|
||||||
|
// }
|
||||||
|
//
|
||||||
type JSONSchema struct {
|
type JSONSchema struct {
|
||||||
// Ref is used to define an external reference to include in the message.
|
// Ref is used to define an external reference to include in the message.
|
||||||
// This could be a fully qualified proto message reference, and that type must
|
// This could be a fully qualified proto message reference, and that type must
|
||||||
|
@ -1597,125 +1729,126 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
var fileDescriptor_ba35ad8af024fb48 = []byte{
|
var fileDescriptor_ba35ad8af024fb48 = []byte{
|
||||||
// 1910 bytes of a gzipped FileDescriptorProto
|
// 1930 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x5b, 0x73, 0x1a, 0xd7,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x5b, 0x77, 0x1a, 0xc7,
|
||||||
0x1d, 0xcf, 0xc2, 0x02, 0xcb, 0x1f, 0x81, 0x8f, 0x8f, 0xe5, 0x74, 0x43, 0x6c, 0x57, 0xa1, 0xe9,
|
0x1d, 0xcf, 0xc2, 0x02, 0xcb, 0x1f, 0x81, 0xc7, 0x63, 0x39, 0xdd, 0x10, 0xdb, 0x55, 0x68, 0x72,
|
||||||
0x54, 0x63, 0xd7, 0x28, 0x51, 0x1e, 0x9a, 0x49, 0xaf, 0x48, 0x22, 0xf2, 0xae, 0x65, 0xa0, 0x0b,
|
0xaa, 0x63, 0xd7, 0x28, 0x51, 0x1e, 0x9a, 0x93, 0x5e, 0x91, 0x44, 0x64, 0xd6, 0x32, 0xd0, 0x05,
|
||||||
0x8a, 0xe2, 0x76, 0x3c, 0xdb, 0xd5, 0x72, 0x40, 0x1b, 0xef, 0x85, 0xec, 0x45, 0x12, 0xfd, 0x04,
|
0x45, 0x71, 0x7b, 0x7c, 0xb6, 0xab, 0x65, 0x40, 0x1b, 0xb3, 0xb3, 0x64, 0x2f, 0x92, 0xe8, 0x27,
|
||||||
0x7d, 0xee, 0xf4, 0x35, 0xdf, 0xa3, 0x0f, 0x7d, 0xea, 0x17, 0x68, 0x3f, 0x4b, 0x3b, 0x7d, 0xef,
|
0xe8, 0x73, 0x4f, 0x5f, 0xf3, 0x3d, 0xfa, 0xdc, 0x2f, 0xd0, 0x7e, 0x8b, 0xbe, 0xb7, 0xa7, 0xef,
|
||||||
0x9c, 0xcb, 0xc2, 0x22, 0x61, 0x0f, 0xc8, 0x76, 0xfb, 0x90, 0x27, 0xce, 0xff, 0xf6, 0x3b, 0x97,
|
0x3d, 0x73, 0x59, 0x58, 0x24, 0xec, 0x03, 0xb2, 0xdd, 0x3e, 0xf4, 0x89, 0xf9, 0xdf, 0x7e, 0x73,
|
||||||
0xff, 0xed, 0x9c, 0x05, 0x1e, 0x4e, 0xc2, 0x20, 0x0e, 0xec, 0xc7, 0x63, 0xe2, 0x3f, 0x8e, 0x2e,
|
0xf9, 0xdf, 0x66, 0x16, 0x78, 0x38, 0x09, 0xfc, 0xc8, 0x77, 0x1e, 0x8f, 0x08, 0x7d, 0x1c, 0x5e,
|
||||||
0xac, 0xf1, 0x98, 0x84, 0x3b, 0xc1, 0x24, 0x76, 0x02, 0x3f, 0xda, 0x09, 0x26, 0xc4, 0xb7, 0x26,
|
0xd8, 0xa3, 0x11, 0x09, 0x76, 0xfc, 0x49, 0xe4, 0xfa, 0x34, 0xdc, 0xf1, 0x27, 0x84, 0xda, 0x13,
|
||||||
0xce, 0xf9, 0x6e, 0x93, 0x29, 0xe1, 0x9f, 0x8c, 0xc3, 0x89, 0xdd, 0x1c, 0x5b, 0x31, 0xb9, 0xb0,
|
0xf7, 0x7c, 0xb7, 0xce, 0x95, 0xf0, 0x8f, 0x47, 0xc1, 0xc4, 0xa9, 0x8f, 0xec, 0x88, 0x5c, 0xd8,
|
||||||
0xa6, 0x9c, 0x67, 0x9b, 0x63, 0xe2, 0x9b, 0xc2, 0xb0, 0x29, 0x0c, 0xeb, 0x1f, 0x8c, 0x83, 0x60,
|
0x53, 0xc1, 0x73, 0xac, 0x11, 0xa1, 0x96, 0x34, 0xac, 0x4b, 0xc3, 0xea, 0x07, 0x23, 0xdf, 0x1f,
|
||||||
0xec, 0x92, 0x1d, 0xa6, 0x72, 0x9a, 0x8c, 0x76, 0x2c, 0x5f, 0xe8, 0xd7, 0xef, 0x5d, 0x15, 0x45,
|
0x8d, 0xc9, 0x0e, 0x57, 0x39, 0x8d, 0x87, 0x3b, 0x36, 0x95, 0xfa, 0xd5, 0x7b, 0x57, 0x45, 0x61,
|
||||||
0x71, 0x98, 0xd8, 0x31, 0x97, 0x36, 0xfe, 0xaa, 0x40, 0xa9, 0xcf, 0xc1, 0xb0, 0x0a, 0x25, 0x81,
|
0x14, 0xc4, 0x4e, 0x24, 0xa4, 0xb5, 0xbf, 0x68, 0x50, 0xe8, 0x09, 0x30, 0xac, 0x43, 0x41, 0xe2,
|
||||||
0xab, 0x4a, 0x5b, 0xd2, 0x76, 0xd9, 0x48, 0x49, 0xdc, 0x02, 0xd9, 0xf1, 0x47, 0x81, 0x9a, 0xdb,
|
0xea, 0xca, 0x96, 0xb2, 0x5d, 0x34, 0x13, 0x12, 0x37, 0x40, 0x75, 0xe9, 0xd0, 0xd7, 0x33, 0x5b,
|
||||||
0x92, 0xb6, 0x2b, 0xbb, 0x8f, 0x9b, 0x2b, 0x2e, 0xab, 0xa9, 0xf9, 0xa3, 0xc0, 0x60, 0xa6, 0x18,
|
0xca, 0x76, 0x69, 0xf7, 0x71, 0x7d, 0xc5, 0x65, 0xd5, 0x5b, 0x74, 0xe8, 0x9b, 0xdc, 0x14, 0x63,
|
||||||
0x83, 0x7c, 0x16, 0x44, 0xb1, 0x9a, 0x67, 0xc8, 0x6c, 0x8c, 0x3f, 0x84, 0xf2, 0xa9, 0x15, 0x11,
|
0x50, 0xcf, 0xfc, 0x30, 0xd2, 0xb3, 0x1c, 0x99, 0x8f, 0xf1, 0x87, 0x50, 0x3c, 0xb5, 0x43, 0x62,
|
||||||
0x73, 0x62, 0xc5, 0x67, 0xaa, 0xcc, 0x04, 0x0a, 0x65, 0xf4, 0xac, 0xf8, 0x0c, 0x7f, 0x0d, 0xa5,
|
0x4d, 0xec, 0xe8, 0x4c, 0x57, 0xb9, 0x40, 0x63, 0x8c, 0xae, 0x1d, 0x9d, 0xe1, 0x6f, 0xa0, 0x10,
|
||||||
0xc8, 0x3e, 0x23, 0x1e, 0x89, 0xd4, 0xc2, 0x56, 0x7e, 0xbb, 0xb6, 0xfb, 0xab, 0x95, 0xa7, 0x15,
|
0x3a, 0x67, 0xc4, 0x23, 0xa1, 0x9e, 0xdb, 0xca, 0x6e, 0x57, 0x76, 0x7f, 0xb9, 0xf2, 0xb4, 0x72,
|
||||||
0x1b, 0x4a, 0x7f, 0xfb, 0x0c, 0xc6, 0x48, 0xe1, 0x70, 0x1d, 0x14, 0x3b, 0xf0, 0xa3, 0x84, 0x42,
|
0x43, 0xc9, 0x6f, 0x8f, 0xc3, 0x98, 0x09, 0x1c, 0xae, 0x82, 0xe6, 0xf8, 0x34, 0x8c, 0x19, 0x74,
|
||||||
0x17, 0xb7, 0xf2, 0x74, 0xd6, 0x94, 0xa6, 0xb2, 0x49, 0x18, 0x0c, 0x13, 0x9b, 0x44, 0x6a, 0x89,
|
0x7e, 0x2b, 0xcb, 0x66, 0x4d, 0x68, 0x26, 0x9b, 0x04, 0xfe, 0x20, 0x76, 0x48, 0xa8, 0x17, 0x84,
|
||||||
0xcb, 0x52, 0x1a, 0xbf, 0x80, 0x72, 0x48, 0xa2, 0x49, 0xe0, 0x47, 0x24, 0x52, 0x61, 0x2b, 0xbf,
|
0x2c, 0xa1, 0xf1, 0x0b, 0x28, 0x06, 0x24, 0x9c, 0xf8, 0x34, 0x24, 0xa1, 0x0e, 0x5b, 0xd9, 0xed,
|
||||||
0x5d, 0xd9, 0xfd, 0xf5, 0xda, 0x6b, 0x32, 0x52, 0x84, 0xb6, 0x1f, 0x87, 0x53, 0x63, 0x8e, 0x88,
|
0xd2, 0xee, 0xaf, 0xd6, 0x5e, 0x93, 0x99, 0x20, 0x34, 0x69, 0x14, 0x4c, 0xcd, 0x39, 0x22, 0xf6,
|
||||||
0x03, 0xd8, 0x8c, 0x88, 0x9d, 0x84, 0x4e, 0x3c, 0x35, 0x87, 0x64, 0xe4, 0xf8, 0x0e, 0xb3, 0x54,
|
0x61, 0x33, 0x24, 0x4e, 0x1c, 0xb8, 0xd1, 0xd4, 0x1a, 0x90, 0xa1, 0x4b, 0x5d, 0x6e, 0xa9, 0x97,
|
||||||
0x2b, 0xec, 0xd0, 0x7f, 0xb1, 0xfa, 0x4c, 0x02, 0xe4, 0x60, 0x8e, 0x61, 0xdc, 0x89, 0xae, 0x33,
|
0xf8, 0xa1, 0xff, 0x7c, 0xf5, 0x99, 0x24, 0xc8, 0xc1, 0x1c, 0xc3, 0xbc, 0x13, 0x5e, 0x67, 0xe2,
|
||||||
0xf1, 0xd7, 0xa0, 0xa4, 0x6c, 0x75, 0x83, 0x6d, 0x67, 0xfd, 0x49, 0x0c, 0xf2, 0x6d, 0xe2, 0x84,
|
0x6f, 0x40, 0x4b, 0xd8, 0xfa, 0x06, 0xdf, 0xce, 0xfa, 0x93, 0x98, 0xe4, 0xbb, 0xd8, 0x0d, 0x88,
|
||||||
0xc4, 0x23, 0x7e, 0x6c, 0xcc, 0xd0, 0xb0, 0x0d, 0x55, 0x72, 0x19, 0x93, 0xd0, 0xb7, 0x5c, 0x73,
|
0x47, 0x68, 0x64, 0xce, 0xd0, 0xb0, 0x03, 0x65, 0x72, 0x19, 0x91, 0x80, 0xda, 0x63, 0x6b, 0xe0,
|
||||||
0x18, 0xd8, 0x91, 0x5a, 0x63, 0x7b, 0x58, 0xdd, 0x83, 0x6d, 0x61, 0x7d, 0x10, 0xd8, 0x09, 0xc5,
|
0x3b, 0xa1, 0x5e, 0xe1, 0x7b, 0x58, 0xdd, 0x83, 0x4d, 0x69, 0x7d, 0xe0, 0x3b, 0x31, 0xc3, 0xb6,
|
||||||
0xb6, 0x28, 0xdb, 0xd8, 0x20, 0x73, 0x76, 0x84, 0xff, 0x00, 0x40, 0x69, 0x3f, 0x62, 0xa7, 0x74,
|
0x19, 0xdb, 0xdc, 0x20, 0x73, 0x76, 0x88, 0x7f, 0x0f, 0xc0, 0x68, 0x1a, 0xf2, 0x53, 0xba, 0xc5,
|
||||||
0x8b, 0x6d, 0xe0, 0x37, 0x6b, 0xfb, 0xa3, 0x3d, 0x83, 0xe0, 0x0e, 0xc9, 0x60, 0xd6, 0x03, 0xa8,
|
0x37, 0xf0, 0xeb, 0xb5, 0xfd, 0xd1, 0x9c, 0x41, 0x08, 0x87, 0xa4, 0x30, 0xab, 0x3e, 0x54, 0x16,
|
||||||
0x2d, 0xba, 0x0b, 0x23, 0xc8, 0xbf, 0x24, 0x53, 0x91, 0x1e, 0x74, 0x88, 0x0f, 0xa1, 0x70, 0x6e,
|
0xdd, 0x85, 0x11, 0x64, 0x5f, 0x92, 0xa9, 0x4c, 0x0f, 0x36, 0xc4, 0x87, 0x90, 0x3b, 0xb7, 0xc7,
|
||||||
0xb9, 0x09, 0x11, 0xb9, 0xf1, 0xe9, 0xca, 0x0b, 0x48, 0x91, 0x0d, 0x6e, 0xff, 0x45, 0xee, 0x73,
|
0x31, 0x91, 0xb9, 0xf1, 0xd9, 0xca, 0x0b, 0x48, 0x90, 0x4d, 0x61, 0xff, 0x65, 0xe6, 0x0b, 0xa5,
|
||||||
0xa9, 0x7e, 0x0c, 0xb7, 0xae, 0xac, 0x67, 0xc9, 0x8c, 0x3f, 0x5d, 0x9c, 0xf1, 0xfd, 0x26, 0x4f,
|
0x7a, 0x0c, 0xb7, 0xae, 0xac, 0x67, 0xc9, 0x8c, 0x3f, 0x59, 0x9c, 0xf1, 0xfd, 0xba, 0x48, 0xf0,
|
||||||
0xf0, 0x66, 0x9a, 0xe0, 0xcd, 0xaf, 0xa8, 0x34, 0x03, 0xdb, 0xd8, 0x83, 0xea, 0x42, 0x2a, 0xe0,
|
0x7a, 0x92, 0xe0, 0xf5, 0xaf, 0x99, 0x34, 0x05, 0x5b, 0xdb, 0x83, 0xf2, 0x42, 0x2a, 0xe0, 0x12,
|
||||||
0x0a, 0x94, 0x8e, 0x3b, 0x4f, 0x3b, 0xdd, 0x93, 0x0e, 0x7a, 0x0f, 0x2b, 0x20, 0x3f, 0x19, 0x0c,
|
0x14, 0x8e, 0xdb, 0x4f, 0xdb, 0x9d, 0x93, 0x36, 0x7a, 0x0f, 0x6b, 0xa0, 0x3e, 0xe9, 0xf7, 0xbb,
|
||||||
0x7a, 0x48, 0xc2, 0x65, 0x28, 0xd0, 0x51, 0x1f, 0xe5, 0x70, 0x11, 0x72, 0x27, 0x7d, 0x94, 0xc7,
|
0x48, 0xc1, 0x45, 0xc8, 0xb1, 0x51, 0x0f, 0x65, 0x70, 0x1e, 0x32, 0x27, 0x3d, 0x94, 0xc5, 0x05,
|
||||||
0x25, 0xc8, 0x9f, 0xf4, 0xfb, 0x48, 0xd6, 0x65, 0x45, 0x41, 0x65, 0x5d, 0x56, 0xca, 0x08, 0x74,
|
0xc8, 0x9e, 0xf4, 0x7a, 0x48, 0x35, 0x54, 0x4d, 0x43, 0x45, 0x43, 0xd5, 0x8a, 0x08, 0x0c, 0x55,
|
||||||
0x59, 0xa9, 0xa2, 0x5a, 0xe3, 0xef, 0x45, 0x28, 0x77, 0x27, 0x24, 0x64, 0xbe, 0xa1, 0xf9, 0x1d,
|
0x2b, 0xa3, 0x4a, 0xed, 0xaf, 0x79, 0x28, 0x76, 0x26, 0x24, 0xe0, 0xbe, 0x61, 0xf9, 0x1d, 0xd9,
|
||||||
0x5b, 0xe3, 0x48, 0x95, 0x58, 0xd2, 0xb0, 0x31, 0x2b, 0x28, 0x89, 0xe7, 0x59, 0xe1, 0x94, 0xad,
|
0xa3, 0x50, 0x57, 0x78, 0xd2, 0xf0, 0x31, 0x2f, 0x28, 0xb1, 0xe7, 0xd9, 0xc1, 0x94, 0xaf, 0x95,
|
||||||
0x95, 0x16, 0x14, 0x4e, 0xe2, 0x2d, 0xa8, 0x0c, 0x49, 0x64, 0x87, 0x0e, 0x3b, 0x0c, 0x51, 0x14,
|
0x15, 0x14, 0x41, 0xe2, 0x2d, 0x28, 0x0d, 0x48, 0xe8, 0x04, 0x2e, 0x3f, 0x0c, 0x59, 0x14, 0xd2,
|
||||||
0xb2, 0xac, 0xeb, 0x21, 0x24, 0xbf, 0x83, 0x10, 0xfa, 0x08, 0x36, 0x82, 0x74, 0x07, 0xa6, 0x33,
|
0xac, 0xeb, 0x21, 0xa4, 0xbe, 0x83, 0x10, 0xfa, 0x08, 0x36, 0xfc, 0x64, 0x07, 0x96, 0x3b, 0xd0,
|
||||||
0x54, 0x0b, 0x7c, 0x1d, 0x33, 0x9e, 0x36, 0xbc, 0x71, 0xb1, 0x30, 0xb3, 0xc5, 0xa2, 0xcc, 0x82,
|
0x73, 0x62, 0x1d, 0x33, 0x5e, 0x6b, 0x70, 0xe3, 0x62, 0x61, 0xa5, 0x8b, 0x45, 0x91, 0x07, 0x67,
|
||||||
0xb3, 0xb5, 0xf2, 0xda, 0x67, 0xc7, 0xfa, 0x9a, 0x72, 0xa1, 0xce, 0xeb, 0x23, 0xb0, 0xb9, 0x67,
|
0x63, 0xe5, 0xb5, 0xcf, 0x8e, 0xf5, 0x35, 0xe5, 0x42, 0x9f, 0xd7, 0x47, 0xe0, 0x73, 0xcf, 0xea,
|
||||||
0xf5, 0xed, 0x01, 0xc0, 0x90, 0x4c, 0x42, 0x62, 0x5b, 0x31, 0x19, 0xb2, 0xf2, 0xa1, 0x18, 0x19,
|
0xdb, 0x03, 0x80, 0x01, 0x99, 0x04, 0xc4, 0xb1, 0x23, 0x32, 0xe0, 0xe5, 0x43, 0x33, 0x53, 0x9c,
|
||||||
0xce, 0x3b, 0xcc, 0xfb, 0xd3, 0x85, 0x94, 0xac, 0x32, 0xec, 0xbd, 0x1b, 0xec, 0xfa, 0x7b, 0x90,
|
0x77, 0x98, 0xf7, 0xa7, 0x0b, 0x29, 0x59, 0xe6, 0xd8, 0x7b, 0x37, 0xd8, 0xf5, 0xff, 0x41, 0x52,
|
||||||
0x94, 0x3c, 0xa1, 0x1a, 0xff, 0xc8, 0x83, 0x92, 0x4e, 0x7a, 0x35, 0x2b, 0xa4, 0xeb, 0x59, 0x71,
|
0x8a, 0x84, 0xaa, 0xfd, 0x2d, 0x0b, 0x5a, 0x32, 0xe9, 0xd5, 0xac, 0x50, 0xae, 0x67, 0xc5, 0x21,
|
||||||
0x08, 0x45, 0xe6, 0x65, 0x4b, 0xcc, 0xb3, 0xb3, 0xba, 0xe3, 0x98, 0x99, 0x21, 0xcc, 0xf1, 0xef,
|
0xe4, 0xb9, 0x97, 0x6d, 0x39, 0xcf, 0xce, 0xea, 0x8e, 0xe3, 0x66, 0xa6, 0x34, 0xc7, 0xbf, 0x03,
|
||||||
0x41, 0x21, 0x97, 0x96, 0x37, 0x71, 0x09, 0xcd, 0xac, 0xf5, 0x5a, 0x59, 0xba, 0xde, 0x66, 0x5b,
|
0x8d, 0x5c, 0xda, 0xde, 0x64, 0x4c, 0x58, 0x66, 0xad, 0xd7, 0xca, 0x92, 0xf5, 0xd6, 0x9b, 0x12,
|
||||||
0x20, 0x70, 0x27, 0xcd, 0x00, 0xb1, 0xb5, 0x10, 0x06, 0x85, 0x35, 0x83, 0x3f, 0x03, 0xff, 0xea,
|
0x41, 0x38, 0x69, 0x06, 0x88, 0xed, 0x85, 0x30, 0xc8, 0xad, 0x19, 0xfc, 0x29, 0xf8, 0x57, 0x47,
|
||||||
0x28, 0xf8, 0x39, 0x54, 0x17, 0x66, 0x5f, 0xe2, 0x92, 0xcd, 0xac, 0x4b, 0xca, 0xff, 0x13, 0x8f,
|
0xc1, 0xcf, 0xa0, 0xbc, 0x30, 0xfb, 0x12, 0x97, 0x6c, 0xa6, 0x5d, 0x52, 0xfc, 0xaf, 0x78, 0x34,
|
||||||
0xe6, 0x91, 0xdc, 0xf8, 0x67, 0x1e, 0x64, 0x7a, 0xef, 0xa1, 0xf3, 0xc7, 0x4e, 0xec, 0x12, 0x01,
|
0x8b, 0xd4, 0xda, 0xdf, 0xb3, 0xa0, 0xb2, 0x7b, 0x0f, 0x9b, 0x3f, 0x72, 0xa3, 0x31, 0x91, 0xa0,
|
||||||
0xca, 0x89, 0xab, 0x3e, 0xce, 0x5d, 0xf7, 0xf1, 0x36, 0xa0, 0x98, 0x84, 0x5e, 0x64, 0x06, 0x23,
|
0x82, 0xb8, 0xea, 0xe3, 0xcc, 0x75, 0x1f, 0x6f, 0x03, 0x8a, 0x48, 0xe0, 0x85, 0x96, 0x3f, 0xb4,
|
||||||
0x33, 0x22, 0xe1, 0xb9, 0x63, 0x13, 0x51, 0x20, 0x6b, 0x8c, 0xdf, 0x1d, 0xf5, 0x39, 0x17, 0xeb,
|
0x42, 0x12, 0x9c, 0xbb, 0x0e, 0x91, 0x05, 0xb2, 0xc2, 0xf9, 0x9d, 0x61, 0x4f, 0x70, 0xb1, 0x01,
|
||||||
0x50, 0xb2, 0x03, 0x3f, 0xb6, 0xec, 0x58, 0x54, 0xc7, 0x4f, 0x56, 0x3e, 0xe4, 0x7d, 0x6e, 0x67,
|
0x05, 0xc7, 0xa7, 0x91, 0xed, 0x44, 0xb2, 0x3a, 0x7e, 0xba, 0xf2, 0x21, 0xef, 0x0b, 0x3b, 0x33,
|
||||||
0xa4, 0x00, 0x14, 0xcb, 0x75, 0x6c, 0xe2, 0x47, 0x84, 0x55, 0xc1, 0x75, 0xb0, 0x8e, 0xb8, 0x9d,
|
0x01, 0x60, 0x58, 0x63, 0xd7, 0x21, 0x34, 0x24, 0xbc, 0x0a, 0xae, 0x83, 0x75, 0x24, 0xec, 0xcc,
|
||||||
0x91, 0x02, 0xd0, 0xd2, 0x74, 0x4e, 0x42, 0x7a, 0xba, 0x6a, 0x91, 0xd7, 0x7d, 0x41, 0xe2, 0x17,
|
0x04, 0x80, 0x95, 0xa6, 0x73, 0x12, 0xb0, 0xd3, 0xd5, 0xf3, 0xa2, 0xee, 0x4b, 0x12, 0xbf, 0x58,
|
||||||
0x0b, 0x91, 0x51, 0x62, 0x91, 0xf1, 0xcb, 0xb5, 0xae, 0x93, 0xaf, 0x8d, 0x8a, 0x77, 0xd4, 0x3f,
|
0x88, 0x8c, 0x02, 0x8f, 0x8c, 0x5f, 0xac, 0x75, 0x9d, 0x7c, 0x6d, 0x54, 0xbc, 0xa3, 0xfe, 0xd9,
|
||||||
0xdb, 0x50, 0x12, 0xe7, 0x45, 0xdb, 0x9c, 0x6f, 0x79, 0xa9, 0x4f, 0xd9, 0x98, 0x4e, 0x91, 0x84,
|
0x84, 0x82, 0x3c, 0x2f, 0xd6, 0xe6, 0xa8, 0xed, 0x25, 0x3e, 0xe5, 0x63, 0x36, 0x45, 0x1c, 0x8c,
|
||||||
0xae, 0x70, 0x25, 0x1d, 0x52, 0xd7, 0x13, 0xcf, 0x72, 0x5c, 0xe1, 0x37, 0x4e, 0x34, 0x76, 0xa0,
|
0xa5, 0x2b, 0xd9, 0x90, 0xb9, 0x9e, 0x78, 0xb6, 0x3b, 0x96, 0x7e, 0x13, 0x44, 0x6d, 0x07, 0x0a,
|
||||||
0x24, 0x8e, 0x6a, 0x35, 0x98, 0xc6, 0x53, 0xb8, 0xbb, 0xb4, 0x8b, 0xad, 0x50, 0x28, 0xae, 0x83,
|
0xf2, 0xa8, 0x56, 0x83, 0xa9, 0x3d, 0x85, 0xbb, 0x4b, 0xbb, 0xd8, 0x0a, 0x85, 0xe2, 0x3a, 0xd8,
|
||||||
0xfd, 0x2d, 0x07, 0x45, 0x5e, 0x04, 0xf0, 0x00, 0x2a, 0xdf, 0x44, 0x81, 0x6f, 0x8a, 0x52, 0x22,
|
0x3f, 0x32, 0x90, 0x17, 0x45, 0x00, 0xf7, 0xa1, 0xf4, 0x6d, 0xe8, 0x53, 0x4b, 0x96, 0x12, 0x85,
|
||||||
0xb1, 0x73, 0xf8, 0x6c, 0x65, 0x37, 0xe8, 0xfd, 0x6e, 0x47, 0x94, 0x13, 0xa0, 0x38, 0x02, 0xf5,
|
0x9f, 0xc3, 0xe7, 0x2b, 0xbb, 0xc1, 0xe8, 0x75, 0xda, 0xb2, 0x9c, 0x00, 0xc3, 0x91, 0xa8, 0x1f,
|
||||||
0x63, 0xa8, 0x0e, 0x1d, 0xba, 0x02, 0xcf, 0xf1, 0xad, 0x38, 0x08, 0xc5, 0xe4, 0x8b, 0x4c, 0x7a,
|
0x43, 0x79, 0xe0, 0xb2, 0x15, 0x78, 0x2e, 0xb5, 0x23, 0x3f, 0x90, 0x93, 0x2f, 0x32, 0xd9, 0x9d,
|
||||||
0xe7, 0x0f, 0x89, 0x35, 0x34, 0x03, 0xdf, 0x9d, 0xb2, 0xe3, 0x51, 0x0c, 0x85, 0x32, 0xba, 0xbe,
|
0x3f, 0x20, 0xf6, 0xc0, 0xf2, 0xe9, 0x78, 0xca, 0x8f, 0x47, 0x33, 0x35, 0xc6, 0xe8, 0xd0, 0xf1,
|
||||||
0xbb, 0xe4, 0xde, 0x58, 0x78, 0x07, 0x4d, 0xbf, 0x09, 0x25, 0x51, 0xa9, 0x58, 0x74, 0x56, 0x76,
|
0x92, 0x7b, 0x63, 0xee, 0x1d, 0x34, 0xfd, 0x5d, 0x28, 0xc8, 0x4a, 0xc5, 0xa3, 0xb3, 0xb4, 0xbb,
|
||||||
0x37, 0xaf, 0x45, 0x40, 0xcb, 0x9f, 0x1a, 0xa9, 0x92, 0x2e, 0x2b, 0x32, 0x2a, 0x34, 0xbe, 0x2b,
|
0x79, 0x2d, 0x02, 0x1a, 0x74, 0xba, 0x97, 0xd1, 0x15, 0x33, 0x51, 0xc4, 0x9f, 0x40, 0x45, 0x0e,
|
||||||
0x01, 0xcc, 0x37, 0x4e, 0xcf, 0x37, 0x24, 0x23, 0xe1, 0x5f, 0x3a, 0x9c, 0xa7, 0x7b, 0xe1, 0x35,
|
0xad, 0x30, 0x0a, 0x5c, 0x3a, 0xd2, 0x0b, 0x62, 0x73, 0x92, 0xdb, 0xe3, 0x4c, 0x43, 0xd5, 0x54,
|
||||||
0xe9, 0x5e, 0xbc, 0xee, 0x29, 0x15, 0x4a, 0x43, 0x32, 0xb2, 0x12, 0x37, 0x56, 0x4b, 0x3c, 0x59,
|
0x94, 0xab, 0x7d, 0x5f, 0x00, 0x98, 0x9f, 0x11, 0x73, 0x45, 0x40, 0x86, 0x32, 0x14, 0xd8, 0x70,
|
||||||
0x04, 0xb9, 0x78, 0x54, 0xca, 0x95, 0xa3, 0xfa, 0x21, 0x54, 0xbc, 0xc4, 0x8d, 0x9d, 0x89, 0x4b,
|
0x5e, 0x19, 0x72, 0xaf, 0xa9, 0x0c, 0xf9, 0xeb, 0x4e, 0xd5, 0xa1, 0x30, 0x20, 0x43, 0x3b, 0x1e,
|
||||||
0xcc, 0x60, 0xa4, 0xc2, 0x96, 0xb4, 0x2d, 0x19, 0x90, 0xb2, 0xba, 0x23, 0x8a, 0xeb, 0x59, 0x97,
|
0x47, 0x72, 0xfa, 0x84, 0x5c, 0x3c, 0x55, 0xed, 0xca, 0xa9, 0xfe, 0x10, 0x4a, 0x5e, 0x3c, 0x8e,
|
||||||
0x8e, 0x97, 0x78, 0xec, 0x0a, 0x20, 0x19, 0x29, 0x89, 0x1f, 0xc1, 0x6d, 0x72, 0x69, 0xbb, 0x49,
|
0x5c, 0xb6, 0x7a, 0x7f, 0xa8, 0xc3, 0x96, 0xb2, 0xad, 0x98, 0x90, 0xb0, 0x3a, 0x43, 0x86, 0xeb,
|
||||||
0xe4, 0x9c, 0x13, 0x33, 0xd5, 0xd9, 0x60, 0xf8, 0x68, 0x26, 0x78, 0x26, 0x94, 0x29, 0x8c, 0xe3,
|
0xd9, 0x97, 0xae, 0x17, 0x7b, 0xfc, 0xb6, 0xa0, 0x98, 0x09, 0x89, 0x1f, 0xc1, 0x6d, 0x72, 0xe9,
|
||||||
0x33, 0x95, 0xaa, 0x80, 0xe1, 0xe4, 0x15, 0x18, 0xa1, 0x53, 0xbb, 0x0a, 0x23, 0x94, 0xef, 0x03,
|
0x8c, 0xe3, 0xd0, 0x3d, 0x27, 0x56, 0xa2, 0xb3, 0xc1, 0xf1, 0xd1, 0x4c, 0xf0, 0x4c, 0x2a, 0x33,
|
||||||
0x78, 0xd6, 0xa5, 0xe9, 0x12, 0x7f, 0x1c, 0x9f, 0xa9, 0xb7, 0xb6, 0xa4, 0x6d, 0xd9, 0x28, 0x7b,
|
0x18, 0x97, 0x72, 0x95, 0xb2, 0x84, 0x11, 0xe4, 0x15, 0x18, 0xa9, 0x53, 0xb9, 0x0a, 0x23, 0x95,
|
||||||
0xd6, 0xe5, 0x11, 0x63, 0x30, 0xb1, 0xe3, 0xa7, 0x62, 0x24, 0xc4, 0x8e, 0x2f, 0xc4, 0x2a, 0x94,
|
0xef, 0x03, 0x78, 0xf6, 0xa5, 0x35, 0x26, 0x74, 0x14, 0x9d, 0xe9, 0xb7, 0xb6, 0x94, 0x6d, 0xd5,
|
||||||
0x26, 0x56, 0x4c, 0x7d, 0xa8, 0xde, 0xe6, 0x67, 0x24, 0x48, 0x7a, 0x46, 0x14, 0xd7, 0x89, 0x89,
|
0x2c, 0x7a, 0xf6, 0xe5, 0x11, 0x67, 0x70, 0xb1, 0x4b, 0x13, 0x31, 0x92, 0x62, 0x97, 0x4a, 0xb1,
|
||||||
0x17, 0xa9, 0x9b, 0xcc, 0x4e, 0xf1, 0xac, 0x4b, 0x8d, 0xd2, 0x4c, 0xe8, 0xf8, 0x42, 0x78, 0x57,
|
0x0e, 0x85, 0x89, 0x1d, 0x31, 0x77, 0xeb, 0xb7, 0xc5, 0x19, 0x49, 0x92, 0x9d, 0x11, 0xc3, 0x75,
|
||||||
0x08, 0x1d, 0x9f, 0x0b, 0x3f, 0x82, 0x8d, 0xc4, 0x77, 0xbe, 0x4d, 0x88, 0x90, 0xbf, 0xcf, 0x56,
|
0x23, 0xe2, 0x85, 0xfa, 0x26, 0xb7, 0xd3, 0x3c, 0xfb, 0xb2, 0xc5, 0x68, 0x2e, 0x74, 0xa9, 0x14,
|
||||||
0x5e, 0xe1, 0x3c, 0xae, 0xf2, 0x63, 0xa8, 0x51, 0xf0, 0x49, 0x48, 0x2f, 0x84, 0xb1, 0x43, 0x22,
|
0xde, 0x95, 0x42, 0x97, 0x0a, 0xe1, 0x47, 0xb0, 0x11, 0x53, 0xf7, 0xbb, 0x98, 0x48, 0xf9, 0xfb,
|
||||||
0x55, 0x65, 0x20, 0x55, 0xcf, 0xba, 0xec, 0xcd, 0x98, 0x4c, 0xcd, 0xf1, 0xb3, 0x6a, 0x1f, 0x08,
|
0x7c, 0xe5, 0x25, 0xc1, 0x13, 0x2a, 0x9f, 0x40, 0x85, 0x81, 0x4f, 0x02, 0x76, 0x77, 0x8c, 0x5c,
|
||||||
0x35, 0xc7, 0xcf, 0xa8, 0xd5, 0x41, 0x09, 0xf9, 0xad, 0x69, 0xa8, 0xd6, 0xf9, 0x6d, 0x31, 0xa5,
|
0x12, 0xea, 0x3a, 0x07, 0x29, 0x7b, 0xf6, 0x65, 0x77, 0xc6, 0xe4, 0x6a, 0x2e, 0x4d, 0xab, 0x7d,
|
||||||
0x69, 0xf0, 0x58, 0x61, 0x68, 0x4d, 0xd5, 0x06, 0x13, 0x70, 0x02, 0xbf, 0x00, 0x39, 0x9e, 0x4e,
|
0x20, 0xd5, 0x5c, 0x9a, 0x52, 0xab, 0x82, 0x16, 0x88, 0x0b, 0xd6, 0x40, 0xaf, 0x8a, 0x8b, 0x65,
|
||||||
0x88, 0xfa, 0x23, 0xf6, 0xfe, 0xd5, 0x6e, 0x90, 0xa0, 0x99, 0x61, 0xdf, 0xa1, 0xd1, 0x3c, 0x98,
|
0x42, 0xb3, 0xe0, 0xb1, 0x83, 0xc0, 0x9e, 0xea, 0x35, 0x2e, 0x10, 0x04, 0x7e, 0x01, 0x6a, 0x34,
|
||||||
0x4e, 0x48, 0x64, 0x30, 0xd8, 0xc6, 0x05, 0xdc, 0x5d, 0x2a, 0x5e, 0x7c, 0x1e, 0x94, 0xa1, 0xd0,
|
0x9d, 0x10, 0xfd, 0x47, 0xfc, 0xa9, 0xdc, 0xba, 0x41, 0x2e, 0xa7, 0x86, 0x3d, 0x97, 0xc5, 0x74,
|
||||||
0x32, 0x8c, 0xd6, 0x73, 0x24, 0x51, 0xfe, 0x5e, 0xb7, 0x7b, 0xd4, 0x6e, 0x75, 0x50, 0x8e, 0x12,
|
0x7f, 0x3a, 0x21, 0xa1, 0xc9, 0x61, 0x6b, 0x17, 0x70, 0x77, 0xa9, 0x78, 0xf1, 0x25, 0x51, 0x84,
|
||||||
0x5a, 0x67, 0xd0, 0x3e, 0x6c, 0x1b, 0x28, 0x4f, 0xdf, 0x10, 0x9d, 0xe3, 0xa3, 0x23, 0x24, 0x63,
|
0x5c, 0xc3, 0x34, 0x1b, 0xcf, 0x91, 0xc2, 0xf8, 0x7b, 0x9d, 0xce, 0x51, 0xb3, 0xd1, 0x46, 0x19,
|
||||||
0x80, 0x62, 0xe7, 0xf8, 0xd9, 0x5e, 0xdb, 0x40, 0x05, 0x3a, 0xee, 0xee, 0xe9, 0xed, 0xfd, 0x01,
|
0x46, 0xb4, 0xda, 0xfd, 0xe6, 0x61, 0xd3, 0x44, 0x59, 0xf6, 0xdc, 0x68, 0x1f, 0x1f, 0x1d, 0x21,
|
||||||
0x2a, 0xd2, 0x71, 0x7f, 0x60, 0x68, 0x9d, 0x43, 0x54, 0xd2, 0x65, 0x45, 0x42, 0x39, 0x5d, 0x56,
|
0x15, 0x03, 0xe4, 0xdb, 0xc7, 0xcf, 0xf6, 0x9a, 0x26, 0xca, 0xb1, 0x71, 0x67, 0xcf, 0x68, 0xee,
|
||||||
0x72, 0x28, 0xcf, 0xb3, 0x6b, 0xf6, 0xae, 0xc0, 0xe8, 0x8e, 0x2e, 0x2b, 0x77, 0xd0, 0xa6, 0x2e,
|
0xf7, 0x51, 0x9e, 0x8d, 0x7b, 0x7d, 0xb3, 0xd5, 0x3e, 0x44, 0x05, 0x43, 0xd5, 0x14, 0x94, 0x31,
|
||||||
0x2b, 0x3f, 0x40, 0xaa, 0x2e, 0x2b, 0x1f, 0xa2, 0x7b, 0xba, 0xac, 0xdc, 0x43, 0xf7, 0x75, 0x59,
|
0x54, 0x2d, 0x83, 0xb2, 0x22, 0xbb, 0x66, 0x4f, 0x10, 0x8c, 0xee, 0x18, 0xaa, 0x76, 0x07, 0x6d,
|
||||||
0xb9, 0x8f, 0x1e, 0xe8, 0xb2, 0xf2, 0x00, 0x35, 0x74, 0x59, 0xf9, 0x18, 0x3d, 0xd4, 0x65, 0xe5,
|
0x1a, 0xaa, 0xf6, 0x03, 0xa4, 0x1b, 0xaa, 0xf6, 0x21, 0xba, 0x67, 0xa8, 0xda, 0x3d, 0x74, 0xdf,
|
||||||
0x21, 0x7a, 0xa4, 0xcb, 0xca, 0x23, 0xd4, 0x6c, 0xfc, 0x59, 0x82, 0xfc, 0xc0, 0x1a, 0xaf, 0xd0,
|
0x50, 0xb5, 0xfb, 0xe8, 0x81, 0xa1, 0x6a, 0x0f, 0x50, 0xcd, 0x50, 0xb5, 0x8f, 0xd1, 0x43, 0x43,
|
||||||
0x5f, 0xaf, 0x15, 0x99, 0xfc, 0xdb, 0x2f, 0x32, 0x7c, 0x8b, 0x8d, 0x7f, 0x4b, 0x70, 0x67, 0xc9,
|
0xd5, 0x1e, 0xa2, 0x47, 0x86, 0xaa, 0x3d, 0x42, 0xf5, 0xda, 0x9f, 0x14, 0xc8, 0xf6, 0xed, 0xd1,
|
||||||
0x73, 0x1c, 0x8f, 0x32, 0x37, 0x70, 0x89, 0x35, 0x41, 0xfd, 0x4d, 0x9e, 0xf7, 0x33, 0x9e, 0xb8,
|
0x0a, 0xad, 0xf8, 0x5a, 0x3d, 0xca, 0xbe, 0xfd, 0x7a, 0x24, 0xb6, 0x58, 0xfb, 0x97, 0x02, 0x77,
|
||||||
0x88, 0xa5, 0xd8, 0xf5, 0x18, 0xaa, 0x0b, 0xa2, 0x25, 0xdd, 0xf0, 0xd9, 0x62, 0x37, 0xfc, 0xd9,
|
0x96, 0xbc, 0xdc, 0xf1, 0x30, 0x75, 0x59, 0x57, 0x78, 0xbf, 0x34, 0xde, 0xe4, 0x4b, 0xc0, 0x8c,
|
||||||
0xda, 0xeb, 0x10, 0x5f, 0x57, 0x32, 0xed, 0xf2, 0x3f, 0x45, 0xa8, 0x2d, 0x4a, 0x71, 0x4f, 0x44,
|
0x27, 0xef, 0x6c, 0x09, 0x76, 0x35, 0x82, 0xf2, 0x82, 0x68, 0x49, 0xe3, 0x7c, 0xb6, 0xd8, 0x38,
|
||||||
0x32, 0x9d, 0xb8, 0x76, 0x83, 0xe7, 0x06, 0x87, 0x69, 0xd2, 0xf0, 0xe4, 0xc1, 0xbb, 0x82, 0x9f,
|
0x7f, 0xba, 0xf6, 0x3a, 0xe4, 0x87, 0x98, 0x54, 0x67, 0xfd, 0x77, 0x1e, 0x2a, 0x8b, 0x52, 0xdc,
|
||||||
0xd3, 0x1e, 0x9b, 0xcf, 0xf4, 0x58, 0x1d, 0x72, 0x8e, 0xcf, 0x2e, 0x4b, 0xb5, 0xdd, 0x2f, 0x6e,
|
0x95, 0x91, 0xcc, 0x26, 0xae, 0xdc, 0xe0, 0x65, 0x22, 0x60, 0xea, 0x2c, 0x3c, 0x45, 0xf0, 0xae,
|
||||||
0xba, 0x0a, 0xcd, 0x37, 0x72, 0x8e, 0x4f, 0xf7, 0x34, 0x72, 0x83, 0x0b, 0x56, 0xef, 0xdf, 0x60,
|
0xe0, 0xe7, 0xa4, 0x1d, 0x67, 0x53, 0xed, 0xd8, 0x80, 0x8c, 0x4b, 0xf9, 0xbd, 0xaa, 0xb2, 0xfb,
|
||||||
0x4f, 0x5f, 0xba, 0xc1, 0x85, 0xc1, 0x90, 0x68, 0x45, 0xb5, 0x92, 0xf8, 0x2c, 0x08, 0x9d, 0x3f,
|
0xe5, 0x4d, 0x57, 0xd1, 0xa2, 0x66, 0xc6, 0xa5, 0x6c, 0x4f, 0xc3, 0xb1, 0x7f, 0xc1, 0xeb, 0xfd,
|
||||||
0xf2, 0x27, 0x29, 0x6d, 0xe1, 0xbc, 0x65, 0xa0, 0x05, 0xc1, 0x71, 0xe8, 0xd2, 0xe2, 0x16, 0x07,
|
0x1b, 0xec, 0xe9, 0xab, 0xb1, 0x7f, 0x61, 0x72, 0x24, 0x56, 0x51, 0xed, 0x38, 0x3a, 0xf3, 0x03,
|
||||||
0x2f, 0x09, 0x57, 0xe2, 0x9d, 0x43, 0x61, 0x0c, 0x2a, 0x64, 0xef, 0x84, 0x60, 0x42, 0x22, 0xd6,
|
0xf7, 0x0f, 0xe2, 0xf5, 0xca, 0xba, 0xbd, 0x68, 0x19, 0x68, 0x41, 0x70, 0x1c, 0x8c, 0x59, 0x71,
|
||||||
0x37, 0xd6, 0x7b, 0x27, 0x50, 0x33, 0x43, 0x98, 0xe3, 0xf1, 0xc2, 0x85, 0x8d, 0xbf, 0x63, 0x0f,
|
0x8b, 0xfc, 0x97, 0x44, 0x28, 0x89, 0xce, 0xa1, 0x71, 0x06, 0x13, 0xf2, 0x27, 0x85, 0x3f, 0x21,
|
||||||
0x6f, 0xba, 0xd5, 0xff, 0xc3, 0xd5, 0xed, 0x29, 0xc8, 0x34, 0x68, 0x30, 0x82, 0x8d, 0xc1, 0xf3,
|
0x21, 0xef, 0x1b, 0xeb, 0x3d, 0x29, 0x98, 0x99, 0x29, 0xcd, 0xf1, 0x68, 0xe1, 0x6e, 0x27, 0x9e,
|
||||||
0x5e, 0xdb, 0xd4, 0x3a, 0x5f, 0xb5, 0x8e, 0xb4, 0x03, 0xf4, 0x1e, 0xae, 0x01, 0x30, 0xce, 0x5e,
|
0xbc, 0x87, 0x37, 0xdd, 0xea, 0xff, 0xe0, 0x96, 0xf7, 0x14, 0x54, 0x16, 0x34, 0x18, 0xc1, 0x46,
|
||||||
0xab, 0xaf, 0xed, 0x23, 0x69, 0xa6, 0xd1, 0xea, 0x69, 0xe6, 0xd3, 0xf6, 0x73, 0x94, 0xc3, 0xb7,
|
0xff, 0x79, 0xb7, 0x69, 0xb5, 0xda, 0x5f, 0x37, 0x8e, 0x5a, 0x07, 0xe8, 0x3d, 0x5c, 0x01, 0xe0,
|
||||||
0xa0, 0xc2, 0x38, 0xdd, 0xd6, 0xf1, 0xe0, 0xc9, 0x2e, 0xca, 0x37, 0x3e, 0x85, 0x9c, 0xe6, 0x53,
|
0x9c, 0xbd, 0x46, 0xaf, 0xb5, 0x8f, 0x94, 0x99, 0x46, 0xa3, 0xdb, 0xb2, 0x9e, 0x36, 0x9f, 0xa3,
|
||||||
0x43, 0xad, 0x93, 0x01, 0xda, 0x00, 0x45, 0xeb, 0x98, 0xbf, 0x3d, 0x6e, 0x1b, 0xb4, 0x46, 0x56,
|
0x0c, 0xbe, 0x05, 0x25, 0xce, 0xe9, 0x34, 0x8e, 0xfb, 0x4f, 0x76, 0x51, 0xb6, 0xf6, 0x19, 0x64,
|
||||||
0xa1, 0xac, 0x75, 0xcc, 0x27, 0xed, 0xd6, 0x41, 0xdb, 0x40, 0xb9, 0xc6, 0x37, 0x20, 0x53, 0x07,
|
0x5a, 0x94, 0x19, 0xb6, 0xda, 0x29, 0xa0, 0x0d, 0xd0, 0x5a, 0x6d, 0xeb, 0x37, 0xc7, 0x4d, 0x93,
|
||||||
0x53, 0xf4, 0x2f, 0x8f, 0xba, 0x27, 0x19, 0xb3, 0xdb, 0x50, 0xe5, 0x9c, 0x67, 0xbd, 0x23, 0x6d,
|
0xd5, 0xc8, 0x32, 0x14, 0x5b, 0x6d, 0xeb, 0x49, 0xb3, 0x71, 0xd0, 0x34, 0x51, 0xa6, 0xf6, 0x2d,
|
||||||
0x5f, 0x1b, 0x20, 0x69, 0xc6, 0xea, 0xb5, 0xfa, 0xfd, 0x93, 0xae, 0x71, 0x80, 0x72, 0x78, 0x13,
|
0xa8, 0xcc, 0xc1, 0x0c, 0xfd, 0xab, 0xa3, 0xce, 0x49, 0xca, 0xec, 0x36, 0x94, 0x05, 0xe7, 0x59,
|
||||||
0x10, 0x63, 0xb5, 0x7a, 0x54, 0xab, 0x35, 0xd0, 0xba, 0x1d, 0x94, 0x9f, 0x73, 0xf7, 0xf7, 0xdb,
|
0xf7, 0xa8, 0xb5, 0xdf, 0xea, 0x23, 0x65, 0xc6, 0xea, 0x36, 0x7a, 0xbd, 0x93, 0x8e, 0x79, 0x80,
|
||||||
0xfd, 0xbe, 0xb9, 0xdf, 0x3d, 0x68, 0x23, 0xb9, 0xf1, 0xaf, 0xdc, 0xbc, 0xda, 0x64, 0xde, 0xe7,
|
0x32, 0x78, 0x13, 0x10, 0x67, 0x35, 0xba, 0x4c, 0xab, 0xd1, 0x6f, 0x75, 0xda, 0x28, 0x3b, 0xe7,
|
||||||
0xf8, 0x4f, 0x52, 0xe6, 0xcb, 0x62, 0x38, 0x17, 0x88, 0xd2, 0x73, 0xfc, 0x26, 0x8f, 0xff, 0x65,
|
0xee, 0xef, 0x37, 0x7b, 0x3d, 0x6b, 0xbf, 0x73, 0xd0, 0x44, 0x6a, 0xed, 0x9f, 0x99, 0x79, 0xb5,
|
||||||
0x3c, 0xee, 0xdc, 0xd9, 0x27, 0xc7, 0x8c, 0xa4, 0xfe, 0x09, 0xa8, 0x4b, 0x0c, 0x98, 0xd7, 0x68,
|
0x49, 0x3d, 0xe5, 0xf1, 0x1f, 0x95, 0xd4, 0x47, 0xc8, 0x60, 0x2e, 0x90, 0xa5, 0xe7, 0xf8, 0x4d,
|
||||||
0x0f, 0x64, 0x41, 0x27, 0x3e, 0x21, 0x71, 0xa2, 0xfe, 0x9d, 0xb4, 0xd4, 0xe4, 0x55, 0x11, 0xf2,
|
0xbe, 0x13, 0x2c, 0xe3, 0x09, 0xe7, 0xce, 0xbe, 0x4e, 0xa6, 0x24, 0xd5, 0x4f, 0x41, 0x5f, 0x62,
|
||||||
0x72, 0x31, 0x42, 0xde, 0xfa, 0xde, 0xae, 0x05, 0xd8, 0x5f, 0x24, 0x7a, 0xad, 0x66, 0xb9, 0xd2,
|
0xc0, 0xbd, 0xc6, 0x7a, 0x20, 0x0f, 0x3a, 0xf9, 0xb5, 0x49, 0x10, 0xd5, 0xef, 0x95, 0xa5, 0x26,
|
||||||
0xcb, 0x6e, 0xa0, 0xb2, 0x4e, 0x7d, 0x61, 0xf6, 0xfc, 0x87, 0x1f, 0x9e, 0xd8, 0xfc, 0xe7, 0x00,
|
0xaf, 0x8a, 0x90, 0x97, 0x8b, 0x11, 0xf2, 0xd6, 0xf7, 0x76, 0x2d, 0xc0, 0xfe, 0xac, 0xb0, 0x1b,
|
||||||
0x73, 0xe6, 0x3a, 0x4f, 0xdc, 0xbd, 0xfd, 0xdf, 0xb5, 0xc6, 0x4e, 0x7c, 0x96, 0x9c, 0x36, 0xed,
|
0x38, 0xcf, 0x95, 0x6e, 0x7a, 0x03, 0xa5, 0x75, 0xea, 0x0b, 0xb7, 0x17, 0x3f, 0xe2, 0xf0, 0xe4,
|
||||||
0xc0, 0xdb, 0xa1, 0x0b, 0x79, 0x4c, 0xec, 0x20, 0x9a, 0x46, 0x31, 0x11, 0xa4, 0x58, 0xd7, 0xce,
|
0xe6, 0xbf, 0x00, 0x98, 0x33, 0xd7, 0x79, 0x0d, 0xef, 0xed, 0xff, 0xb6, 0x31, 0x72, 0xa3, 0xb3,
|
||||||
0xab, 0xff, 0x8e, 0x38, 0x2d, 0x32, 0xd9, 0x67, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xe3, 0xbc,
|
0xf8, 0xb4, 0xee, 0xf8, 0xde, 0x0e, 0x5b, 0xc8, 0x63, 0xe2, 0xf8, 0xe1, 0x34, 0x8c, 0x88, 0x24,
|
||||||
0xdd, 0xdd, 0xb3, 0x18, 0x00, 0x00,
|
0xe5, 0xba, 0x76, 0x5e, 0xfd, 0xcf, 0xc5, 0x69, 0x9e, 0xcb, 0x3e, 0xff, 0x4f, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0x97, 0x08, 0xa3, 0x26, 0xde, 0x18, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
130
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options/openapiv2.proto
generated
vendored
130
vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options/openapiv2.proto
generated
vendored
|
@ -11,6 +11,28 @@ import "google/protobuf/struct.proto";
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#swaggerObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#swaggerObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// info: {
|
||||||
|
// title: "Echo API";
|
||||||
|
// version: "1.0";
|
||||||
|
// description: ";
|
||||||
|
// contact: {
|
||||||
|
// name: "gRPC-Gateway project";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway";
|
||||||
|
// email: "none@example.com";
|
||||||
|
// };
|
||||||
|
// license: {
|
||||||
|
// name: "BSD 3-Clause License";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt";
|
||||||
|
// };
|
||||||
|
// };
|
||||||
|
// schemes: HTTPS;
|
||||||
|
// consumes: "application/json";
|
||||||
|
// produces: "application/json";
|
||||||
|
// };
|
||||||
|
//
|
||||||
message Swagger {
|
message Swagger {
|
||||||
// Specifies the Swagger Specification version being used. It can be
|
// Specifies the Swagger Specification version being used. It can be
|
||||||
// used by the Swagger UI and other clients to interpret the API listing. The
|
// used by the Swagger UI and other clients to interpret the API listing. The
|
||||||
|
@ -81,6 +103,27 @@ message Swagger {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#operationObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#operationObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// service EchoService {
|
||||||
|
// rpc Echo(SimpleMessage) returns (SimpleMessage) {
|
||||||
|
// option (google.api.http) = {
|
||||||
|
// get: "/v1/example/echo/{id}"
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
|
||||||
|
// summary: "Get a message.";
|
||||||
|
// operation_id: "getMessage";
|
||||||
|
// tags: "echo";
|
||||||
|
// responses: {
|
||||||
|
// key: "200"
|
||||||
|
// value: {
|
||||||
|
// description: "OK";
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// }
|
||||||
message Operation {
|
message Operation {
|
||||||
// A list of tags for API documentation control. Tags can be used for logical
|
// A list of tags for API documentation control. Tags can be used for logical
|
||||||
// grouping of operations by resources or any other qualifier.
|
// grouping of operations by resources or any other qualifier.
|
||||||
|
@ -150,6 +193,26 @@ message Response {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#infoObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#infoObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// info: {
|
||||||
|
// title: "Echo API";
|
||||||
|
// version: "1.0";
|
||||||
|
// description: ";
|
||||||
|
// contact: {
|
||||||
|
// name: "gRPC-Gateway project";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway";
|
||||||
|
// email: "none@example.com";
|
||||||
|
// };
|
||||||
|
// license: {
|
||||||
|
// name: "BSD 3-Clause License";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt";
|
||||||
|
// };
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
//
|
||||||
message Info {
|
message Info {
|
||||||
// The title of the application.
|
// The title of the application.
|
||||||
string title = 1;
|
string title = 1;
|
||||||
|
@ -172,6 +235,21 @@ message Info {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#contactObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#contactObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// info: {
|
||||||
|
// ...
|
||||||
|
// contact: {
|
||||||
|
// name: "gRPC-Gateway project";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway";
|
||||||
|
// email: "none@example.com";
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
//
|
||||||
message Contact {
|
message Contact {
|
||||||
// The identifying name of the contact person/organization.
|
// The identifying name of the contact person/organization.
|
||||||
string name = 1;
|
string name = 1;
|
||||||
|
@ -187,6 +265,20 @@ message Contact {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#licenseObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#licenseObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// info: {
|
||||||
|
// ...
|
||||||
|
// license: {
|
||||||
|
// name: "BSD 3-Clause License";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt";
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
//
|
||||||
message License {
|
message License {
|
||||||
// The license name used for the API.
|
// The license name used for the API.
|
||||||
string name = 1;
|
string name = 1;
|
||||||
|
@ -199,6 +291,17 @@ message License {
|
||||||
//
|
//
|
||||||
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#externalDocumentationObject
|
// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#externalDocumentationObject
|
||||||
//
|
//
|
||||||
|
// Example:
|
||||||
|
//
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||||
|
// ...
|
||||||
|
// external_docs: {
|
||||||
|
// description: "More about gRPC-Gateway";
|
||||||
|
// url: "https://github.com/grpc-ecosystem/grpc-gateway";
|
||||||
|
// }
|
||||||
|
// ...
|
||||||
|
// };
|
||||||
|
//
|
||||||
message ExternalDocumentation {
|
message ExternalDocumentation {
|
||||||
// A short description of the target documentation. GFM syntax can be used for
|
// A short description of the target documentation. GFM syntax can be used for
|
||||||
// rich text representation.
|
// rich text representation.
|
||||||
|
@ -231,7 +334,13 @@ message Schema {
|
||||||
// Additional external documentation for this schema.
|
// Additional external documentation for this schema.
|
||||||
ExternalDocumentation external_docs = 5;
|
ExternalDocumentation external_docs = 5;
|
||||||
// A free-form property to include an example of an instance for this schema.
|
// A free-form property to include an example of an instance for this schema.
|
||||||
google.protobuf.Any example = 6;
|
// Deprecated, please use example_string instead.
|
||||||
|
google.protobuf.Any example = 6 [
|
||||||
|
deprecated = true
|
||||||
|
];
|
||||||
|
// A free-form property to include a JSON example of this field. This is copied
|
||||||
|
// verbatim to the output swagger.json. Quotes must be escaped.
|
||||||
|
string example_string = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
// `JSONSchema` represents properties from JSON Schema taken, and as used, in
|
// `JSONSchema` represents properties from JSON Schema taken, and as used, in
|
||||||
|
@ -244,7 +353,24 @@ message Schema {
|
||||||
// See also: https://cswr.github.io/JsonSchema/spec/basic_types/,
|
// See also: https://cswr.github.io/JsonSchema/spec/basic_types/,
|
||||||
// https://github.com/json-schema-org/json-schema-spec/blob/master/schema.json
|
// https://github.com/json-schema-org/json-schema-spec/blob/master/schema.json
|
||||||
//
|
//
|
||||||
// TODO(ivucica): document fields
|
// Example:
|
||||||
|
//
|
||||||
|
// message SimpleMessage {
|
||||||
|
// option (grpc.gateway.protoc_gen_swagger.options.openapiv2_schema) = {
|
||||||
|
// json_schema: {
|
||||||
|
// title: "SimpleMessage"
|
||||||
|
// description: "A simple message."
|
||||||
|
// required: ["id"]
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// // Id represents the message identifier.
|
||||||
|
// string id = 1; [
|
||||||
|
// (grpc.gateway.protoc_gen_swagger.options.openapiv2_field) = {
|
||||||
|
// {description: "The unique identifier of the simple message."
|
||||||
|
// }];
|
||||||
|
// }
|
||||||
|
//
|
||||||
message JSONSchema {
|
message JSONSchema {
|
||||||
// field 1 is reserved for '$id', omitted from OpenAPI v2.
|
// field 1 is reserved for '$id', omitted from OpenAPI v2.
|
||||||
reserved 1;
|
reserved 1;
|
||||||
|
|
88
vendor/github.com/hashicorp/consul/api/agent.go
generated
vendored
88
vendor/github.com/hashicorp/consul/api/agent.go
generated
vendored
|
@ -121,6 +121,70 @@ type AgentServiceConnectProxyConfig struct {
|
||||||
Expose ExposeConfig `json:",omitempty"`
|
Expose ExposeConfig `json:",omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
// MemberTagKeyACLMode is the key used to indicate what ACL mode the agent is
|
||||||
|
// operating in. The values of this key will be one of the MemberACLMode constants
|
||||||
|
// with the key not being present indicating ACLModeUnknown.
|
||||||
|
MemberTagKeyACLMode = "acls"
|
||||||
|
|
||||||
|
// MemberTagRole is the key used to indicate that the member is a server or not.
|
||||||
|
MemberTagKeyRole = "role"
|
||||||
|
|
||||||
|
// MemberTagValueRoleServer is the value of the MemberTagKeyRole used to indicate
|
||||||
|
// that the member represents a Consul server.
|
||||||
|
MemberTagValueRoleServer = "consul"
|
||||||
|
|
||||||
|
// MemberTagKeySegment is the key name of the tag used to indicate which network
|
||||||
|
// segment this member is in.
|
||||||
|
// Network Segments are a Consul Enterprise feature.
|
||||||
|
MemberTagKeySegment = "segment"
|
||||||
|
|
||||||
|
// MemberTagKeyBootstrap is the key name of the tag used to indicate whether this
|
||||||
|
// agent was started with the "bootstrap" configuration enabled
|
||||||
|
MemberTagKeyBootstrap = "bootstrap"
|
||||||
|
// MemberTagValueBootstrap is the value of the MemberTagKeyBootstrap key when the
|
||||||
|
// agent was started with the "bootstrap" configuration enabled.
|
||||||
|
MemberTagValueBootstrap = "1"
|
||||||
|
|
||||||
|
// MemberTagKeyBootstrapExpect is the key name of the tag used to indicate whether
|
||||||
|
// this agent was started with the "bootstrap_expect" configuration set to a non-zero
|
||||||
|
// value. The value of this key will be the string for of that configuration value.
|
||||||
|
MemberTagKeyBootstrapExpect = "expect"
|
||||||
|
|
||||||
|
// MemberTagKeyUseTLS is the key name of the tag used to indicate whther this agent
|
||||||
|
// was configured to use TLS.
|
||||||
|
MemberTagKeyUseTLS = "use_tls"
|
||||||
|
// MemberTagValueUseTLS is the value of the MemberTagKeyUseTLS when the agent was
|
||||||
|
// configured to use TLS. Any other value indicates that it was not setup in
|
||||||
|
// that manner.
|
||||||
|
MemberTagValueUseTLS = "1"
|
||||||
|
|
||||||
|
// MemberTagKeyReadReplica is the key used to indicate that the member is a read
|
||||||
|
// replica server (will remain a Raft non-voter).
|
||||||
|
// Read Replicas are a Consul Enterprise feature.
|
||||||
|
MemberTagKeyReadReplica = "nonvoter"
|
||||||
|
// MemberTagValueReadReplica is the value of the MemberTagKeyReadReplica key when
|
||||||
|
// the member is in fact a read-replica. Any other value indicates that it is not.
|
||||||
|
// Read Replicas are a Consul Enterprise feature.
|
||||||
|
MemberTagValueReadReplica = "1"
|
||||||
|
)
|
||||||
|
|
||||||
|
type MemberACLMode string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ACLModeDisables indicates that ACLs are disabled for this agent
|
||||||
|
ACLModeDisabled MemberACLMode = "0"
|
||||||
|
// ACLModeEnabled indicates that ACLs are enabled and operating in new ACL
|
||||||
|
// mode (v1.4.0+ ACLs)
|
||||||
|
ACLModeEnabled MemberACLMode = "1"
|
||||||
|
// ACLModeLegacy indicates that ACLs are enabled and operating in legacy mode.
|
||||||
|
ACLModeLegacy MemberACLMode = "2"
|
||||||
|
// ACLModeUnkown is used to indicate that the AgentMember.Tags didn't advertise
|
||||||
|
// an ACL mode at all. This is the case for Consul versions before v1.4.0 and
|
||||||
|
// should be treated similarly to ACLModeLegacy.
|
||||||
|
ACLModeUnknown MemberACLMode = "3"
|
||||||
|
)
|
||||||
|
|
||||||
// AgentMember represents a cluster member known to the agent
|
// AgentMember represents a cluster member known to the agent
|
||||||
type AgentMember struct {
|
type AgentMember struct {
|
||||||
Name string
|
Name string
|
||||||
|
@ -136,6 +200,30 @@ type AgentMember struct {
|
||||||
DelegateCur uint8
|
DelegateCur uint8
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ACLMode returns the ACL mode this agent is operating in.
|
||||||
|
func (m *AgentMember) ACLMode() MemberACLMode {
|
||||||
|
mode := m.Tags[MemberTagKeyACLMode]
|
||||||
|
|
||||||
|
// the key may not have existed but then an
|
||||||
|
// empty string will be returned and we will
|
||||||
|
// handle that in the default case of the switch
|
||||||
|
switch MemberACLMode(mode) {
|
||||||
|
case ACLModeDisabled:
|
||||||
|
return ACLModeDisabled
|
||||||
|
case ACLModeEnabled:
|
||||||
|
return ACLModeEnabled
|
||||||
|
case ACLModeLegacy:
|
||||||
|
return ACLModeLegacy
|
||||||
|
default:
|
||||||
|
return ACLModeUnknown
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsConsulServer returns true when this member is a Consul server.
|
||||||
|
func (m *AgentMember) IsConsulServer() bool {
|
||||||
|
return m.Tags[MemberTagKeyRole] == MemberTagValueRoleServer
|
||||||
|
}
|
||||||
|
|
||||||
// AllSegments is used to select for all segments in MembersOpts.
|
// AllSegments is used to select for all segments in MembersOpts.
|
||||||
const AllSegments = "_all"
|
const AllSegments = "_all"
|
||||||
|
|
||||||
|
|
6
vendor/github.com/hashicorp/consul/api/api.go
generated
vendored
6
vendor/github.com/hashicorp/consul/api/api.go
generated
vendored
|
@ -607,9 +607,11 @@ func NewClient(config *Config) (*Client, error) {
|
||||||
trans.DialContext = func(_ context.Context, _, _ string) (net.Conn, error) {
|
trans.DialContext = func(_ context.Context, _, _ string) (net.Conn, error) {
|
||||||
return net.Dial("unix", parts[1])
|
return net.Dial("unix", parts[1])
|
||||||
}
|
}
|
||||||
config.HttpClient = &http.Client{
|
httpClient, err := NewHttpClient(trans, config.TLSConfig)
|
||||||
Transport: trans,
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
config.HttpClient = httpClient
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("Unknown protocol scheme: %s", parts[0])
|
return nil, fmt.Errorf("Unknown protocol scheme: %s", parts[0])
|
||||||
}
|
}
|
||||||
|
|
2
vendor/github.com/hashicorp/consul/api/config_entry.go
generated
vendored
2
vendor/github.com/hashicorp/consul/api/config_entry.go
generated
vendored
|
@ -95,6 +95,7 @@ type ServiceConfigEntry struct {
|
||||||
MeshGateway MeshGatewayConfig `json:",omitempty" alias:"mesh_gateway"`
|
MeshGateway MeshGatewayConfig `json:",omitempty" alias:"mesh_gateway"`
|
||||||
Expose ExposeConfig `json:",omitempty"`
|
Expose ExposeConfig `json:",omitempty"`
|
||||||
ExternalSNI string `json:",omitempty" alias:"external_sni"`
|
ExternalSNI string `json:",omitempty" alias:"external_sni"`
|
||||||
|
Meta map[string]string `json:",omitempty"`
|
||||||
CreateIndex uint64
|
CreateIndex uint64
|
||||||
ModifyIndex uint64
|
ModifyIndex uint64
|
||||||
}
|
}
|
||||||
|
@ -122,6 +123,7 @@ type ProxyConfigEntry struct {
|
||||||
Config map[string]interface{} `json:",omitempty"`
|
Config map[string]interface{} `json:",omitempty"`
|
||||||
MeshGateway MeshGatewayConfig `json:",omitempty" alias:"mesh_gateway"`
|
MeshGateway MeshGatewayConfig `json:",omitempty" alias:"mesh_gateway"`
|
||||||
Expose ExposeConfig `json:",omitempty"`
|
Expose ExposeConfig `json:",omitempty"`
|
||||||
|
Meta map[string]string `json:",omitempty"`
|
||||||
CreateIndex uint64
|
CreateIndex uint64
|
||||||
ModifyIndex uint64
|
ModifyIndex uint64
|
||||||
}
|
}
|
||||||
|
|
3
vendor/github.com/hashicorp/consul/api/config_entry_discoverychain.go
generated
vendored
3
vendor/github.com/hashicorp/consul/api/config_entry_discoverychain.go
generated
vendored
|
@ -12,6 +12,7 @@ type ServiceRouterConfigEntry struct {
|
||||||
|
|
||||||
Routes []ServiceRoute `json:",omitempty"`
|
Routes []ServiceRoute `json:",omitempty"`
|
||||||
|
|
||||||
|
Meta map[string]string `json:",omitempty"`
|
||||||
CreateIndex uint64
|
CreateIndex uint64
|
||||||
ModifyIndex uint64
|
ModifyIndex uint64
|
||||||
}
|
}
|
||||||
|
@ -111,6 +112,7 @@ type ServiceSplitterConfigEntry struct {
|
||||||
|
|
||||||
Splits []ServiceSplit `json:",omitempty"`
|
Splits []ServiceSplit `json:",omitempty"`
|
||||||
|
|
||||||
|
Meta map[string]string `json:",omitempty"`
|
||||||
CreateIndex uint64
|
CreateIndex uint64
|
||||||
ModifyIndex uint64
|
ModifyIndex uint64
|
||||||
}
|
}
|
||||||
|
@ -138,6 +140,7 @@ type ServiceResolverConfigEntry struct {
|
||||||
Failover map[string]ServiceResolverFailover `json:",omitempty"`
|
Failover map[string]ServiceResolverFailover `json:",omitempty"`
|
||||||
ConnectTimeout time.Duration `json:",omitempty" alias:"connect_timeout"`
|
ConnectTimeout time.Duration `json:",omitempty" alias:"connect_timeout"`
|
||||||
|
|
||||||
|
Meta map[string]string `json:",omitempty"`
|
||||||
CreateIndex uint64
|
CreateIndex uint64
|
||||||
ModifyIndex uint64
|
ModifyIndex uint64
|
||||||
}
|
}
|
||||||
|
|
6
vendor/github.com/hashicorp/consul/api/config_entry_gateways.go
generated
vendored
6
vendor/github.com/hashicorp/consul/api/config_entry_gateways.go
generated
vendored
|
@ -21,6 +21,8 @@ type IngressGatewayConfigEntry struct {
|
||||||
// what services to associated to those ports.
|
// what services to associated to those ports.
|
||||||
Listeners []IngressListener
|
Listeners []IngressListener
|
||||||
|
|
||||||
|
Meta map[string]string `json:",omitempty"`
|
||||||
|
|
||||||
// CreateIndex is the Raft index this entry was created at. This is a
|
// CreateIndex is the Raft index this entry was created at. This is a
|
||||||
// read-only field.
|
// read-only field.
|
||||||
CreateIndex uint64
|
CreateIndex uint64
|
||||||
|
@ -44,7 +46,7 @@ type IngressListener struct {
|
||||||
// Protocol declares what type of traffic this listener is expected to
|
// Protocol declares what type of traffic this listener is expected to
|
||||||
// receive. Depending on the protocol, a listener might support multiplexing
|
// receive. Depending on the protocol, a listener might support multiplexing
|
||||||
// services over a single port, or additional discovery chain features. The
|
// services over a single port, or additional discovery chain features. The
|
||||||
// current supported values are: (tcp | http).
|
// current supported values are: (tcp | http | http2 | grpc).
|
||||||
Protocol string
|
Protocol string
|
||||||
|
|
||||||
// Services declares the set of services to which the listener forwards
|
// Services declares the set of services to which the listener forwards
|
||||||
|
@ -115,6 +117,8 @@ type TerminatingGatewayConfigEntry struct {
|
||||||
// Services is a list of service names represented by the terminating gateway.
|
// Services is a list of service names represented by the terminating gateway.
|
||||||
Services []LinkedService `json:",omitempty"`
|
Services []LinkedService `json:",omitempty"`
|
||||||
|
|
||||||
|
Meta map[string]string `json:",omitempty"`
|
||||||
|
|
||||||
// CreateIndex is the Raft index this entry was created at. This is a
|
// CreateIndex is the Raft index this entry was created at. This is a
|
||||||
// read-only field.
|
// read-only field.
|
||||||
CreateIndex uint64
|
CreateIndex uint64
|
||||||
|
|
2
vendor/github.com/hashicorp/consul/api/go.sum
generated
vendored
2
vendor/github.com/hashicorp/consul/api/go.sum
generated
vendored
|
@ -13,8 +13,6 @@ github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
|
||||||
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw=
|
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw=
|
||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/hashicorp/consul/sdk v0.6.0 h1:FfhMEkwvQl57CildXJyGHnwGGM4HMODGyfjGwNM1Vdw=
|
|
||||||
github.com/hashicorp/consul/sdk v0.6.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM=
|
|
||||||
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
|
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
|
||||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
|
github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
|
||||||
|
|
3
vendor/github.com/hashicorp/consul/api/operator_keyring.go
generated
vendored
3
vendor/github.com/hashicorp/consul/api/operator_keyring.go
generated
vendored
|
@ -22,6 +22,9 @@ type KeyringResponse struct {
|
||||||
// A map of the encryption keys to the number of nodes they're installed on
|
// A map of the encryption keys to the number of nodes they're installed on
|
||||||
Keys map[string]int
|
Keys map[string]int
|
||||||
|
|
||||||
|
// A map of the encryption primary keys to the number of nodes they're installed on
|
||||||
|
PrimaryKeys map[string]int
|
||||||
|
|
||||||
// The total number of nodes in this ring
|
// The total number of nodes in this ring
|
||||||
NumNodes int
|
NumNodes int
|
||||||
}
|
}
|
||||||
|
|
2
vendor/github.com/hetznercloud/hcloud-go/hcloud/hcloud.go
generated
vendored
2
vendor/github.com/hetznercloud/hcloud-go/hcloud/hcloud.go
generated
vendored
|
@ -2,4 +2,4 @@
|
||||||
package hcloud
|
package hcloud
|
||||||
|
|
||||||
// Version is the library's version following Semantic Versioning.
|
// Version is the library's version following Semantic Versioning.
|
||||||
const Version = "1.21.1"
|
const Version = "1.22.0"
|
||||||
|
|
1
vendor/github.com/hetznercloud/hcloud-go/hcloud/schema.go
generated
vendored
1
vendor/github.com/hetznercloud/hcloud-go/hcloud/schema.go
generated
vendored
|
@ -140,6 +140,7 @@ func ServerFromSchema(s schema.Server) *Server {
|
||||||
RescueEnabled: s.RescueEnabled,
|
RescueEnabled: s.RescueEnabled,
|
||||||
Datacenter: DatacenterFromSchema(s.Datacenter),
|
Datacenter: DatacenterFromSchema(s.Datacenter),
|
||||||
Locked: s.Locked,
|
Locked: s.Locked,
|
||||||
|
PrimaryDiskSize: s.PrimaryDiskSize,
|
||||||
Protection: ServerProtection{
|
Protection: ServerProtection{
|
||||||
Delete: s.Protection.Delete,
|
Delete: s.Protection.Delete,
|
||||||
Rebuild: s.Protection.Rebuild,
|
Rebuild: s.Protection.Rebuild,
|
||||||
|
|
1
vendor/github.com/hetznercloud/hcloud-go/hcloud/schema/server.go
generated
vendored
1
vendor/github.com/hetznercloud/hcloud-go/hcloud/schema/server.go
generated
vendored
|
@ -23,6 +23,7 @@ type Server struct {
|
||||||
Protection ServerProtection `json:"protection"`
|
Protection ServerProtection `json:"protection"`
|
||||||
Labels map[string]string `json:"labels"`
|
Labels map[string]string `json:"labels"`
|
||||||
Volumes []int `json:"volumes"`
|
Volumes []int `json:"volumes"`
|
||||||
|
PrimaryDiskSize int `json:"primary_disk_size"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServerProtection defines the schema of a server's resource protection.
|
// ServerProtection defines the schema of a server's resource protection.
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue