google-apis-alertcenter_v1beta1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6e586eea84860033a0cf7bfa373ebbc4f3f7fa0f9788eb22d46e4ac52fe82572
4
+ data.tar.gz: 13ee934bb4eae216a9bdb488b5e8de36f3fc3bcddb5df4ef7f7ee9cd0fc0359b
5
+ SHA512:
6
+ metadata.gz: f2a689fc1194be87d77fb8804a1f1da49d3be88822bd22658d05241f0e61d1464f78a8f00fd3857008f71b870e9ea3fa89aa96806e8699fb30b44cf3e1e5d41e
7
+ data.tar.gz: 6077ff69d4c2fb12be96344fc6dec466c1c963599aba0e8ab988ee50ff8e85a5c725f020e80be7199ffbe45c2170a4013cb0009a692d0efe68fb4d02f018909c
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-alertcenter_v1beta1
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/alertcenter_v1beta1/*.rb
9
+ lib/google/apis/alertcenter_v1beta1.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-alertcenter_v1beta1
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated from discovery document revision 20201231
6
+ * Regenerated using generator version 0.1.1
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V1beta1 of the Google Workspace Alert Center API
2
+
3
+ This is a simple client library for version V1beta1 of the Google Workspace Alert Center API. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/alertcenter.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-alertcenter_v1beta1', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-alertcenter_v1beta1
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/alertcenter_v1beta1"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::AlertcenterV1beta1::AlertCenterService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Alertcenter service in particular.)
67
+
68
+ For reference information on specific calls in the Google Workspace Alert Center API, see the {Google::Apis::AlertcenterV1beta1::AlertCenterService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-alertcenter_v1beta1`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://developers.google.com/admin-sdk/alertcenter/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 Google LLC
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/alertcenter_v1beta1"
@@ -0,0 +1,36 @@
1
+ # Copyright 2020 Google LLC
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/alertcenter_v1beta1/service.rb'
16
+ require 'google/apis/alertcenter_v1beta1/classes.rb'
17
+ require 'google/apis/alertcenter_v1beta1/representations.rb'
18
+ require 'google/apis/alertcenter_v1beta1/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Google Workspace Alert Center API
23
+ #
24
+ # Manages alerts on issues affecting your domain.
25
+ #
26
+ # @see https://developers.google.com/admin-sdk/alertcenter/
27
+ module AlertcenterV1beta1
28
+ # Version of the Google Workspace Alert Center API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V1beta1'
31
+
32
+ # See and delete your domain's G Suite alerts, and send alert feedback
33
+ AUTH_APPS_ALERTS = 'https://www.googleapis.com/auth/apps.alerts'
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,1537 @@
1
+ # Copyright 2020 Google LLC
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 AlertcenterV1beta1
24
+
25
+ # Alerts for user account warning events.
26
+ class AccountWarning
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Required. The email of the user that this event belongs to.
30
+ # Corresponds to the JSON property `email`
31
+ # @return [String]
32
+ attr_accessor :email
33
+
34
+ # The details of the login action.
35
+ # Corresponds to the JSON property `loginDetails`
36
+ # @return [Google::Apis::AlertcenterV1beta1::LoginDetails]
37
+ attr_accessor :login_details
38
+
39
+ def initialize(**args)
40
+ update!(**args)
41
+ end
42
+
43
+ # Update properties of this object
44
+ def update!(**args)
45
+ @email = args[:email] if args.key?(:email)
46
+ @login_details = args[:login_details] if args.key?(:login_details)
47
+ end
48
+ end
49
+
50
+ # Alerts from G Suite Security Center rules service configured by admin.
51
+ class ActivityRule
52
+ include Google::Apis::Core::Hashable
53
+
54
+ # List of action names associated with the rule threshold.
55
+ # Corresponds to the JSON property `actionNames`
56
+ # @return [Array<String>]
57
+ attr_accessor :action_names
58
+
59
+ # Rule create timestamp.
60
+ # Corresponds to the JSON property `createTime`
61
+ # @return [String]
62
+ attr_accessor :create_time
63
+
64
+ # Description of the rule.
65
+ # Corresponds to the JSON property `description`
66
+ # @return [String]
67
+ attr_accessor :description
68
+
69
+ # Alert display name.
70
+ # Corresponds to the JSON property `displayName`
71
+ # @return [String]
72
+ attr_accessor :display_name
73
+
74
+ # Rule name.
75
+ # Corresponds to the JSON property `name`
76
+ # @return [String]
77
+ attr_accessor :name
78
+
79
+ # Query that is used to get the data from the associated source.
80
+ # Corresponds to the JSON property `query`
81
+ # @return [String]
82
+ attr_accessor :query
83
+
84
+ # List of alert IDs superseded by this alert. It is used to indicate that this
85
+ # alert is essentially extension of superseded alerts and we found the
86
+ # relationship after creating these alerts.
87
+ # Corresponds to the JSON property `supersededAlerts`
88
+ # @return [Array<String>]
89
+ attr_accessor :superseded_alerts
90
+
91
+ # Alert ID superseding this alert. It is used to indicate that superseding alert
92
+ # is essentially extension of this alert and we found the relationship after
93
+ # creating both alerts.
94
+ # Corresponds to the JSON property `supersedingAlert`
95
+ # @return [String]
96
+ attr_accessor :superseding_alert
97
+
98
+ # Alert threshold is for example “COUNT > 5”.
99
+ # Corresponds to the JSON property `threshold`
100
+ # @return [String]
101
+ attr_accessor :threshold
102
+
103
+ # The trigger sources for this rule. * GMAIL_EVENTS * DEVICE_EVENTS *
104
+ # USER_EVENTS
105
+ # Corresponds to the JSON property `triggerSource`
106
+ # @return [String]
107
+ attr_accessor :trigger_source
108
+
109
+ # The timestamp of the last update to the rule.
110
+ # Corresponds to the JSON property `updateTime`
111
+ # @return [String]
112
+ attr_accessor :update_time
113
+
114
+ # Rule window size. Possible values are 1 hour or 24 hours.
115
+ # Corresponds to the JSON property `windowSize`
116
+ # @return [String]
117
+ attr_accessor :window_size
118
+
119
+ def initialize(**args)
120
+ update!(**args)
121
+ end
122
+
123
+ # Update properties of this object
124
+ def update!(**args)
125
+ @action_names = args[:action_names] if args.key?(:action_names)
126
+ @create_time = args[:create_time] if args.key?(:create_time)
127
+ @description = args[:description] if args.key?(:description)
128
+ @display_name = args[:display_name] if args.key?(:display_name)
129
+ @name = args[:name] if args.key?(:name)
130
+ @query = args[:query] if args.key?(:query)
131
+ @superseded_alerts = args[:superseded_alerts] if args.key?(:superseded_alerts)
132
+ @superseding_alert = args[:superseding_alert] if args.key?(:superseding_alert)
133
+ @threshold = args[:threshold] if args.key?(:threshold)
134
+ @trigger_source = args[:trigger_source] if args.key?(:trigger_source)
135
+ @update_time = args[:update_time] if args.key?(:update_time)
136
+ @window_size = args[:window_size] if args.key?(:window_size)
137
+ end
138
+ end
139
+
140
+ # An alert affecting a customer.
141
+ class Alert
142
+ include Google::Apis::Core::Hashable
143
+
144
+ # Output only. The unique identifier for the alert.
145
+ # Corresponds to the JSON property `alertId`
146
+ # @return [String]
147
+ attr_accessor :alert_id
148
+
149
+ # Output only. The time this alert was created.
150
+ # Corresponds to the JSON property `createTime`
151
+ # @return [String]
152
+ attr_accessor :create_time
153
+
154
+ # Output only. The unique identifier of the Google account of the customer.
155
+ # Corresponds to the JSON property `customerId`
156
+ # @return [String]
157
+ attr_accessor :customer_id
158
+
159
+ # Optional. The data associated with this alert, for example google.apps.
160
+ # alertcenter.type.DeviceCompromised.
161
+ # Corresponds to the JSON property `data`
162
+ # @return [Hash<String,Object>]
163
+ attr_accessor :data
164
+
165
+ # Output only. `True` if this alert is marked for deletion.
166
+ # Corresponds to the JSON property `deleted`
167
+ # @return [Boolean]
168
+ attr_accessor :deleted
169
+ alias_method :deleted?, :deleted
170
+
171
+ # Optional. The time the event that caused this alert ceased being active. If
172
+ # provided, the end time must not be earlier than the start time. If not
173
+ # provided, it indicates an ongoing alert.
174
+ # Corresponds to the JSON property `endTime`
175
+ # @return [String]
176
+ attr_accessor :end_time
177
+
178
+ # Optional. `etag` is used for optimistic concurrency control as a way to help
179
+ # prevent simultaneous updates of an alert from overwriting each other. It is
180
+ # strongly suggested that systems make use of the `etag` in the read-modify-
181
+ # write cycle to perform alert updates in order to avoid race conditions: An `
182
+ # etag` is returned in the response which contains alerts, and systems are
183
+ # expected to put that etag in the request to update alert to ensure that their
184
+ # change will be applied to the same version of the alert. If no `etag` is
185
+ # provided in the call to update alert, then the existing alert is overwritten
186
+ # blindly.
187
+ # Corresponds to the JSON property `etag`
188
+ # @return [String]
189
+ attr_accessor :etag
190
+
191
+ # An alert metadata.
192
+ # Corresponds to the JSON property `metadata`
193
+ # @return [Google::Apis::AlertcenterV1beta1::AlertMetadata]
194
+ attr_accessor :metadata
195
+
196
+ # Output only. An optional [Security Investigation Tool](https://support.google.
197
+ # com/a/answer/7575955) query for this alert.
198
+ # Corresponds to the JSON property `securityInvestigationToolLink`
199
+ # @return [String]
200
+ attr_accessor :security_investigation_tool_link
201
+
202
+ # Required. A unique identifier for the system that reported the alert. This is
203
+ # output only after alert is created. Supported sources are any of the following:
204
+ # * Google Operations * Mobile device management * Gmail phishing * Domain wide
205
+ # takeout * State sponsored attack * Google identity
206
+ # Corresponds to the JSON property `source`
207
+ # @return [String]
208
+ attr_accessor :source
209
+
210
+ # Required. The time the event that caused this alert was started or detected.
211
+ # Corresponds to the JSON property `startTime`
212
+ # @return [String]
213
+ attr_accessor :start_time
214
+
215
+ # Required. The type of the alert. This is output only after alert is created.
216
+ # For a list of available alert types see [Google Workspace Alert types](/admin-
217
+ # sdk/alertcenter/reference/alert-types).
218
+ # Corresponds to the JSON property `type`
219
+ # @return [String]
220
+ attr_accessor :type
221
+
222
+ # Output only. The time this alert was last updated.
223
+ # Corresponds to the JSON property `updateTime`
224
+ # @return [String]
225
+ attr_accessor :update_time
226
+
227
+ def initialize(**args)
228
+ update!(**args)
229
+ end
230
+
231
+ # Update properties of this object
232
+ def update!(**args)
233
+ @alert_id = args[:alert_id] if args.key?(:alert_id)
234
+ @create_time = args[:create_time] if args.key?(:create_time)
235
+ @customer_id = args[:customer_id] if args.key?(:customer_id)
236
+ @data = args[:data] if args.key?(:data)
237
+ @deleted = args[:deleted] if args.key?(:deleted)
238
+ @end_time = args[:end_time] if args.key?(:end_time)
239
+ @etag = args[:etag] if args.key?(:etag)
240
+ @metadata = args[:metadata] if args.key?(:metadata)
241
+ @security_investigation_tool_link = args[:security_investigation_tool_link] if args.key?(:security_investigation_tool_link)
242
+ @source = args[:source] if args.key?(:source)
243
+ @start_time = args[:start_time] if args.key?(:start_time)
244
+ @type = args[:type] if args.key?(:type)
245
+ @update_time = args[:update_time] if args.key?(:update_time)
246
+ end
247
+ end
248
+
249
+ # A customer feedback about an alert.
250
+ class AlertFeedback
251
+ include Google::Apis::Core::Hashable
252
+
253
+ # Output only. The alert identifier.
254
+ # Corresponds to the JSON property `alertId`
255
+ # @return [String]
256
+ attr_accessor :alert_id
257
+
258
+ # Output only. The time this feedback was created.
259
+ # Corresponds to the JSON property `createTime`
260
+ # @return [String]
261
+ attr_accessor :create_time
262
+
263
+ # Output only. The unique identifier of the Google account of the customer.
264
+ # Corresponds to the JSON property `customerId`
265
+ # @return [String]
266
+ attr_accessor :customer_id
267
+
268
+ # Output only. The email of the user that provided the feedback.
269
+ # Corresponds to the JSON property `email`
270
+ # @return [String]
271
+ attr_accessor :email
272
+
273
+ # Output only. The unique identifier for the feedback.
274
+ # Corresponds to the JSON property `feedbackId`
275
+ # @return [String]
276
+ attr_accessor :feedback_id
277
+
278
+ # Required. The type of the feedback.
279
+ # Corresponds to the JSON property `type`
280
+ # @return [String]
281
+ attr_accessor :type
282
+
283
+ def initialize(**args)
284
+ update!(**args)
285
+ end
286
+
287
+ # Update properties of this object
288
+ def update!(**args)
289
+ @alert_id = args[:alert_id] if args.key?(:alert_id)
290
+ @create_time = args[:create_time] if args.key?(:create_time)
291
+ @customer_id = args[:customer_id] if args.key?(:customer_id)
292
+ @email = args[:email] if args.key?(:email)
293
+ @feedback_id = args[:feedback_id] if args.key?(:feedback_id)
294
+ @type = args[:type] if args.key?(:type)
295
+ end
296
+ end
297
+
298
+ # An alert metadata.
299
+ class AlertMetadata
300
+ include Google::Apis::Core::Hashable
301
+
302
+ # Output only. The alert identifier.
303
+ # Corresponds to the JSON property `alertId`
304
+ # @return [String]
305
+ attr_accessor :alert_id
306
+
307
+ # The email address of the user assigned to the alert.
308
+ # Corresponds to the JSON property `assignee`
309
+ # @return [String]
310
+ attr_accessor :assignee
311
+
312
+ # Output only. The unique identifier of the Google account of the customer.
313
+ # Corresponds to the JSON property `customerId`
314
+ # @return [String]
315
+ attr_accessor :customer_id
316
+
317
+ # Optional. `etag` is used for optimistic concurrency control as a way to help
318
+ # prevent simultaneous updates of an alert metadata from overwriting each other.
319
+ # It is strongly suggested that systems make use of the `etag` in the read-
320
+ # modify-write cycle to perform metatdata updates in order to avoid race
321
+ # conditions: An `etag` is returned in the response which contains alert
322
+ # metadata, and systems are expected to put that etag in the request to update
323
+ # alert metadata to ensure that their change will be applied to the same version
324
+ # of the alert metadata. If no `etag` is provided in the call to update alert
325
+ # metadata, then the existing alert metadata is overwritten blindly.
326
+ # Corresponds to the JSON property `etag`
327
+ # @return [String]
328
+ attr_accessor :etag
329
+
330
+ # The severity value of the alert. Alert Center will set this field at alert
331
+ # creation time, default's to an empty string when it could not be determined.
332
+ # The supported values for update actions on this field are the following: *
333
+ # HIGH * MEDIUM * LOW
334
+ # Corresponds to the JSON property `severity`
335
+ # @return [String]
336
+ attr_accessor :severity
337
+
338
+ # The current status of the alert. The supported values are the following: *
339
+ # NOT_STARTED * IN_PROGRESS * CLOSED
340
+ # Corresponds to the JSON property `status`
341
+ # @return [String]
342
+ attr_accessor :status
343
+
344
+ # Output only. The time this metadata was last updated.
345
+ # Corresponds to the JSON property `updateTime`
346
+ # @return [String]
347
+ attr_accessor :update_time
348
+
349
+ def initialize(**args)
350
+ update!(**args)
351
+ end
352
+
353
+ # Update properties of this object
354
+ def update!(**args)
355
+ @alert_id = args[:alert_id] if args.key?(:alert_id)
356
+ @assignee = args[:assignee] if args.key?(:assignee)
357
+ @customer_id = args[:customer_id] if args.key?(:customer_id)
358
+ @etag = args[:etag] if args.key?(:etag)
359
+ @severity = args[:severity] if args.key?(:severity)
360
+ @status = args[:status] if args.key?(:status)
361
+ @update_time = args[:update_time] if args.key?(:update_time)
362
+ end
363
+ end
364
+
365
+ # Alerts from App Maker to notify admins to set up default SQL instance.
366
+ class AppMakerSqlSetupNotification
367
+ include Google::Apis::Core::Hashable
368
+
369
+ # List of applications with requests for default SQL set up.
370
+ # Corresponds to the JSON property `requestInfo`
371
+ # @return [Array<Google::Apis::AlertcenterV1beta1::RequestInfo>]
372
+ attr_accessor :request_info
373
+
374
+ def initialize(**args)
375
+ update!(**args)
376
+ end
377
+
378
+ # Update properties of this object
379
+ def update!(**args)
380
+ @request_info = args[:request_info] if args.key?(:request_info)
381
+ end
382
+ end
383
+
384
+ # Attachment with application-specific information about an alert.
385
+ class Attachment
386
+ include Google::Apis::Core::Hashable
387
+
388
+ # A representation of a CSV file attachment, as a list of column headers and a
389
+ # list of data rows.
390
+ # Corresponds to the JSON property `csv`
391
+ # @return [Google::Apis::AlertcenterV1beta1::Csv]
392
+ attr_accessor :csv
393
+
394
+ def initialize(**args)
395
+ update!(**args)
396
+ end
397
+
398
+ # Update properties of this object
399
+ def update!(**args)
400
+ @csv = args[:csv] if args.key?(:csv)
401
+ end
402
+ end
403
+
404
+ # Alert for setting the domain or IP that malicious email comes from as
405
+ # whitelisted domain or IP in Gmail advanced settings.
406
+ class BadWhitelist
407
+ include Google::Apis::Core::Hashable
408
+
409
+ # Domain ID of Gmail phishing alerts.
410
+ # Corresponds to the JSON property `domainId`
411
+ # @return [Google::Apis::AlertcenterV1beta1::DomainId]
412
+ attr_accessor :domain_id
413
+
414
+ # Entity whose actions triggered a Gmail phishing alert.
415
+ # Corresponds to the JSON property `maliciousEntity`
416
+ # @return [Google::Apis::AlertcenterV1beta1::MaliciousEntity]
417
+ attr_accessor :malicious_entity
418
+
419
+ # The list of messages contained by this alert.
420
+ # Corresponds to the JSON property `messages`
421
+ # @return [Array<Google::Apis::AlertcenterV1beta1::GmailMessageInfo>]
422
+ attr_accessor :messages
423
+
424
+ # The source IP address of the malicious email, for example, `127.0.0.1`.
425
+ # Corresponds to the JSON property `sourceIp`
426
+ # @return [String]
427
+ attr_accessor :source_ip
428
+
429
+ def initialize(**args)
430
+ update!(**args)
431
+ end
432
+
433
+ # Update properties of this object
434
+ def update!(**args)
435
+ @domain_id = args[:domain_id] if args.key?(:domain_id)
436
+ @malicious_entity = args[:malicious_entity] if args.key?(:malicious_entity)
437
+ @messages = args[:messages] if args.key?(:messages)
438
+ @source_ip = args[:source_ip] if args.key?(:source_ip)
439
+ end
440
+ end
441
+
442
+ # A request to perform batch delete on alerts.
443
+ class BatchDeleteAlertsRequest
444
+ include Google::Apis::Core::Hashable
445
+
446
+ # Required. list of alert IDs.
447
+ # Corresponds to the JSON property `alertId`
448
+ # @return [Array<String>]
449
+ attr_accessor :alert_id
450
+
451
+ # Optional. The unique identifier of the Google Workspace organization account
452
+ # of the customer the alerts are associated with.
453
+ # Corresponds to the JSON property `customerId`
454
+ # @return [String]
455
+ attr_accessor :customer_id
456
+
457
+ def initialize(**args)
458
+ update!(**args)
459
+ end
460
+
461
+ # Update properties of this object
462
+ def update!(**args)
463
+ @alert_id = args[:alert_id] if args.key?(:alert_id)
464
+ @customer_id = args[:customer_id] if args.key?(:customer_id)
465
+ end
466
+ end
467
+
468
+ # Response to batch delete operation on alerts.
469
+ class BatchDeleteAlertsResponse
470
+ include Google::Apis::Core::Hashable
471
+
472
+ # The status details for each failed alert_id.
473
+ # Corresponds to the JSON property `failedAlertStatus`
474
+ # @return [Hash<String,Google::Apis::AlertcenterV1beta1::Status>]
475
+ attr_accessor :failed_alert_status
476
+
477
+ # The successful list of alert IDs.
478
+ # Corresponds to the JSON property `successAlertIds`
479
+ # @return [Array<String>]
480
+ attr_accessor :success_alert_ids
481
+
482
+ def initialize(**args)
483
+ update!(**args)
484
+ end
485
+
486
+ # Update properties of this object
487
+ def update!(**args)
488
+ @failed_alert_status = args[:failed_alert_status] if args.key?(:failed_alert_status)
489
+ @success_alert_ids = args[:success_alert_ids] if args.key?(:success_alert_ids)
490
+ end
491
+ end
492
+
493
+ # A request to perform batch undelete on alerts.
494
+ class BatchUndeleteAlertsRequest
495
+ include Google::Apis::Core::Hashable
496
+
497
+ # Required. list of alert IDs.
498
+ # Corresponds to the JSON property `alertId`
499
+ # @return [Array<String>]
500
+ attr_accessor :alert_id
501
+
502
+ # Optional. The unique identifier of the Google Workspace organization account
503
+ # of the customer the alerts are associated with.
504
+ # Corresponds to the JSON property `customerId`
505
+ # @return [String]
506
+ attr_accessor :customer_id
507
+
508
+ def initialize(**args)
509
+ update!(**args)
510
+ end
511
+
512
+ # Update properties of this object
513
+ def update!(**args)
514
+ @alert_id = args[:alert_id] if args.key?(:alert_id)
515
+ @customer_id = args[:customer_id] if args.key?(:customer_id)
516
+ end
517
+ end
518
+
519
+ # Response to batch undelete operation on alerts.
520
+ class BatchUndeleteAlertsResponse
521
+ include Google::Apis::Core::Hashable
522
+
523
+ # The status details for each failed alert_id.
524
+ # Corresponds to the JSON property `failedAlertStatus`
525
+ # @return [Hash<String,Google::Apis::AlertcenterV1beta1::Status>]
526
+ attr_accessor :failed_alert_status
527
+
528
+ # The successful list of alert IDs.
529
+ # Corresponds to the JSON property `successAlertIds`
530
+ # @return [Array<String>]
531
+ attr_accessor :success_alert_ids
532
+
533
+ def initialize(**args)
534
+ update!(**args)
535
+ end
536
+
537
+ # Update properties of this object
538
+ def update!(**args)
539
+ @failed_alert_status = args[:failed_alert_status] if args.key?(:failed_alert_status)
540
+ @success_alert_ids = args[:success_alert_ids] if args.key?(:success_alert_ids)
541
+ end
542
+ end
543
+
544
+ # A reference to a Cloud Pubsub topic. To register for notifications, the owner
545
+ # of the topic must grant `alerts-api-push-notifications@system.gserviceaccount.
546
+ # com` the `projects.topics.publish` permission.
547
+ class CloudPubsubTopic
548
+ include Google::Apis::Core::Hashable
549
+
550
+ # Optional. The format of the payload that would be sent. If not specified the
551
+ # format will be JSON.
552
+ # Corresponds to the JSON property `payloadFormat`
553
+ # @return [String]
554
+ attr_accessor :payload_format
555
+
556
+ # The `name` field of a Cloud Pubsub [Topic] (https://cloud.google.com/pubsub/
557
+ # docs/reference/rest/v1/projects.topics#Topic).
558
+ # Corresponds to the JSON property `topicName`
559
+ # @return [String]
560
+ attr_accessor :topic_name
561
+
562
+ def initialize(**args)
563
+ update!(**args)
564
+ end
565
+
566
+ # Update properties of this object
567
+ def update!(**args)
568
+ @payload_format = args[:payload_format] if args.key?(:payload_format)
569
+ @topic_name = args[:topic_name] if args.key?(:topic_name)
570
+ end
571
+ end
572
+
573
+ # A representation of a CSV file attachment, as a list of column headers and a
574
+ # list of data rows.
575
+ class Csv
576
+ include Google::Apis::Core::Hashable
577
+
578
+ # The list of data rows in a CSV file, as string arrays rather than as a single
579
+ # comma-separated string.
580
+ # Corresponds to the JSON property `dataRows`
581
+ # @return [Array<Google::Apis::AlertcenterV1beta1::CsvRow>]
582
+ attr_accessor :data_rows
583
+
584
+ # The list of headers for data columns in a CSV file.
585
+ # Corresponds to the JSON property `headers`
586
+ # @return [Array<String>]
587
+ attr_accessor :headers
588
+
589
+ def initialize(**args)
590
+ update!(**args)
591
+ end
592
+
593
+ # Update properties of this object
594
+ def update!(**args)
595
+ @data_rows = args[:data_rows] if args.key?(:data_rows)
596
+ @headers = args[:headers] if args.key?(:headers)
597
+ end
598
+ end
599
+
600
+ # A representation of a single data row in a CSV file.
601
+ class CsvRow
602
+ include Google::Apis::Core::Hashable
603
+
604
+ # The data entries in a CSV file row, as a string array rather than a single
605
+ # comma-separated string.
606
+ # Corresponds to the JSON property `entries`
607
+ # @return [Array<String>]
608
+ attr_accessor :entries
609
+
610
+ def initialize(**args)
611
+ update!(**args)
612
+ end
613
+
614
+ # Update properties of this object
615
+ def update!(**args)
616
+ @entries = args[:entries] if args.key?(:entries)
617
+ end
618
+ end
619
+
620
+ # A mobile device compromised alert. Derived from audit logs.
621
+ class DeviceCompromised
622
+ include Google::Apis::Core::Hashable
623
+
624
+ # The email of the user this alert was created for.
625
+ # Corresponds to the JSON property `email`
626
+ # @return [String]
627
+ attr_accessor :email
628
+
629
+ # Required. The list of security events.
630
+ # Corresponds to the JSON property `events`
631
+ # @return [Array<Google::Apis::AlertcenterV1beta1::DeviceCompromisedSecurityDetail>]
632
+ attr_accessor :events
633
+
634
+ def initialize(**args)
635
+ update!(**args)
636
+ end
637
+
638
+ # Update properties of this object
639
+ def update!(**args)
640
+ @email = args[:email] if args.key?(:email)
641
+ @events = args[:events] if args.key?(:events)
642
+ end
643
+ end
644
+
645
+ # Detailed information of a single MDM device compromised event.
646
+ class DeviceCompromisedSecurityDetail
647
+ include Google::Apis::Core::Hashable
648
+
649
+ # The device compromised state. Possible values are "`Compromised`" or "`Not
650
+ # Compromised`".
651
+ # Corresponds to the JSON property `deviceCompromisedState`
652
+ # @return [String]
653
+ attr_accessor :device_compromised_state
654
+
655
+ # Required. The device ID.
656
+ # Corresponds to the JSON property `deviceId`
657
+ # @return [String]
658
+ attr_accessor :device_id
659
+
660
+ # The model of the device.
661
+ # Corresponds to the JSON property `deviceModel`
662
+ # @return [String]
663
+ attr_accessor :device_model
664
+
665
+ # The type of the device.
666
+ # Corresponds to the JSON property `deviceType`
667
+ # @return [String]
668
+ attr_accessor :device_type
669
+
670
+ # Required for iOS, empty for others.
671
+ # Corresponds to the JSON property `iosVendorId`
672
+ # @return [String]
673
+ attr_accessor :ios_vendor_id
674
+
675
+ # The device resource ID.
676
+ # Corresponds to the JSON property `resourceId`
677
+ # @return [String]
678
+ attr_accessor :resource_id
679
+
680
+ # The serial number of the device.
681
+ # Corresponds to the JSON property `serialNumber`
682
+ # @return [String]
683
+ attr_accessor :serial_number
684
+
685
+ def initialize(**args)
686
+ update!(**args)
687
+ end
688
+
689
+ # Update properties of this object
690
+ def update!(**args)
691
+ @device_compromised_state = args[:device_compromised_state] if args.key?(:device_compromised_state)
692
+ @device_id = args[:device_id] if args.key?(:device_id)
693
+ @device_model = args[:device_model] if args.key?(:device_model)
694
+ @device_type = args[:device_type] if args.key?(:device_type)
695
+ @ios_vendor_id = args[:ios_vendor_id] if args.key?(:ios_vendor_id)
696
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
697
+ @serial_number = args[:serial_number] if args.key?(:serial_number)
698
+ end
699
+ end
700
+
701
+ # Alerts that get triggered on violations of Data Loss Prevention (DLP) rules.
702
+ class DlpRuleViolation
703
+ include Google::Apis::Core::Hashable
704
+
705
+ # Common alert information about violated rules that are configured by G Suite
706
+ # administrators.
707
+ # Corresponds to the JSON property `ruleViolationInfo`
708
+ # @return [Google::Apis::AlertcenterV1beta1::RuleViolationInfo]
709
+ attr_accessor :rule_violation_info
710
+
711
+ def initialize(**args)
712
+ update!(**args)
713
+ end
714
+
715
+ # Update properties of this object
716
+ def update!(**args)
717
+ @rule_violation_info = args[:rule_violation_info] if args.key?(:rule_violation_info)
718
+ end
719
+ end
720
+
721
+ # Domain ID of Gmail phishing alerts.
722
+ class DomainId
723
+ include Google::Apis::Core::Hashable
724
+
725
+ # The primary domain for the customer.
726
+ # Corresponds to the JSON property `customerPrimaryDomain`
727
+ # @return [String]
728
+ attr_accessor :customer_primary_domain
729
+
730
+ def initialize(**args)
731
+ update!(**args)
732
+ end
733
+
734
+ # Update properties of this object
735
+ def update!(**args)
736
+ @customer_primary_domain = args[:customer_primary_domain] if args.key?(:customer_primary_domain)
737
+ end
738
+ end
739
+
740
+ # A takeout operation for the entire domain was initiated by an admin. Derived
741
+ # from audit logs.
742
+ class DomainWideTakeoutInitiated
743
+ include Google::Apis::Core::Hashable
744
+
745
+ # The email of the admin who initiated the takeout.
746
+ # Corresponds to the JSON property `email`
747
+ # @return [String]
748
+ attr_accessor :email
749
+
750
+ # The takeout request ID.
751
+ # Corresponds to the JSON property `takeoutRequestId`
752
+ # @return [String]
753
+ attr_accessor :takeout_request_id
754
+
755
+ def initialize(**args)
756
+ update!(**args)
757
+ end
758
+
759
+ # Update properties of this object
760
+ def update!(**args)
761
+ @email = args[:email] if args.key?(:email)
762
+ @takeout_request_id = args[:takeout_request_id] if args.key?(:takeout_request_id)
763
+ end
764
+ end
765
+
766
+ # A generic empty message that you can re-use to avoid defining duplicated empty
767
+ # messages in your APIs. A typical example is to use it as the request or the
768
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
769
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
770
+ # `Empty` is empty JSON object ````.
771
+ class Empty
772
+ include Google::Apis::Core::Hashable
773
+
774
+ def initialize(**args)
775
+ update!(**args)
776
+ end
777
+
778
+ # Update properties of this object
779
+ def update!(**args)
780
+ end
781
+ end
782
+
783
+ # Details of a message in phishing spike alert.
784
+ class GmailMessageInfo
785
+ include Google::Apis::Core::Hashable
786
+
787
+ # The `SHA256` hash of email's attachment and all MIME parts.
788
+ # Corresponds to the JSON property `attachmentsSha256Hash`
789
+ # @return [Array<String>]
790
+ attr_accessor :attachments_sha256_hash
791
+
792
+ # The date the malicious email was sent.
793
+ # Corresponds to the JSON property `date`
794
+ # @return [String]
795
+ attr_accessor :date
796
+
797
+ # The hash of the message body text.
798
+ # Corresponds to the JSON property `md5HashMessageBody`
799
+ # @return [String]
800
+ attr_accessor :md5_hash_message_body
801
+
802
+ # The MD5 Hash of email's subject (only available for reported emails).
803
+ # Corresponds to the JSON property `md5HashSubject`
804
+ # @return [String]
805
+ attr_accessor :md5_hash_subject
806
+
807
+ # The snippet of the message body text (only available for reported emails).
808
+ # Corresponds to the JSON property `messageBodySnippet`
809
+ # @return [String]
810
+ attr_accessor :message_body_snippet
811
+
812
+ # The message ID.
813
+ # Corresponds to the JSON property `messageId`
814
+ # @return [String]
815
+ attr_accessor :message_id
816
+
817
+ # The recipient of this email.
818
+ # Corresponds to the JSON property `recipient`
819
+ # @return [String]
820
+ attr_accessor :recipient
821
+
822
+ # The email subject text (only available for reported emails).
823
+ # Corresponds to the JSON property `subjectText`
824
+ # @return [String]
825
+ attr_accessor :subject_text
826
+
827
+ def initialize(**args)
828
+ update!(**args)
829
+ end
830
+
831
+ # Update properties of this object
832
+ def update!(**args)
833
+ @attachments_sha256_hash = args[:attachments_sha256_hash] if args.key?(:attachments_sha256_hash)
834
+ @date = args[:date] if args.key?(:date)
835
+ @md5_hash_message_body = args[:md5_hash_message_body] if args.key?(:md5_hash_message_body)
836
+ @md5_hash_subject = args[:md5_hash_subject] if args.key?(:md5_hash_subject)
837
+ @message_body_snippet = args[:message_body_snippet] if args.key?(:message_body_snippet)
838
+ @message_id = args[:message_id] if args.key?(:message_id)
839
+ @recipient = args[:recipient] if args.key?(:recipient)
840
+ @subject_text = args[:subject_text] if args.key?(:subject_text)
841
+ end
842
+ end
843
+
844
+ # An incident reported by Google Operations for a G Suite application.
845
+ class GoogleOperations
846
+ include Google::Apis::Core::Hashable
847
+
848
+ # The list of emails which correspond to the users directly affected by the
849
+ # incident.
850
+ # Corresponds to the JSON property `affectedUserEmails`
851
+ # @return [Array<String>]
852
+ attr_accessor :affected_user_emails
853
+
854
+ # Attachment with application-specific information about an alert.
855
+ # Corresponds to the JSON property `attachmentData`
856
+ # @return [Google::Apis::AlertcenterV1beta1::Attachment]
857
+ attr_accessor :attachment_data
858
+
859
+ # A detailed, freeform incident description.
860
+ # Corresponds to the JSON property `description`
861
+ # @return [String]
862
+ attr_accessor :description
863
+
864
+ # A one-line incident description.
865
+ # Corresponds to the JSON property `title`
866
+ # @return [String]
867
+ attr_accessor :title
868
+
869
+ def initialize(**args)
870
+ update!(**args)
871
+ end
872
+
873
+ # Update properties of this object
874
+ def update!(**args)
875
+ @affected_user_emails = args[:affected_user_emails] if args.key?(:affected_user_emails)
876
+ @attachment_data = args[:attachment_data] if args.key?(:attachment_data)
877
+ @description = args[:description] if args.key?(:description)
878
+ @title = args[:title] if args.key?(:title)
879
+ end
880
+ end
881
+
882
+ # Response message for an alert feedback listing request.
883
+ class ListAlertFeedbackResponse
884
+ include Google::Apis::Core::Hashable
885
+
886
+ # The list of alert feedback. Feedback entries for each alert are ordered by
887
+ # creation time descending.
888
+ # Corresponds to the JSON property `feedback`
889
+ # @return [Array<Google::Apis::AlertcenterV1beta1::AlertFeedback>]
890
+ attr_accessor :feedback
891
+
892
+ def initialize(**args)
893
+ update!(**args)
894
+ end
895
+
896
+ # Update properties of this object
897
+ def update!(**args)
898
+ @feedback = args[:feedback] if args.key?(:feedback)
899
+ end
900
+ end
901
+
902
+ # Response message for an alert listing request.
903
+ class ListAlertsResponse
904
+ include Google::Apis::Core::Hashable
905
+
906
+ # The list of alerts.
907
+ # Corresponds to the JSON property `alerts`
908
+ # @return [Array<Google::Apis::AlertcenterV1beta1::Alert>]
909
+ attr_accessor :alerts
910
+
911
+ # The token for the next page. If not empty, indicates that there may be more
912
+ # alerts that match the listing request; this value can be used in a subsequent
913
+ # ListAlertsRequest to get alerts continuing from last result of the current
914
+ # list call.
915
+ # Corresponds to the JSON property `nextPageToken`
916
+ # @return [String]
917
+ attr_accessor :next_page_token
918
+
919
+ def initialize(**args)
920
+ update!(**args)
921
+ end
922
+
923
+ # Update properties of this object
924
+ def update!(**args)
925
+ @alerts = args[:alerts] if args.key?(:alerts)
926
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
927
+ end
928
+ end
929
+
930
+ # The details of the login action.
931
+ class LoginDetails
932
+ include Google::Apis::Core::Hashable
933
+
934
+ # Optional. The human-readable IP address (for example, `11.22.33.44`) that is
935
+ # associated with the warning event.
936
+ # Corresponds to the JSON property `ipAddress`
937
+ # @return [String]
938
+ attr_accessor :ip_address
939
+
940
+ # Optional. The successful login time that is associated with the warning event.
941
+ # This isn't present for blocked login attempts.
942
+ # Corresponds to the JSON property `loginTime`
943
+ # @return [String]
944
+ attr_accessor :login_time
945
+
946
+ def initialize(**args)
947
+ update!(**args)
948
+ end
949
+
950
+ # Update properties of this object
951
+ def update!(**args)
952
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
953
+ @login_time = args[:login_time] if args.key?(:login_time)
954
+ end
955
+ end
956
+
957
+ # Proto for all phishing alerts with common payload. Supported types are any of
958
+ # the following: * User reported phishing * User reported spam spike *
959
+ # Suspicious message reported * Phishing reclassification * Malware
960
+ # reclassification * Gmail potential employee spoofing
961
+ class MailPhishing
962
+ include Google::Apis::Core::Hashable
963
+
964
+ # Domain ID of Gmail phishing alerts.
965
+ # Corresponds to the JSON property `domainId`
966
+ # @return [Google::Apis::AlertcenterV1beta1::DomainId]
967
+ attr_accessor :domain_id
968
+
969
+ # If `true`, the email originated from within the organization.
970
+ # Corresponds to the JSON property `isInternal`
971
+ # @return [Boolean]
972
+ attr_accessor :is_internal
973
+ alias_method :is_internal?, :is_internal
974
+
975
+ # Entity whose actions triggered a Gmail phishing alert.
976
+ # Corresponds to the JSON property `maliciousEntity`
977
+ # @return [Google::Apis::AlertcenterV1beta1::MaliciousEntity]
978
+ attr_accessor :malicious_entity
979
+
980
+ # The list of messages contained by this alert.
981
+ # Corresponds to the JSON property `messages`
982
+ # @return [Array<Google::Apis::AlertcenterV1beta1::GmailMessageInfo>]
983
+ attr_accessor :messages
984
+
985
+ # System actions on the messages.
986
+ # Corresponds to the JSON property `systemActionType`
987
+ # @return [String]
988
+ attr_accessor :system_action_type
989
+
990
+ def initialize(**args)
991
+ update!(**args)
992
+ end
993
+
994
+ # Update properties of this object
995
+ def update!(**args)
996
+ @domain_id = args[:domain_id] if args.key?(:domain_id)
997
+ @is_internal = args[:is_internal] if args.key?(:is_internal)
998
+ @malicious_entity = args[:malicious_entity] if args.key?(:malicious_entity)
999
+ @messages = args[:messages] if args.key?(:messages)
1000
+ @system_action_type = args[:system_action_type] if args.key?(:system_action_type)
1001
+ end
1002
+ end
1003
+
1004
+ # Entity whose actions triggered a Gmail phishing alert.
1005
+ class MaliciousEntity
1006
+ include Google::Apis::Core::Hashable
1007
+
1008
+ # The header from display name.
1009
+ # Corresponds to the JSON property `displayName`
1010
+ # @return [String]
1011
+ attr_accessor :display_name
1012
+
1013
+ # A user.
1014
+ # Corresponds to the JSON property `entity`
1015
+ # @return [Google::Apis::AlertcenterV1beta1::User]
1016
+ attr_accessor :entity
1017
+
1018
+ # The sender email address.
1019
+ # Corresponds to the JSON property `fromHeader`
1020
+ # @return [String]
1021
+ attr_accessor :from_header
1022
+
1023
+ def initialize(**args)
1024
+ update!(**args)
1025
+ end
1026
+
1027
+ # Update properties of this object
1028
+ def update!(**args)
1029
+ @display_name = args[:display_name] if args.key?(:display_name)
1030
+ @entity = args[:entity] if args.key?(:entity)
1031
+ @from_header = args[:from_header] if args.key?(:from_header)
1032
+ end
1033
+ end
1034
+
1035
+ # Proto that contains match information from the condition part of the rule.
1036
+ class MatchInfo
1037
+ include Google::Apis::Core::Hashable
1038
+
1039
+ # Detector provided by Google.
1040
+ # Corresponds to the JSON property `predefinedDetector`
1041
+ # @return [Google::Apis::AlertcenterV1beta1::PredefinedDetectorInfo]
1042
+ attr_accessor :predefined_detector
1043
+
1044
+ # Detector defined by administrators.
1045
+ # Corresponds to the JSON property `userDefinedDetector`
1046
+ # @return [Google::Apis::AlertcenterV1beta1::UserDefinedDetectorInfo]
1047
+ attr_accessor :user_defined_detector
1048
+
1049
+ def initialize(**args)
1050
+ update!(**args)
1051
+ end
1052
+
1053
+ # Update properties of this object
1054
+ def update!(**args)
1055
+ @predefined_detector = args[:predefined_detector] if args.key?(:predefined_detector)
1056
+ @user_defined_detector = args[:user_defined_detector] if args.key?(:user_defined_detector)
1057
+ end
1058
+ end
1059
+
1060
+ # Settings for callback notifications. For more details see [Google Workspace
1061
+ # Alert Notification](/admin-sdk/alertcenter/guides/notifications).
1062
+ class Notification
1063
+ include Google::Apis::Core::Hashable
1064
+
1065
+ # A reference to a Cloud Pubsub topic. To register for notifications, the owner
1066
+ # of the topic must grant `alerts-api-push-notifications@system.gserviceaccount.
1067
+ # com` the `projects.topics.publish` permission.
1068
+ # Corresponds to the JSON property `cloudPubsubTopic`
1069
+ # @return [Google::Apis::AlertcenterV1beta1::CloudPubsubTopic]
1070
+ attr_accessor :cloud_pubsub_topic
1071
+
1072
+ def initialize(**args)
1073
+ update!(**args)
1074
+ end
1075
+
1076
+ # Update properties of this object
1077
+ def update!(**args)
1078
+ @cloud_pubsub_topic = args[:cloud_pubsub_topic] if args.key?(:cloud_pubsub_topic)
1079
+ end
1080
+ end
1081
+
1082
+ # Alert for a spike in user reported phishing. *Warning*: This type has been
1083
+ # deprecated. Use [MailPhishing](/admin-sdk/alertcenter/reference/rest/v1beta1/
1084
+ # MailPhishing) instead.
1085
+ class PhishingSpike
1086
+ include Google::Apis::Core::Hashable
1087
+
1088
+ # Domain ID of Gmail phishing alerts.
1089
+ # Corresponds to the JSON property `domainId`
1090
+ # @return [Google::Apis::AlertcenterV1beta1::DomainId]
1091
+ attr_accessor :domain_id
1092
+
1093
+ # If `true`, the email originated from within the organization.
1094
+ # Corresponds to the JSON property `isInternal`
1095
+ # @return [Boolean]
1096
+ attr_accessor :is_internal
1097
+ alias_method :is_internal?, :is_internal
1098
+
1099
+ # Entity whose actions triggered a Gmail phishing alert.
1100
+ # Corresponds to the JSON property `maliciousEntity`
1101
+ # @return [Google::Apis::AlertcenterV1beta1::MaliciousEntity]
1102
+ attr_accessor :malicious_entity
1103
+
1104
+ # The list of messages contained by this alert.
1105
+ # Corresponds to the JSON property `messages`
1106
+ # @return [Array<Google::Apis::AlertcenterV1beta1::GmailMessageInfo>]
1107
+ attr_accessor :messages
1108
+
1109
+ def initialize(**args)
1110
+ update!(**args)
1111
+ end
1112
+
1113
+ # Update properties of this object
1114
+ def update!(**args)
1115
+ @domain_id = args[:domain_id] if args.key?(:domain_id)
1116
+ @is_internal = args[:is_internal] if args.key?(:is_internal)
1117
+ @malicious_entity = args[:malicious_entity] if args.key?(:malicious_entity)
1118
+ @messages = args[:messages] if args.key?(:messages)
1119
+ end
1120
+ end
1121
+
1122
+ # Detector provided by Google.
1123
+ class PredefinedDetectorInfo
1124
+ include Google::Apis::Core::Hashable
1125
+
1126
+ # Name that uniquely identifies the detector.
1127
+ # Corresponds to the JSON property `detectorName`
1128
+ # @return [String]
1129
+ attr_accessor :detector_name
1130
+
1131
+ def initialize(**args)
1132
+ update!(**args)
1133
+ end
1134
+
1135
+ # Update properties of this object
1136
+ def update!(**args)
1137
+ @detector_name = args[:detector_name] if args.key?(:detector_name)
1138
+ end
1139
+ end
1140
+
1141
+ # Requests for one application that needs default SQL setup.
1142
+ class RequestInfo
1143
+ include Google::Apis::Core::Hashable
1144
+
1145
+ # List of app developers who triggered notifications for above application.
1146
+ # Corresponds to the JSON property `appDeveloperEmail`
1147
+ # @return [Array<String>]
1148
+ attr_accessor :app_developer_email
1149
+
1150
+ # Required. The application that requires the SQL setup.
1151
+ # Corresponds to the JSON property `appKey`
1152
+ # @return [String]
1153
+ attr_accessor :app_key
1154
+
1155
+ # Required. Number of requests sent for this application to set up default SQL
1156
+ # instance.
1157
+ # Corresponds to the JSON property `numberOfRequests`
1158
+ # @return [Fixnum]
1159
+ attr_accessor :number_of_requests
1160
+
1161
+ def initialize(**args)
1162
+ update!(**args)
1163
+ end
1164
+
1165
+ # Update properties of this object
1166
+ def update!(**args)
1167
+ @app_developer_email = args[:app_developer_email] if args.key?(:app_developer_email)
1168
+ @app_key = args[:app_key] if args.key?(:app_key)
1169
+ @number_of_requests = args[:number_of_requests] if args.key?(:number_of_requests)
1170
+ end
1171
+ end
1172
+
1173
+ # Proto that contains resource information.
1174
+ class ResourceInfo
1175
+ include Google::Apis::Core::Hashable
1176
+
1177
+ # Drive file ID.
1178
+ # Corresponds to the JSON property `documentId`
1179
+ # @return [String]
1180
+ attr_accessor :document_id
1181
+
1182
+ # Title of the resource, for example email subject, or document title.
1183
+ # Corresponds to the JSON property `resourceTitle`
1184
+ # @return [String]
1185
+ attr_accessor :resource_title
1186
+
1187
+ def initialize(**args)
1188
+ update!(**args)
1189
+ end
1190
+
1191
+ # Update properties of this object
1192
+ def update!(**args)
1193
+ @document_id = args[:document_id] if args.key?(:document_id)
1194
+ @resource_title = args[:resource_title] if args.key?(:resource_title)
1195
+ end
1196
+ end
1197
+
1198
+ # Proto that contains rule information.
1199
+ class RuleInfo
1200
+ include Google::Apis::Core::Hashable
1201
+
1202
+ # User provided name of the rule.
1203
+ # Corresponds to the JSON property `displayName`
1204
+ # @return [String]
1205
+ attr_accessor :display_name
1206
+
1207
+ # Resource name that uniquely identifies the rule.
1208
+ # Corresponds to the JSON property `resourceName`
1209
+ # @return [String]
1210
+ attr_accessor :resource_name
1211
+
1212
+ def initialize(**args)
1213
+ update!(**args)
1214
+ end
1215
+
1216
+ # Update properties of this object
1217
+ def update!(**args)
1218
+ @display_name = args[:display_name] if args.key?(:display_name)
1219
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
1220
+ end
1221
+ end
1222
+
1223
+ # Common alert information about violated rules that are configured by G Suite
1224
+ # administrators.
1225
+ class RuleViolationInfo
1226
+ include Google::Apis::Core::Hashable
1227
+
1228
+ # Source of the data.
1229
+ # Corresponds to the JSON property `dataSource`
1230
+ # @return [String]
1231
+ attr_accessor :data_source
1232
+
1233
+ # List of matches that were found in the resource content.
1234
+ # Corresponds to the JSON property `matchInfo`
1235
+ # @return [Array<Google::Apis::AlertcenterV1beta1::MatchInfo>]
1236
+ attr_accessor :match_info
1237
+
1238
+ # Resource recipients. For Drive, they are grantees that the Drive file was
1239
+ # shared with at the time of rule triggering. Valid values include user emails,
1240
+ # group emails, domains, or 'anyone' if the file was publicly accessible. If the
1241
+ # file was private the recipients list will be empty. For Gmail, they are emails
1242
+ # of the users or groups that the Gmail message was sent to.
1243
+ # Corresponds to the JSON property `recipients`
1244
+ # @return [Array<String>]
1245
+ attr_accessor :recipients
1246
+
1247
+ # Proto that contains resource information.
1248
+ # Corresponds to the JSON property `resourceInfo`
1249
+ # @return [Google::Apis::AlertcenterV1beta1::ResourceInfo]
1250
+ attr_accessor :resource_info
1251
+
1252
+ # Proto that contains rule information.
1253
+ # Corresponds to the JSON property `ruleInfo`
1254
+ # @return [Google::Apis::AlertcenterV1beta1::RuleInfo]
1255
+ attr_accessor :rule_info
1256
+
1257
+ # Actions suppressed due to other actions with higher priority.
1258
+ # Corresponds to the JSON property `suppressedActionTypes`
1259
+ # @return [Array<String>]
1260
+ attr_accessor :suppressed_action_types
1261
+
1262
+ # Trigger of the rule.
1263
+ # Corresponds to the JSON property `trigger`
1264
+ # @return [String]
1265
+ attr_accessor :trigger
1266
+
1267
+ # Actions applied as a consequence of the rule being triggered.
1268
+ # Corresponds to the JSON property `triggeredActionTypes`
1269
+ # @return [Array<String>]
1270
+ attr_accessor :triggered_action_types
1271
+
1272
+ # Email of the user who caused the violation. Value could be empty if not
1273
+ # applicable, for example, a violation found by drive continuous scan.
1274
+ # Corresponds to the JSON property `triggeringUserEmail`
1275
+ # @return [String]
1276
+ attr_accessor :triggering_user_email
1277
+
1278
+ def initialize(**args)
1279
+ update!(**args)
1280
+ end
1281
+
1282
+ # Update properties of this object
1283
+ def update!(**args)
1284
+ @data_source = args[:data_source] if args.key?(:data_source)
1285
+ @match_info = args[:match_info] if args.key?(:match_info)
1286
+ @recipients = args[:recipients] if args.key?(:recipients)
1287
+ @resource_info = args[:resource_info] if args.key?(:resource_info)
1288
+ @rule_info = args[:rule_info] if args.key?(:rule_info)
1289
+ @suppressed_action_types = args[:suppressed_action_types] if args.key?(:suppressed_action_types)
1290
+ @trigger = args[:trigger] if args.key?(:trigger)
1291
+ @triggered_action_types = args[:triggered_action_types] if args.key?(:triggered_action_types)
1292
+ @triggering_user_email = args[:triggering_user_email] if args.key?(:triggering_user_email)
1293
+ end
1294
+ end
1295
+
1296
+ # Customer-level settings.
1297
+ class Settings
1298
+ include Google::Apis::Core::Hashable
1299
+
1300
+ # The list of notifications.
1301
+ # Corresponds to the JSON property `notifications`
1302
+ # @return [Array<Google::Apis::AlertcenterV1beta1::Notification>]
1303
+ attr_accessor :notifications
1304
+
1305
+ def initialize(**args)
1306
+ update!(**args)
1307
+ end
1308
+
1309
+ # Update properties of this object
1310
+ def update!(**args)
1311
+ @notifications = args[:notifications] if args.key?(:notifications)
1312
+ end
1313
+ end
1314
+
1315
+ # A state-sponsored attack alert. Derived from audit logs.
1316
+ class StateSponsoredAttack
1317
+ include Google::Apis::Core::Hashable
1318
+
1319
+ # The email of the user this incident was created for.
1320
+ # Corresponds to the JSON property `email`
1321
+ # @return [String]
1322
+ attr_accessor :email
1323
+
1324
+ def initialize(**args)
1325
+ update!(**args)
1326
+ end
1327
+
1328
+ # Update properties of this object
1329
+ def update!(**args)
1330
+ @email = args[:email] if args.key?(:email)
1331
+ end
1332
+ end
1333
+
1334
+ # The `Status` type defines a logical error model that is suitable for different
1335
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1336
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1337
+ # data: error code, error message, and error details. You can find out more
1338
+ # about this error model and how to work with it in the [API Design Guide](https:
1339
+ # //cloud.google.com/apis/design/errors).
1340
+ class Status
1341
+ include Google::Apis::Core::Hashable
1342
+
1343
+ # The status code, which should be an enum value of google.rpc.Code.
1344
+ # Corresponds to the JSON property `code`
1345
+ # @return [Fixnum]
1346
+ attr_accessor :code
1347
+
1348
+ # A list of messages that carry the error details. There is a common set of
1349
+ # message types for APIs to use.
1350
+ # Corresponds to the JSON property `details`
1351
+ # @return [Array<Hash<String,Object>>]
1352
+ attr_accessor :details
1353
+
1354
+ # A developer-facing error message, which should be in English. Any user-facing
1355
+ # error message should be localized and sent in the google.rpc.Status.details
1356
+ # field, or localized by the client.
1357
+ # Corresponds to the JSON property `message`
1358
+ # @return [String]
1359
+ attr_accessor :message
1360
+
1361
+ def initialize(**args)
1362
+ update!(**args)
1363
+ end
1364
+
1365
+ # Update properties of this object
1366
+ def update!(**args)
1367
+ @code = args[:code] if args.key?(:code)
1368
+ @details = args[:details] if args.key?(:details)
1369
+ @message = args[:message] if args.key?(:message)
1370
+ end
1371
+ end
1372
+
1373
+ # A mobile suspicious activity alert. Derived from audit logs.
1374
+ class SuspiciousActivity
1375
+ include Google::Apis::Core::Hashable
1376
+
1377
+ # The email of the user this alert was created for.
1378
+ # Corresponds to the JSON property `email`
1379
+ # @return [String]
1380
+ attr_accessor :email
1381
+
1382
+ # Required. The list of security events.
1383
+ # Corresponds to the JSON property `events`
1384
+ # @return [Array<Google::Apis::AlertcenterV1beta1::SuspiciousActivitySecurityDetail>]
1385
+ attr_accessor :events
1386
+
1387
+ def initialize(**args)
1388
+ update!(**args)
1389
+ end
1390
+
1391
+ # Update properties of this object
1392
+ def update!(**args)
1393
+ @email = args[:email] if args.key?(:email)
1394
+ @events = args[:events] if args.key?(:events)
1395
+ end
1396
+ end
1397
+
1398
+ # Detailed information of a single MDM suspicious activity event.
1399
+ class SuspiciousActivitySecurityDetail
1400
+ include Google::Apis::Core::Hashable
1401
+
1402
+ # Required. The device ID.
1403
+ # Corresponds to the JSON property `deviceId`
1404
+ # @return [String]
1405
+ attr_accessor :device_id
1406
+
1407
+ # The model of the device.
1408
+ # Corresponds to the JSON property `deviceModel`
1409
+ # @return [String]
1410
+ attr_accessor :device_model
1411
+
1412
+ # The device property which was changed.
1413
+ # Corresponds to the JSON property `deviceProperty`
1414
+ # @return [String]
1415
+ attr_accessor :device_property
1416
+
1417
+ # The type of the device.
1418
+ # Corresponds to the JSON property `deviceType`
1419
+ # @return [String]
1420
+ attr_accessor :device_type
1421
+
1422
+ # Required for iOS, empty for others.
1423
+ # Corresponds to the JSON property `iosVendorId`
1424
+ # @return [String]
1425
+ attr_accessor :ios_vendor_id
1426
+
1427
+ # The new value of the device property after the change.
1428
+ # Corresponds to the JSON property `newValue`
1429
+ # @return [String]
1430
+ attr_accessor :new_value
1431
+
1432
+ # The old value of the device property before the change.
1433
+ # Corresponds to the JSON property `oldValue`
1434
+ # @return [String]
1435
+ attr_accessor :old_value
1436
+
1437
+ # The device resource ID.
1438
+ # Corresponds to the JSON property `resourceId`
1439
+ # @return [String]
1440
+ attr_accessor :resource_id
1441
+
1442
+ # The serial number of the device.
1443
+ # Corresponds to the JSON property `serialNumber`
1444
+ # @return [String]
1445
+ attr_accessor :serial_number
1446
+
1447
+ def initialize(**args)
1448
+ update!(**args)
1449
+ end
1450
+
1451
+ # Update properties of this object
1452
+ def update!(**args)
1453
+ @device_id = args[:device_id] if args.key?(:device_id)
1454
+ @device_model = args[:device_model] if args.key?(:device_model)
1455
+ @device_property = args[:device_property] if args.key?(:device_property)
1456
+ @device_type = args[:device_type] if args.key?(:device_type)
1457
+ @ios_vendor_id = args[:ios_vendor_id] if args.key?(:ios_vendor_id)
1458
+ @new_value = args[:new_value] if args.key?(:new_value)
1459
+ @old_value = args[:old_value] if args.key?(:old_value)
1460
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
1461
+ @serial_number = args[:serial_number] if args.key?(:serial_number)
1462
+ end
1463
+ end
1464
+
1465
+ # A request to undelete a specific alert that was marked for deletion.
1466
+ class UndeleteAlertRequest
1467
+ include Google::Apis::Core::Hashable
1468
+
1469
+ # Optional. The unique identifier of the Google Workspace organization account
1470
+ # of the customer the alert is associated with. Inferred from the caller
1471
+ # identity if not provided.
1472
+ # Corresponds to the JSON property `customerId`
1473
+ # @return [String]
1474
+ attr_accessor :customer_id
1475
+
1476
+ def initialize(**args)
1477
+ update!(**args)
1478
+ end
1479
+
1480
+ # Update properties of this object
1481
+ def update!(**args)
1482
+ @customer_id = args[:customer_id] if args.key?(:customer_id)
1483
+ end
1484
+ end
1485
+
1486
+ # A user.
1487
+ class User
1488
+ include Google::Apis::Core::Hashable
1489
+
1490
+ # Display name of the user.
1491
+ # Corresponds to the JSON property `displayName`
1492
+ # @return [String]
1493
+ attr_accessor :display_name
1494
+
1495
+ # Email address of the user.
1496
+ # Corresponds to the JSON property `emailAddress`
1497
+ # @return [String]
1498
+ attr_accessor :email_address
1499
+
1500
+ def initialize(**args)
1501
+ update!(**args)
1502
+ end
1503
+
1504
+ # Update properties of this object
1505
+ def update!(**args)
1506
+ @display_name = args[:display_name] if args.key?(:display_name)
1507
+ @email_address = args[:email_address] if args.key?(:email_address)
1508
+ end
1509
+ end
1510
+
1511
+ # Detector defined by administrators.
1512
+ class UserDefinedDetectorInfo
1513
+ include Google::Apis::Core::Hashable
1514
+
1515
+ # Display name of the detector.
1516
+ # Corresponds to the JSON property `displayName`
1517
+ # @return [String]
1518
+ attr_accessor :display_name
1519
+
1520
+ # Resource name that uniquely identifies the detector.
1521
+ # Corresponds to the JSON property `resourceName`
1522
+ # @return [String]
1523
+ attr_accessor :resource_name
1524
+
1525
+ def initialize(**args)
1526
+ update!(**args)
1527
+ end
1528
+
1529
+ # Update properties of this object
1530
+ def update!(**args)
1531
+ @display_name = args[:display_name] if args.key?(:display_name)
1532
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
1533
+ end
1534
+ end
1535
+ end
1536
+ end
1537
+ end