google-cloud-logging-v2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +169 -0
  4. data/LICENSE.md +203 -0
  5. data/README.md +75 -0
  6. data/lib/google-cloud-logging-v2.rb +21 -0
  7. data/lib/google/cloud/logging/v2.rb +37 -0
  8. data/lib/google/cloud/logging/v2/config_service.rb +49 -0
  9. data/lib/google/cloud/logging/v2/config_service/client.rb +1723 -0
  10. data/lib/google/cloud/logging/v2/config_service/credentials.rb +54 -0
  11. data/lib/google/cloud/logging/v2/config_service/paths.rb +413 -0
  12. data/lib/google/cloud/logging/v2/logging_service.rb +49 -0
  13. data/lib/google/cloud/logging/v2/logging_service/client.rb +826 -0
  14. data/lib/google/cloud/logging/v2/logging_service/credentials.rb +55 -0
  15. data/lib/google/cloud/logging/v2/logging_service/paths.rb +154 -0
  16. data/lib/google/cloud/logging/v2/metrics_service.rb +49 -0
  17. data/lib/google/cloud/logging/v2/metrics_service/client.rb +726 -0
  18. data/lib/google/cloud/logging/v2/metrics_service/credentials.rb +55 -0
  19. data/lib/google/cloud/logging/v2/metrics_service/paths.rb +64 -0
  20. data/lib/google/cloud/logging/v2/version.rb +28 -0
  21. data/lib/google/logging/type/http_request_pb.rb +38 -0
  22. data/lib/google/logging/type/log_severity_pb.rb +31 -0
  23. data/lib/google/logging/v2/log_entry_pb.rb +62 -0
  24. data/lib/google/logging/v2/logging_config_pb.rb +176 -0
  25. data/lib/google/logging/v2/logging_config_services_pb.rb +113 -0
  26. data/lib/google/logging/v2/logging_metrics_pb.rb +75 -0
  27. data/lib/google/logging/v2/logging_metrics_services_pb.rb +53 -0
  28. data/lib/google/logging/v2/logging_pb.rb +83 -0
  29. data/lib/google/logging/v2/logging_services_pb.rb +65 -0
  30. data/proto_docs/README.md +4 -0
  31. data/proto_docs/google/api/distribution.rb +225 -0
  32. data/proto_docs/google/api/field_behavior.rb +59 -0
  33. data/proto_docs/google/api/label.rb +49 -0
  34. data/proto_docs/google/api/metric.rb +203 -0
  35. data/proto_docs/google/api/monitored_resource.rb +137 -0
  36. data/proto_docs/google/api/resource.rb +247 -0
  37. data/proto_docs/google/logging/type/http_request.rb +95 -0
  38. data/proto_docs/google/logging/type/log_severity.rb +71 -0
  39. data/proto_docs/google/logging/v2/log_entry.rb +203 -0
  40. data/proto_docs/google/logging/v2/logging.rb +303 -0
  41. data/proto_docs/google/logging/v2/logging_config.rb +735 -0
  42. data/proto_docs/google/logging/v2/logging_metrics.rb +256 -0
  43. data/proto_docs/google/protobuf/any.rb +138 -0
  44. data/proto_docs/google/protobuf/duration.rb +98 -0
  45. data/proto_docs/google/protobuf/empty.rb +36 -0
  46. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  47. data/proto_docs/google/protobuf/struct.rb +96 -0
  48. data/proto_docs/google/protobuf/timestamp.rb +120 -0
  49. data/proto_docs/google/rpc/status.rb +46 -0
  50. metadata +231 -0
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "googleauth"
20
+
21
+ module Google
22
+ module Cloud
23
+ module Logging
24
+ module V2
25
+ module LoggingService
26
+ # Credentials for the LoggingService API.
27
+ class Credentials < ::Google::Auth::Credentials
28
+ self.scope = [
29
+ "https://www.googleapis.com/auth/cloud-platform",
30
+ "https://www.googleapis.com/auth/cloud-platform.read-only",
31
+ "https://www.googleapis.com/auth/logging.admin",
32
+ "https://www.googleapis.com/auth/logging.read",
33
+ "https://www.googleapis.com/auth/logging.write"
34
+ ]
35
+ self.env_vars = [
36
+ "LOGGING_CREDENTIALS",
37
+ "LOGGING_KEYFILE",
38
+ "GOOGLE_CLOUD_CREDENTIALS",
39
+ "GOOGLE_CLOUD_KEYFILE",
40
+ "GCLOUD_KEYFILE",
41
+ "LOGGING_CREDENTIALS_JSON",
42
+ "LOGGING_KEYFILE_JSON",
43
+ "GOOGLE_CLOUD_CREDENTIALS_JSON",
44
+ "GOOGLE_CLOUD_KEYFILE_JSON",
45
+ "GCLOUD_KEYFILE_JSON"
46
+ ]
47
+ self.paths = [
48
+ "~/.config/google_cloud/application_default_credentials.json"
49
+ ]
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,154 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Logging
23
+ module V2
24
+ module LoggingService
25
+ # Path helper methods for the LoggingService API.
26
+ module Paths
27
+ ##
28
+ # Create a fully-qualified BillingAccount resource string.
29
+ #
30
+ # The resource will be in the following format:
31
+ #
32
+ # `billingAccounts/{billing_account}`
33
+ #
34
+ # @param billing_account [String]
35
+ #
36
+ # @return [::String]
37
+ def billing_account_path billing_account:
38
+ "billingAccounts/#{billing_account}"
39
+ end
40
+
41
+ ##
42
+ # Create a fully-qualified Folder resource string.
43
+ #
44
+ # The resource will be in the following format:
45
+ #
46
+ # `folders/{folder}`
47
+ #
48
+ # @param folder [String]
49
+ #
50
+ # @return [::String]
51
+ def folder_path folder:
52
+ "folders/#{folder}"
53
+ end
54
+
55
+ ##
56
+ # Create a fully-qualified Log resource string.
57
+ #
58
+ # @overload log_path(project:, log:)
59
+ # The resource will be in the following format:
60
+ #
61
+ # `projects/{project}/logs/{log}`
62
+ #
63
+ # @param project [String]
64
+ # @param log [String]
65
+ #
66
+ # @overload log_path(organization:, log:)
67
+ # The resource will be in the following format:
68
+ #
69
+ # `organizations/{organization}/logs/{log}`
70
+ #
71
+ # @param organization [String]
72
+ # @param log [String]
73
+ #
74
+ # @overload log_path(folder:, log:)
75
+ # The resource will be in the following format:
76
+ #
77
+ # `folders/{folder}/logs/{log}`
78
+ #
79
+ # @param folder [String]
80
+ # @param log [String]
81
+ #
82
+ # @overload log_path(billing_account:, log:)
83
+ # The resource will be in the following format:
84
+ #
85
+ # `billingAccounts/{billing_account}/logs/{log}`
86
+ #
87
+ # @param billing_account [String]
88
+ # @param log [String]
89
+ #
90
+ # @return [::String]
91
+ def log_path **args
92
+ resources = {
93
+ "log:project" => (proc do |project:, log:|
94
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
95
+
96
+ "projects/#{project}/logs/#{log}"
97
+ end),
98
+ "log:organization" => (proc do |organization:, log:|
99
+ raise ::ArgumentError, "organization cannot contain /" if organization.to_s.include? "/"
100
+
101
+ "organizations/#{organization}/logs/#{log}"
102
+ end),
103
+ "folder:log" => (proc do |folder:, log:|
104
+ raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
105
+
106
+ "folders/#{folder}/logs/#{log}"
107
+ end),
108
+ "billing_account:log" => (proc do |billing_account:, log:|
109
+ raise ::ArgumentError, "billing_account cannot contain /" if billing_account.to_s.include? "/"
110
+
111
+ "billingAccounts/#{billing_account}/logs/#{log}"
112
+ end)
113
+ }
114
+
115
+ resource = resources[args.keys.sort.join(":")]
116
+ raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
117
+ resource.call(**args)
118
+ end
119
+
120
+ ##
121
+ # Create a fully-qualified Organization resource string.
122
+ #
123
+ # The resource will be in the following format:
124
+ #
125
+ # `organizations/{organization}`
126
+ #
127
+ # @param organization [String]
128
+ #
129
+ # @return [::String]
130
+ def organization_path organization:
131
+ "organizations/#{organization}"
132
+ end
133
+
134
+ ##
135
+ # Create a fully-qualified Project resource string.
136
+ #
137
+ # The resource will be in the following format:
138
+ #
139
+ # `projects/{project}`
140
+ #
141
+ # @param project [String]
142
+ #
143
+ # @return [::String]
144
+ def project_path project:
145
+ "projects/#{project}"
146
+ end
147
+
148
+ extend self
149
+ end
150
+ end
151
+ end
152
+ end
153
+ end
154
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "gapic/common"
20
+ require "gapic/config"
21
+ require "gapic/config/method"
22
+
23
+ require "google/cloud/logging/v2/version"
24
+
25
+ require "google/cloud/logging/v2/metrics_service/credentials"
26
+ require "google/cloud/logging/v2/metrics_service/paths"
27
+ require "google/cloud/logging/v2/metrics_service/client"
28
+
29
+ module Google
30
+ module Cloud
31
+ module Logging
32
+ module V2
33
+ ##
34
+ # Service for configuring logs-based metrics.
35
+ #
36
+ # To load this service and instantiate a client:
37
+ #
38
+ # require "google/cloud/logging/v2/metrics_service"
39
+ # client = ::Google::Cloud::Logging::V2::MetricsService::Client.new
40
+ #
41
+ module MetricsService
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ helper_path = ::File.join __dir__, "metrics_service", "helpers.rb"
49
+ require "google/cloud/logging/v2/metrics_service/helpers" if ::File.file? helper_path
@@ -0,0 +1,726 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/errors"
20
+ require "google/logging/v2/logging_metrics_pb"
21
+
22
+ module Google
23
+ module Cloud
24
+ module Logging
25
+ module V2
26
+ module MetricsService
27
+ ##
28
+ # Client for the MetricsService service.
29
+ #
30
+ # Service for configuring logs-based metrics.
31
+ #
32
+ class Client
33
+ include Paths
34
+
35
+ # @private
36
+ attr_reader :metrics_service_stub
37
+
38
+ ##
39
+ # Configure the MetricsService Client class.
40
+ #
41
+ # See {::Google::Cloud::Logging::V2::MetricsService::Client::Configuration}
42
+ # for a description of the configuration fields.
43
+ #
44
+ # ## Example
45
+ #
46
+ # To modify the configuration for all MetricsService clients:
47
+ #
48
+ # ::Google::Cloud::Logging::V2::MetricsService::Client.configure do |config|
49
+ # config.timeout = 10.0
50
+ # end
51
+ #
52
+ # @yield [config] Configure the Client client.
53
+ # @yieldparam config [Client::Configuration]
54
+ #
55
+ # @return [Client::Configuration]
56
+ #
57
+ def self.configure
58
+ @configure ||= begin
59
+ namespace = ["Google", "Cloud", "Logging", "V2"]
60
+ parent_config = while namespace.any?
61
+ parent_name = namespace.join "::"
62
+ parent_const = const_get parent_name
63
+ break parent_const.configure if parent_const&.respond_to? :configure
64
+ namespace.pop
65
+ end
66
+ default_config = Client::Configuration.new parent_config
67
+
68
+ default_config.rpcs.list_log_metrics.timeout = 60.0
69
+ default_config.rpcs.list_log_metrics.retry_policy = {
70
+ initial_delay: 0.1,
71
+ max_delay: 60.0,
72
+ multiplier: 1.3,
73
+ retry_codes: ["UNAVAILABLE", "DEADLINE_EXCEEDED"]
74
+ }
75
+
76
+ default_config.rpcs.get_log_metric.timeout = 60.0
77
+ default_config.rpcs.get_log_metric.retry_policy = {
78
+ initial_delay: 0.1,
79
+ max_delay: 60.0,
80
+ multiplier: 1.3,
81
+ retry_codes: ["UNAVAILABLE", "DEADLINE_EXCEEDED"]
82
+ }
83
+
84
+ default_config.rpcs.create_log_metric.timeout = 60.0
85
+
86
+ default_config.rpcs.update_log_metric.timeout = 60.0
87
+ default_config.rpcs.update_log_metric.retry_policy = {
88
+ initial_delay: 0.1,
89
+ max_delay: 60.0,
90
+ multiplier: 1.3,
91
+ retry_codes: ["UNAVAILABLE", "DEADLINE_EXCEEDED"]
92
+ }
93
+
94
+ default_config.rpcs.delete_log_metric.timeout = 60.0
95
+ default_config.rpcs.delete_log_metric.retry_policy = {
96
+ initial_delay: 0.1,
97
+ max_delay: 60.0,
98
+ multiplier: 1.3,
99
+ retry_codes: ["UNAVAILABLE", "DEADLINE_EXCEEDED"]
100
+ }
101
+
102
+ default_config
103
+ end
104
+ yield @configure if block_given?
105
+ @configure
106
+ end
107
+
108
+ ##
109
+ # Configure the MetricsService Client instance.
110
+ #
111
+ # The configuration is set to the derived mode, meaning that values can be changed,
112
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
113
+ # should be made on {Client.configure}.
114
+ #
115
+ # See {::Google::Cloud::Logging::V2::MetricsService::Client::Configuration}
116
+ # for a description of the configuration fields.
117
+ #
118
+ # @yield [config] Configure the Client client.
119
+ # @yieldparam config [Client::Configuration]
120
+ #
121
+ # @return [Client::Configuration]
122
+ #
123
+ def configure
124
+ yield @config if block_given?
125
+ @config
126
+ end
127
+
128
+ ##
129
+ # Create a new MetricsService client object.
130
+ #
131
+ # ## Examples
132
+ #
133
+ # To create a new MetricsService client with the default
134
+ # configuration:
135
+ #
136
+ # client = ::Google::Cloud::Logging::V2::MetricsService::Client.new
137
+ #
138
+ # To create a new MetricsService client with a custom
139
+ # configuration:
140
+ #
141
+ # client = ::Google::Cloud::Logging::V2::MetricsService::Client.new do |config|
142
+ # config.timeout = 10.0
143
+ # end
144
+ #
145
+ # @yield [config] Configure the MetricsService client.
146
+ # @yieldparam config [Client::Configuration]
147
+ #
148
+ def initialize
149
+ # These require statements are intentionally placed here to initialize
150
+ # the gRPC module only when it's required.
151
+ # See https://github.com/googleapis/toolkit/issues/446
152
+ require "gapic/grpc"
153
+ require "google/logging/v2/logging_metrics_services_pb"
154
+
155
+ # Create the configuration object
156
+ @config = Configuration.new Client.configure
157
+
158
+ # Yield the configuration if needed
159
+ yield @config if block_given?
160
+
161
+ # Create credentials
162
+ credentials = @config.credentials
163
+ credentials ||= Credentials.default scope: @config.scope
164
+ if credentials.is_a?(String) || credentials.is_a?(Hash)
165
+ credentials = Credentials.new credentials, scope: @config.scope
166
+ end
167
+ @quota_project_id = @config.quota_project
168
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
169
+
170
+ @metrics_service_stub = ::Gapic::ServiceStub.new(
171
+ ::Google::Cloud::Logging::V2::MetricsServiceV2::Stub,
172
+ credentials: credentials,
173
+ endpoint: @config.endpoint,
174
+ channel_args: @config.channel_args,
175
+ interceptors: @config.interceptors
176
+ )
177
+ end
178
+
179
+ # Service calls
180
+
181
+ ##
182
+ # Lists logs-based metrics.
183
+ #
184
+ # @overload list_log_metrics(request, options = nil)
185
+ # Pass arguments to `list_log_metrics` via a request object, either of type
186
+ # {::Google::Cloud::Logging::V2::ListLogMetricsRequest} or an equivalent Hash.
187
+ #
188
+ # @param request [::Google::Cloud::Logging::V2::ListLogMetricsRequest, ::Hash]
189
+ # A request object representing the call parameters. Required. To specify no
190
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
191
+ # @param options [::Gapic::CallOptions, ::Hash]
192
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
193
+ #
194
+ # @overload list_log_metrics(parent: nil, page_token: nil, page_size: nil)
195
+ # Pass arguments to `list_log_metrics` via keyword arguments. Note that at
196
+ # least one keyword argument is required. To specify no parameters, or to keep all
197
+ # the default parameter values, pass an empty Hash as a request object (see above).
198
+ #
199
+ # @param parent [::String]
200
+ # Required. The name of the project containing the metrics:
201
+ #
202
+ # "projects/[PROJECT_ID]"
203
+ # @param page_token [::String]
204
+ # Optional. If present, then retrieve the next batch of results from the
205
+ # preceding call to this method. `pageToken` must be the value of
206
+ # `nextPageToken` from the previous response. The values of other method
207
+ # parameters should be identical to those in the previous call.
208
+ # @param page_size [::Integer]
209
+ # Optional. The maximum number of results to return from this request.
210
+ # Non-positive values are ignored. The presence of `nextPageToken` in the
211
+ # response indicates that more results might be available.
212
+ #
213
+ # @yield [response, operation] Access the result along with the RPC operation
214
+ # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Logging::V2::LogMetric>]
215
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
216
+ #
217
+ # @return [::Gapic::PagedEnumerable<::Google::Cloud::Logging::V2::LogMetric>]
218
+ #
219
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
220
+ #
221
+ def list_log_metrics request, options = nil
222
+ raise ::ArgumentError, "request must be provided" if request.nil?
223
+
224
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Logging::V2::ListLogMetricsRequest
225
+
226
+ # Converts hash and nil to an options object
227
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
228
+
229
+ # Customize the options with defaults
230
+ metadata = @config.rpcs.list_log_metrics.metadata.to_h
231
+
232
+ # Set x-goog-api-client and x-goog-user-project headers
233
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
234
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
235
+ gapic_version: ::Google::Cloud::Logging::V2::VERSION
236
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
237
+
238
+ header_params = {
239
+ "parent" => request.parent
240
+ }
241
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
242
+ metadata[:"x-goog-request-params"] ||= request_params_header
243
+
244
+ options.apply_defaults timeout: @config.rpcs.list_log_metrics.timeout,
245
+ metadata: metadata,
246
+ retry_policy: @config.rpcs.list_log_metrics.retry_policy
247
+ options.apply_defaults metadata: @config.metadata,
248
+ retry_policy: @config.retry_policy
249
+
250
+ @metrics_service_stub.call_rpc :list_log_metrics, request, options: options do |response, operation|
251
+ response = ::Gapic::PagedEnumerable.new @metrics_service_stub, :list_log_metrics, request, response, operation, options
252
+ yield response, operation if block_given?
253
+ return response
254
+ end
255
+ rescue ::GRPC::BadStatus => e
256
+ raise ::Google::Cloud::Error.from_error(e)
257
+ end
258
+
259
+ ##
260
+ # Gets a logs-based metric.
261
+ #
262
+ # @overload get_log_metric(request, options = nil)
263
+ # Pass arguments to `get_log_metric` via a request object, either of type
264
+ # {::Google::Cloud::Logging::V2::GetLogMetricRequest} or an equivalent Hash.
265
+ #
266
+ # @param request [::Google::Cloud::Logging::V2::GetLogMetricRequest, ::Hash]
267
+ # A request object representing the call parameters. Required. To specify no
268
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
269
+ # @param options [::Gapic::CallOptions, ::Hash]
270
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
271
+ #
272
+ # @overload get_log_metric(metric_name: nil)
273
+ # Pass arguments to `get_log_metric` via keyword arguments. Note that at
274
+ # least one keyword argument is required. To specify no parameters, or to keep all
275
+ # the default parameter values, pass an empty Hash as a request object (see above).
276
+ #
277
+ # @param metric_name [::String]
278
+ # Required. The resource name of the desired metric:
279
+ #
280
+ # "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
281
+ #
282
+ # @yield [response, operation] Access the result along with the RPC operation
283
+ # @yieldparam response [::Google::Cloud::Logging::V2::LogMetric]
284
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
285
+ #
286
+ # @return [::Google::Cloud::Logging::V2::LogMetric]
287
+ #
288
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
289
+ #
290
+ def get_log_metric request, options = nil
291
+ raise ::ArgumentError, "request must be provided" if request.nil?
292
+
293
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Logging::V2::GetLogMetricRequest
294
+
295
+ # Converts hash and nil to an options object
296
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
297
+
298
+ # Customize the options with defaults
299
+ metadata = @config.rpcs.get_log_metric.metadata.to_h
300
+
301
+ # Set x-goog-api-client and x-goog-user-project headers
302
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
303
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
304
+ gapic_version: ::Google::Cloud::Logging::V2::VERSION
305
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
306
+
307
+ header_params = {
308
+ "metric_name" => request.metric_name
309
+ }
310
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
311
+ metadata[:"x-goog-request-params"] ||= request_params_header
312
+
313
+ options.apply_defaults timeout: @config.rpcs.get_log_metric.timeout,
314
+ metadata: metadata,
315
+ retry_policy: @config.rpcs.get_log_metric.retry_policy
316
+ options.apply_defaults metadata: @config.metadata,
317
+ retry_policy: @config.retry_policy
318
+
319
+ @metrics_service_stub.call_rpc :get_log_metric, request, options: options do |response, operation|
320
+ yield response, operation if block_given?
321
+ return response
322
+ end
323
+ rescue ::GRPC::BadStatus => e
324
+ raise ::Google::Cloud::Error.from_error(e)
325
+ end
326
+
327
+ ##
328
+ # Creates a logs-based metric.
329
+ #
330
+ # @overload create_log_metric(request, options = nil)
331
+ # Pass arguments to `create_log_metric` via a request object, either of type
332
+ # {::Google::Cloud::Logging::V2::CreateLogMetricRequest} or an equivalent Hash.
333
+ #
334
+ # @param request [::Google::Cloud::Logging::V2::CreateLogMetricRequest, ::Hash]
335
+ # A request object representing the call parameters. Required. To specify no
336
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
337
+ # @param options [::Gapic::CallOptions, ::Hash]
338
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
339
+ #
340
+ # @overload create_log_metric(parent: nil, metric: nil)
341
+ # Pass arguments to `create_log_metric` via keyword arguments. Note that at
342
+ # least one keyword argument is required. To specify no parameters, or to keep all
343
+ # the default parameter values, pass an empty Hash as a request object (see above).
344
+ #
345
+ # @param parent [::String]
346
+ # Required. The resource name of the project in which to create the metric:
347
+ #
348
+ # "projects/[PROJECT_ID]"
349
+ #
350
+ # The new metric must be provided in the request.
351
+ # @param metric [::Google::Cloud::Logging::V2::LogMetric, ::Hash]
352
+ # Required. The new logs-based metric, which must not have an identifier that
353
+ # already exists.
354
+ #
355
+ # @yield [response, operation] Access the result along with the RPC operation
356
+ # @yieldparam response [::Google::Cloud::Logging::V2::LogMetric]
357
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
358
+ #
359
+ # @return [::Google::Cloud::Logging::V2::LogMetric]
360
+ #
361
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
362
+ #
363
+ def create_log_metric request, options = nil
364
+ raise ::ArgumentError, "request must be provided" if request.nil?
365
+
366
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Logging::V2::CreateLogMetricRequest
367
+
368
+ # Converts hash and nil to an options object
369
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
370
+
371
+ # Customize the options with defaults
372
+ metadata = @config.rpcs.create_log_metric.metadata.to_h
373
+
374
+ # Set x-goog-api-client and x-goog-user-project headers
375
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
376
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
377
+ gapic_version: ::Google::Cloud::Logging::V2::VERSION
378
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
379
+
380
+ header_params = {
381
+ "parent" => request.parent
382
+ }
383
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
384
+ metadata[:"x-goog-request-params"] ||= request_params_header
385
+
386
+ options.apply_defaults timeout: @config.rpcs.create_log_metric.timeout,
387
+ metadata: metadata,
388
+ retry_policy: @config.rpcs.create_log_metric.retry_policy
389
+ options.apply_defaults metadata: @config.metadata,
390
+ retry_policy: @config.retry_policy
391
+
392
+ @metrics_service_stub.call_rpc :create_log_metric, request, options: options do |response, operation|
393
+ yield response, operation if block_given?
394
+ return response
395
+ end
396
+ rescue ::GRPC::BadStatus => e
397
+ raise ::Google::Cloud::Error.from_error(e)
398
+ end
399
+
400
+ ##
401
+ # Creates or updates a logs-based metric.
402
+ #
403
+ # @overload update_log_metric(request, options = nil)
404
+ # Pass arguments to `update_log_metric` via a request object, either of type
405
+ # {::Google::Cloud::Logging::V2::UpdateLogMetricRequest} or an equivalent Hash.
406
+ #
407
+ # @param request [::Google::Cloud::Logging::V2::UpdateLogMetricRequest, ::Hash]
408
+ # A request object representing the call parameters. Required. To specify no
409
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
410
+ # @param options [::Gapic::CallOptions, ::Hash]
411
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
412
+ #
413
+ # @overload update_log_metric(metric_name: nil, metric: nil)
414
+ # Pass arguments to `update_log_metric` via keyword arguments. Note that at
415
+ # least one keyword argument is required. To specify no parameters, or to keep all
416
+ # the default parameter values, pass an empty Hash as a request object (see above).
417
+ #
418
+ # @param metric_name [::String]
419
+ # Required. The resource name of the metric to update:
420
+ #
421
+ # "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
422
+ #
423
+ # The updated metric must be provided in the request and it's
424
+ # `name` field must be the same as `[METRIC_ID]` If the metric
425
+ # does not exist in `[PROJECT_ID]`, then a new metric is created.
426
+ # @param metric [::Google::Cloud::Logging::V2::LogMetric, ::Hash]
427
+ # Required. The updated metric.
428
+ #
429
+ # @yield [response, operation] Access the result along with the RPC operation
430
+ # @yieldparam response [::Google::Cloud::Logging::V2::LogMetric]
431
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
432
+ #
433
+ # @return [::Google::Cloud::Logging::V2::LogMetric]
434
+ #
435
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
436
+ #
437
+ def update_log_metric request, options = nil
438
+ raise ::ArgumentError, "request must be provided" if request.nil?
439
+
440
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Logging::V2::UpdateLogMetricRequest
441
+
442
+ # Converts hash and nil to an options object
443
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
444
+
445
+ # Customize the options with defaults
446
+ metadata = @config.rpcs.update_log_metric.metadata.to_h
447
+
448
+ # Set x-goog-api-client and x-goog-user-project headers
449
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
450
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
451
+ gapic_version: ::Google::Cloud::Logging::V2::VERSION
452
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
453
+
454
+ header_params = {
455
+ "metric_name" => request.metric_name
456
+ }
457
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
458
+ metadata[:"x-goog-request-params"] ||= request_params_header
459
+
460
+ options.apply_defaults timeout: @config.rpcs.update_log_metric.timeout,
461
+ metadata: metadata,
462
+ retry_policy: @config.rpcs.update_log_metric.retry_policy
463
+ options.apply_defaults metadata: @config.metadata,
464
+ retry_policy: @config.retry_policy
465
+
466
+ @metrics_service_stub.call_rpc :update_log_metric, request, options: options do |response, operation|
467
+ yield response, operation if block_given?
468
+ return response
469
+ end
470
+ rescue ::GRPC::BadStatus => e
471
+ raise ::Google::Cloud::Error.from_error(e)
472
+ end
473
+
474
+ ##
475
+ # Deletes a logs-based metric.
476
+ #
477
+ # @overload delete_log_metric(request, options = nil)
478
+ # Pass arguments to `delete_log_metric` via a request object, either of type
479
+ # {::Google::Cloud::Logging::V2::DeleteLogMetricRequest} or an equivalent Hash.
480
+ #
481
+ # @param request [::Google::Cloud::Logging::V2::DeleteLogMetricRequest, ::Hash]
482
+ # A request object representing the call parameters. Required. To specify no
483
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
484
+ # @param options [::Gapic::CallOptions, ::Hash]
485
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
486
+ #
487
+ # @overload delete_log_metric(metric_name: nil)
488
+ # Pass arguments to `delete_log_metric` via keyword arguments. Note that at
489
+ # least one keyword argument is required. To specify no parameters, or to keep all
490
+ # the default parameter values, pass an empty Hash as a request object (see above).
491
+ #
492
+ # @param metric_name [::String]
493
+ # Required. The resource name of the metric to delete:
494
+ #
495
+ # "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
496
+ #
497
+ # @yield [response, operation] Access the result along with the RPC operation
498
+ # @yieldparam response [::Google::Protobuf::Empty]
499
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
500
+ #
501
+ # @return [::Google::Protobuf::Empty]
502
+ #
503
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
504
+ #
505
+ def delete_log_metric request, options = nil
506
+ raise ::ArgumentError, "request must be provided" if request.nil?
507
+
508
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Logging::V2::DeleteLogMetricRequest
509
+
510
+ # Converts hash and nil to an options object
511
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
512
+
513
+ # Customize the options with defaults
514
+ metadata = @config.rpcs.delete_log_metric.metadata.to_h
515
+
516
+ # Set x-goog-api-client and x-goog-user-project headers
517
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
518
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
519
+ gapic_version: ::Google::Cloud::Logging::V2::VERSION
520
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
521
+
522
+ header_params = {
523
+ "metric_name" => request.metric_name
524
+ }
525
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
526
+ metadata[:"x-goog-request-params"] ||= request_params_header
527
+
528
+ options.apply_defaults timeout: @config.rpcs.delete_log_metric.timeout,
529
+ metadata: metadata,
530
+ retry_policy: @config.rpcs.delete_log_metric.retry_policy
531
+ options.apply_defaults metadata: @config.metadata,
532
+ retry_policy: @config.retry_policy
533
+
534
+ @metrics_service_stub.call_rpc :delete_log_metric, request, options: options do |response, operation|
535
+ yield response, operation if block_given?
536
+ return response
537
+ end
538
+ rescue ::GRPC::BadStatus => e
539
+ raise ::Google::Cloud::Error.from_error(e)
540
+ end
541
+
542
+ ##
543
+ # Configuration class for the MetricsService API.
544
+ #
545
+ # This class represents the configuration for MetricsService,
546
+ # providing control over timeouts, retry behavior, logging, transport
547
+ # parameters, and other low-level controls. Certain parameters can also be
548
+ # applied individually to specific RPCs. See
549
+ # {::Google::Cloud::Logging::V2::MetricsService::Client::Configuration::Rpcs}
550
+ # for a list of RPCs that can be configured independently.
551
+ #
552
+ # Configuration can be applied globally to all clients, or to a single client
553
+ # on construction.
554
+ #
555
+ # # Examples
556
+ #
557
+ # To modify the global config, setting the timeout for list_log_metrics
558
+ # to 20 seconds, and all remaining timeouts to 10 seconds:
559
+ #
560
+ # ::Google::Cloud::Logging::V2::MetricsService::Client.configure do |config|
561
+ # config.timeout = 10.0
562
+ # config.rpcs.list_log_metrics.timeout = 20.0
563
+ # end
564
+ #
565
+ # To apply the above configuration only to a new client:
566
+ #
567
+ # client = ::Google::Cloud::Logging::V2::MetricsService::Client.new do |config|
568
+ # config.timeout = 10.0
569
+ # config.rpcs.list_log_metrics.timeout = 20.0
570
+ # end
571
+ #
572
+ # @!attribute [rw] endpoint
573
+ # The hostname or hostname:port of the service endpoint.
574
+ # Defaults to `"logging.googleapis.com"`.
575
+ # @return [::String]
576
+ # @!attribute [rw] credentials
577
+ # Credentials to send with calls. You may provide any of the following types:
578
+ # * (`String`) The path to a service account key file in JSON format
579
+ # * (`Hash`) A service account key as a Hash
580
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
581
+ # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
582
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
583
+ # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
584
+ # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
585
+ # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
586
+ # * (`nil`) indicating no credentials
587
+ # @return [::Object]
588
+ # @!attribute [rw] scope
589
+ # The OAuth scopes
590
+ # @return [::Array<::String>]
591
+ # @!attribute [rw] lib_name
592
+ # The library name as recorded in instrumentation and logging
593
+ # @return [::String]
594
+ # @!attribute [rw] lib_version
595
+ # The library version as recorded in instrumentation and logging
596
+ # @return [::String]
597
+ # @!attribute [rw] channel_args
598
+ # Extra parameters passed to the gRPC channel. Note: this is ignored if a
599
+ # `GRPC::Core::Channel` object is provided as the credential.
600
+ # @return [::Hash]
601
+ # @!attribute [rw] interceptors
602
+ # An array of interceptors that are run before calls are executed.
603
+ # @return [::Array<::GRPC::ClientInterceptor>]
604
+ # @!attribute [rw] timeout
605
+ # The call timeout in seconds.
606
+ # @return [::Numeric]
607
+ # @!attribute [rw] metadata
608
+ # Additional gRPC headers to be sent with the call.
609
+ # @return [::Hash{::Symbol=>::String}]
610
+ # @!attribute [rw] retry_policy
611
+ # The retry policy. The value is a hash with the following keys:
612
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
613
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
614
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
615
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
616
+ # trigger a retry.
617
+ # @return [::Hash]
618
+ # @!attribute [rw] quota_project
619
+ # A separate project against which to charge quota.
620
+ # @return [::String]
621
+ #
622
+ class Configuration
623
+ extend ::Gapic::Config
624
+
625
+ config_attr :endpoint, "logging.googleapis.com", ::String
626
+ config_attr :credentials, nil do |value|
627
+ allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
628
+ allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
629
+ allowed.any? { |klass| klass === value }
630
+ end
631
+ config_attr :scope, nil, ::String, ::Array, nil
632
+ config_attr :lib_name, nil, ::String, nil
633
+ config_attr :lib_version, nil, ::String, nil
634
+ config_attr(:channel_args, { "grpc.service_config_disable_resolution"=>1 }, ::Hash, nil)
635
+ config_attr :interceptors, nil, ::Array, nil
636
+ config_attr :timeout, nil, ::Numeric, nil
637
+ config_attr :metadata, nil, ::Hash, nil
638
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
639
+ config_attr :quota_project, nil, ::String, nil
640
+
641
+ # @private
642
+ def initialize parent_config = nil
643
+ @parent_config = parent_config unless parent_config.nil?
644
+
645
+ yield self if block_given?
646
+ end
647
+
648
+ ##
649
+ # Configurations for individual RPCs
650
+ # @return [Rpcs]
651
+ #
652
+ def rpcs
653
+ @rpcs ||= begin
654
+ parent_rpcs = nil
655
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config&.respond_to?(:rpcs)
656
+ Rpcs.new parent_rpcs
657
+ end
658
+ end
659
+
660
+ ##
661
+ # Configuration RPC class for the MetricsService API.
662
+ #
663
+ # Includes fields providing the configuration for each RPC in this service.
664
+ # Each configuration object is of type `Gapic::Config::Method` and includes
665
+ # the following configuration fields:
666
+ #
667
+ # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
668
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
669
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
670
+ # include the following keys:
671
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
672
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
673
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
674
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
675
+ # trigger a retry.
676
+ #
677
+ class Rpcs
678
+ ##
679
+ # RPC-specific configuration for `list_log_metrics`
680
+ # @return [::Gapic::Config::Method]
681
+ #
682
+ attr_reader :list_log_metrics
683
+ ##
684
+ # RPC-specific configuration for `get_log_metric`
685
+ # @return [::Gapic::Config::Method]
686
+ #
687
+ attr_reader :get_log_metric
688
+ ##
689
+ # RPC-specific configuration for `create_log_metric`
690
+ # @return [::Gapic::Config::Method]
691
+ #
692
+ attr_reader :create_log_metric
693
+ ##
694
+ # RPC-specific configuration for `update_log_metric`
695
+ # @return [::Gapic::Config::Method]
696
+ #
697
+ attr_reader :update_log_metric
698
+ ##
699
+ # RPC-specific configuration for `delete_log_metric`
700
+ # @return [::Gapic::Config::Method]
701
+ #
702
+ attr_reader :delete_log_metric
703
+
704
+ # @private
705
+ def initialize parent_rpcs = nil
706
+ list_log_metrics_config = parent_rpcs&.list_log_metrics if parent_rpcs&.respond_to? :list_log_metrics
707
+ @list_log_metrics = ::Gapic::Config::Method.new list_log_metrics_config
708
+ get_log_metric_config = parent_rpcs&.get_log_metric if parent_rpcs&.respond_to? :get_log_metric
709
+ @get_log_metric = ::Gapic::Config::Method.new get_log_metric_config
710
+ create_log_metric_config = parent_rpcs&.create_log_metric if parent_rpcs&.respond_to? :create_log_metric
711
+ @create_log_metric = ::Gapic::Config::Method.new create_log_metric_config
712
+ update_log_metric_config = parent_rpcs&.update_log_metric if parent_rpcs&.respond_to? :update_log_metric
713
+ @update_log_metric = ::Gapic::Config::Method.new update_log_metric_config
714
+ delete_log_metric_config = parent_rpcs&.delete_log_metric if parent_rpcs&.respond_to? :delete_log_metric
715
+ @delete_log_metric = ::Gapic::Config::Method.new delete_log_metric_config
716
+
717
+ yield self if block_given?
718
+ end
719
+ end
720
+ end
721
+ end
722
+ end
723
+ end
724
+ end
725
+ end
726
+ end