chore(deps): bump google.golang.org/api from 0.145.0 to 0.148.0 (#2810)
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.145.0 to 0.148.0. - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.145.0...v0.148.0) --- updated-dependencies: - dependency-name: google.golang.org/api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
parent
f894e63706
commit
8d52c9b319
14
go.mod
14
go.mod
|
|
@ -48,10 +48,10 @@ require (
|
|||
)
|
||||
|
||||
require (
|
||||
cloud.google.com/go v0.110.7 // indirect
|
||||
cloud.google.com/go v0.110.8 // indirect
|
||||
cloud.google.com/go/compute v1.23.0 // indirect
|
||||
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
||||
cloud.google.com/go/iam v1.1.1 // indirect
|
||||
cloud.google.com/go/iam v1.1.2 // indirect
|
||||
github.com/Azure/azure-pipeline-go v0.2.3 // indirect
|
||||
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
|
||||
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
||||
|
|
@ -149,10 +149,10 @@ require (
|
|||
golang.org/x/text v0.13.0 // indirect
|
||||
golang.org/x/time v0.1.0 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
|
||||
google.golang.org/api v0.145.0
|
||||
google.golang.org/api v0.148.0
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb // indirect
|
||||
google.golang.org/grpc v1.58.2 // indirect
|
||||
google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect
|
||||
google.golang.org/grpc v1.58.3 // indirect
|
||||
google.golang.org/protobuf v1.31.0 // indirect
|
||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||
)
|
||||
|
|
@ -182,8 +182,8 @@ require (
|
|||
github.com/spf13/viper v1.8.1 // indirect
|
||||
github.com/subosito/gotenv v1.2.0 // indirect
|
||||
github.com/toqueteos/webbrowser v1.2.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a // indirect
|
||||
gopkg.in/ini.v1 v1.62.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
)
|
||||
|
|
|
|||
28
go.sum
28
go.sum
|
|
@ -20,8 +20,8 @@ cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPT
|
|||
cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
|
||||
cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
|
||||
cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
|
||||
cloud.google.com/go v0.110.7 h1:rJyC7nWRg2jWGZ4wSJ5nY65GTdYJkg0cd/uXb+ACI6o=
|
||||
cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
|
||||
cloud.google.com/go v0.110.8 h1:tyNdfIxjzaWctIiLYOTalaLKZ17SI44SKFW26QbOhME=
|
||||
cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk=
|
||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
|
||||
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
|
||||
|
|
@ -35,8 +35,8 @@ cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2Aawl
|
|||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
||||
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
|
||||
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
|
||||
cloud.google.com/go/iam v1.1.1 h1:lW7fzj15aVIXYHREOqjRBV9PsH0Z6u8Y46a1YGvQP4Y=
|
||||
cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
|
||||
cloud.google.com/go/iam v1.1.2 h1:gacbrBdWcoVmGLozRuStX45YKvJtzIjJdAolzUs1sm4=
|
||||
cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
|
||||
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
||||
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
|
||||
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
|
||||
|
|
@ -1007,8 +1007,8 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR
|
|||
google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
|
||||
google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
|
||||
google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8=
|
||||
google.golang.org/api v0.145.0 h1:kBjvf1A3/m30kUvnUX9jZJxTu3lJrpGFt5V/1YZrjwg=
|
||||
google.golang.org/api v0.145.0/go.mod h1:OARJqIfoYjXJj4C1AiBSXYZt03qsoz8FQYU6fBEfrHM=
|
||||
google.golang.org/api v0.148.0 h1:HBq4TZlN4/1pNcu0geJZ/Q50vIwIXT532UIMYoo0vOs=
|
||||
google.golang.org/api v0.148.0/go.mod h1:8/TBgwaKjfqTdacOJrOv2+2Q6fBDU1uHKK06oGSkxzU=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
|
|
@ -1060,12 +1060,12 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D
|
|||
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
|
||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb h1:XFBgcDwm7irdHTbz4Zk2h7Mh+eis4nfJEFQFYzJzuIA=
|
||||
google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb h1:lK0oleSc7IQsUxO3U5TjL9DWlsxpEBemh+zpB7IqhWI=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
|
||||
google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0=
|
||||
google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a h1:a2MQQVoTo96JC9PMGtGBymLp7+/RzpFc2yX/9WfFg1c=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||
|
|
@ -1086,8 +1086,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG
|
|||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||
google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I=
|
||||
google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
|
||||
google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ=
|
||||
google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
|
|
|
|||
|
|
@ -1,6 +1,13 @@
|
|||
# Changes
|
||||
|
||||
|
||||
## [1.1.2](https://github.com/googleapis/google-cloud-go/compare/iam/v1.1.1...iam/v1.1.2) (2023-08-08)
|
||||
|
||||
|
||||
### Documentation
|
||||
|
||||
* **iam:** Minor formatting ([b4349cc](https://github.com/googleapis/google-cloud-go/commit/b4349cc507870ff8629bbc07de578b63bb889626))
|
||||
|
||||
## [1.1.1](https://github.com/googleapis/google-cloud-go/compare/iam/v1.1.0...iam/v1.1.1) (2023-06-20)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2022 Google LLC
|
||||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
|
|
@ -219,6 +219,8 @@ func (AuditConfigDelta_Action) EnumDescriptor() ([]byte, []int) {
|
|||
//
|
||||
// **JSON example:**
|
||||
//
|
||||
// ```
|
||||
//
|
||||
// {
|
||||
// "bindings": [
|
||||
// {
|
||||
|
|
@ -247,8 +249,12 @@ func (AuditConfigDelta_Action) EnumDescriptor() ([]byte, []int) {
|
|||
// "version": 3
|
||||
// }
|
||||
//
|
||||
// ```
|
||||
//
|
||||
// **YAML example:**
|
||||
//
|
||||
// ```
|
||||
//
|
||||
// bindings:
|
||||
// - members:
|
||||
// - user:mike@example.com
|
||||
|
|
@ -266,6 +272,8 @@ func (AuditConfigDelta_Action) EnumDescriptor() ([]byte, []int) {
|
|||
// etag: BwWWja0YfJA=
|
||||
// version: 3
|
||||
//
|
||||
// ```
|
||||
//
|
||||
// For a description of IAM and its features, see the
|
||||
// [IAM documentation](https://cloud.google.com/iam/docs/).
|
||||
type Policy struct {
|
||||
|
|
@ -396,7 +404,7 @@ type Binding struct {
|
|||
// Role that is assigned to the list of `members`, or principals.
|
||||
// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
|
||||
Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
|
||||
// Specifies the principals requesting access for a Cloud Platform resource.
|
||||
// Specifies the principals requesting access for a Google Cloud resource.
|
||||
// `members` can have the following values:
|
||||
//
|
||||
// * `allUsers`: A special identifier that represents anyone who is
|
||||
|
|
@ -558,8 +566,8 @@ func (x *Binding) GetCondition() *expr.Expr {
|
|||
// }
|
||||
//
|
||||
// For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
|
||||
// logging. It also exempts jose@example.com from DATA_READ logging, and
|
||||
// aliya@example.com from DATA_WRITE logging.
|
||||
// logging. It also exempts `jose@example.com` from DATA_READ logging, and
|
||||
// `aliya@example.com` from DATA_WRITE logging.
|
||||
type AuditConfig struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
|
|
@ -770,7 +778,7 @@ type BindingDelta struct {
|
|||
// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
|
||||
// Required
|
||||
Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
|
||||
// A single identity requesting access for a Cloud Platform resource.
|
||||
// A single identity requesting access for a Google Cloud resource.
|
||||
// Follows the same format of Binding.members.
|
||||
// Required
|
||||
Member string `protobuf:"bytes,3,opt,name=member,proto3" json:"member,omitempty"`
|
||||
|
|
|
|||
|
|
@ -349,6 +349,26 @@
|
|||
"release_level": "stable",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/bigquery/biglake/apiv1": {
|
||||
"api_shortname": "biglake",
|
||||
"distribution_name": "cloud.google.com/go/bigquery/biglake/apiv1",
|
||||
"description": "BigLake API",
|
||||
"language": "go",
|
||||
"client_library_type": "generated",
|
||||
"client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/bigquery/latest/biglake/apiv1",
|
||||
"release_level": "preview",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/bigquery/biglake/apiv1alpha1": {
|
||||
"api_shortname": "biglake",
|
||||
"distribution_name": "cloud.google.com/go/bigquery/biglake/apiv1alpha1",
|
||||
"description": "BigLake API",
|
||||
"language": "go",
|
||||
"client_library_type": "generated",
|
||||
"client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/bigquery/latest/biglake/apiv1alpha1",
|
||||
"release_level": "preview",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/bigquery/connection/apiv1": {
|
||||
"api_shortname": "bigqueryconnection",
|
||||
"distribution_name": "cloud.google.com/go/bigquery/connection/apiv1",
|
||||
|
|
@ -659,6 +679,16 @@
|
|||
"release_level": "preview",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/config/apiv1": {
|
||||
"api_shortname": "config",
|
||||
"distribution_name": "cloud.google.com/go/config/apiv1",
|
||||
"description": "Infrastructure Manager API",
|
||||
"language": "go",
|
||||
"client_library_type": "generated",
|
||||
"client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/config/latest/apiv1",
|
||||
"release_level": "preview",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/contactcenterinsights/apiv1": {
|
||||
"api_shortname": "contactcenterinsights",
|
||||
"distribution_name": "cloud.google.com/go/contactcenterinsights/apiv1",
|
||||
|
|
@ -1249,6 +1279,16 @@
|
|||
"release_level": "preview",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/language/apiv2": {
|
||||
"api_shortname": "language",
|
||||
"distribution_name": "cloud.google.com/go/language/apiv2",
|
||||
"description": "Cloud Natural Language API",
|
||||
"language": "go",
|
||||
"client_library_type": "generated",
|
||||
"client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/language/latest/apiv2",
|
||||
"release_level": "preview",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/lifesciences/apiv2beta": {
|
||||
"api_shortname": "lifesciences",
|
||||
"distribution_name": "cloud.google.com/go/lifesciences/apiv2beta",
|
||||
|
|
@ -1509,6 +1549,16 @@
|
|||
"release_level": "preview",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/notebooks/apiv2": {
|
||||
"api_shortname": "notebooks",
|
||||
"distribution_name": "cloud.google.com/go/notebooks/apiv2",
|
||||
"description": "Notebooks API",
|
||||
"language": "go",
|
||||
"client_library_type": "generated",
|
||||
"client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/notebooks/latest/apiv2",
|
||||
"release_level": "preview",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/optimization/apiv1": {
|
||||
"api_shortname": "cloudoptimization",
|
||||
"distribution_name": "cloud.google.com/go/optimization/apiv1",
|
||||
|
|
@ -1639,6 +1689,16 @@
|
|||
"release_level": "stable",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/policytroubleshooter/iam/apiv3": {
|
||||
"api_shortname": "policytroubleshooter",
|
||||
"distribution_name": "cloud.google.com/go/policytroubleshooter/iam/apiv3",
|
||||
"description": "Policy Troubleshooter API",
|
||||
"language": "go",
|
||||
"client_library_type": "generated",
|
||||
"client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/policytroubleshooter/latest/iam/apiv3",
|
||||
"release_level": "preview",
|
||||
"library_type": "GAPIC_AUTO"
|
||||
},
|
||||
"cloud.google.com/go/privatecatalog/apiv1beta1": {
|
||||
"api_shortname": "cloudprivatecatalog",
|
||||
"distribution_name": "cloud.google.com/go/privatecatalog/apiv1beta1",
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@
|
|||
package internal
|
||||
|
||||
// Version is the current tagged release of the library.
|
||||
const Version = "0.145.0"
|
||||
const Version = "0.148.0"
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
"description": "Stores and retrieves potentially large, immutable data objects.",
|
||||
"discoveryVersion": "v1",
|
||||
"documentationLink": "https://developers.google.com/storage/docs/json_api/",
|
||||
"etag": "\"32313532343139313031303538363232393732\"",
|
||||
"etag": "\"3133333835393639383131353638313238353437\"",
|
||||
"icons": {
|
||||
"x16": "https://www.google.com/images/icons/product/cloud_storage-16.png",
|
||||
"x32": "https://www.google.com/images/icons/product/cloud_storage-32.png"
|
||||
|
|
@ -1144,6 +1144,301 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"managedFolders": {
|
||||
"methods": {
|
||||
"delete": {
|
||||
"description": "Permanently deletes a managed folder.",
|
||||
"httpMethod": "DELETE",
|
||||
"id": "storage.managedFolders.delete",
|
||||
"parameterOrder": [
|
||||
"bucket",
|
||||
"managedFolder"
|
||||
],
|
||||
"parameters": {
|
||||
"bucket": {
|
||||
"description": "Name of the bucket containing the managed folder.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"ifMetagenerationMatch": {
|
||||
"description": "If set, only deletes the managed folder if its metageneration matches this value.",
|
||||
"format": "int64",
|
||||
"location": "query",
|
||||
"type": "string"
|
||||
},
|
||||
"ifMetagenerationNotMatch": {
|
||||
"description": "If set, only deletes the managed folder if its metageneration does not match this value.",
|
||||
"format": "int64",
|
||||
"location": "query",
|
||||
"type": "string"
|
||||
},
|
||||
"managedFolder": {
|
||||
"description": "The managed folder name/path.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"path": "b/{bucket}/managedFolders/{managedFolder}",
|
||||
"scopes": [
|
||||
"https://www.googleapis.com/auth/cloud-platform",
|
||||
"https://www.googleapis.com/auth/devstorage.full_control",
|
||||
"https://www.googleapis.com/auth/devstorage.read_write"
|
||||
]
|
||||
},
|
||||
"get": {
|
||||
"description": "Returns metadata of the specified managed folder.",
|
||||
"httpMethod": "GET",
|
||||
"id": "storage.managedFolders.get",
|
||||
"parameterOrder": [
|
||||
"bucket",
|
||||
"managedFolder"
|
||||
],
|
||||
"parameters": {
|
||||
"bucket": {
|
||||
"description": "Name of the bucket containing the managed folder.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"ifMetagenerationMatch": {
|
||||
"description": "Makes the return of the managed folder metadata conditional on whether the managed folder's current metageneration matches the given value.",
|
||||
"format": "int64",
|
||||
"location": "query",
|
||||
"type": "string"
|
||||
},
|
||||
"ifMetagenerationNotMatch": {
|
||||
"description": "Makes the return of the managed folder metadata conditional on whether the managed folder's current metageneration does not match the given value.",
|
||||
"format": "int64",
|
||||
"location": "query",
|
||||
"type": "string"
|
||||
},
|
||||
"managedFolder": {
|
||||
"description": "The managed folder name/path.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"path": "b/{bucket}/managedFolders/{managedFolder}",
|
||||
"response": {
|
||||
"$ref": "ManagedFolder"
|
||||
},
|
||||
"scopes": [
|
||||
"https://www.googleapis.com/auth/cloud-platform",
|
||||
"https://www.googleapis.com/auth/cloud-platform.read-only",
|
||||
"https://www.googleapis.com/auth/devstorage.full_control",
|
||||
"https://www.googleapis.com/auth/devstorage.read_only",
|
||||
"https://www.googleapis.com/auth/devstorage.read_write"
|
||||
]
|
||||
},
|
||||
"getIamPolicy": {
|
||||
"description": "Returns an IAM policy for the specified managed folder.",
|
||||
"httpMethod": "GET",
|
||||
"id": "storage.managedFolders.getIamPolicy",
|
||||
"parameterOrder": [
|
||||
"bucket",
|
||||
"managedFolder"
|
||||
],
|
||||
"parameters": {
|
||||
"bucket": {
|
||||
"description": "Name of the bucket containing the managed folder.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"managedFolder": {
|
||||
"description": "The managed folder name/path.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"optionsRequestedPolicyVersion": {
|
||||
"description": "The IAM policy format version to be returned. If the optionsRequestedPolicyVersion is for an older version that doesn't support part of the requested IAM policy, the request fails.",
|
||||
"format": "int32",
|
||||
"location": "query",
|
||||
"minimum": "1",
|
||||
"type": "integer"
|
||||
},
|
||||
"userProject": {
|
||||
"description": "The project to be billed for this request. Required for Requester Pays buckets.",
|
||||
"location": "query",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"path": "b/{bucket}/managedFolders/{managedFolder}/iam",
|
||||
"response": {
|
||||
"$ref": "Policy"
|
||||
},
|
||||
"scopes": [
|
||||
"https://www.googleapis.com/auth/cloud-platform",
|
||||
"https://www.googleapis.com/auth/cloud-platform.read-only",
|
||||
"https://www.googleapis.com/auth/devstorage.full_control",
|
||||
"https://www.googleapis.com/auth/devstorage.read_only",
|
||||
"https://www.googleapis.com/auth/devstorage.read_write"
|
||||
]
|
||||
},
|
||||
"insert": {
|
||||
"description": "Creates a new managed folder.",
|
||||
"httpMethod": "POST",
|
||||
"id": "storage.managedFolders.insert",
|
||||
"parameterOrder": [
|
||||
"bucket"
|
||||
],
|
||||
"parameters": {
|
||||
"bucket": {
|
||||
"description": "Name of the bucket containing the managed folder.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"path": "b/{bucket}/managedFolders",
|
||||
"request": {
|
||||
"$ref": "ManagedFolder"
|
||||
},
|
||||
"response": {
|
||||
"$ref": "ManagedFolder"
|
||||
},
|
||||
"scopes": [
|
||||
"https://www.googleapis.com/auth/cloud-platform",
|
||||
"https://www.googleapis.com/auth/devstorage.full_control",
|
||||
"https://www.googleapis.com/auth/devstorage.read_write"
|
||||
]
|
||||
},
|
||||
"list": {
|
||||
"description": "Lists managed folders in the given bucket.",
|
||||
"httpMethod": "GET",
|
||||
"id": "storage.managedFolders.list",
|
||||
"parameterOrder": [
|
||||
"bucket"
|
||||
],
|
||||
"parameters": {
|
||||
"bucket": {
|
||||
"description": "Name of the bucket containing the managed folder.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"pageSize": {
|
||||
"description": "Maximum number of items return in a single page of responses.",
|
||||
"format": "int32",
|
||||
"location": "query",
|
||||
"minimum": "0",
|
||||
"type": "integer"
|
||||
},
|
||||
"pageToken": {
|
||||
"description": "A previously-returned page token representing part of the larger set of results to view.",
|
||||
"location": "query",
|
||||
"type": "string"
|
||||
},
|
||||
"prefix": {
|
||||
"description": "The managed folder name/path prefix to filter the output list of results.",
|
||||
"location": "query",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"path": "b/{bucket}/managedFolders",
|
||||
"response": {
|
||||
"$ref": "ManagedFolders"
|
||||
},
|
||||
"scopes": [
|
||||
"https://www.googleapis.com/auth/cloud-platform",
|
||||
"https://www.googleapis.com/auth/cloud-platform.read-only",
|
||||
"https://www.googleapis.com/auth/devstorage.full_control",
|
||||
"https://www.googleapis.com/auth/devstorage.read_only",
|
||||
"https://www.googleapis.com/auth/devstorage.read_write"
|
||||
]
|
||||
},
|
||||
"setIamPolicy": {
|
||||
"description": "Updates an IAM policy for the specified managed folder.",
|
||||
"httpMethod": "PUT",
|
||||
"id": "storage.managedFolders.setIamPolicy",
|
||||
"parameterOrder": [
|
||||
"bucket",
|
||||
"managedFolder"
|
||||
],
|
||||
"parameters": {
|
||||
"bucket": {
|
||||
"description": "Name of the bucket containing the managed folder.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"managedFolder": {
|
||||
"description": "The managed folder name/path.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"userProject": {
|
||||
"description": "The project to be billed for this request. Required for Requester Pays buckets.",
|
||||
"location": "query",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"path": "b/{bucket}/managedFolders/{managedFolder}/iam",
|
||||
"request": {
|
||||
"$ref": "Policy"
|
||||
},
|
||||
"response": {
|
||||
"$ref": "Policy"
|
||||
},
|
||||
"scopes": [
|
||||
"https://www.googleapis.com/auth/cloud-platform",
|
||||
"https://www.googleapis.com/auth/devstorage.full_control"
|
||||
]
|
||||
},
|
||||
"testIamPermissions": {
|
||||
"description": "Tests a set of permissions on the given managed folder to see which, if any, are held by the caller.",
|
||||
"httpMethod": "GET",
|
||||
"id": "storage.managedFolders.testIamPermissions",
|
||||
"parameterOrder": [
|
||||
"bucket",
|
||||
"managedFolder",
|
||||
"permissions"
|
||||
],
|
||||
"parameters": {
|
||||
"bucket": {
|
||||
"description": "Name of the bucket containing the managed folder.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"managedFolder": {
|
||||
"description": "The managed folder name/path.",
|
||||
"location": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"permissions": {
|
||||
"description": "Permissions to test.",
|
||||
"location": "query",
|
||||
"repeated": true,
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
"userProject": {
|
||||
"description": "The project to be billed for this request. Required for Requester Pays buckets.",
|
||||
"location": "query",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"path": "b/{bucket}/managedFolders/{managedFolder}/iam/testPermissions",
|
||||
"response": {
|
||||
"$ref": "TestIamPermissionsResponse"
|
||||
},
|
||||
"scopes": [
|
||||
"https://www.googleapis.com/auth/cloud-platform",
|
||||
"https://www.googleapis.com/auth/cloud-platform.read-only",
|
||||
"https://www.googleapis.com/auth/devstorage.full_control",
|
||||
"https://www.googleapis.com/auth/devstorage.read_only",
|
||||
"https://www.googleapis.com/auth/devstorage.read_write"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"methods": {
|
||||
"delete": {
|
||||
|
|
@ -2175,6 +2470,11 @@
|
|||
"location": "query",
|
||||
"type": "string"
|
||||
},
|
||||
"includeFoldersAsPrefixes": {
|
||||
"description": "Only applicable if delimiter is set to '/'. If true, will also include folders and managed folders (besides objects) in the returned prefixes.",
|
||||
"location": "query",
|
||||
"type": "boolean"
|
||||
},
|
||||
"includeTrailingDelimiter": {
|
||||
"description": "If true, objects that end in exactly one instance of delimiter will have their metadata included in items in addition to prefixes.",
|
||||
"location": "query",
|
||||
|
|
@ -3263,7 +3563,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"revision": "20230926",
|
||||
"revision": "20231012",
|
||||
"rootUrl": "https://storage.googleapis.com/",
|
||||
"schemas": {
|
||||
"Bucket": {
|
||||
|
|
@ -4149,6 +4449,72 @@
|
|||
},
|
||||
"type": "object"
|
||||
},
|
||||
"ManagedFolder": {
|
||||
"description": "A managed folder.",
|
||||
"id": "ManagedFolder",
|
||||
"properties": {
|
||||
"bucket": {
|
||||
"description": "The name of the bucket containing this managed folder.",
|
||||
"type": "string"
|
||||
},
|
||||
"createTime": {
|
||||
"description": "The creation time of the managed folder in RFC 3339 format.",
|
||||
"format": "date-time",
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"description": "The ID of the managed folder, including the bucket name and managed folder name.",
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"default": "storage#managedFolder",
|
||||
"description": "The kind of item this is. For managed folders, this is always storage#managedFolder.",
|
||||
"type": "string"
|
||||
},
|
||||
"metageneration": {
|
||||
"description": "The version of the metadata for this managed folder. Used for preconditions and for detecting changes in metadata.",
|
||||
"format": "int64",
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"description": "The name of the managed folder. Required if not specified by URL parameter.",
|
||||
"type": "string"
|
||||
},
|
||||
"selfLink": {
|
||||
"description": "The link to this managed folder.",
|
||||
"type": "string"
|
||||
},
|
||||
"updateTime": {
|
||||
"description": "The last update time of the managed folder metadata in RFC 3339 format.",
|
||||
"format": "date-time",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"ManagedFolders": {
|
||||
"description": "A list of managed folders.",
|
||||
"id": "ManagedFolders",
|
||||
"properties": {
|
||||
"items": {
|
||||
"description": "The list of items.",
|
||||
"items": {
|
||||
"$ref": "ManagedFolder"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"kind": {
|
||||
"default": "storage#managedFolders",
|
||||
"description": "The kind of item this is. For lists of managed folders, this is always storage#managedFolders.",
|
||||
"type": "string"
|
||||
},
|
||||
"nextPageToken": {
|
||||
"description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"Notification": {
|
||||
"description": "A subscription to receive Google PubSub notifications.",
|
||||
"id": "Notification",
|
||||
|
|
@ -4565,14 +4931,15 @@
|
|||
"type": "object"
|
||||
},
|
||||
"Policy": {
|
||||
"description": "A bucket/object IAM policy.",
|
||||
"description": "A bucket/object/managedFolder IAM policy.",
|
||||
"id": "Policy",
|
||||
"properties": {
|
||||
"bindings": {
|
||||
"annotations": {
|
||||
"required": [
|
||||
"storage.buckets.setIamPolicy",
|
||||
"storage.objects.setIamPolicy"
|
||||
"storage.objects.setIamPolicy",
|
||||
"storage.managedFolders.setIamPolicy"
|
||||
]
|
||||
},
|
||||
"description": "An association between a role, which comes with a set of permissions, and members who may assume that role.",
|
||||
|
|
@ -4586,7 +4953,8 @@
|
|||
"annotations": {
|
||||
"required": [
|
||||
"storage.buckets.setIamPolicy",
|
||||
"storage.objects.setIamPolicy"
|
||||
"storage.objects.setIamPolicy",
|
||||
"storage.managedFolders.setIamPolicy"
|
||||
]
|
||||
},
|
||||
"description": "A collection of identifiers for members who may assume the provided role. Recognized identifiers are as follows: \n- allUsers — A special identifier that represents anyone on the internet; with or without a Google account. \n- allAuthenticatedUsers — A special identifier that represents anyone who is authenticated with a Google account or a service account. \n- user:emailid — An email address that represents a specific account. For example, user:alice@gmail.com or user:joe@example.com. \n- serviceAccount:emailid — An email address that represents a service account. For example, serviceAccount:my-other-app@appspot.gserviceaccount.com . \n- group:emailid — An email address that represents a Google group. For example, group:admins@example.com. \n- domain:domain — A Google Apps domain name that represents all the users of that domain. For example, domain:google.com or domain:example.com. \n- projectOwner:projectid — Owners of the given project. For example, projectOwner:my-example-project \n- projectEditor:projectid — Editors of the given project. For example, projectEditor:my-example-project \n- projectViewer:projectid — Viewers of the given project. For example, projectViewer:my-example-project",
|
||||
|
|
@ -4599,7 +4967,8 @@
|
|||
"annotations": {
|
||||
"required": [
|
||||
"storage.buckets.setIamPolicy",
|
||||
"storage.objects.setIamPolicy"
|
||||
"storage.objects.setIamPolicy",
|
||||
"storage.managedFolders.setIamPolicy"
|
||||
]
|
||||
},
|
||||
"description": "The role to which members belong. Two types of roles are supported: new IAM roles, which grant permissions that do not map directly to those provided by ACLs, and legacy IAM roles, which do map directly to ACL permissions. All roles are of the format roles/storage.specificRole.\nThe new IAM roles are: \n- roles/storage.admin — Full control of Google Cloud Storage resources. \n- roles/storage.objectViewer — Read-Only access to Google Cloud Storage objects. \n- roles/storage.objectCreator — Access to create objects in Google Cloud Storage. \n- roles/storage.objectAdmin — Full control of Google Cloud Storage objects. The legacy IAM roles are: \n- roles/storage.legacyObjectReader — Read-only access to objects without listing. Equivalent to an ACL entry on an object with the READER role. \n- roles/storage.legacyObjectOwner — Read/write access to existing objects without listing. Equivalent to an ACL entry on an object with the OWNER role. \n- roles/storage.legacyBucketReader — Read access to buckets with object listing. Equivalent to an ACL entry on a bucket with the READER role. \n- roles/storage.legacyBucketWriter — Read access to buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the WRITER role. \n- roles/storage.legacyBucketOwner — Read and write access to existing buckets with object listing/creation/deletion. Equivalent to an ACL entry on a bucket with the OWNER role.",
|
||||
|
|
@ -4621,7 +4990,7 @@
|
|||
"type": "string"
|
||||
},
|
||||
"resourceId": {
|
||||
"description": "The ID of the resource to which this policy belongs. Will be of the form projects/_/buckets/bucket for buckets, and projects/_/buckets/bucket/objects/object for objects. A specific generation may be specified by appending #generationNumber to the end of the object name, e.g. projects/_/buckets/my-bucket/objects/data.txt#17. The current generation can be denoted with #0. This field is ignored on input.",
|
||||
"description": "The ID of the resource to which this policy belongs. Will be of the form projects/_/buckets/bucket for buckets, projects/_/buckets/bucket/objects/object for objects, and projects/_/buckets/bucket/managedFolders/managedFolder. A specific generation may be specified by appending #generationNumber to the end of the object name, e.g. projects/_/buckets/my-bucket/objects/data.txt#17. The current generation can be denoted with #0. This field is ignored on input.",
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
|
|
@ -4683,7 +5052,7 @@
|
|||
"type": "object"
|
||||
},
|
||||
"TestIamPermissionsResponse": {
|
||||
"description": "A storage.(buckets|objects).testIamPermissions response.",
|
||||
"description": "A storage.(buckets|objects|managedFolders).testIamPermissions response.",
|
||||
"id": "TestIamPermissionsResponse",
|
||||
"properties": {
|
||||
"kind": {
|
||||
|
|
@ -4692,7 +5061,7 @@
|
|||
"type": "string"
|
||||
},
|
||||
"permissions": {
|
||||
"description": "The permissions held by the caller. Permissions are always of the format storage.resource.capability, where resource is one of buckets or objects. The supported permissions are as follows: \n- storage.buckets.delete — Delete bucket. \n- storage.buckets.get — Read bucket metadata. \n- storage.buckets.getIamPolicy — Read bucket IAM policy. \n- storage.buckets.create — Create bucket. \n- storage.buckets.list — List buckets. \n- storage.buckets.setIamPolicy — Update bucket IAM policy. \n- storage.buckets.update — Update bucket metadata. \n- storage.objects.delete — Delete object. \n- storage.objects.get — Read object data and metadata. \n- storage.objects.getIamPolicy — Read object IAM policy. \n- storage.objects.create — Create object. \n- storage.objects.list — List objects. \n- storage.objects.setIamPolicy — Update object IAM policy. \n- storage.objects.update — Update object metadata.",
|
||||
"description": "The permissions held by the caller. Permissions are always of the format storage.resource.capability, where resource is one of buckets, objects, or managedFolders. The supported permissions are as follows: \n- storage.buckets.delete — Delete bucket. \n- storage.buckets.get — Read bucket metadata. \n- storage.buckets.getIamPolicy — Read bucket IAM policy. \n- storage.buckets.create — Create bucket. \n- storage.buckets.list — List buckets. \n- storage.buckets.setIamPolicy — Update bucket IAM policy. \n- storage.buckets.update — Update bucket metadata. \n- storage.objects.delete — Delete object. \n- storage.objects.get — Read object data and metadata. \n- storage.objects.getIamPolicy — Read object IAM policy. \n- storage.objects.create — Create object. \n- storage.objects.list — List objects. \n- storage.objects.setIamPolicy — Update object IAM policy. \n- storage.objects.update — Update object metadata. \n- storage.managedFolders.delete — Delete managed folder. \n- storage.managedFolders.get — Read managed folder metadata. \n- storage.managedFolders.getIamPolicy — Read managed folder IAM policy. \n- storage.managedFolders.create — Create managed folder. \n- storage.managedFolders.list — List managed folders. \n- storage.managedFolders.setIamPolicy — Update managed folder IAM policy.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
295
vendor/google.golang.org/genproto/googleapis/api/annotations/field_info.pb.go
generated
vendored
Normal file
295
vendor/google.golang.org/genproto/googleapis/api/annotations/field_info.pb.go
generated
vendored
Normal file
|
|
@ -0,0 +1,295 @@
|
|||
// Copyright 2023 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.21.12
|
||||
// source: google/api/field_info.proto
|
||||
|
||||
package annotations
|
||||
|
||||
import (
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
descriptorpb "google.golang.org/protobuf/types/descriptorpb"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// The standard format of a field value. The supported formats are all backed
|
||||
// by either an RFC defined by the IETF or a Google-defined AIP.
|
||||
type FieldInfo_Format int32
|
||||
|
||||
const (
|
||||
// Default, unspecified value.
|
||||
FieldInfo_FORMAT_UNSPECIFIED FieldInfo_Format = 0
|
||||
// Universally Unique Identifier, version 4, value as defined by
|
||||
// https://datatracker.ietf.org/doc/html/rfc4122. The value may be
|
||||
// normalized to entirely lowercase letters. For example, the value
|
||||
// `F47AC10B-58CC-0372-8567-0E02B2C3D479` would be normalized to
|
||||
// `f47ac10b-58cc-0372-8567-0e02b2c3d479`.
|
||||
FieldInfo_UUID4 FieldInfo_Format = 1
|
||||
// Internet Protocol v4 value as defined by [RFC
|
||||
// 791](https://datatracker.ietf.org/doc/html/rfc791). The value may be
|
||||
// condensed, with leading zeros in each octet stripped. For example,
|
||||
// `001.022.233.040` would be condensed to `1.22.233.40`.
|
||||
FieldInfo_IPV4 FieldInfo_Format = 2
|
||||
// Internet Protocol v6 value as defined by [RFC
|
||||
// 2460](https://datatracker.ietf.org/doc/html/rfc2460). The value may be
|
||||
// normalized to entirely lowercase letters, and zero-padded partial and
|
||||
// empty octets. For example, the value `2001:DB8::` would be normalized to
|
||||
// `2001:0db8:0:0`.
|
||||
FieldInfo_IPV6 FieldInfo_Format = 3
|
||||
// An IP address in either v4 or v6 format as described by the individual
|
||||
// values defined herein. See the comments on the IPV4 and IPV6 types for
|
||||
// allowed normalizations of each.
|
||||
FieldInfo_IPV4_OR_IPV6 FieldInfo_Format = 4
|
||||
)
|
||||
|
||||
// Enum value maps for FieldInfo_Format.
|
||||
var (
|
||||
FieldInfo_Format_name = map[int32]string{
|
||||
0: "FORMAT_UNSPECIFIED",
|
||||
1: "UUID4",
|
||||
2: "IPV4",
|
||||
3: "IPV6",
|
||||
4: "IPV4_OR_IPV6",
|
||||
}
|
||||
FieldInfo_Format_value = map[string]int32{
|
||||
"FORMAT_UNSPECIFIED": 0,
|
||||
"UUID4": 1,
|
||||
"IPV4": 2,
|
||||
"IPV6": 3,
|
||||
"IPV4_OR_IPV6": 4,
|
||||
}
|
||||
)
|
||||
|
||||
func (x FieldInfo_Format) Enum() *FieldInfo_Format {
|
||||
p := new(FieldInfo_Format)
|
||||
*p = x
|
||||
return p
|
||||
}
|
||||
|
||||
func (x FieldInfo_Format) String() string {
|
||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||
}
|
||||
|
||||
func (FieldInfo_Format) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_google_api_field_info_proto_enumTypes[0].Descriptor()
|
||||
}
|
||||
|
||||
func (FieldInfo_Format) Type() protoreflect.EnumType {
|
||||
return &file_google_api_field_info_proto_enumTypes[0]
|
||||
}
|
||||
|
||||
func (x FieldInfo_Format) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use FieldInfo_Format.Descriptor instead.
|
||||
func (FieldInfo_Format) EnumDescriptor() ([]byte, []int) {
|
||||
return file_google_api_field_info_proto_rawDescGZIP(), []int{0, 0}
|
||||
}
|
||||
|
||||
// Rich semantic information of an API field beyond basic typing.
|
||||
type FieldInfo struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// The standard format of a field value. This does not explicitly configure
|
||||
// any API consumer, just documents the API's format for the field it is
|
||||
// applied to.
|
||||
Format FieldInfo_Format `protobuf:"varint,1,opt,name=format,proto3,enum=google.api.FieldInfo_Format" json:"format,omitempty"`
|
||||
}
|
||||
|
||||
func (x *FieldInfo) Reset() {
|
||||
*x = FieldInfo{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_google_api_field_info_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *FieldInfo) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*FieldInfo) ProtoMessage() {}
|
||||
|
||||
func (x *FieldInfo) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_google_api_field_info_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use FieldInfo.ProtoReflect.Descriptor instead.
|
||||
func (*FieldInfo) Descriptor() ([]byte, []int) {
|
||||
return file_google_api_field_info_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *FieldInfo) GetFormat() FieldInfo_Format {
|
||||
if x != nil {
|
||||
return x.Format
|
||||
}
|
||||
return FieldInfo_FORMAT_UNSPECIFIED
|
||||
}
|
||||
|
||||
var file_google_api_field_info_proto_extTypes = []protoimpl.ExtensionInfo{
|
||||
{
|
||||
ExtendedType: (*descriptorpb.FieldOptions)(nil),
|
||||
ExtensionType: (*FieldInfo)(nil),
|
||||
Field: 291403980,
|
||||
Name: "google.api.field_info",
|
||||
Tag: "bytes,291403980,opt,name=field_info",
|
||||
Filename: "google/api/field_info.proto",
|
||||
},
|
||||
}
|
||||
|
||||
// Extension fields to descriptorpb.FieldOptions.
|
||||
var (
|
||||
// Rich semantic descriptor of an API field beyond the basic typing.
|
||||
//
|
||||
// Examples:
|
||||
//
|
||||
// string request_id = 1 [(google.api.field_info).format = UUID4];
|
||||
// string old_ip_address = 2 [(google.api.field_info).format = IPV4];
|
||||
// string new_ip_address = 3 [(google.api.field_info).format = IPV6];
|
||||
// string actual_ip_address = 4 [
|
||||
// (google.api.field_info).format = IPV4_OR_IPV6
|
||||
// ];
|
||||
//
|
||||
// optional google.api.FieldInfo field_info = 291403980;
|
||||
E_FieldInfo = &file_google_api_field_info_proto_extTypes[0]
|
||||
)
|
||||
|
||||
var File_google_api_field_info_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_google_api_field_info_proto_rawDesc = []byte{
|
||||
0x0a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65,
|
||||
0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67,
|
||||
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||
0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72,
|
||||
0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x01, 0x0a, 0x09,
|
||||
0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x06, 0x66, 0x6f, 0x72,
|
||||
0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22,
|
||||
0x51, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x4f, 0x52,
|
||||
0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
|
||||
0x00, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x55, 0x49, 0x44, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04,
|
||||
0x49, 0x50, 0x56, 0x34, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x36, 0x10, 0x03,
|
||||
0x12, 0x10, 0x0a, 0x0c, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4f, 0x52, 0x5f, 0x49, 0x50, 0x56, 0x36,
|
||||
0x10, 0x04, 0x3a, 0x57, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
|
||||
0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
||||
0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
|
||||
0xcc, 0xf1, 0xf9, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f,
|
||||
0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x0a, 0x0e, 0x63,
|
||||
0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0e, 0x46,
|
||||
0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
|
||||
0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f,
|
||||
0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
|
||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_google_api_field_info_proto_rawDescOnce sync.Once
|
||||
file_google_api_field_info_proto_rawDescData = file_google_api_field_info_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_google_api_field_info_proto_rawDescGZIP() []byte {
|
||||
file_google_api_field_info_proto_rawDescOnce.Do(func() {
|
||||
file_google_api_field_info_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_api_field_info_proto_rawDescData)
|
||||
})
|
||||
return file_google_api_field_info_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_google_api_field_info_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
||||
var file_google_api_field_info_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_google_api_field_info_proto_goTypes = []interface{}{
|
||||
(FieldInfo_Format)(0), // 0: google.api.FieldInfo.Format
|
||||
(*FieldInfo)(nil), // 1: google.api.FieldInfo
|
||||
(*descriptorpb.FieldOptions)(nil), // 2: google.protobuf.FieldOptions
|
||||
}
|
||||
var file_google_api_field_info_proto_depIdxs = []int32{
|
||||
0, // 0: google.api.FieldInfo.format:type_name -> google.api.FieldInfo.Format
|
||||
2, // 1: google.api.field_info:extendee -> google.protobuf.FieldOptions
|
||||
1, // 2: google.api.field_info:type_name -> google.api.FieldInfo
|
||||
3, // [3:3] is the sub-list for method output_type
|
||||
3, // [3:3] is the sub-list for method input_type
|
||||
2, // [2:3] is the sub-list for extension type_name
|
||||
1, // [1:2] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_google_api_field_info_proto_init() }
|
||||
func file_google_api_field_info_proto_init() {
|
||||
if File_google_api_field_info_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_google_api_field_info_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*FieldInfo); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_google_api_field_info_proto_rawDesc,
|
||||
NumEnums: 1,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 1,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_google_api_field_info_proto_goTypes,
|
||||
DependencyIndexes: file_google_api_field_info_proto_depIdxs,
|
||||
EnumInfos: file_google_api_field_info_proto_enumTypes,
|
||||
MessageInfos: file_google_api_field_info_proto_msgTypes,
|
||||
ExtensionInfos: file_google_api_field_info_proto_extTypes,
|
||||
}.Build()
|
||||
File_google_api_field_info_proto = out.File
|
||||
file_google_api_field_info_proto_rawDesc = nil
|
||||
file_google_api_field_info_proto_goTypes = nil
|
||||
file_google_api_field_info_proto_depIdxs = nil
|
||||
}
|
||||
|
|
@ -171,15 +171,10 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport,
|
|||
ID: http2.SettingMaxFrameSize,
|
||||
Val: http2MaxFrameLen,
|
||||
}}
|
||||
// TODO(zhaoq): Have a better way to signal "no limit" because 0 is
|
||||
// permitted in the HTTP2 spec.
|
||||
maxStreams := config.MaxStreams
|
||||
if maxStreams == 0 {
|
||||
maxStreams = math.MaxUint32
|
||||
} else {
|
||||
if config.MaxStreams != math.MaxUint32 {
|
||||
isettings = append(isettings, http2.Setting{
|
||||
ID: http2.SettingMaxConcurrentStreams,
|
||||
Val: maxStreams,
|
||||
Val: config.MaxStreams,
|
||||
})
|
||||
}
|
||||
dynamicWindow := true
|
||||
|
|
@ -258,7 +253,7 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport,
|
|||
framer: framer,
|
||||
readerDone: make(chan struct{}),
|
||||
writerDone: make(chan struct{}),
|
||||
maxStreams: maxStreams,
|
||||
maxStreams: config.MaxStreams,
|
||||
inTapHandle: config.InTapHandle,
|
||||
fc: &trInFlow{limit: uint32(icwz)},
|
||||
state: reachable,
|
||||
|
|
|
|||
|
|
@ -115,12 +115,6 @@ type serviceInfo struct {
|
|||
mdata any
|
||||
}
|
||||
|
||||
type serverWorkerData struct {
|
||||
st transport.ServerTransport
|
||||
wg *sync.WaitGroup
|
||||
stream *transport.Stream
|
||||
}
|
||||
|
||||
// Server is a gRPC server to serve RPC requests.
|
||||
type Server struct {
|
||||
opts serverOptions
|
||||
|
|
@ -145,7 +139,7 @@ type Server struct {
|
|||
channelzID *channelz.Identifier
|
||||
czData *channelzData
|
||||
|
||||
serverWorkerChannel chan *serverWorkerData
|
||||
serverWorkerChannel chan func()
|
||||
}
|
||||
|
||||
type serverOptions struct {
|
||||
|
|
@ -179,6 +173,7 @@ type serverOptions struct {
|
|||
}
|
||||
|
||||
var defaultServerOptions = serverOptions{
|
||||
maxConcurrentStreams: math.MaxUint32,
|
||||
maxReceiveMessageSize: defaultServerMaxReceiveMessageSize,
|
||||
maxSendMessageSize: defaultServerMaxSendMessageSize,
|
||||
connectionTimeout: 120 * time.Second,
|
||||
|
|
@ -404,6 +399,9 @@ func MaxSendMsgSize(m int) ServerOption {
|
|||
// MaxConcurrentStreams returns a ServerOption that will apply a limit on the number
|
||||
// of concurrent streams to each ServerTransport.
|
||||
func MaxConcurrentStreams(n uint32) ServerOption {
|
||||
if n == 0 {
|
||||
n = math.MaxUint32
|
||||
}
|
||||
return newFuncServerOption(func(o *serverOptions) {
|
||||
o.maxConcurrentStreams = n
|
||||
})
|
||||
|
|
@ -605,24 +603,19 @@ const serverWorkerResetThreshold = 1 << 16
|
|||
// [1] https://github.com/golang/go/issues/18138
|
||||
func (s *Server) serverWorker() {
|
||||
for completed := 0; completed < serverWorkerResetThreshold; completed++ {
|
||||
data, ok := <-s.serverWorkerChannel
|
||||
f, ok := <-s.serverWorkerChannel
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
s.handleSingleStream(data)
|
||||
f()
|
||||
}
|
||||
go s.serverWorker()
|
||||
}
|
||||
|
||||
func (s *Server) handleSingleStream(data *serverWorkerData) {
|
||||
defer data.wg.Done()
|
||||
s.handleStream(data.st, data.stream, s.traceInfo(data.st, data.stream))
|
||||
}
|
||||
|
||||
// initServerWorkers creates worker goroutines and a channel to process incoming
|
||||
// connections to reduce the time spent overall on runtime.morestack.
|
||||
func (s *Server) initServerWorkers() {
|
||||
s.serverWorkerChannel = make(chan *serverWorkerData)
|
||||
s.serverWorkerChannel = make(chan func())
|
||||
for i := uint32(0); i < s.opts.numServerWorkers; i++ {
|
||||
go s.serverWorker()
|
||||
}
|
||||
|
|
@ -982,21 +975,26 @@ func (s *Server) serveStreams(st transport.ServerTransport) {
|
|||
defer st.Close(errors.New("finished serving streams for the server transport"))
|
||||
var wg sync.WaitGroup
|
||||
|
||||
streamQuota := newHandlerQuota(s.opts.maxConcurrentStreams)
|
||||
st.HandleStreams(func(stream *transport.Stream) {
|
||||
wg.Add(1)
|
||||
|
||||
streamQuota.acquire()
|
||||
f := func() {
|
||||
defer streamQuota.release()
|
||||
defer wg.Done()
|
||||
s.handleStream(st, stream, s.traceInfo(st, stream))
|
||||
}
|
||||
|
||||
if s.opts.numServerWorkers > 0 {
|
||||
data := &serverWorkerData{st: st, wg: &wg, stream: stream}
|
||||
select {
|
||||
case s.serverWorkerChannel <- data:
|
||||
case s.serverWorkerChannel <- f:
|
||||
return
|
||||
default:
|
||||
// If all stream workers are busy, fallback to the default code path.
|
||||
}
|
||||
}
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
s.handleStream(st, stream, s.traceInfo(st, stream))
|
||||
}()
|
||||
go f()
|
||||
}, func(ctx context.Context, method string) context.Context {
|
||||
if !EnableTracing {
|
||||
return ctx
|
||||
|
|
@ -2091,3 +2089,34 @@ func validateSendCompressor(name, clientCompressors string) error {
|
|||
}
|
||||
return fmt.Errorf("client does not support compressor %q", name)
|
||||
}
|
||||
|
||||
// atomicSemaphore implements a blocking, counting semaphore. acquire should be
|
||||
// called synchronously; release may be called asynchronously.
|
||||
type atomicSemaphore struct {
|
||||
n atomic.Int64
|
||||
wait chan struct{}
|
||||
}
|
||||
|
||||
func (q *atomicSemaphore) acquire() {
|
||||
if q.n.Add(-1) < 0 {
|
||||
// We ran out of quota. Block until a release happens.
|
||||
<-q.wait
|
||||
}
|
||||
}
|
||||
|
||||
func (q *atomicSemaphore) release() {
|
||||
// N.B. the "<= 0" check below should allow for this to work with multiple
|
||||
// concurrent calls to acquire, but also note that with synchronous calls to
|
||||
// acquire, as our system does, n will never be less than -1. There are
|
||||
// fairness issues (queuing) to consider if this was to be generalized.
|
||||
if q.n.Add(1) <= 0 {
|
||||
// An acquire was waiting on us. Unblock it.
|
||||
q.wait <- struct{}{}
|
||||
}
|
||||
}
|
||||
|
||||
func newHandlerQuota(n uint32) *atomicSemaphore {
|
||||
a := &atomicSemaphore{wait: make(chan struct{}, 1)}
|
||||
a.n.Store(int64(n))
|
||||
return a
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,4 +19,4 @@
|
|||
package grpc
|
||||
|
||||
// Version is the current grpc version.
|
||||
const Version = "1.58.2"
|
||||
const Version = "1.58.3"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# cloud.google.com/go v0.110.7
|
||||
# cloud.google.com/go v0.110.8
|
||||
## explicit; go 1.19
|
||||
cloud.google.com/go/internal
|
||||
cloud.google.com/go/internal/optional
|
||||
|
|
@ -10,7 +10,7 @@ cloud.google.com/go/compute/internal
|
|||
# cloud.google.com/go/compute/metadata v0.2.3
|
||||
## explicit; go 1.19
|
||||
cloud.google.com/go/compute/metadata
|
||||
# cloud.google.com/go/iam v1.1.1
|
||||
# cloud.google.com/go/iam v1.1.2
|
||||
## explicit; go 1.19
|
||||
cloud.google.com/go/iam
|
||||
cloud.google.com/go/iam/apiv1/iampb
|
||||
|
|
@ -956,7 +956,7 @@ golang.org/x/tools/internal/typesinternal
|
|||
## explicit; go 1.17
|
||||
golang.org/x/xerrors
|
||||
golang.org/x/xerrors/internal
|
||||
# google.golang.org/api v0.145.0
|
||||
# google.golang.org/api v0.148.0
|
||||
## explicit; go 1.19
|
||||
google.golang.org/api/googleapi
|
||||
google.golang.org/api/googleapi/transport
|
||||
|
|
@ -986,21 +986,21 @@ google.golang.org/appengine/internal/modules
|
|||
google.golang.org/appengine/internal/remote_api
|
||||
google.golang.org/appengine/internal/urlfetch
|
||||
google.golang.org/appengine/urlfetch
|
||||
# google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb
|
||||
# google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97
|
||||
## explicit; go 1.19
|
||||
google.golang.org/genproto/googleapis/type/date
|
||||
google.golang.org/genproto/googleapis/type/expr
|
||||
google.golang.org/genproto/internal
|
||||
# google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb
|
||||
# google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97
|
||||
## explicit; go 1.19
|
||||
google.golang.org/genproto/googleapis/api
|
||||
google.golang.org/genproto/googleapis/api/annotations
|
||||
# google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13
|
||||
# google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a
|
||||
## explicit; go 1.19
|
||||
google.golang.org/genproto/googleapis/rpc/code
|
||||
google.golang.org/genproto/googleapis/rpc/errdetails
|
||||
google.golang.org/genproto/googleapis/rpc/status
|
||||
# google.golang.org/grpc v1.58.2
|
||||
# google.golang.org/grpc v1.58.3
|
||||
## explicit; go 1.19
|
||||
google.golang.org/grpc
|
||||
google.golang.org/grpc/attributes
|
||||
|
|
|
|||
Loading…
Reference in New Issue