google-api-client 0.9.8 → 0.9.9

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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  4. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +76 -1
  5. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +22 -0
  6. data/generated/google/apis/adsense_v1_4.rb +1 -1
  7. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  8. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  9. data/generated/google/apis/analyticsreporting_v4/classes.rb +32 -14
  10. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  11. data/generated/google/apis/androidenterprise_v1/classes.rb +1 -1
  12. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  13. data/generated/google/apis/appstate_v1.rb +1 -1
  14. data/generated/google/apis/bigquery_v2.rb +1 -1
  15. data/generated/google/apis/bigquery_v2/classes.rb +10 -0
  16. data/generated/google/apis/bigquery_v2/representations.rb +1 -0
  17. data/generated/google/apis/calendar_v3.rb +1 -1
  18. data/generated/google/apis/clouddebugger_v2.rb +1 -1
  19. data/generated/google/apis/clouddebugger_v2/service.rb +2 -2
  20. data/generated/google/apis/compute_beta.rb +1 -1
  21. data/generated/google/apis/compute_beta/classes.rb +28 -5
  22. data/generated/google/apis/compute_beta/representations.rb +3 -0
  23. data/generated/google/apis/compute_beta/service.rb +1 -2
  24. data/generated/google/apis/compute_v1.rb +1 -1
  25. data/generated/google/apis/compute_v1/classes.rb +680 -4
  26. data/generated/google/apis/compute_v1/representations.rb +274 -0
  27. data/generated/google/apis/compute_v1/service.rb +442 -2
  28. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  29. data/generated/google/apis/dns_v1.rb +1 -1
  30. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  31. data/generated/google/apis/drive_v2.rb +1 -1
  32. data/generated/google/apis/drive_v2/classes.rb +6 -0
  33. data/generated/google/apis/drive_v2/representations.rb +2 -0
  34. data/generated/google/apis/drive_v2/service.rb +8 -2
  35. data/generated/google/apis/drive_v3.rb +1 -1
  36. data/generated/google/apis/drive_v3/classes.rb +6 -0
  37. data/generated/google/apis/drive_v3/representations.rb +2 -0
  38. data/generated/google/apis/drive_v3/service.rb +4 -1
  39. data/generated/google/apis/fusiontables_v2.rb +1 -1
  40. data/generated/google/apis/fusiontables_v2/classes.rb +4 -3
  41. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  42. data/generated/google/apis/games_management_v1management.rb +1 -1
  43. data/generated/google/apis/games_v1.rb +1 -1
  44. data/generated/google/apis/genomics_v1.rb +1 -1
  45. data/generated/google/apis/genomics_v1/classes.rb +63 -0
  46. data/generated/google/apis/genomics_v1/representations.rb +31 -0
  47. data/generated/google/apis/gmail_v1.rb +1 -1
  48. data/generated/google/apis/groupssettings_v1.rb +1 -1
  49. data/generated/google/apis/groupssettings_v1/classes.rb +12 -0
  50. data/generated/google/apis/groupssettings_v1/representations.rb +2 -0
  51. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  52. data/generated/google/apis/identitytoolkit_v3/classes.rb +30 -0
  53. data/generated/google/apis/identitytoolkit_v3/representations.rb +5 -0
  54. data/generated/google/apis/monitoring_v3.rb +45 -0
  55. data/generated/google/apis/monitoring_v3/classes.rb +1404 -0
  56. data/generated/google/apis/monitoring_v3/representations.rb +533 -0
  57. data/generated/google/apis/monitoring_v3/service.rb +743 -0
  58. data/generated/google/apis/oauth2_v2.rb +1 -1
  59. data/generated/google/apis/plus_domains_v1.rb +1 -1
  60. data/generated/google/apis/plus_v1.rb +1 -1
  61. data/generated/google/apis/sheets_v4.rb +1 -1
  62. data/generated/google/apis/vision_v1.rb +1 -1
  63. data/generated/google/apis/vision_v1/classes.rb +10 -9
  64. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  65. data/generated/google/apis/youtube_v3.rb +1 -1
  66. data/generated/google/apis/youtube_v3/classes.rb +155 -0
  67. data/generated/google/apis/youtube_v3/representations.rb +81 -0
  68. data/generated/google/apis/youtube_v3/service.rb +6 -2
  69. data/lib/google/apis/errors.rb +2 -2
  70. data/lib/google/apis/version.rb +1 -1
  71. data/samples/cli/lib/samples/bigquery.rb +101 -0
  72. data/samples/cli/lib/samples/sheets.rb +61 -0
  73. metadata +8 -2
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/identity-toolkit/v3/
26
26
  module IdentitytoolkitV3
27
27
  VERSION = 'V3'
28
- REVISION = '20160510'
28
+ REVISION = '20160603'
29
29
  end
30
30
  end
31
31
  end
@@ -587,6 +587,11 @@ module Google
587
587
  # @return [String]
588
588
  attr_accessor :captcha_response
589
589
 
590
+ # The timestamp when the account is created.
591
+ # Corresponds to the JSON property `createdAt`
592
+ # @return [String]
593
+ attr_accessor :created_at
594
+
590
595
  # GCP project number of the requesting delegated app. Currently only intended
591
596
  # for Firebase V1 migration.
592
597
  # Corresponds to the JSON property `delegatedProjectNumber`
@@ -635,6 +640,11 @@ module Google
635
640
  # @return [String]
636
641
  attr_accessor :instance_id
637
642
 
643
+ # Last login timestamp.
644
+ # Corresponds to the JSON property `lastLoginAt`
645
+ # @return [String]
646
+ attr_accessor :last_login_at
647
+
638
648
  # The local ID of the user.
639
649
  # Corresponds to the JSON property `localId`
640
650
  # @return [String]
@@ -685,6 +695,7 @@ module Google
685
695
  def update!(**args)
686
696
  @captcha_challenge = args[:captcha_challenge] if args.key?(:captcha_challenge)
687
697
  @captcha_response = args[:captcha_response] if args.key?(:captcha_response)
698
+ @created_at = args[:created_at] if args.key?(:created_at)
688
699
  @delegated_project_number = args[:delegated_project_number] if args.key?(:delegated_project_number)
689
700
  @delete_attribute = args[:delete_attribute] if args.key?(:delete_attribute)
690
701
  @delete_provider = args[:delete_provider] if args.key?(:delete_provider)
@@ -694,6 +705,7 @@ module Google
694
705
  @email_verified = args[:email_verified] if args.key?(:email_verified)
695
706
  @id_token = args[:id_token] if args.key?(:id_token)
696
707
  @instance_id = args[:instance_id] if args.key?(:instance_id)
708
+ @last_login_at = args[:last_login_at] if args.key?(:last_login_at)
697
709
  @local_id = args[:local_id] if args.key?(:local_id)
698
710
  @oob_code = args[:oob_code] if args.key?(:oob_code)
699
711
  @password = args[:password] if args.key?(:password)
@@ -1171,6 +1183,11 @@ module Google
1171
1183
  # @return [String]
1172
1184
  attr_accessor :secret
1173
1185
 
1186
+ # Whitelisted client IDs for audience check.
1187
+ # Corresponds to the JSON property `whitelistedAudiences`
1188
+ # @return [Array<String>]
1189
+ attr_accessor :whitelisted_audiences
1190
+
1174
1191
  def initialize(**args)
1175
1192
  update!(**args)
1176
1193
  end
@@ -1182,6 +1199,7 @@ module Google
1182
1199
  @experiment_percent = args[:experiment_percent] if args.key?(:experiment_percent)
1183
1200
  @provider = args[:provider] if args.key?(:provider)
1184
1201
  @secret = args[:secret] if args.key?(:secret)
1202
+ @whitelisted_audiences = args[:whitelisted_audiences] if args.key?(:whitelisted_audiences)
1185
1203
  end
1186
1204
  end
1187
1205
 
@@ -1501,6 +1519,11 @@ module Google
1501
1519
  class UserInfo
1502
1520
  include Google::Apis::Core::Hashable
1503
1521
 
1522
+ # User creation timestamp.
1523
+ # Corresponds to the JSON property `createdAt`
1524
+ # @return [String]
1525
+ attr_accessor :created_at
1526
+
1504
1527
  # Whether the user is disabled.
1505
1528
  # Corresponds to the JSON property `disabled`
1506
1529
  # @return [Boolean]
@@ -1523,6 +1546,11 @@ module Google
1523
1546
  attr_accessor :email_verified
1524
1547
  alias_method :email_verified?, :email_verified
1525
1548
 
1549
+ # last login timestamp.
1550
+ # Corresponds to the JSON property `lastLoginAt`
1551
+ # @return [String]
1552
+ attr_accessor :last_login_at
1553
+
1526
1554
  # The local ID of the user.
1527
1555
  # Corresponds to the JSON property `localId`
1528
1556
  # @return [String]
@@ -1569,10 +1597,12 @@ module Google
1569
1597
 
1570
1598
  # Update properties of this object
1571
1599
  def update!(**args)
1600
+ @created_at = args[:created_at] if args.key?(:created_at)
1572
1601
  @disabled = args[:disabled] if args.key?(:disabled)
1573
1602
  @display_name = args[:display_name] if args.key?(:display_name)
1574
1603
  @email = args[:email] if args.key?(:email)
1575
1604
  @email_verified = args[:email_verified] if args.key?(:email_verified)
1605
+ @last_login_at = args[:last_login_at] if args.key?(:last_login_at)
1576
1606
  @local_id = args[:local_id] if args.key?(:local_id)
1577
1607
  @password_hash = args[:password_hash] if args.key?(:password_hash)
1578
1608
  @password_updated_at = args[:password_updated_at] if args.key?(:password_updated_at)
@@ -389,6 +389,7 @@ module Google
389
389
  class Representation < Google::Apis::Core::JsonRepresentation
390
390
  property :captcha_challenge, as: 'captchaChallenge'
391
391
  property :captcha_response, as: 'captchaResponse'
392
+ property :created_at, as: 'createdAt'
392
393
  property :delegated_project_number, as: 'delegatedProjectNumber'
393
394
  collection :delete_attribute, as: 'deleteAttribute'
394
395
  collection :delete_provider, as: 'deleteProvider'
@@ -398,6 +399,7 @@ module Google
398
399
  property :email_verified, as: 'emailVerified'
399
400
  property :id_token, as: 'idToken'
400
401
  property :instance_id, as: 'instanceId'
402
+ property :last_login_at, as: 'lastLoginAt'
401
403
  property :local_id, as: 'localId'
402
404
  property :oob_code, as: 'oobCode'
403
405
  property :password, as: 'password'
@@ -528,6 +530,7 @@ module Google
528
530
  property :experiment_percent, as: 'experimentPercent'
529
531
  property :provider, as: 'provider'
530
532
  property :secret, as: 'secret'
533
+ collection :whitelisted_audiences, as: 'whitelistedAudiences'
531
534
  end
532
535
  end
533
536
 
@@ -614,10 +617,12 @@ module Google
614
617
  class UserInfo
615
618
  # @private
616
619
  class Representation < Google::Apis::Core::JsonRepresentation
620
+ property :created_at, as: 'createdAt'
617
621
  property :disabled, as: 'disabled'
618
622
  property :display_name, as: 'displayName'
619
623
  property :email, as: 'email'
620
624
  property :email_verified, as: 'emailVerified'
625
+ property :last_login_at, as: 'lastLoginAt'
621
626
  property :local_id, as: 'localId'
622
627
  property :password_hash, :base64 => true, as: 'passwordHash'
623
628
  property :password_updated_at, as: 'passwordUpdatedAt'
@@ -0,0 +1,45 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/monitoring_v3/service.rb'
16
+ require 'google/apis/monitoring_v3/classes.rb'
17
+ require 'google/apis/monitoring_v3/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Google Monitoring API
22
+ #
23
+ # Manages your Stackdriver Monitoring data and configurations. Most projects
24
+ # must be associated with a Stackdriver account, with a few exceptions as noted
25
+ # on the individual method pages.
26
+ #
27
+ # @see https://cloud.google.com/monitoring/api/
28
+ module MonitoringV3
29
+ VERSION = 'V3'
30
+ REVISION = '20160606'
31
+
32
+ # View and manage your data across Google Cloud Platform services
33
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
34
+
35
+ # View monitoring data for all of your Google Cloud and third-party projects
36
+ AUTH_MONITORING_READ = 'https://www.googleapis.com/auth/monitoring.read'
37
+
38
+ # Publish metric data to your Google Cloud projects
39
+ AUTH_MONITORING_WRITE = 'https://www.googleapis.com/auth/monitoring.write'
40
+
41
+ # View and write monitoring data for all of your Google and third-party Cloud and API projects
42
+ AUTH_MONITORING = 'https://www.googleapis.com/auth/monitoring'
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,1404 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module MonitoringV3
24
+
25
+ # A specific metric identified by specifying values for all of the
26
+ # labels of a `MetricDescriptor`.
27
+ class Metric
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # The set of labels that uniquely identify a metric. To specify a
31
+ # metric, all labels enumerated in the `MetricDescriptor` must be
32
+ # assigned values.
33
+ # Corresponds to the JSON property `labels`
34
+ # @return [Hash<String,String>]
35
+ attr_accessor :labels
36
+
37
+ # An existing metric type, see google.api.MetricDescriptor.
38
+ # For example, `compute.googleapis.com/instance/cpu/usage_time`.
39
+ # Corresponds to the JSON property `type`
40
+ # @return [String]
41
+ attr_accessor :type
42
+
43
+ def initialize(**args)
44
+ update!(**args)
45
+ end
46
+
47
+ # Update properties of this object
48
+ def update!(**args)
49
+ @labels = args[:labels] if args.key?(:labels)
50
+ @type = args[:type] if args.key?(:type)
51
+ end
52
+ end
53
+
54
+ # The `ListGroupMembers` response.
55
+ class ListGroupMembersResponse
56
+ include Google::Apis::Core::Hashable
57
+
58
+ # A set of monitored resources in the group.
59
+ # Corresponds to the JSON property `members`
60
+ # @return [Array<Google::Apis::MonitoringV3::MonitoredResource>]
61
+ attr_accessor :members
62
+
63
+ # If there are more results than have been returned, then this field is
64
+ # set to a non-empty value. To see the additional results, use that value as
65
+ # `pageToken` in the next call to this method.
66
+ # Corresponds to the JSON property `nextPageToken`
67
+ # @return [String]
68
+ attr_accessor :next_page_token
69
+
70
+ # The total number of elements matching this request.
71
+ # Corresponds to the JSON property `totalSize`
72
+ # @return [Fixnum]
73
+ attr_accessor :total_size
74
+
75
+ def initialize(**args)
76
+ update!(**args)
77
+ end
78
+
79
+ # Update properties of this object
80
+ def update!(**args)
81
+ @members = args[:members] if args.key?(:members)
82
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
83
+ @total_size = args[:total_size] if args.key?(:total_size)
84
+ end
85
+ end
86
+
87
+ # A time interval extending from after `startTime` through `endTime`. If
88
+ # `startTime` is omitted, the interval is the single point in time, `endTime`.
89
+ class TimeInterval
90
+ include Google::Apis::Core::Hashable
91
+
92
+ # Required. The end of the interval. The interval includes this
93
+ # time.
94
+ # Corresponds to the JSON property `endTime`
95
+ # @return [String]
96
+ attr_accessor :end_time
97
+
98
+ # If this value is omitted, the interval is a point in time,
99
+ # `endTime`. If `startTime` is present, it must be earlier than
100
+ # (less than) `endTime`. The interval begins after
101
+ # `startTime`&mdash;it does not include `startTime`.
102
+ # Corresponds to the JSON property `startTime`
103
+ # @return [String]
104
+ attr_accessor :start_time
105
+
106
+ def initialize(**args)
107
+ update!(**args)
108
+ end
109
+
110
+ # Update properties of this object
111
+ def update!(**args)
112
+ @end_time = args[:end_time] if args.key?(:end_time)
113
+ @start_time = args[:start_time] if args.key?(:start_time)
114
+ end
115
+ end
116
+
117
+ # The description of a dynamic collection of monitored resources. Each group
118
+ # has a filter that is matched against monitored resources and their associated
119
+ # metadata. If a group's filter matches an available monitored resource, then
120
+ # that resource is a member of that group. Groups can contain any number of
121
+ # monitored resources, and each monitored resource can be a member of any
122
+ # number of groups.
123
+ # Groups can be nested in parent-child hierarchies. The `parentName` field
124
+ # identifies an optional parent for each group. If a group has a parent, then
125
+ # the only monitored resources available to be matched by the group's filter
126
+ # are the resources contained in the parent group. In other words, a group
127
+ # contains the monitored resources that match its filter and the filters of all
128
+ # the group's ancestors. A group without a parent can contain any monitored
129
+ # resource.
130
+ # For example, consider an infrastructure running a set of instances with two
131
+ # user-defined tags: `"environment"` and `"role"`. A parent group has a filter,
132
+ # `environment="production"`. A child of that parent group has a filter,
133
+ # `role="transcoder"`. The parent group contains all instances in the
134
+ # production environment, regardless of their roles. The child group contains
135
+ # instances that have the transcoder role *and* are in the production
136
+ # environment.
137
+ # The monitored resources contained in a group can change at any moment,
138
+ # depending on what resources exist and what filters are associated with the
139
+ # group and its ancestors.
140
+ class Group
141
+ include Google::Apis::Core::Hashable
142
+
143
+ # A user-assigned name for this group, used only for display purposes.
144
+ # Corresponds to the JSON property `displayName`
145
+ # @return [String]
146
+ attr_accessor :display_name
147
+
148
+ # The name of the group's parent, if it has one.
149
+ # The format is `"projects/`project_id_or_number`/groups/`group_id`"`.
150
+ # For groups with no parent, `parentName` is the empty string, `""`.
151
+ # Corresponds to the JSON property `parentName`
152
+ # @return [String]
153
+ attr_accessor :parent_name
154
+
155
+ # If true, the members of this group are considered to be a cluster.
156
+ # The system can perform additional analysis on groups that are clusters.
157
+ # Corresponds to the JSON property `isCluster`
158
+ # @return [Boolean]
159
+ attr_accessor :is_cluster
160
+ alias_method :is_cluster?, :is_cluster
161
+
162
+ # The filter used to determine which monitored resources belong to this group.
163
+ # Corresponds to the JSON property `filter`
164
+ # @return [String]
165
+ attr_accessor :filter
166
+
167
+ # The name of this group.
168
+ # The format is
169
+ # `"projects/`project_id_or_number`/groups/`group_id`"`.
170
+ # When creating a group, this field is ignored and a new name is created
171
+ # consisting of the project specified in the call to `CreateGroup`
172
+ # and a unique ``group_id`` that is generated automatically.
173
+ # @OutputOnly
174
+ # Corresponds to the JSON property `name`
175
+ # @return [String]
176
+ attr_accessor :name
177
+
178
+ def initialize(**args)
179
+ update!(**args)
180
+ end
181
+
182
+ # Update properties of this object
183
+ def update!(**args)
184
+ @display_name = args[:display_name] if args.key?(:display_name)
185
+ @parent_name = args[:parent_name] if args.key?(:parent_name)
186
+ @is_cluster = args[:is_cluster] if args.key?(:is_cluster)
187
+ @filter = args[:filter] if args.key?(:filter)
188
+ @name = args[:name] if args.key?(:name)
189
+ end
190
+ end
191
+
192
+ # The `ListTimeSeries` response.
193
+ class ListTimeSeriesResponse
194
+ include Google::Apis::Core::Hashable
195
+
196
+ # One or more time series that match the filter included in the request.
197
+ # Corresponds to the JSON property `timeSeries`
198
+ # @return [Array<Google::Apis::MonitoringV3::TimeSeries>]
199
+ attr_accessor :time_series
200
+
201
+ # If there are more results than have been returned, then this field is set
202
+ # to a non-empty value. To see the additional results,
203
+ # use that value as `pageToken` in the next call to this method.
204
+ # Corresponds to the JSON property `nextPageToken`
205
+ # @return [String]
206
+ attr_accessor :next_page_token
207
+
208
+ def initialize(**args)
209
+ update!(**args)
210
+ end
211
+
212
+ # Update properties of this object
213
+ def update!(**args)
214
+ @time_series = args[:time_series] if args.key?(:time_series)
215
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
216
+ end
217
+ end
218
+
219
+ # A single data point in a time series.
220
+ class Point
221
+ include Google::Apis::Core::Hashable
222
+
223
+ # A single strongly-typed value.
224
+ # Corresponds to the JSON property `value`
225
+ # @return [Google::Apis::MonitoringV3::TypedValue]
226
+ attr_accessor :value
227
+
228
+ # A time interval extending from after `startTime` through `endTime`. If
229
+ # `startTime` is omitted, the interval is the single point in time, `endTime`.
230
+ # Corresponds to the JSON property `interval`
231
+ # @return [Google::Apis::MonitoringV3::TimeInterval]
232
+ attr_accessor :interval
233
+
234
+ def initialize(**args)
235
+ update!(**args)
236
+ end
237
+
238
+ # Update properties of this object
239
+ def update!(**args)
240
+ @value = args[:value] if args.key?(:value)
241
+ @interval = args[:interval] if args.key?(:interval)
242
+ end
243
+ end
244
+
245
+ # A single data point from a `collectd`-based plugin.
246
+ class CollectdValue
247
+ include Google::Apis::Core::Hashable
248
+
249
+ # A single strongly-typed value.
250
+ # Corresponds to the JSON property `value`
251
+ # @return [Google::Apis::MonitoringV3::TypedValue]
252
+ attr_accessor :value
253
+
254
+ # The data source for the `collectd` value. For example there are
255
+ # two data sources for network measurements: `"rx"` and `"tx"`.
256
+ # Corresponds to the JSON property `dataSourceName`
257
+ # @return [String]
258
+ attr_accessor :data_source_name
259
+
260
+ # The type of measurement.
261
+ # Corresponds to the JSON property `dataSourceType`
262
+ # @return [String]
263
+ attr_accessor :data_source_type
264
+
265
+ def initialize(**args)
266
+ update!(**args)
267
+ end
268
+
269
+ # Update properties of this object
270
+ def update!(**args)
271
+ @value = args[:value] if args.key?(:value)
272
+ @data_source_name = args[:data_source_name] if args.key?(:data_source_name)
273
+ @data_source_type = args[:data_source_type] if args.key?(:data_source_type)
274
+ end
275
+ end
276
+
277
+ # A collection of data points that describes the time-varying nature
278
+ # of a metric. A time series is identified by a combination of a
279
+ # fully-specified monitored resource and a fully-specified metric.
280
+ class TimeSeries
281
+ include Google::Apis::Core::Hashable
282
+
283
+ # A specific metric identified by specifying values for all of the
284
+ # labels of a `MetricDescriptor`.
285
+ # Corresponds to the JSON property `metric`
286
+ # @return [Google::Apis::MonitoringV3::Metric]
287
+ attr_accessor :metric
288
+
289
+ # The data points of this time series. When used as output, points will be
290
+ # sorted by decreasing time order. When used as input, points could be
291
+ # written in any orders.
292
+ # Corresponds to the JSON property `points`
293
+ # @return [Array<Google::Apis::MonitoringV3::Point>]
294
+ attr_accessor :points
295
+
296
+ # The value type of the time series. This can be different than the value
297
+ # type specified in [google.api.MetricDescriptor] because of alignment and
298
+ # reduction operations on the data. This field is ignored when writing data;
299
+ # the value specified in the descriptor is used instead.
300
+ # @OutputOnly
301
+ # Corresponds to the JSON property `valueType`
302
+ # @return [String]
303
+ attr_accessor :value_type
304
+
305
+ # An object representing a resource that can be used for monitoring, logging,
306
+ # billing, or other purposes. Examples include virtual machine instances,
307
+ # databases, and storage devices such as disks. The `type` field identifies a
308
+ # MonitoredResourceDescriptor object that describes the resource's
309
+ # schema. Information in the `labels` field identifies the actual resource and
310
+ # its attributes according to the schema. For example, a particular Compute
311
+ # Engine VM instance could be represented by the following object, because the
312
+ # MonitoredResourceDescriptor for `"gce_instance"` has labels
313
+ # `"instance_id"` and `"zone"`:
314
+ # ` "type": "gce_instance",
315
+ # "labels": ` "instance_id": "my-instance",
316
+ # "zone": "us-central1-a" ``
317
+ # Corresponds to the JSON property `resource`
318
+ # @return [Google::Apis::MonitoringV3::MonitoredResource]
319
+ attr_accessor :resource
320
+
321
+ # The metric kind of the time series. This can be different than the metric
322
+ # kind specified in [google.api.MetricDescriptor] because of alignment and
323
+ # reduction operations on the data. This field is ignored when writing data;
324
+ # the value specified in the descriptor is used instead.
325
+ # @OutputOnly
326
+ # Corresponds to the JSON property `metricKind`
327
+ # @return [String]
328
+ attr_accessor :metric_kind
329
+
330
+ def initialize(**args)
331
+ update!(**args)
332
+ end
333
+
334
+ # Update properties of this object
335
+ def update!(**args)
336
+ @metric = args[:metric] if args.key?(:metric)
337
+ @points = args[:points] if args.key?(:points)
338
+ @value_type = args[:value_type] if args.key?(:value_type)
339
+ @resource = args[:resource] if args.key?(:resource)
340
+ @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
341
+ end
342
+ end
343
+
344
+ # Defines a metric type and its schema.
345
+ class MetricDescriptor
346
+ include Google::Apis::Core::Hashable
347
+
348
+ # A detailed description of the metric, which can be used in documentation.
349
+ # Corresponds to the JSON property `description`
350
+ # @return [String]
351
+ attr_accessor :description
352
+
353
+ # The unit in which the metric value is reported. It is only applicable
354
+ # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
355
+ # supported units are a subset of [The Unified Code for Units of
356
+ # Measure](http://unitsofmeasure.org/ucum.html) standard:
357
+ # **Basic units (UNIT)**
358
+ # * `bit` bit
359
+ # * `By` byte
360
+ # * `s` second
361
+ # * `min` minute
362
+ # * `h` hour
363
+ # * `d` day
364
+ # **Prefixes (PREFIX)**
365
+ # * `k` kilo (10**3)
366
+ # * `M` mega (10**6)
367
+ # * `G` giga (10**9)
368
+ # * `T` tera (10**12)
369
+ # * `P` peta (10**15)
370
+ # * `E` exa (10**18)
371
+ # * `Z` zetta (10**21)
372
+ # * `Y` yotta (10**24)
373
+ # * `m` milli (10**-3)
374
+ # * `u` micro (10**-6)
375
+ # * `n` nano (10**-9)
376
+ # * `p` pico (10**-12)
377
+ # * `f` femto (10**-15)
378
+ # * `a` atto (10**-18)
379
+ # * `z` zepto (10**-21)
380
+ # * `y` yocto (10**-24)
381
+ # * `Ki` kibi (2**10)
382
+ # * `Mi` mebi (2**20)
383
+ # * `Gi` gibi (2**30)
384
+ # * `Ti` tebi (2**40)
385
+ # **Grammar**
386
+ # The grammar includes the dimensionless unit `1`, such as `1/s`.
387
+ # The grammar also includes these connectors:
388
+ # * `/` division (as an infix operator, e.g. `1/s`).
389
+ # * `.` multiplication (as an infix operator, e.g. `GBy.d`)
390
+ # The grammar for a unit is as follows:
391
+ # Expression = Component ` "." Component ` ` "/" Component ` ;
392
+ # Component = [ PREFIX ] UNIT [ Annotation ]
393
+ # | Annotation
394
+ # | "1"
395
+ # ;
396
+ # Annotation = "`" NAME "`" ;
397
+ # Notes:
398
+ # * `Annotation` is just a comment if it follows a `UNIT` and is
399
+ # equivalent to `1` if it is used alone. For examples,
400
+ # ``requests`/s == 1/s`, `By`transmitted`/s == By/s`.
401
+ # * `NAME` is a sequence of non-blank printable ASCII characters not
402
+ # containing '`' or '`'.
403
+ # Corresponds to the JSON property `unit`
404
+ # @return [String]
405
+ attr_accessor :unit
406
+
407
+ # The set of labels that can be used to describe a specific instance of this
408
+ # metric type. For example, the
409
+ # `compute.googleapis.com/instance/network/received_bytes_count` metric type
410
+ # has a label, `loadbalanced`, that specifies whether the traffic was
411
+ # received through a load balanced IP address.
412
+ # Corresponds to the JSON property `labels`
413
+ # @return [Array<Google::Apis::MonitoringV3::LabelDescriptor>]
414
+ attr_accessor :labels
415
+
416
+ # Whether the metric records instantaneous values, changes to a value, etc.
417
+ # Corresponds to the JSON property `metricKind`
418
+ # @return [String]
419
+ attr_accessor :metric_kind
420
+
421
+ # Whether the measurement is an integer, a floating-point number, etc.
422
+ # Corresponds to the JSON property `valueType`
423
+ # @return [String]
424
+ attr_accessor :value_type
425
+
426
+ # A concise name for the metric, which can be displayed in user interfaces.
427
+ # Use sentence case without an ending period, for example "Request count".
428
+ # Corresponds to the JSON property `displayName`
429
+ # @return [String]
430
+ attr_accessor :display_name
431
+
432
+ # Resource name. The format of the name may vary between different
433
+ # implementations. For examples:
434
+ # projects/`project_id`/metricDescriptors/`type=**`
435
+ # metricDescriptors/`type=**`
436
+ # Corresponds to the JSON property `name`
437
+ # @return [String]
438
+ attr_accessor :name
439
+
440
+ # The metric type including a DNS name prefix, for example
441
+ # `"compute.googleapis.com/instance/cpu/utilization"`. Metric types
442
+ # should use a natural hierarchical grouping such as the following:
443
+ # compute.googleapis.com/instance/cpu/utilization
444
+ # compute.googleapis.com/instance/disk/read_ops_count
445
+ # compute.googleapis.com/instance/network/received_bytes_count
446
+ # Note that if the metric type changes, the monitoring data will be
447
+ # discontinued, and anything depends on it will break, such as monitoring
448
+ # dashboards, alerting rules and quota limits. Therefore, once a metric has
449
+ # been published, its type should be immutable.
450
+ # Corresponds to the JSON property `type`
451
+ # @return [String]
452
+ attr_accessor :type
453
+
454
+ def initialize(**args)
455
+ update!(**args)
456
+ end
457
+
458
+ # Update properties of this object
459
+ def update!(**args)
460
+ @description = args[:description] if args.key?(:description)
461
+ @unit = args[:unit] if args.key?(:unit)
462
+ @labels = args[:labels] if args.key?(:labels)
463
+ @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
464
+ @value_type = args[:value_type] if args.key?(:value_type)
465
+ @display_name = args[:display_name] if args.key?(:display_name)
466
+ @name = args[:name] if args.key?(:name)
467
+ @type = args[:type] if args.key?(:type)
468
+ end
469
+ end
470
+
471
+ # Specify a sequence of buckets that have a width that is proportional to
472
+ # the value of the lower bound. Each bucket represents a constant relative
473
+ # uncertainty on a specific value in the bucket.
474
+ # Defines `num_finite_buckets + 2` (= N) buckets with these boundaries for
475
+ # bucket i:
476
+ # Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).
477
+ # Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).
478
+ class Exponential
479
+ include Google::Apis::Core::Hashable
480
+
481
+ # Must be greater than 1
482
+ # Corresponds to the JSON property `growthFactor`
483
+ # @return [Float]
484
+ attr_accessor :growth_factor
485
+
486
+ # Must be greater than 0
487
+ # Corresponds to the JSON property `scale`
488
+ # @return [Float]
489
+ attr_accessor :scale
490
+
491
+ # must be greater than 0
492
+ # Corresponds to the JSON property `numFiniteBuckets`
493
+ # @return [Fixnum]
494
+ attr_accessor :num_finite_buckets
495
+
496
+ def initialize(**args)
497
+ update!(**args)
498
+ end
499
+
500
+ # Update properties of this object
501
+ def update!(**args)
502
+ @growth_factor = args[:growth_factor] if args.key?(:growth_factor)
503
+ @scale = args[:scale] if args.key?(:scale)
504
+ @num_finite_buckets = args[:num_finite_buckets] if args.key?(:num_finite_buckets)
505
+ end
506
+ end
507
+
508
+ # A set of buckets with arbitrary widths.
509
+ # Defines `size(bounds) + 1` (= N) buckets with these boundaries for
510
+ # bucket i:
511
+ # Upper bound (0 <= i < N-1): bounds[i]
512
+ # Lower bound (1 <= i < N); bounds[i - 1]
513
+ # There must be at least one element in `bounds`. If `bounds` has only one
514
+ # element, there are no finite buckets, and that single element is the
515
+ # common boundary of the overflow and underflow buckets.
516
+ class Explicit
517
+ include Google::Apis::Core::Hashable
518
+
519
+ # The values must be monotonically increasing.
520
+ # Corresponds to the JSON property `bounds`
521
+ # @return [Array<Float>]
522
+ attr_accessor :bounds
523
+
524
+ def initialize(**args)
525
+ update!(**args)
526
+ end
527
+
528
+ # Update properties of this object
529
+ def update!(**args)
530
+ @bounds = args[:bounds] if args.key?(:bounds)
531
+ end
532
+ end
533
+
534
+ # Specify a sequence of buckets that all have the same width (except
535
+ # overflow and underflow). Each bucket represents a constant absolute
536
+ # uncertainty on the specific value in the bucket.
537
+ # Defines `num_finite_buckets + 2` (= N) buckets with these boundaries for
538
+ # bucket `i`:
539
+ # Upper bound (0 <= i < N-1): offset + (width * i).
540
+ # Lower bound (1 <= i < N): offset + (width * (i - 1)).
541
+ class Linear
542
+ include Google::Apis::Core::Hashable
543
+
544
+ # Must be greater than 0.
545
+ # Corresponds to the JSON property `width`
546
+ # @return [Float]
547
+ attr_accessor :width
548
+
549
+ # Lower bound of the first bucket.
550
+ # Corresponds to the JSON property `offset`
551
+ # @return [Float]
552
+ attr_accessor :offset
553
+
554
+ # Must be greater than 0.
555
+ # Corresponds to the JSON property `numFiniteBuckets`
556
+ # @return [Fixnum]
557
+ attr_accessor :num_finite_buckets
558
+
559
+ def initialize(**args)
560
+ update!(**args)
561
+ end
562
+
563
+ # Update properties of this object
564
+ def update!(**args)
565
+ @width = args[:width] if args.key?(:width)
566
+ @offset = args[:offset] if args.key?(:offset)
567
+ @num_finite_buckets = args[:num_finite_buckets] if args.key?(:num_finite_buckets)
568
+ end
569
+ end
570
+
571
+ # A collection of data points sent from a `collectd`-based plugin.
572
+ # See the `collectd` documentation for more information.
573
+ class CollectdPayload
574
+ include Google::Apis::Core::Hashable
575
+
576
+ # The end time of the interval.
577
+ # Corresponds to the JSON property `endTime`
578
+ # @return [String]
579
+ attr_accessor :end_time
580
+
581
+ # The measurement metadata. Example: `"process_id" -> 12345`
582
+ # Corresponds to the JSON property `metadata`
583
+ # @return [Hash<String,Google::Apis::MonitoringV3::TypedValue>]
584
+ attr_accessor :metadata
585
+
586
+ # The measured values during this time interval.
587
+ # Each value must have a different `dataSourceName`.
588
+ # Corresponds to the JSON property `values`
589
+ # @return [Array<Google::Apis::MonitoringV3::CollectdValue>]
590
+ attr_accessor :values
591
+
592
+ # The instance name of the plugin Example: `"hdcl"`.
593
+ # Corresponds to the JSON property `pluginInstance`
594
+ # @return [String]
595
+ attr_accessor :plugin_instance
596
+
597
+ # The start time of the interval.
598
+ # Corresponds to the JSON property `startTime`
599
+ # @return [String]
600
+ attr_accessor :start_time
601
+
602
+ # The measurement type instance. Example: `"used"`.
603
+ # Corresponds to the JSON property `typeInstance`
604
+ # @return [String]
605
+ attr_accessor :type_instance
606
+
607
+ # The measurement type. Example: `"memory"`.
608
+ # Corresponds to the JSON property `type`
609
+ # @return [String]
610
+ attr_accessor :type
611
+
612
+ # The name of the plugin. Example: `"disk"`.
613
+ # Corresponds to the JSON property `plugin`
614
+ # @return [String]
615
+ attr_accessor :plugin
616
+
617
+ def initialize(**args)
618
+ update!(**args)
619
+ end
620
+
621
+ # Update properties of this object
622
+ def update!(**args)
623
+ @end_time = args[:end_time] if args.key?(:end_time)
624
+ @metadata = args[:metadata] if args.key?(:metadata)
625
+ @values = args[:values] if args.key?(:values)
626
+ @plugin_instance = args[:plugin_instance] if args.key?(:plugin_instance)
627
+ @start_time = args[:start_time] if args.key?(:start_time)
628
+ @type_instance = args[:type_instance] if args.key?(:type_instance)
629
+ @type = args[:type] if args.key?(:type)
630
+ @plugin = args[:plugin] if args.key?(:plugin)
631
+ end
632
+ end
633
+
634
+ # The `ListMetricDescriptors` response.
635
+ class ListMetricDescriptorsResponse
636
+ include Google::Apis::Core::Hashable
637
+
638
+ # The metric descriptors that are available to the project
639
+ # and that match the value of `filter`, if present.
640
+ # Corresponds to the JSON property `metricDescriptors`
641
+ # @return [Array<Google::Apis::MonitoringV3::MetricDescriptor>]
642
+ attr_accessor :metric_descriptors
643
+
644
+ # If there are more results than have been returned, then this field is set
645
+ # to a non-empty value. To see the additional results,
646
+ # use that value as `pageToken` in the next call to this method.
647
+ # Corresponds to the JSON property `nextPageToken`
648
+ # @return [String]
649
+ attr_accessor :next_page_token
650
+
651
+ def initialize(**args)
652
+ update!(**args)
653
+ end
654
+
655
+ # Update properties of this object
656
+ def update!(**args)
657
+ @metric_descriptors = args[:metric_descriptors] if args.key?(:metric_descriptors)
658
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
659
+ end
660
+ end
661
+
662
+ # Distribution contains summary statistics for a population of values and,
663
+ # optionally, a histogram representing the distribution of those values across
664
+ # a specified set of histogram buckets.
665
+ # The summary statistics are the count, mean, sum of the squared deviation from
666
+ # the mean, the minimum, and the maximum of the set of population of values.
667
+ # The histogram is based on a sequence of buckets and gives a count of values
668
+ # that fall into each bucket. The boundaries of the buckets are given either
669
+ # explicitly or by specifying parameters for a method of computing them
670
+ # (buckets of fixed width or buckets of exponentially increasing width).
671
+ # Although it is not forbidden, it is generally a bad idea to include
672
+ # non-finite values (infinities or NaNs) in the population of values, as this
673
+ # will render the `mean` and `sum_of_squared_deviation` fields meaningless.
674
+ class Distribution
675
+ include Google::Apis::Core::Hashable
676
+
677
+ # If `bucket_options` is given, then the sum of the values in `bucket_counts`
678
+ # must equal the value in `count`. If `bucket_options` is not given, no
679
+ # `bucket_counts` fields may be given.
680
+ # Bucket counts are given in order under the numbering scheme described
681
+ # above (the underflow bucket has number 0; the finite buckets, if any,
682
+ # have numbers 1 through N-2; the overflow bucket has number N-1).
683
+ # The size of `bucket_counts` must be no greater than N as defined in
684
+ # `bucket_options`.
685
+ # Any suffix of trailing zero bucket_count fields may be omitted.
686
+ # Corresponds to the JSON property `bucketCounts`
687
+ # @return [Array<String>]
688
+ attr_accessor :bucket_counts
689
+
690
+ # A Distribution may optionally contain a histogram of the values in the
691
+ # population. The histogram is given in `bucket_counts` as counts of values
692
+ # that fall into one of a sequence of non-overlapping buckets. The sequence
693
+ # of buckets is described by `bucket_options`.
694
+ # A bucket specifies an inclusive lower bound and exclusive upper bound for
695
+ # the values that are counted for that bucket. The upper bound of a bucket
696
+ # is strictly greater than the lower bound.
697
+ # The sequence of N buckets for a Distribution consists of an underflow
698
+ # bucket (number 0), zero or more finite buckets (number 1 through N - 2) and
699
+ # an overflow bucket (number N - 1). The buckets are contiguous: the lower
700
+ # bound of bucket i (i > 0) is the same as the upper bound of bucket i - 1.
701
+ # The buckets span the whole range of finite values: lower bound of the
702
+ # underflow bucket is -infinity and the upper bound of the overflow bucket is
703
+ # +infinity. The finite buckets are so-called because both bounds are
704
+ # finite.
705
+ # `BucketOptions` describes bucket boundaries in one of three ways. Two
706
+ # describe the boundaries by giving parameters for a formula to generate
707
+ # boundaries and one gives the bucket boundaries explicitly.
708
+ # If `bucket_boundaries` is not given, then no `bucket_counts` may be given.
709
+ # Corresponds to the JSON property `bucketOptions`
710
+ # @return [Google::Apis::MonitoringV3::BucketOptions]
711
+ attr_accessor :bucket_options
712
+
713
+ # The number of values in the population. Must be non-negative.
714
+ # Corresponds to the JSON property `count`
715
+ # @return [String]
716
+ attr_accessor :count
717
+
718
+ # The sum of squared deviations from the mean of the values in the
719
+ # population. For values x_i this is:
720
+ # Sum[i=1..n]((x_i - mean)^2)
721
+ # Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition
722
+ # describes Welford's method for accumulating this sum in one pass.
723
+ # If `count` is zero then this field must be zero.
724
+ # Corresponds to the JSON property `sumOfSquaredDeviation`
725
+ # @return [Float]
726
+ attr_accessor :sum_of_squared_deviation
727
+
728
+ # The arithmetic mean of the values in the population. If `count` is zero
729
+ # then this field must be zero.
730
+ # Corresponds to the JSON property `mean`
731
+ # @return [Float]
732
+ attr_accessor :mean
733
+
734
+ # The range of the population values.
735
+ # Corresponds to the JSON property `range`
736
+ # @return [Google::Apis::MonitoringV3::Range]
737
+ attr_accessor :range
738
+
739
+ # Must be in increasing order of |value| field. The current requirement
740
+ # enforced by the backend is that at most one Exemplar will fall into any
741
+ # bucket.
742
+ # Corresponds to the JSON property `exemplars`
743
+ # @return [Array<Google::Apis::MonitoringV3::Exemplar>]
744
+ attr_accessor :exemplars
745
+
746
+ def initialize(**args)
747
+ update!(**args)
748
+ end
749
+
750
+ # Update properties of this object
751
+ def update!(**args)
752
+ @bucket_counts = args[:bucket_counts] if args.key?(:bucket_counts)
753
+ @bucket_options = args[:bucket_options] if args.key?(:bucket_options)
754
+ @count = args[:count] if args.key?(:count)
755
+ @sum_of_squared_deviation = args[:sum_of_squared_deviation] if args.key?(:sum_of_squared_deviation)
756
+ @mean = args[:mean] if args.key?(:mean)
757
+ @range = args[:range] if args.key?(:range)
758
+ @exemplars = args[:exemplars] if args.key?(:exemplars)
759
+ end
760
+ end
761
+
762
+ # An object representing a resource that can be used for monitoring, logging,
763
+ # billing, or other purposes. Examples include virtual machine instances,
764
+ # databases, and storage devices such as disks. The `type` field identifies a
765
+ # MonitoredResourceDescriptor object that describes the resource's
766
+ # schema. Information in the `labels` field identifies the actual resource and
767
+ # its attributes according to the schema. For example, a particular Compute
768
+ # Engine VM instance could be represented by the following object, because the
769
+ # MonitoredResourceDescriptor for `"gce_instance"` has labels
770
+ # `"instance_id"` and `"zone"`:
771
+ # ` "type": "gce_instance",
772
+ # "labels": ` "instance_id": "my-instance",
773
+ # "zone": "us-central1-a" ``
774
+ class MonitoredResource
775
+ include Google::Apis::Core::Hashable
776
+
777
+ # Required. Values for all of the labels listed in the associated monitored
778
+ # resource descriptor. For example, Cloud SQL databases use the labels
779
+ # `"database_id"` and `"zone"`.
780
+ # Corresponds to the JSON property `labels`
781
+ # @return [Hash<String,String>]
782
+ attr_accessor :labels
783
+
784
+ # Required. The monitored resource type. This field must match
785
+ # the `type` field of a MonitoredResourceDescriptor object. For
786
+ # example, the type of a Cloud SQL database is `"cloudsql_database"`.
787
+ # Corresponds to the JSON property `type`
788
+ # @return [String]
789
+ attr_accessor :type
790
+
791
+ def initialize(**args)
792
+ update!(**args)
793
+ end
794
+
795
+ # Update properties of this object
796
+ def update!(**args)
797
+ @labels = args[:labels] if args.key?(:labels)
798
+ @type = args[:type] if args.key?(:type)
799
+ end
800
+ end
801
+
802
+ # A description of a label.
803
+ class LabelDescriptor
804
+ include Google::Apis::Core::Hashable
805
+
806
+ # A human-readable description for the label.
807
+ # Corresponds to the JSON property `description`
808
+ # @return [String]
809
+ attr_accessor :description
810
+
811
+ # The type of data that can be assigned to the label.
812
+ # Corresponds to the JSON property `valueType`
813
+ # @return [String]
814
+ attr_accessor :value_type
815
+
816
+ # The label key.
817
+ # Corresponds to the JSON property `key`
818
+ # @return [String]
819
+ attr_accessor :key
820
+
821
+ def initialize(**args)
822
+ update!(**args)
823
+ end
824
+
825
+ # Update properties of this object
826
+ def update!(**args)
827
+ @description = args[:description] if args.key?(:description)
828
+ @value_type = args[:value_type] if args.key?(:value_type)
829
+ @key = args[:key] if args.key?(:key)
830
+ end
831
+ end
832
+
833
+ # An object that describes the schema of a MonitoredResource object using a
834
+ # type name and a set of labels. For example, the monitored resource
835
+ # descriptor for Google Compute Engine VM instances has a type of
836
+ # `"gce_instance"` and specifies the use of the labels `"instance_id"` and
837
+ # `"zone"` to identify particular VM instances.
838
+ # Different APIs can support different monitored resource types. APIs generally
839
+ # provide a `list` method that returns the monitored resource descriptors used
840
+ # by the API.
841
+ class MonitoredResourceDescriptor
842
+ include Google::Apis::Core::Hashable
843
+
844
+ # Optional. A concise name for the monitored resource type that might be
845
+ # displayed in user interfaces. For example, `"Google Cloud SQL Database"`.
846
+ # Corresponds to the JSON property `displayName`
847
+ # @return [String]
848
+ attr_accessor :display_name
849
+
850
+ # Optional. A detailed description of the monitored resource type that might
851
+ # be used in documentation.
852
+ # Corresponds to the JSON property `description`
853
+ # @return [String]
854
+ attr_accessor :description
855
+
856
+ # Required. A set of labels used to describe instances of this monitored
857
+ # resource type. For example, an individual Google Cloud SQL database is
858
+ # identified by values for the labels `"database_id"` and `"zone"`.
859
+ # Corresponds to the JSON property `labels`
860
+ # @return [Array<Google::Apis::MonitoringV3::LabelDescriptor>]
861
+ attr_accessor :labels
862
+
863
+ # Required. The monitored resource type. For example, the type
864
+ # `"cloudsql_database"` represents databases in Google Cloud SQL.
865
+ # Corresponds to the JSON property `type`
866
+ # @return [String]
867
+ attr_accessor :type
868
+
869
+ # Optional. The resource name of the monitored resource descriptor:
870
+ # `"projects/`project_id`/monitoredResourceDescriptors/`type`"` where
871
+ # `type` is the value of the `type` field in this object and
872
+ # `project_id` is a project ID that provides API-specific context for
873
+ # accessing the type. APIs that do not use project information can use the
874
+ # resource name format `"monitoredResourceDescriptors/`type`"`.
875
+ # Corresponds to the JSON property `name`
876
+ # @return [String]
877
+ attr_accessor :name
878
+
879
+ def initialize(**args)
880
+ update!(**args)
881
+ end
882
+
883
+ # Update properties of this object
884
+ def update!(**args)
885
+ @display_name = args[:display_name] if args.key?(:display_name)
886
+ @description = args[:description] if args.key?(:description)
887
+ @labels = args[:labels] if args.key?(:labels)
888
+ @type = args[:type] if args.key?(:type)
889
+ @name = args[:name] if args.key?(:name)
890
+ end
891
+ end
892
+
893
+ # A single strongly-typed value.
894
+ class TypedValue
895
+ include Google::Apis::Core::Hashable
896
+
897
+ # A Boolean value: `true` or `false`.
898
+ # Corresponds to the JSON property `boolValue`
899
+ # @return [Boolean]
900
+ attr_accessor :bool_value
901
+ alias_method :bool_value?, :bool_value
902
+
903
+ # A variable-length string value.
904
+ # Corresponds to the JSON property `stringValue`
905
+ # @return [String]
906
+ attr_accessor :string_value
907
+
908
+ # A 64-bit integer. Its range is approximately &plusmn;9.2x10<sup>18</sup>.
909
+ # Corresponds to the JSON property `int64Value`
910
+ # @return [String]
911
+ attr_accessor :int64_value
912
+
913
+ # A 64-bit double-precision floating-point number. Its magnitude
914
+ # is approximately &plusmn;10<sup>&plusmn;300</sup> and it has 16
915
+ # significant digits of precision.
916
+ # Corresponds to the JSON property `doubleValue`
917
+ # @return [Float]
918
+ attr_accessor :double_value
919
+
920
+ # Distribution contains summary statistics for a population of values and,
921
+ # optionally, a histogram representing the distribution of those values across
922
+ # a specified set of histogram buckets.
923
+ # The summary statistics are the count, mean, sum of the squared deviation from
924
+ # the mean, the minimum, and the maximum of the set of population of values.
925
+ # The histogram is based on a sequence of buckets and gives a count of values
926
+ # that fall into each bucket. The boundaries of the buckets are given either
927
+ # explicitly or by specifying parameters for a method of computing them
928
+ # (buckets of fixed width or buckets of exponentially increasing width).
929
+ # Although it is not forbidden, it is generally a bad idea to include
930
+ # non-finite values (infinities or NaNs) in the population of values, as this
931
+ # will render the `mean` and `sum_of_squared_deviation` fields meaningless.
932
+ # Corresponds to the JSON property `distributionValue`
933
+ # @return [Google::Apis::MonitoringV3::Distribution]
934
+ attr_accessor :distribution_value
935
+
936
+ def initialize(**args)
937
+ update!(**args)
938
+ end
939
+
940
+ # Update properties of this object
941
+ def update!(**args)
942
+ @bool_value = args[:bool_value] if args.key?(:bool_value)
943
+ @string_value = args[:string_value] if args.key?(:string_value)
944
+ @int64_value = args[:int64_value] if args.key?(:int64_value)
945
+ @double_value = args[:double_value] if args.key?(:double_value)
946
+ @distribution_value = args[:distribution_value] if args.key?(:distribution_value)
947
+ end
948
+ end
949
+
950
+ # The `ListMonitoredResourcDescriptors` response.
951
+ class ListMonitoredResourceDescriptorsResponse
952
+ include Google::Apis::Core::Hashable
953
+
954
+ # If there are more results than have been returned, then this field is set
955
+ # to a non-empty value. To see the additional results,
956
+ # use that value as `pageToken` in the next call to this method.
957
+ # Corresponds to the JSON property `nextPageToken`
958
+ # @return [String]
959
+ attr_accessor :next_page_token
960
+
961
+ # The monitored resource descriptors that are available to this project
962
+ # and that match `filter`, if present.
963
+ # Corresponds to the JSON property `resourceDescriptors`
964
+ # @return [Array<Google::Apis::MonitoringV3::MonitoredResourceDescriptor>]
965
+ attr_accessor :resource_descriptors
966
+
967
+ def initialize(**args)
968
+ update!(**args)
969
+ end
970
+
971
+ # Update properties of this object
972
+ def update!(**args)
973
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
974
+ @resource_descriptors = args[:resource_descriptors] if args.key?(:resource_descriptors)
975
+ end
976
+ end
977
+
978
+ # A single field of a message type.
979
+ class Field
980
+ include Google::Apis::Core::Hashable
981
+
982
+ # The string value of the default value of this field. Proto2 syntax only.
983
+ # Corresponds to the JSON property `defaultValue`
984
+ # @return [String]
985
+ attr_accessor :default_value
986
+
987
+ # The field JSON name.
988
+ # Corresponds to the JSON property `jsonName`
989
+ # @return [String]
990
+ attr_accessor :json_name
991
+
992
+ # The protocol buffer options.
993
+ # Corresponds to the JSON property `options`
994
+ # @return [Array<Google::Apis::MonitoringV3::Option>]
995
+ attr_accessor :options
996
+
997
+ # The index of the field type in `Type.oneofs`, for message or enumeration
998
+ # types. The first type has index 1; zero means the type is not in the list.
999
+ # Corresponds to the JSON property `oneofIndex`
1000
+ # @return [Fixnum]
1001
+ attr_accessor :oneof_index
1002
+
1003
+ # The field cardinality.
1004
+ # Corresponds to the JSON property `cardinality`
1005
+ # @return [String]
1006
+ attr_accessor :cardinality
1007
+
1008
+ # The field type URL, without the scheme, for message or enumeration
1009
+ # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
1010
+ # Corresponds to the JSON property `typeUrl`
1011
+ # @return [String]
1012
+ attr_accessor :type_url
1013
+
1014
+ # The field name.
1015
+ # Corresponds to the JSON property `name`
1016
+ # @return [String]
1017
+ attr_accessor :name
1018
+
1019
+ # Whether to use alternative packed wire representation.
1020
+ # Corresponds to the JSON property `packed`
1021
+ # @return [Boolean]
1022
+ attr_accessor :packed
1023
+ alias_method :packed?, :packed
1024
+
1025
+ # The field number.
1026
+ # Corresponds to the JSON property `number`
1027
+ # @return [Fixnum]
1028
+ attr_accessor :number
1029
+
1030
+ # The field type.
1031
+ # Corresponds to the JSON property `kind`
1032
+ # @return [String]
1033
+ attr_accessor :kind
1034
+
1035
+ def initialize(**args)
1036
+ update!(**args)
1037
+ end
1038
+
1039
+ # Update properties of this object
1040
+ def update!(**args)
1041
+ @default_value = args[:default_value] if args.key?(:default_value)
1042
+ @json_name = args[:json_name] if args.key?(:json_name)
1043
+ @options = args[:options] if args.key?(:options)
1044
+ @oneof_index = args[:oneof_index] if args.key?(:oneof_index)
1045
+ @cardinality = args[:cardinality] if args.key?(:cardinality)
1046
+ @type_url = args[:type_url] if args.key?(:type_url)
1047
+ @name = args[:name] if args.key?(:name)
1048
+ @packed = args[:packed] if args.key?(:packed)
1049
+ @number = args[:number] if args.key?(:number)
1050
+ @kind = args[:kind] if args.key?(:kind)
1051
+ end
1052
+ end
1053
+
1054
+ # A protocol buffer option, which can be attached to a message, field,
1055
+ # enumeration, etc.
1056
+ class Option
1057
+ include Google::Apis::Core::Hashable
1058
+
1059
+ # The option's value. For example, `"com.google.protobuf"`.
1060
+ # Corresponds to the JSON property `value`
1061
+ # @return [Hash<String,Object>]
1062
+ attr_accessor :value
1063
+
1064
+ # The option's name. For example, `"java_package"`.
1065
+ # Corresponds to the JSON property `name`
1066
+ # @return [String]
1067
+ attr_accessor :name
1068
+
1069
+ def initialize(**args)
1070
+ update!(**args)
1071
+ end
1072
+
1073
+ # Update properties of this object
1074
+ def update!(**args)
1075
+ @value = args[:value] if args.key?(:value)
1076
+ @name = args[:name] if args.key?(:name)
1077
+ end
1078
+ end
1079
+
1080
+ # A generic empty message that you can re-use to avoid defining duplicated
1081
+ # empty messages in your APIs. A typical example is to use it as the request
1082
+ # or the response type of an API method. For instance:
1083
+ # service Foo `
1084
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
1085
+ # `
1086
+ # The JSON representation for `Empty` is empty JSON object ````.
1087
+ class Empty
1088
+ include Google::Apis::Core::Hashable
1089
+
1090
+ def initialize(**args)
1091
+ update!(**args)
1092
+ end
1093
+
1094
+ # Update properties of this object
1095
+ def update!(**args)
1096
+ end
1097
+ end
1098
+
1099
+ # `SourceContext` represents information about the source of a
1100
+ # protobuf element, like the file in which it is defined.
1101
+ class SourceContext
1102
+ include Google::Apis::Core::Hashable
1103
+
1104
+ # The path-qualified name of the .proto file that contained the associated
1105
+ # protobuf element. For example: `"google/protobuf/source.proto"`.
1106
+ # Corresponds to the JSON property `fileName`
1107
+ # @return [String]
1108
+ attr_accessor :file_name
1109
+
1110
+ def initialize(**args)
1111
+ update!(**args)
1112
+ end
1113
+
1114
+ # Update properties of this object
1115
+ def update!(**args)
1116
+ @file_name = args[:file_name] if args.key?(:file_name)
1117
+ end
1118
+ end
1119
+
1120
+ # The range of the population values.
1121
+ class Range
1122
+ include Google::Apis::Core::Hashable
1123
+
1124
+ # The maximum of the population values.
1125
+ # Corresponds to the JSON property `max`
1126
+ # @return [Float]
1127
+ attr_accessor :max
1128
+
1129
+ # The minimum of the population values.
1130
+ # Corresponds to the JSON property `min`
1131
+ # @return [Float]
1132
+ attr_accessor :min
1133
+
1134
+ def initialize(**args)
1135
+ update!(**args)
1136
+ end
1137
+
1138
+ # Update properties of this object
1139
+ def update!(**args)
1140
+ @max = args[:max] if args.key?(:max)
1141
+ @min = args[:min] if args.key?(:min)
1142
+ end
1143
+ end
1144
+
1145
+ # The `CreateTimeSeries` request.
1146
+ class CreateTimeSeriesRequest
1147
+ include Google::Apis::Core::Hashable
1148
+
1149
+ # The new data to be added to a list of time series.
1150
+ # Adds at most one data point to each of several time series. The new data
1151
+ # point must be more recent than any other point in its time series. Each
1152
+ # `TimeSeries` value must fully specify a unique time series by supplying
1153
+ # all label values for the metric and the monitored resource.
1154
+ # Corresponds to the JSON property `timeSeries`
1155
+ # @return [Array<Google::Apis::MonitoringV3::TimeSeries>]
1156
+ attr_accessor :time_series
1157
+
1158
+ def initialize(**args)
1159
+ update!(**args)
1160
+ end
1161
+
1162
+ # Update properties of this object
1163
+ def update!(**args)
1164
+ @time_series = args[:time_series] if args.key?(:time_series)
1165
+ end
1166
+ end
1167
+
1168
+ # A Distribution may optionally contain a histogram of the values in the
1169
+ # population. The histogram is given in `bucket_counts` as counts of values
1170
+ # that fall into one of a sequence of non-overlapping buckets. The sequence
1171
+ # of buckets is described by `bucket_options`.
1172
+ # A bucket specifies an inclusive lower bound and exclusive upper bound for
1173
+ # the values that are counted for that bucket. The upper bound of a bucket
1174
+ # is strictly greater than the lower bound.
1175
+ # The sequence of N buckets for a Distribution consists of an underflow
1176
+ # bucket (number 0), zero or more finite buckets (number 1 through N - 2) and
1177
+ # an overflow bucket (number N - 1). The buckets are contiguous: the lower
1178
+ # bound of bucket i (i > 0) is the same as the upper bound of bucket i - 1.
1179
+ # The buckets span the whole range of finite values: lower bound of the
1180
+ # underflow bucket is -infinity and the upper bound of the overflow bucket is
1181
+ # +infinity. The finite buckets are so-called because both bounds are
1182
+ # finite.
1183
+ # `BucketOptions` describes bucket boundaries in one of three ways. Two
1184
+ # describe the boundaries by giving parameters for a formula to generate
1185
+ # boundaries and one gives the bucket boundaries explicitly.
1186
+ # If `bucket_boundaries` is not given, then no `bucket_counts` may be given.
1187
+ class BucketOptions
1188
+ include Google::Apis::Core::Hashable
1189
+
1190
+ # A set of buckets with arbitrary widths.
1191
+ # Defines `size(bounds) + 1` (= N) buckets with these boundaries for
1192
+ # bucket i:
1193
+ # Upper bound (0 <= i < N-1): bounds[i]
1194
+ # Lower bound (1 <= i < N); bounds[i - 1]
1195
+ # There must be at least one element in `bounds`. If `bounds` has only one
1196
+ # element, there are no finite buckets, and that single element is the
1197
+ # common boundary of the overflow and underflow buckets.
1198
+ # Corresponds to the JSON property `explicitBuckets`
1199
+ # @return [Google::Apis::MonitoringV3::Explicit]
1200
+ attr_accessor :explicit_buckets
1201
+
1202
+ # Specify a sequence of buckets that have a width that is proportional to
1203
+ # the value of the lower bound. Each bucket represents a constant relative
1204
+ # uncertainty on a specific value in the bucket.
1205
+ # Defines `num_finite_buckets + 2` (= N) buckets with these boundaries for
1206
+ # bucket i:
1207
+ # Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).
1208
+ # Lower bound (1 <= i < N): scale * (growth_factor ^ (i - 1)).
1209
+ # Corresponds to the JSON property `exponentialBuckets`
1210
+ # @return [Google::Apis::MonitoringV3::Exponential]
1211
+ attr_accessor :exponential_buckets
1212
+
1213
+ # Specify a sequence of buckets that all have the same width (except
1214
+ # overflow and underflow). Each bucket represents a constant absolute
1215
+ # uncertainty on the specific value in the bucket.
1216
+ # Defines `num_finite_buckets + 2` (= N) buckets with these boundaries for
1217
+ # bucket `i`:
1218
+ # Upper bound (0 <= i < N-1): offset + (width * i).
1219
+ # Lower bound (1 <= i < N): offset + (width * (i - 1)).
1220
+ # Corresponds to the JSON property `linearBuckets`
1221
+ # @return [Google::Apis::MonitoringV3::Linear]
1222
+ attr_accessor :linear_buckets
1223
+
1224
+ def initialize(**args)
1225
+ update!(**args)
1226
+ end
1227
+
1228
+ # Update properties of this object
1229
+ def update!(**args)
1230
+ @explicit_buckets = args[:explicit_buckets] if args.key?(:explicit_buckets)
1231
+ @exponential_buckets = args[:exponential_buckets] if args.key?(:exponential_buckets)
1232
+ @linear_buckets = args[:linear_buckets] if args.key?(:linear_buckets)
1233
+ end
1234
+ end
1235
+
1236
+ # The `CreateCollectdTimeSeries` request.
1237
+ class CreateCollectdTimeSeriesRequest
1238
+ include Google::Apis::Core::Hashable
1239
+
1240
+ # The `collectd` payloads representing the time series data.
1241
+ # You must not include more than a single point for each
1242
+ # time series, so no two payloads can have the same values
1243
+ # for all of the fields `plugin`, `plugin_instance`, `type`, and `type_instance`.
1244
+ # Corresponds to the JSON property `collectdPayloads`
1245
+ # @return [Array<Google::Apis::MonitoringV3::CollectdPayload>]
1246
+ attr_accessor :collectd_payloads
1247
+
1248
+ # The version of `collectd` that collected the data. Example: `"5.3.0-192.el6"`.
1249
+ # Corresponds to the JSON property `collectdVersion`
1250
+ # @return [String]
1251
+ attr_accessor :collectd_version
1252
+
1253
+ # An object representing a resource that can be used for monitoring, logging,
1254
+ # billing, or other purposes. Examples include virtual machine instances,
1255
+ # databases, and storage devices such as disks. The `type` field identifies a
1256
+ # MonitoredResourceDescriptor object that describes the resource's
1257
+ # schema. Information in the `labels` field identifies the actual resource and
1258
+ # its attributes according to the schema. For example, a particular Compute
1259
+ # Engine VM instance could be represented by the following object, because the
1260
+ # MonitoredResourceDescriptor for `"gce_instance"` has labels
1261
+ # `"instance_id"` and `"zone"`:
1262
+ # ` "type": "gce_instance",
1263
+ # "labels": ` "instance_id": "my-instance",
1264
+ # "zone": "us-central1-a" ``
1265
+ # Corresponds to the JSON property `resource`
1266
+ # @return [Google::Apis::MonitoringV3::MonitoredResource]
1267
+ attr_accessor :resource
1268
+
1269
+ def initialize(**args)
1270
+ update!(**args)
1271
+ end
1272
+
1273
+ # Update properties of this object
1274
+ def update!(**args)
1275
+ @collectd_payloads = args[:collectd_payloads] if args.key?(:collectd_payloads)
1276
+ @collectd_version = args[:collectd_version] if args.key?(:collectd_version)
1277
+ @resource = args[:resource] if args.key?(:resource)
1278
+ end
1279
+ end
1280
+
1281
+ # A protocol buffer message type.
1282
+ class Type
1283
+ include Google::Apis::Core::Hashable
1284
+
1285
+ # The list of types appearing in `oneof` definitions in this type.
1286
+ # Corresponds to the JSON property `oneofs`
1287
+ # @return [Array<String>]
1288
+ attr_accessor :oneofs
1289
+
1290
+ # The protocol buffer options.
1291
+ # Corresponds to the JSON property `options`
1292
+ # @return [Array<Google::Apis::MonitoringV3::Option>]
1293
+ attr_accessor :options
1294
+
1295
+ # `SourceContext` represents information about the source of a
1296
+ # protobuf element, like the file in which it is defined.
1297
+ # Corresponds to the JSON property `sourceContext`
1298
+ # @return [Google::Apis::MonitoringV3::SourceContext]
1299
+ attr_accessor :source_context
1300
+
1301
+ # The list of fields.
1302
+ # Corresponds to the JSON property `fields`
1303
+ # @return [Array<Google::Apis::MonitoringV3::Field>]
1304
+ attr_accessor :fields
1305
+
1306
+ # The fully qualified message name.
1307
+ # Corresponds to the JSON property `name`
1308
+ # @return [String]
1309
+ attr_accessor :name
1310
+
1311
+ # The source syntax.
1312
+ # Corresponds to the JSON property `syntax`
1313
+ # @return [String]
1314
+ attr_accessor :syntax
1315
+
1316
+ def initialize(**args)
1317
+ update!(**args)
1318
+ end
1319
+
1320
+ # Update properties of this object
1321
+ def update!(**args)
1322
+ @oneofs = args[:oneofs] if args.key?(:oneofs)
1323
+ @options = args[:options] if args.key?(:options)
1324
+ @source_context = args[:source_context] if args.key?(:source_context)
1325
+ @fields = args[:fields] if args.key?(:fields)
1326
+ @name = args[:name] if args.key?(:name)
1327
+ @syntax = args[:syntax] if args.key?(:syntax)
1328
+ end
1329
+ end
1330
+
1331
+ # Exemplars are example points that may be used to annotate aggregated
1332
+ # distribution values. They are metadata that gives information about a
1333
+ # particular value added to a Distribution bucket, such as a trace ID that
1334
+ # was active when a value was added. They can contain further information,
1335
+ # such as a example values and timestamps, origin, etc.
1336
+ # This is an experimental feature which is available in internal Monarch.
1337
+ # The purpose of including it here is to be able to construct demos and
1338
+ # prototypes for the purposes of eludicating use cases.
1339
+ class Exemplar
1340
+ include Google::Apis::Core::Hashable
1341
+
1342
+ # Value of the exemplar point. This value determines to which bucket the
1343
+ # exemplar belongs.
1344
+ # Corresponds to the JSON property `value`
1345
+ # @return [Float]
1346
+ attr_accessor :value
1347
+
1348
+ # Contextual information about the example value. Examples are:
1349
+ # Trace ID: type.googleapis.com/google.devtools.cloudtrace.v1.Trace
1350
+ # Literal string: type.googleapis.com/google.protobuf.StringValue
1351
+ # Labels dropped during aggregation:
1352
+ # type.googleapis.com/google.monitoring.v3.DroppedLabels
1353
+ # There may be only a single attachment of any given message type in a
1354
+ # single exemplar, and this is enforced by the system.
1355
+ # Corresponds to the JSON property `attachments`
1356
+ # @return [Array<Hash<String,Object>>]
1357
+ attr_accessor :attachments
1358
+
1359
+ # The observation (sampling) time of the above value.
1360
+ # Corresponds to the JSON property `timestamp`
1361
+ # @return [String]
1362
+ attr_accessor :timestamp
1363
+
1364
+ def initialize(**args)
1365
+ update!(**args)
1366
+ end
1367
+
1368
+ # Update properties of this object
1369
+ def update!(**args)
1370
+ @value = args[:value] if args.key?(:value)
1371
+ @attachments = args[:attachments] if args.key?(:attachments)
1372
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
1373
+ end
1374
+ end
1375
+
1376
+ # The `ListGroups` response.
1377
+ class ListGroupsResponse
1378
+ include Google::Apis::Core::Hashable
1379
+
1380
+ # The groups that match the specified filters.
1381
+ # Corresponds to the JSON property `group`
1382
+ # @return [Array<Google::Apis::MonitoringV3::Group>]
1383
+ attr_accessor :group
1384
+
1385
+ # If there are more results than have been returned, then this field is set
1386
+ # to a non-empty value. To see the additional results,
1387
+ # use that value as `pageToken` in the next call to this method.
1388
+ # Corresponds to the JSON property `nextPageToken`
1389
+ # @return [String]
1390
+ attr_accessor :next_page_token
1391
+
1392
+ def initialize(**args)
1393
+ update!(**args)
1394
+ end
1395
+
1396
+ # Update properties of this object
1397
+ def update!(**args)
1398
+ @group = args[:group] if args.key?(:group)
1399
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1400
+ end
1401
+ end
1402
+ end
1403
+ end
1404
+ end