google-cloud-service_management-v1 0.3.0 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +8 -8
- data/README.md +1 -1
- data/lib/google/api/servicemanagement/v1/servicemanager_services_pb.rb +1 -1
- data/lib/google/cloud/service_management/v1/service_manager.rb +1 -1
- data/lib/google/cloud/service_management/v1/service_manager/client.rb +91 -64
- data/lib/google/cloud/service_management/v1/service_manager/operations.rb +34 -25
- data/lib/google/cloud/service_management/v1/version.rb +1 -1
- data/proto_docs/google/api/auth.rb +69 -14
- data/proto_docs/google/api/backend.rb +118 -2
- data/proto_docs/google/api/billing.rb +18 -7
- data/proto_docs/google/api/config_change.rb +1 -1
- data/proto_docs/google/api/context.rb +27 -0
- data/proto_docs/google/api/documentation.rb +13 -7
- data/proto_docs/google/api/endpoint.rb +10 -10
- data/proto_docs/google/api/field_behavior.rb +7 -1
- data/proto_docs/google/api/launch_stage.rb +71 -0
- data/proto_docs/google/api/metric.rb +109 -36
- data/proto_docs/google/api/monitored_resource.rb +7 -6
- data/proto_docs/google/api/monitoring.rb +39 -20
- data/proto_docs/google/api/quota.rb +10 -84
- data/proto_docs/google/api/service.rb +16 -14
- data/proto_docs/google/api/servicemanagement/v1/resources.rb +1 -1
- data/proto_docs/google/api/servicemanagement/v1/servicemanager.rb +11 -11
- data/proto_docs/google/api/usage.rb +6 -0
- metadata +14 -7
@@ -82,7 +82,7 @@ module Google
|
|
82
82
|
# Create credentials
|
83
83
|
credentials = @config.credentials
|
84
84
|
credentials ||= Credentials.default scope: @config.scope
|
85
|
-
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
85
|
+
if credentials.is_a?(::String) || credentials.is_a?(::Hash)
|
86
86
|
credentials = Credentials.new credentials, scope: @config.scope
|
87
87
|
end
|
88
88
|
@quota_project_id = @config.quota_project
|
@@ -169,7 +169,9 @@ module Google
|
|
169
169
|
options.apply_defaults timeout: @config.rpcs.list_operations.timeout,
|
170
170
|
metadata: metadata,
|
171
171
|
retry_policy: @config.rpcs.list_operations.retry_policy
|
172
|
-
|
172
|
+
|
173
|
+
options.apply_defaults timeout: @config.timeout,
|
174
|
+
metadata: @config.metadata,
|
173
175
|
retry_policy: @config.retry_policy
|
174
176
|
|
175
177
|
@operations_stub.call_rpc :list_operations, request, options: options do |response, operation|
|
@@ -239,7 +241,9 @@ module Google
|
|
239
241
|
options.apply_defaults timeout: @config.rpcs.get_operation.timeout,
|
240
242
|
metadata: metadata,
|
241
243
|
retry_policy: @config.rpcs.get_operation.retry_policy
|
242
|
-
|
244
|
+
|
245
|
+
options.apply_defaults timeout: @config.timeout,
|
246
|
+
metadata: @config.metadata,
|
243
247
|
retry_policy: @config.retry_policy
|
244
248
|
|
245
249
|
@operations_stub.call_rpc :get_operation, request, options: options do |response, operation|
|
@@ -309,7 +313,9 @@ module Google
|
|
309
313
|
options.apply_defaults timeout: @config.rpcs.delete_operation.timeout,
|
310
314
|
metadata: metadata,
|
311
315
|
retry_policy: @config.rpcs.delete_operation.retry_policy
|
312
|
-
|
316
|
+
|
317
|
+
options.apply_defaults timeout: @config.timeout,
|
318
|
+
metadata: @config.metadata,
|
313
319
|
retry_policy: @config.retry_policy
|
314
320
|
|
315
321
|
@operations_stub.call_rpc :delete_operation, request, options: options do |response, operation|
|
@@ -384,7 +390,9 @@ module Google
|
|
384
390
|
options.apply_defaults timeout: @config.rpcs.cancel_operation.timeout,
|
385
391
|
metadata: metadata,
|
386
392
|
retry_policy: @config.rpcs.cancel_operation.retry_policy
|
387
|
-
|
393
|
+
|
394
|
+
options.apply_defaults timeout: @config.timeout,
|
395
|
+
metadata: @config.metadata,
|
388
396
|
retry_policy: @config.retry_policy
|
389
397
|
|
390
398
|
@operations_stub.call_rpc :cancel_operation, request, options: options do |response, operation|
|
@@ -396,9 +404,9 @@ module Google
|
|
396
404
|
end
|
397
405
|
|
398
406
|
##
|
399
|
-
# Waits
|
400
|
-
#
|
401
|
-
#
|
407
|
+
# Waits until the specified long-running operation is done or reaches at most
|
408
|
+
# a specified timeout, returning the latest state. If the operation is
|
409
|
+
# already done, the latest state is immediately returned. If the timeout
|
402
410
|
# specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
|
403
411
|
# timeout is used. If the server does not support this method, it returns
|
404
412
|
# `google.rpc.Code.UNIMPLEMENTED`.
|
@@ -456,7 +464,9 @@ module Google
|
|
456
464
|
options.apply_defaults timeout: @config.rpcs.wait_operation.timeout,
|
457
465
|
metadata: metadata,
|
458
466
|
retry_policy: @config.rpcs.wait_operation.retry_policy
|
459
|
-
|
467
|
+
|
468
|
+
options.apply_defaults timeout: @config.timeout,
|
469
|
+
metadata: @config.metadata,
|
460
470
|
retry_policy: @config.retry_policy
|
461
471
|
|
462
472
|
@operations_stub.call_rpc :wait_operation, request, options: options do |response, operation|
|
@@ -481,22 +491,21 @@ module Google
|
|
481
491
|
# Configuration can be applied globally to all clients, or to a single client
|
482
492
|
# on construction.
|
483
493
|
#
|
484
|
-
#
|
485
|
-
#
|
486
|
-
#
|
487
|
-
# to 20 seconds,
|
488
|
-
#
|
489
|
-
#
|
490
|
-
#
|
491
|
-
#
|
492
|
-
#
|
493
|
-
#
|
494
|
-
#
|
495
|
-
#
|
496
|
-
#
|
497
|
-
#
|
498
|
-
#
|
499
|
-
# end
|
494
|
+
# @example
|
495
|
+
#
|
496
|
+
# # Modify the global config, setting the timeout for
|
497
|
+
# # list_operations to 20 seconds,
|
498
|
+
# # and all remaining timeouts to 10 seconds.
|
499
|
+
# ::Google::Longrunning::Operations::Client.configure do |config|
|
500
|
+
# config.timeout = 10.0
|
501
|
+
# config.rpcs.list_operations.timeout = 20.0
|
502
|
+
# end
|
503
|
+
#
|
504
|
+
# # Apply the above configuration only to a new client.
|
505
|
+
# client = ::Google::Longrunning::Operations::Client.new do |config|
|
506
|
+
# config.timeout = 10.0
|
507
|
+
# config.rpcs.list_operations.timeout = 20.0
|
508
|
+
# end
|
500
509
|
#
|
501
510
|
# @!attribute [rw] endpoint
|
502
511
|
# The hostname or hostname:port of the service endpoint.
|
@@ -19,9 +19,10 @@
|
|
19
19
|
|
20
20
|
module Google
|
21
21
|
module Api
|
22
|
-
# `Authentication` defines the authentication configuration for
|
22
|
+
# `Authentication` defines the authentication configuration for API methods
|
23
|
+
# provided by an API service.
|
23
24
|
#
|
24
|
-
# Example
|
25
|
+
# Example:
|
25
26
|
#
|
26
27
|
# name: calendar.googleapis.com
|
27
28
|
# authentication:
|
@@ -33,6 +34,9 @@ module Google
|
|
33
34
|
# - selector: "*"
|
34
35
|
# requirements:
|
35
36
|
# provider_id: google_calendar_auth
|
37
|
+
# - selector: google.calendar.Delegate
|
38
|
+
# oauth:
|
39
|
+
# canonical_scopes: https://www.googleapis.com/auth/calendar.read
|
36
40
|
# @!attribute [rw] rules
|
37
41
|
# @return [::Array<::Google::Api::AuthenticationRule>]
|
38
42
|
# A list of authentication rules that apply to individual API methods.
|
@@ -66,6 +70,7 @@ module Google
|
|
66
70
|
# @!attribute [rw] allow_without_credential
|
67
71
|
# @return [::Boolean]
|
68
72
|
# If true, the service accepts API keys without any other credential.
|
73
|
+
# This flag only applies to HTTP and gRPC requests.
|
69
74
|
# @!attribute [rw] requirements
|
70
75
|
# @return [::Array<::Google::Api::AuthRequirement>]
|
71
76
|
# Requirements for additional authentication providers.
|
@@ -74,8 +79,31 @@ module Google
|
|
74
79
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
75
80
|
end
|
76
81
|
|
77
|
-
#
|
78
|
-
# [
|
82
|
+
# Specifies a location to extract JWT from an API request.
|
83
|
+
# @!attribute [rw] header
|
84
|
+
# @return [::String]
|
85
|
+
# Specifies HTTP header name to extract JWT token.
|
86
|
+
# @!attribute [rw] query
|
87
|
+
# @return [::String]
|
88
|
+
# Specifies URL query parameter name to extract JWT token.
|
89
|
+
# @!attribute [rw] value_prefix
|
90
|
+
# @return [::String]
|
91
|
+
# The value prefix. The value format is "value_prefix\\{token}"
|
92
|
+
# Only applies to "in" header type. Must be empty for "in" query type.
|
93
|
+
# If not empty, the header value has to match (case sensitive) this prefix.
|
94
|
+
# If not matched, JWT will not be extracted. If matched, JWT will be
|
95
|
+
# extracted after the prefix is removed.
|
96
|
+
#
|
97
|
+
# For example, for "Authorization: Bearer \\{JWT}",
|
98
|
+
# value_prefix="Bearer " with a space at the end.
|
99
|
+
class JwtLocation
|
100
|
+
include ::Google::Protobuf::MessageExts
|
101
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
102
|
+
end
|
103
|
+
|
104
|
+
# Configuration for an authentication provider, including support for
|
105
|
+
# [JSON Web Token
|
106
|
+
# (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
|
79
107
|
# @!attribute [rw] id
|
80
108
|
# @return [::String]
|
81
109
|
# The unique identifier of the auth provider. It will be referred to by
|
@@ -93,12 +121,15 @@ module Google
|
|
93
121
|
# @!attribute [rw] jwks_uri
|
94
122
|
# @return [::String]
|
95
123
|
# URL of the provider's public key set to validate signature of the JWT. See
|
96
|
-
# [OpenID
|
124
|
+
# [OpenID
|
125
|
+
# Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).
|
97
126
|
# Optional if the key set document:
|
98
127
|
# - can be retrieved from
|
99
|
-
# [OpenID
|
128
|
+
# [OpenID
|
129
|
+
# Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html)
|
100
130
|
# of the issuer.
|
101
|
-
# - can be inferred from the email domain of the issuer (e.g. a Google
|
131
|
+
# - can be inferred from the email domain of the issuer (e.g. a Google
|
132
|
+
# service account).
|
102
133
|
#
|
103
134
|
# Example: https://www.googleapis.com/oauth2/v1/certs
|
104
135
|
# @!attribute [rw] audiences
|
@@ -106,11 +137,15 @@ module Google
|
|
106
137
|
# The list of JWT
|
107
138
|
# [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
|
108
139
|
# that are allowed to access. A JWT containing any of these audiences will
|
109
|
-
# be accepted. When this setting is absent,
|
110
|
-
#
|
111
|
-
#
|
112
|
-
#
|
113
|
-
#
|
140
|
+
# be accepted. When this setting is absent, JWTs with audiences:
|
141
|
+
# - "https://[service.name]/[google.protobuf.Api.name]"
|
142
|
+
# - "https://[service.name]/"
|
143
|
+
# will be accepted.
|
144
|
+
# For example, if no audiences are in the setting, LibraryService API will
|
145
|
+
# accept JWTs with the following audiences:
|
146
|
+
# -
|
147
|
+
# https://library-example.googleapis.com/google.example.library.v1.LibraryService
|
148
|
+
# - https://library-example.googleapis.com/
|
114
149
|
#
|
115
150
|
# Example:
|
116
151
|
#
|
@@ -118,8 +153,27 @@ module Google
|
|
118
153
|
# bookstore_web.apps.googleusercontent.com
|
119
154
|
# @!attribute [rw] authorization_url
|
120
155
|
# @return [::String]
|
121
|
-
# Redirect URL if JWT token is required but
|
156
|
+
# Redirect URL if JWT token is required but not present or is expired.
|
122
157
|
# Implement authorizationUrl of securityDefinitions in OpenAPI spec.
|
158
|
+
# @!attribute [rw] jwt_locations
|
159
|
+
# @return [::Array<::Google::Api::JwtLocation>]
|
160
|
+
# Defines the locations to extract the JWT.
|
161
|
+
#
|
162
|
+
# JWT locations can be either from HTTP headers or URL query parameters.
|
163
|
+
# The rule is that the first match wins. The checking order is: checking
|
164
|
+
# all headers first, then URL query parameters.
|
165
|
+
#
|
166
|
+
# If not specified, default to use following 3 locations:
|
167
|
+
# 1) Authorization: Bearer
|
168
|
+
# 2) x-goog-iap-jwt-assertion
|
169
|
+
# 3) access_token query parameter
|
170
|
+
#
|
171
|
+
# Default locations can be specified as followings:
|
172
|
+
# jwt_locations:
|
173
|
+
# - header: Authorization
|
174
|
+
# value_prefix: "Bearer "
|
175
|
+
# - header: x-goog-iap-jwt-assertion
|
176
|
+
# - query: access_token
|
123
177
|
class AuthProvider
|
124
178
|
include ::Google::Protobuf::MessageExts
|
125
179
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -158,7 +212,8 @@ module Google
|
|
158
212
|
end
|
159
213
|
|
160
214
|
# User-defined authentication requirements, including support for
|
161
|
-
# [JSON Web Token
|
215
|
+
# [JSON Web Token
|
216
|
+
# (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
|
162
217
|
# @!attribute [rw] provider_id
|
163
218
|
# @return [::String]
|
164
219
|
# {::Google::Api::AuthProvider#id id} from authentication provider.
|
@@ -39,17 +39,133 @@ module Google
|
|
39
39
|
# @!attribute [rw] address
|
40
40
|
# @return [::String]
|
41
41
|
# The address of the API backend.
|
42
|
+
#
|
43
|
+
# The scheme is used to determine the backend protocol and security.
|
44
|
+
# The following schemes are accepted:
|
45
|
+
#
|
46
|
+
# SCHEME PROTOCOL SECURITY
|
47
|
+
# http:// HTTP None
|
48
|
+
# https:// HTTP TLS
|
49
|
+
# grpc:// gRPC None
|
50
|
+
# grpcs:// gRPC TLS
|
51
|
+
#
|
52
|
+
# It is recommended to explicitly include a scheme. Leaving out the scheme
|
53
|
+
# may cause constrasting behaviors across platforms.
|
54
|
+
#
|
55
|
+
# If the port is unspecified, the default is:
|
56
|
+
# - 80 for schemes without TLS
|
57
|
+
# - 443 for schemes with TLS
|
58
|
+
#
|
59
|
+
# For HTTP backends, use {::Google::Api::BackendRule#protocol protocol}
|
60
|
+
# to specify the protocol version.
|
42
61
|
# @!attribute [rw] deadline
|
43
62
|
# @return [::Float]
|
44
|
-
# The number of seconds to wait for a response from a request.
|
45
|
-
#
|
63
|
+
# The number of seconds to wait for a response from a request. The default
|
64
|
+
# varies based on the request protocol and deployment environment.
|
46
65
|
# @!attribute [rw] min_deadline
|
47
66
|
# @return [::Float]
|
48
67
|
# Minimum deadline in seconds needed for this method. Calls having deadline
|
49
68
|
# value lower than this will be rejected.
|
69
|
+
# @!attribute [rw] operation_deadline
|
70
|
+
# @return [::Float]
|
71
|
+
# The number of seconds to wait for the completion of a long running
|
72
|
+
# operation. The default is no deadline.
|
73
|
+
# @!attribute [rw] path_translation
|
74
|
+
# @return [::Google::Api::BackendRule::PathTranslation]
|
75
|
+
# @!attribute [rw] jwt_audience
|
76
|
+
# @return [::String]
|
77
|
+
# The JWT audience is used when generating a JWT ID token for the backend.
|
78
|
+
# This ID token will be added in the HTTP "authorization" header, and sent
|
79
|
+
# to the backend.
|
80
|
+
# @!attribute [rw] disable_auth
|
81
|
+
# @return [::Boolean]
|
82
|
+
# When disable_auth is true, a JWT ID token won't be generated and the
|
83
|
+
# original "Authorization" HTTP header will be preserved. If the header is
|
84
|
+
# used to carry the original token and is expected by the backend, this
|
85
|
+
# field must be set to true to preserve the header.
|
86
|
+
# @!attribute [rw] protocol
|
87
|
+
# @return [::String]
|
88
|
+
# The protocol used for sending a request to the backend.
|
89
|
+
# The supported values are "http/1.1" and "h2".
|
90
|
+
#
|
91
|
+
# The default value is inferred from the scheme in the
|
92
|
+
# {::Google::Api::BackendRule#address address} field:
|
93
|
+
#
|
94
|
+
# SCHEME PROTOCOL
|
95
|
+
# http:// http/1.1
|
96
|
+
# https:// http/1.1
|
97
|
+
# grpc:// h2
|
98
|
+
# grpcs:// h2
|
99
|
+
#
|
100
|
+
# For secure HTTP backends (https://) that support HTTP/2, set this field
|
101
|
+
# to "h2" for improved performance.
|
102
|
+
#
|
103
|
+
# Configuring this field to non-default values is only supported for secure
|
104
|
+
# HTTP backends. This field will be ignored for all other backends.
|
105
|
+
#
|
106
|
+
# See
|
107
|
+
# https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
|
108
|
+
# for more details on the supported values.
|
50
109
|
class BackendRule
|
51
110
|
include ::Google::Protobuf::MessageExts
|
52
111
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
112
|
+
|
113
|
+
# Path Translation specifies how to combine the backend address with the
|
114
|
+
# request path in order to produce the appropriate forwarding URL for the
|
115
|
+
# request.
|
116
|
+
#
|
117
|
+
# Path Translation is applicable only to HTTP-based backends. Backends which
|
118
|
+
# do not accept requests over HTTP/HTTPS should leave `path_translation`
|
119
|
+
# unspecified.
|
120
|
+
module PathTranslation
|
121
|
+
PATH_TRANSLATION_UNSPECIFIED = 0
|
122
|
+
|
123
|
+
# Use the backend address as-is, with no modification to the path. If the
|
124
|
+
# URL pattern contains variables, the variable names and values will be
|
125
|
+
# appended to the query string. If a query string parameter and a URL
|
126
|
+
# pattern variable have the same name, this may result in duplicate keys in
|
127
|
+
# the query string.
|
128
|
+
#
|
129
|
+
# # Examples
|
130
|
+
#
|
131
|
+
# Given the following operation config:
|
132
|
+
#
|
133
|
+
# Method path: /api/company/{cid}/user/{uid}
|
134
|
+
# Backend address: https://example.cloudfunctions.net/getUser
|
135
|
+
#
|
136
|
+
# Requests to the following request paths will call the backend at the
|
137
|
+
# translated path:
|
138
|
+
#
|
139
|
+
# Request path: /api/company/widgetworks/user/johndoe
|
140
|
+
# Translated:
|
141
|
+
# https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe
|
142
|
+
#
|
143
|
+
# Request path: /api/company/widgetworks/user/johndoe?timezone=EST
|
144
|
+
# Translated:
|
145
|
+
# https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe
|
146
|
+
CONSTANT_ADDRESS = 1
|
147
|
+
|
148
|
+
# The request path will be appended to the backend address.
|
149
|
+
#
|
150
|
+
# # Examples
|
151
|
+
#
|
152
|
+
# Given the following operation config:
|
153
|
+
#
|
154
|
+
# Method path: /api/company/{cid}/user/{uid}
|
155
|
+
# Backend address: https://example.appspot.com
|
156
|
+
#
|
157
|
+
# Requests to the following request paths will call the backend at the
|
158
|
+
# translated path:
|
159
|
+
#
|
160
|
+
# Request path: /api/company/widgetworks/user/johndoe
|
161
|
+
# Translated:
|
162
|
+
# https://example.appspot.com/api/company/widgetworks/user/johndoe
|
163
|
+
#
|
164
|
+
# Request path: /api/company/widgetworks/user/johndoe?timezone=EST
|
165
|
+
# Translated:
|
166
|
+
# https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST
|
167
|
+
APPEND_PATH_TO_ADDRESS = 2
|
168
|
+
end
|
53
169
|
end
|
54
170
|
end
|
55
171
|
end
|
@@ -22,22 +22,33 @@ module Google
|
|
22
22
|
# Billing related configuration of the service.
|
23
23
|
#
|
24
24
|
# The following example shows how to configure monitored resources and metrics
|
25
|
-
# for billing
|
25
|
+
# for billing, `consumer_destinations` is the only supported destination and
|
26
|
+
# the monitored resources need at least one label key
|
27
|
+
# `cloud.googleapis.com/location` to indicate the location of the billing
|
28
|
+
# usage, using different monitored resources between monitoring and billing is
|
29
|
+
# recommended so they can be evolved independently:
|
30
|
+
#
|
26
31
|
#
|
27
32
|
# monitored_resources:
|
28
|
-
# - type: library.googleapis.com/
|
33
|
+
# - type: library.googleapis.com/billing_branch
|
29
34
|
# labels:
|
30
|
-
# - key: /
|
31
|
-
# description:
|
32
|
-
#
|
33
|
-
#
|
35
|
+
# - key: cloud.googleapis.com/location
|
36
|
+
# description: |
|
37
|
+
# Predefined label to support billing location restriction.
|
38
|
+
# - key: city
|
39
|
+
# description: |
|
40
|
+
# Custom label to define the city where the library branch is located
|
41
|
+
# in.
|
42
|
+
# - key: name
|
43
|
+
# description: Custom label to define the name of the library branch.
|
34
44
|
# metrics:
|
35
45
|
# - name: library.googleapis.com/book/borrowed_count
|
36
46
|
# metric_kind: DELTA
|
37
47
|
# value_type: INT64
|
48
|
+
# unit: "1"
|
38
49
|
# billing:
|
39
50
|
# consumer_destinations:
|
40
|
-
# - monitored_resource: library.googleapis.com/
|
51
|
+
# - monitored_resource: library.googleapis.com/billing_branch
|
41
52
|
# metrics:
|
42
53
|
# - library.googleapis.com/book/borrowed_count
|
43
54
|
# @!attribute [rw] consumer_destinations
|
@@ -33,7 +33,7 @@ module Google
|
|
33
33
|
# 'key' is used. If the field has no unique identifier, the numeric index
|
34
34
|
# is used.
|
35
35
|
# Examples:
|
36
|
-
# - visibility.rules[selector=="google.LibraryService.
|
36
|
+
# - visibility.rules[selector=="google.LibraryService.ListBooks"].restriction
|
37
37
|
# - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value
|
38
38
|
# - logging.producer_destinations[0]
|
39
39
|
# @!attribute [rw] old_value
|