google-apis-androidmanagement_v1 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: 9710b73579f5de5ca6adf212c4310c98964740e7dd7edf397637bc1d1a3a7535
4
+ data.tar.gz: fee85aed7575aea1256b705f3269e4929218dc31b3d6d5d0198be1838e02c1e9
5
+ SHA512:
6
+ metadata.gz: 3e5b2475dc308794494832c67eb6b2c7b07791ce851428d0ed3fe12060a14c080f2cfa0451129d140418ac427995dc9495262e8364d8a52505e94a1ae63bc367
7
+ data.tar.gz: d74d2c2e56c664db3bfec711cbf7b4e78cde4855994bb39b2765da923924ec867edb65e3dbcc1507177f455811721dbf59d9dd4a85b45d057db818f1c0c0d28c
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-androidmanagement_v1
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/androidmanagement_v1/*.rb
9
+ lib/google/apis/androidmanagement_v1.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-androidmanagement_v1
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201209
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 V1 of the Android Management API
2
+
3
+ This is a simple client library for version V1 of the Android Management 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/androidmanagement.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-androidmanagement_v1', '~> 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-androidmanagement_v1
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/androidmanagement_v1"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::AndroidmanagementV1::AndroidManagementService.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 Androidmanagement service in particular.)
67
+
68
+ For reference information on specific calls in the Android Management API, see the {Google::Apis::AndroidmanagementV1::AndroidManagementService 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-androidmanagement_v1`, 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/android/management) 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/androidmanagement_v1"
@@ -0,0 +1,37 @@
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/androidmanagement_v1/service.rb'
16
+ require 'google/apis/androidmanagement_v1/classes.rb'
17
+ require 'google/apis/androidmanagement_v1/representations.rb'
18
+ require 'google/apis/androidmanagement_v1/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Android Management API
23
+ #
24
+ # The Android Management API provides remote enterprise management of Android
25
+ # devices and apps.
26
+ #
27
+ # @see https://developers.google.com/android/management
28
+ module AndroidmanagementV1
29
+ # Version of the Android Management API this client connects to.
30
+ # This is NOT the gem version.
31
+ VERSION = 'V1'
32
+
33
+ # Manage Android devices and apps for your customers
34
+ AUTH_ANDROIDMANAGEMENT = 'https://www.googleapis.com/auth/androidmanagement'
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,3767 @@
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 AndroidmanagementV1
24
+
25
+ # Security policies set to the most secure values by default. To maintain the
26
+ # security posture of a device, we don't recommend overriding any of the default
27
+ # values.
28
+ class AdvancedSecurityOverrides
29
+ include Google::Apis::Core::Hashable
30
+
31
+ # Controls Common Criteria Mode—security standards defined in the Common
32
+ # Criteria for Information Technology Security Evaluation (https://www.
33
+ # commoncriteriaportal.org/) (CC). Enabling Common Criteria Mode increases
34
+ # certain security components on a device, including AES-GCM encryption of
35
+ # Bluetooth Long Term Keys, and Wi-Fi configuration stores.Warning: Common
36
+ # Criteria Mode enforces a strict security model typically only required for IT
37
+ # products used in national security systems and other highly sensitive
38
+ # organizations. Standard device use may be affected. Only enabled if required.
39
+ # Corresponds to the JSON property `commonCriteriaMode`
40
+ # @return [String]
41
+ attr_accessor :common_criteria_mode
42
+
43
+ # The policy for untrusted apps (apps from unknown sources) enforced on the
44
+ # device. Replaces install_unknown_sources_allowed (deprecated).
45
+ # Corresponds to the JSON property `untrustedAppsPolicy`
46
+ # @return [String]
47
+ attr_accessor :untrusted_apps_policy
48
+
49
+ def initialize(**args)
50
+ update!(**args)
51
+ end
52
+
53
+ # Update properties of this object
54
+ def update!(**args)
55
+ @common_criteria_mode = args[:common_criteria_mode] if args.key?(:common_criteria_mode)
56
+ @untrusted_apps_policy = args[:untrusted_apps_policy] if args.key?(:untrusted_apps_policy)
57
+ end
58
+ end
59
+
60
+ # Configuration for an always-on VPN connection.
61
+ class AlwaysOnVpnPackage
62
+ include Google::Apis::Core::Hashable
63
+
64
+ # Disallows networking when the VPN is not connected.
65
+ # Corresponds to the JSON property `lockdownEnabled`
66
+ # @return [Boolean]
67
+ attr_accessor :lockdown_enabled
68
+ alias_method :lockdown_enabled?, :lockdown_enabled
69
+
70
+ # The package name of the VPN app.
71
+ # Corresponds to the JSON property `packageName`
72
+ # @return [String]
73
+ attr_accessor :package_name
74
+
75
+ def initialize(**args)
76
+ update!(**args)
77
+ end
78
+
79
+ # Update properties of this object
80
+ def update!(**args)
81
+ @lockdown_enabled = args[:lockdown_enabled] if args.key?(:lockdown_enabled)
82
+ @package_name = args[:package_name] if args.key?(:package_name)
83
+ end
84
+ end
85
+
86
+ # A compliance rule condition which is satisfied if the Android Framework API
87
+ # level on the device doesn't meet a minimum requirement. There can only be one
88
+ # rule with this type of condition per policy.
89
+ class ApiLevelCondition
90
+ include Google::Apis::Core::Hashable
91
+
92
+ # The minimum desired Android Framework API level. If the device doesn't meet
93
+ # the minimum requirement, this condition is satisfied. Must be greater than
94
+ # zero.
95
+ # Corresponds to the JSON property `minApiLevel`
96
+ # @return [Fixnum]
97
+ attr_accessor :min_api_level
98
+
99
+ def initialize(**args)
100
+ update!(**args)
101
+ end
102
+
103
+ # Update properties of this object
104
+ def update!(**args)
105
+ @min_api_level = args[:min_api_level] if args.key?(:min_api_level)
106
+ end
107
+ end
108
+
109
+ # Id to name association of a app track.
110
+ class AppTrackInfo
111
+ include Google::Apis::Core::Hashable
112
+
113
+ # The track name associated with the trackId, set in the Play Console. The name
114
+ # is modifiable from Play Console.
115
+ # Corresponds to the JSON property `trackAlias`
116
+ # @return [String]
117
+ attr_accessor :track_alias
118
+
119
+ # The unmodifiable unique track identifier, taken from the releaseTrackId in the
120
+ # URL of the Play Console page that displays the app’s track information.
121
+ # Corresponds to the JSON property `trackId`
122
+ # @return [String]
123
+ attr_accessor :track_id
124
+
125
+ def initialize(**args)
126
+ update!(**args)
127
+ end
128
+
129
+ # Update properties of this object
130
+ def update!(**args)
131
+ @track_alias = args[:track_alias] if args.key?(:track_alias)
132
+ @track_id = args[:track_id] if args.key?(:track_id)
133
+ end
134
+ end
135
+
136
+ # Information about an app.
137
+ class Application
138
+ include Google::Apis::Core::Hashable
139
+
140
+ # Application tracks visible to the enterprise.
141
+ # Corresponds to the JSON property `appTracks`
142
+ # @return [Array<Google::Apis::AndroidmanagementV1::AppTrackInfo>]
143
+ attr_accessor :app_tracks
144
+
145
+ # The set of managed properties available to be pre-configured for the app.
146
+ # Corresponds to the JSON property `managedProperties`
147
+ # @return [Array<Google::Apis::AndroidmanagementV1::ManagedProperty>]
148
+ attr_accessor :managed_properties
149
+
150
+ # The name of the app in the form enterprises/`enterpriseId`/applications/`
151
+ # package_name`.
152
+ # Corresponds to the JSON property `name`
153
+ # @return [String]
154
+ attr_accessor :name
155
+
156
+ # The permissions required by the app.
157
+ # Corresponds to the JSON property `permissions`
158
+ # @return [Array<Google::Apis::AndroidmanagementV1::ApplicationPermission>]
159
+ attr_accessor :permissions
160
+
161
+ # The title of the app. Localized.
162
+ # Corresponds to the JSON property `title`
163
+ # @return [String]
164
+ attr_accessor :title
165
+
166
+ def initialize(**args)
167
+ update!(**args)
168
+ end
169
+
170
+ # Update properties of this object
171
+ def update!(**args)
172
+ @app_tracks = args[:app_tracks] if args.key?(:app_tracks)
173
+ @managed_properties = args[:managed_properties] if args.key?(:managed_properties)
174
+ @name = args[:name] if args.key?(:name)
175
+ @permissions = args[:permissions] if args.key?(:permissions)
176
+ @title = args[:title] if args.key?(:title)
177
+ end
178
+ end
179
+
180
+ # An app-related event.
181
+ class ApplicationEvent
182
+ include Google::Apis::Core::Hashable
183
+
184
+ # The creation time of the event.
185
+ # Corresponds to the JSON property `createTime`
186
+ # @return [String]
187
+ attr_accessor :create_time
188
+
189
+ # App event type.
190
+ # Corresponds to the JSON property `eventType`
191
+ # @return [String]
192
+ attr_accessor :event_type
193
+
194
+ def initialize(**args)
195
+ update!(**args)
196
+ end
197
+
198
+ # Update properties of this object
199
+ def update!(**args)
200
+ @create_time = args[:create_time] if args.key?(:create_time)
201
+ @event_type = args[:event_type] if args.key?(:event_type)
202
+ end
203
+ end
204
+
205
+ # A permission required by the app.
206
+ class ApplicationPermission
207
+ include Google::Apis::Core::Hashable
208
+
209
+ # A longer description of the permission, providing more detail on what it
210
+ # affects. Localized.
211
+ # Corresponds to the JSON property `description`
212
+ # @return [String]
213
+ attr_accessor :description
214
+
215
+ # The name of the permission. Localized.
216
+ # Corresponds to the JSON property `name`
217
+ # @return [String]
218
+ attr_accessor :name
219
+
220
+ # An opaque string uniquely identifying the permission. Not localized.
221
+ # Corresponds to the JSON property `permissionId`
222
+ # @return [String]
223
+ attr_accessor :permission_id
224
+
225
+ def initialize(**args)
226
+ update!(**args)
227
+ end
228
+
229
+ # Update properties of this object
230
+ def update!(**args)
231
+ @description = args[:description] if args.key?(:description)
232
+ @name = args[:name] if args.key?(:name)
233
+ @permission_id = args[:permission_id] if args.key?(:permission_id)
234
+ end
235
+ end
236
+
237
+ # Policy for an individual app.
238
+ class ApplicationPolicy
239
+ include Google::Apis::Core::Hashable
240
+
241
+ # List of the app’s track IDs that a device belonging to the enterprise can
242
+ # access. If the list contains multiple track IDs, devices receive the latest
243
+ # version among all accessible tracks. If the list contains no track IDs,
244
+ # devices only have access to the app’s production track. More details about
245
+ # each track are available in AppTrackInfo.
246
+ # Corresponds to the JSON property `accessibleTrackIds`
247
+ # @return [Array<String>]
248
+ attr_accessor :accessible_track_ids
249
+
250
+ # This feature is not generally available.
251
+ # Corresponds to the JSON property `autoUpdateMode`
252
+ # @return [String]
253
+ attr_accessor :auto_update_mode
254
+
255
+ # Controls whether the app can communicate with itself across a device’s work
256
+ # and personal profiles, subject to user consent.
257
+ # Corresponds to the JSON property `connectedWorkAndPersonalApp`
258
+ # @return [String]
259
+ attr_accessor :connected_work_and_personal_app
260
+
261
+ # The default policy for all permissions requested by the app. If specified,
262
+ # this overrides the policy-level default_permission_policy which applies to all
263
+ # apps. It does not override the permission_grants which applies to all apps.
264
+ # Corresponds to the JSON property `defaultPermissionPolicy`
265
+ # @return [String]
266
+ attr_accessor :default_permission_policy
267
+
268
+ # The scopes delegated to the app from Android Device Policy.
269
+ # Corresponds to the JSON property `delegatedScopes`
270
+ # @return [Array<String>]
271
+ attr_accessor :delegated_scopes
272
+
273
+ # Whether the app is disabled. When disabled, the app data is still preserved.
274
+ # Corresponds to the JSON property `disabled`
275
+ # @return [Boolean]
276
+ attr_accessor :disabled
277
+ alias_method :disabled?, :disabled
278
+
279
+ # The type of installation to perform.
280
+ # Corresponds to the JSON property `installType`
281
+ # @return [String]
282
+ attr_accessor :install_type
283
+
284
+ # Whether the app is allowed to lock itself in full-screen mode. DEPRECATED. Use
285
+ # InstallType KIOSK or kioskCustomLauncherEnabled to to configure a dedicated
286
+ # device.
287
+ # Corresponds to the JSON property `lockTaskAllowed`
288
+ # @return [Boolean]
289
+ attr_accessor :lock_task_allowed
290
+ alias_method :lock_task_allowed?, :lock_task_allowed
291
+
292
+ # Managed configuration applied to the app. The format for the configuration is
293
+ # dictated by the ManagedProperty values supported by the app. Each field name
294
+ # in the managed configuration must match the key field of the ManagedProperty.
295
+ # The field value must be compatible with the type of the ManagedProperty: *type*
296
+ # *JSON value* BOOL true or false STRING string INTEGER number CHOICE string
297
+ # MULTISELECT array of strings HIDDEN string BUNDLE_ARRAY array of objects
298
+ # Corresponds to the JSON property `managedConfiguration`
299
+ # @return [Hash<String,Object>]
300
+ attr_accessor :managed_configuration
301
+
302
+ # The managed configurations template for the app, saved from the managed
303
+ # configurations iframe.
304
+ # Corresponds to the JSON property `managedConfigurationTemplate`
305
+ # @return [Google::Apis::AndroidmanagementV1::ManagedConfigurationTemplate]
306
+ attr_accessor :managed_configuration_template
307
+
308
+ # The minimum version of the app that runs on the device. If set, the device
309
+ # attempts to update the app to at least this version code. If the app is not up-
310
+ # to-date, the device will contain a NonComplianceDetail with
311
+ # non_compliance_reason set to APP_NOT_UPDATED. The app must already be
312
+ # published to Google Play with a version code greater than or equal to this
313
+ # value. At most 20 apps may specify a minimum version code per policy.
314
+ # Corresponds to the JSON property `minimumVersionCode`
315
+ # @return [Fixnum]
316
+ attr_accessor :minimum_version_code
317
+
318
+ # The package name of the app. For example, com.google.android.youtube for the
319
+ # YouTube app.
320
+ # Corresponds to the JSON property `packageName`
321
+ # @return [String]
322
+ attr_accessor :package_name
323
+
324
+ # Explicit permission grants or denials for the app. These values override the
325
+ # default_permission_policy and permission_grants which apply to all apps.
326
+ # Corresponds to the JSON property `permissionGrants`
327
+ # @return [Array<Google::Apis::AndroidmanagementV1::PermissionGrant>]
328
+ attr_accessor :permission_grants
329
+
330
+ def initialize(**args)
331
+ update!(**args)
332
+ end
333
+
334
+ # Update properties of this object
335
+ def update!(**args)
336
+ @accessible_track_ids = args[:accessible_track_ids] if args.key?(:accessible_track_ids)
337
+ @auto_update_mode = args[:auto_update_mode] if args.key?(:auto_update_mode)
338
+ @connected_work_and_personal_app = args[:connected_work_and_personal_app] if args.key?(:connected_work_and_personal_app)
339
+ @default_permission_policy = args[:default_permission_policy] if args.key?(:default_permission_policy)
340
+ @delegated_scopes = args[:delegated_scopes] if args.key?(:delegated_scopes)
341
+ @disabled = args[:disabled] if args.key?(:disabled)
342
+ @install_type = args[:install_type] if args.key?(:install_type)
343
+ @lock_task_allowed = args[:lock_task_allowed] if args.key?(:lock_task_allowed)
344
+ @managed_configuration = args[:managed_configuration] if args.key?(:managed_configuration)
345
+ @managed_configuration_template = args[:managed_configuration_template] if args.key?(:managed_configuration_template)
346
+ @minimum_version_code = args[:minimum_version_code] if args.key?(:minimum_version_code)
347
+ @package_name = args[:package_name] if args.key?(:package_name)
348
+ @permission_grants = args[:permission_grants] if args.key?(:permission_grants)
349
+ end
350
+ end
351
+
352
+ # Information reported about an installed app.
353
+ class ApplicationReport
354
+ include Google::Apis::Core::Hashable
355
+
356
+ # The source of the package.
357
+ # Corresponds to the JSON property `applicationSource`
358
+ # @return [String]
359
+ attr_accessor :application_source
360
+
361
+ # The display name of the app.
362
+ # Corresponds to the JSON property `displayName`
363
+ # @return [String]
364
+ attr_accessor :display_name
365
+
366
+ # List of app events. The most recent 20 events are stored in the list.
367
+ # Corresponds to the JSON property `events`
368
+ # @return [Array<Google::Apis::AndroidmanagementV1::ApplicationEvent>]
369
+ attr_accessor :events
370
+
371
+ # The package name of the app that installed this app.
372
+ # Corresponds to the JSON property `installerPackageName`
373
+ # @return [String]
374
+ attr_accessor :installer_package_name
375
+
376
+ # List of keyed app states reported by the app.
377
+ # Corresponds to the JSON property `keyedAppStates`
378
+ # @return [Array<Google::Apis::AndroidmanagementV1::KeyedAppState>]
379
+ attr_accessor :keyed_app_states
380
+
381
+ # Package name of the app.
382
+ # Corresponds to the JSON property `packageName`
383
+ # @return [String]
384
+ attr_accessor :package_name
385
+
386
+ # The SHA-256 hash of the app's APK file, which can be used to verify the app
387
+ # hasn't been modified. Each byte of the hash value is represented as a two-
388
+ # digit hexadecimal number.
389
+ # Corresponds to the JSON property `packageSha256Hash`
390
+ # @return [String]
391
+ attr_accessor :package_sha256_hash
392
+
393
+ # The SHA-1 hash of each android.content.pm.Signature (https://developer.android.
394
+ # com/reference/android/content/pm/Signature.html) associated with the app
395
+ # package. Each byte of each hash value is represented as a two-digit
396
+ # hexadecimal number.
397
+ # Corresponds to the JSON property `signingKeyCertFingerprints`
398
+ # @return [Array<String>]
399
+ attr_accessor :signing_key_cert_fingerprints
400
+
401
+ # Application state.
402
+ # Corresponds to the JSON property `state`
403
+ # @return [String]
404
+ attr_accessor :state
405
+
406
+ # The app version code, which can be used to determine whether one version is
407
+ # more recent than another.
408
+ # Corresponds to the JSON property `versionCode`
409
+ # @return [Fixnum]
410
+ attr_accessor :version_code
411
+
412
+ # The app version as displayed to the user.
413
+ # Corresponds to the JSON property `versionName`
414
+ # @return [String]
415
+ attr_accessor :version_name
416
+
417
+ def initialize(**args)
418
+ update!(**args)
419
+ end
420
+
421
+ # Update properties of this object
422
+ def update!(**args)
423
+ @application_source = args[:application_source] if args.key?(:application_source)
424
+ @display_name = args[:display_name] if args.key?(:display_name)
425
+ @events = args[:events] if args.key?(:events)
426
+ @installer_package_name = args[:installer_package_name] if args.key?(:installer_package_name)
427
+ @keyed_app_states = args[:keyed_app_states] if args.key?(:keyed_app_states)
428
+ @package_name = args[:package_name] if args.key?(:package_name)
429
+ @package_sha256_hash = args[:package_sha256_hash] if args.key?(:package_sha256_hash)
430
+ @signing_key_cert_fingerprints = args[:signing_key_cert_fingerprints] if args.key?(:signing_key_cert_fingerprints)
431
+ @state = args[:state] if args.key?(:state)
432
+ @version_code = args[:version_code] if args.key?(:version_code)
433
+ @version_name = args[:version_name] if args.key?(:version_name)
434
+ end
435
+ end
436
+
437
+ # Settings controlling the behavior of application reports.
438
+ class ApplicationReportingSettings
439
+ include Google::Apis::Core::Hashable
440
+
441
+ # Whether removed apps are included in application reports.
442
+ # Corresponds to the JSON property `includeRemovedApps`
443
+ # @return [Boolean]
444
+ attr_accessor :include_removed_apps
445
+ alias_method :include_removed_apps?, :include_removed_apps
446
+
447
+ def initialize(**args)
448
+ update!(**args)
449
+ end
450
+
451
+ # Update properties of this object
452
+ def update!(**args)
453
+ @include_removed_apps = args[:include_removed_apps] if args.key?(:include_removed_apps)
454
+ end
455
+ end
456
+
457
+ # An action to block access to apps and data on a fully managed device or in a
458
+ # work profile. This action also triggers a device or work profile to displays a
459
+ # user-facing notification with information (where possible) on how to correct
460
+ # the compliance issue. Note: wipeAction must also be specified.
461
+ class BlockAction
462
+ include Google::Apis::Core::Hashable
463
+
464
+ # Number of days the policy is non-compliant before the device or work profile
465
+ # is blocked. To block access immediately, set to 0. blockAfterDays must be less
466
+ # than wipeAfterDays.
467
+ # Corresponds to the JSON property `blockAfterDays`
468
+ # @return [Fixnum]
469
+ attr_accessor :block_after_days
470
+
471
+ # Specifies the scope of this BlockAction. Only applicable to devices that are
472
+ # company-owned.
473
+ # Corresponds to the JSON property `blockScope`
474
+ # @return [String]
475
+ attr_accessor :block_scope
476
+
477
+ def initialize(**args)
478
+ update!(**args)
479
+ end
480
+
481
+ # Update properties of this object
482
+ def update!(**args)
483
+ @block_after_days = args[:block_after_days] if args.key?(:block_after_days)
484
+ @block_scope = args[:block_scope] if args.key?(:block_scope)
485
+ end
486
+ end
487
+
488
+ # A rule for automatically choosing a private key and certificate to
489
+ # authenticate the device to a server.
490
+ class ChoosePrivateKeyRule
491
+ include Google::Apis::Core::Hashable
492
+
493
+ # The package names for which outgoing requests are subject to this rule. If no
494
+ # package names are specified, then the rule applies to all packages. For each
495
+ # package name listed, the rule applies to that package and all other packages
496
+ # that shared the same Android UID. The SHA256 hash of the signing key
497
+ # signatures of each package_name will be verified against those provided by
498
+ # Play
499
+ # Corresponds to the JSON property `packageNames`
500
+ # @return [Array<String>]
501
+ attr_accessor :package_names
502
+
503
+ # The alias of the private key to be used.
504
+ # Corresponds to the JSON property `privateKeyAlias`
505
+ # @return [String]
506
+ attr_accessor :private_key_alias
507
+
508
+ # The URL pattern to match against the URL of the outgoing request. The pattern
509
+ # may contain asterisk (*) wildcards. Any URL is matched if unspecified.
510
+ # Corresponds to the JSON property `urlPattern`
511
+ # @return [String]
512
+ attr_accessor :url_pattern
513
+
514
+ def initialize(**args)
515
+ update!(**args)
516
+ end
517
+
518
+ # Update properties of this object
519
+ def update!(**args)
520
+ @package_names = args[:package_names] if args.key?(:package_names)
521
+ @private_key_alias = args[:private_key_alias] if args.key?(:private_key_alias)
522
+ @url_pattern = args[:url_pattern] if args.key?(:url_pattern)
523
+ end
524
+ end
525
+
526
+ # A command.
527
+ class Command
528
+ include Google::Apis::Core::Hashable
529
+
530
+ # The timestamp at which the command was created. The timestamp is automatically
531
+ # generated by the server.
532
+ # Corresponds to the JSON property `createTime`
533
+ # @return [String]
534
+ attr_accessor :create_time
535
+
536
+ # The duration for which the command is valid. The command will expire if not
537
+ # executed by the device during this time. The default duration if unspecified
538
+ # is ten minutes. There is no maximum duration.
539
+ # Corresponds to the JSON property `duration`
540
+ # @return [String]
541
+ attr_accessor :duration
542
+
543
+ # If the command failed, an error code explaining the failure. This is not set
544
+ # when the command is cancelled by the caller.
545
+ # Corresponds to the JSON property `errorCode`
546
+ # @return [String]
547
+ attr_accessor :error_code
548
+
549
+ # For commands of type RESET_PASSWORD, optionally specifies the new password.
550
+ # Corresponds to the JSON property `newPassword`
551
+ # @return [String]
552
+ attr_accessor :new_password
553
+
554
+ # For commands of type RESET_PASSWORD, optionally specifies flags.
555
+ # Corresponds to the JSON property `resetPasswordFlags`
556
+ # @return [Array<String>]
557
+ attr_accessor :reset_password_flags
558
+
559
+ # The type of the command.
560
+ # Corresponds to the JSON property `type`
561
+ # @return [String]
562
+ attr_accessor :type
563
+
564
+ # The resource name of the user that owns the device in the form enterprises/`
565
+ # enterpriseId`/users/`userId`. This is automatically generated by the server
566
+ # based on the device the command is sent to.
567
+ # Corresponds to the JSON property `userName`
568
+ # @return [String]
569
+ attr_accessor :user_name
570
+
571
+ def initialize(**args)
572
+ update!(**args)
573
+ end
574
+
575
+ # Update properties of this object
576
+ def update!(**args)
577
+ @create_time = args[:create_time] if args.key?(:create_time)
578
+ @duration = args[:duration] if args.key?(:duration)
579
+ @error_code = args[:error_code] if args.key?(:error_code)
580
+ @new_password = args[:new_password] if args.key?(:new_password)
581
+ @reset_password_flags = args[:reset_password_flags] if args.key?(:reset_password_flags)
582
+ @type = args[:type] if args.key?(:type)
583
+ @user_name = args[:user_name] if args.key?(:user_name)
584
+ end
585
+ end
586
+
587
+ # Information about Common Criteria Mode—security standards defined in the
588
+ # Common Criteria for Information Technology Security Evaluation (https://www.
589
+ # commoncriteriaportal.org/) (CC).This information is only available if
590
+ # statusReportingSettings.commonCriteriaModeEnabled is true in the device's
591
+ # policy.
592
+ class CommonCriteriaModeInfo
593
+ include Google::Apis::Core::Hashable
594
+
595
+ # Whether Common Criteria Mode is enabled.
596
+ # Corresponds to the JSON property `commonCriteriaModeStatus`
597
+ # @return [String]
598
+ attr_accessor :common_criteria_mode_status
599
+
600
+ def initialize(**args)
601
+ update!(**args)
602
+ end
603
+
604
+ # Update properties of this object
605
+ def update!(**args)
606
+ @common_criteria_mode_status = args[:common_criteria_mode_status] if args.key?(:common_criteria_mode_status)
607
+ end
608
+ end
609
+
610
+ # A rule declaring which mitigating actions to take when a device is not
611
+ # compliant with its policy. For every rule, there is always an implicit
612
+ # mitigating action to set policy_compliant to false for the Device resource,
613
+ # and display a message on the device indicating that the device is not
614
+ # compliant with its policy. Other mitigating actions may optionally be taken as
615
+ # well, depending on the field values in the rule.
616
+ class ComplianceRule
617
+ include Google::Apis::Core::Hashable
618
+
619
+ # A compliance rule condition which is satisfied if the Android Framework API
620
+ # level on the device doesn't meet a minimum requirement. There can only be one
621
+ # rule with this type of condition per policy.
622
+ # Corresponds to the JSON property `apiLevelCondition`
623
+ # @return [Google::Apis::AndroidmanagementV1::ApiLevelCondition]
624
+ attr_accessor :api_level_condition
625
+
626
+ # If set to true, the rule includes a mitigating action to disable apps so that
627
+ # the device is effectively disabled, but app data is preserved. If the device
628
+ # is running an app in locked task mode, the app will be closed and a UI showing
629
+ # the reason for non-compliance will be displayed.
630
+ # Corresponds to the JSON property `disableApps`
631
+ # @return [Boolean]
632
+ attr_accessor :disable_apps
633
+ alias_method :disable_apps?, :disable_apps
634
+
635
+ # A compliance rule condition which is satisfied if there exists any matching
636
+ # NonComplianceDetail for the device. A NonComplianceDetail matches a
637
+ # NonComplianceDetailCondition if all the fields which are set within the
638
+ # NonComplianceDetailCondition match the corresponding NonComplianceDetail
639
+ # fields.
640
+ # Corresponds to the JSON property `nonComplianceDetailCondition`
641
+ # @return [Google::Apis::AndroidmanagementV1::NonComplianceDetailCondition]
642
+ attr_accessor :non_compliance_detail_condition
643
+
644
+ # If set, the rule includes a mitigating action to disable apps specified in the
645
+ # list, but app data is preserved.
646
+ # Corresponds to the JSON property `packageNamesToDisable`
647
+ # @return [Array<String>]
648
+ attr_accessor :package_names_to_disable
649
+
650
+ def initialize(**args)
651
+ update!(**args)
652
+ end
653
+
654
+ # Update properties of this object
655
+ def update!(**args)
656
+ @api_level_condition = args[:api_level_condition] if args.key?(:api_level_condition)
657
+ @disable_apps = args[:disable_apps] if args.key?(:disable_apps)
658
+ @non_compliance_detail_condition = args[:non_compliance_detail_condition] if args.key?(:non_compliance_detail_condition)
659
+ @package_names_to_disable = args[:package_names_to_disable] if args.key?(:package_names_to_disable)
660
+ end
661
+ end
662
+
663
+ # Represents a whole or partial calendar date, such as a birthday. The time of
664
+ # day and time zone are either specified elsewhere or are insignificant. The
665
+ # date is relative to the Gregorian Calendar. This can represent one of the
666
+ # following: A full date, with non-zero year, month, and day values A month and
667
+ # day value, with a zero year, such as an anniversary A year on its own, with
668
+ # zero month and day values A year and month value, with a zero day, such as a
669
+ # credit card expiration dateRelated types are google.type.TimeOfDay and google.
670
+ # protobuf.Timestamp.
671
+ class Date
672
+ include Google::Apis::Core::Hashable
673
+
674
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
675
+ # specify a year by itself or a year and month where the day isn't significant.
676
+ # Corresponds to the JSON property `day`
677
+ # @return [Fixnum]
678
+ attr_accessor :day
679
+
680
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
681
+ # and day.
682
+ # Corresponds to the JSON property `month`
683
+ # @return [Fixnum]
684
+ attr_accessor :month
685
+
686
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
687
+ # year.
688
+ # Corresponds to the JSON property `year`
689
+ # @return [Fixnum]
690
+ attr_accessor :year
691
+
692
+ def initialize(**args)
693
+ update!(**args)
694
+ end
695
+
696
+ # Update properties of this object
697
+ def update!(**args)
698
+ @day = args[:day] if args.key?(:day)
699
+ @month = args[:month] if args.key?(:month)
700
+ @year = args[:year] if args.key?(:year)
701
+ end
702
+ end
703
+
704
+ # A device owned by an enterprise. Unless otherwise noted, all fields are read-
705
+ # only and can't be modified by enterprises.devices.patch.
706
+ class Device
707
+ include Google::Apis::Core::Hashable
708
+
709
+ # The API level of the Android platform version running on the device.
710
+ # Corresponds to the JSON property `apiLevel`
711
+ # @return [Fixnum]
712
+ attr_accessor :api_level
713
+
714
+ # Reports for apps installed on the device. This information is only available
715
+ # when application_reports_enabled is true in the device's policy.
716
+ # Corresponds to the JSON property `applicationReports`
717
+ # @return [Array<Google::Apis::AndroidmanagementV1::ApplicationReport>]
718
+ attr_accessor :application_reports
719
+
720
+ # The name of the policy currently applied to the device.
721
+ # Corresponds to the JSON property `appliedPolicyName`
722
+ # @return [String]
723
+ attr_accessor :applied_policy_name
724
+
725
+ # The version of the policy currently applied to the device.
726
+ # Corresponds to the JSON property `appliedPolicyVersion`
727
+ # @return [Fixnum]
728
+ attr_accessor :applied_policy_version
729
+
730
+ # The state currently applied to the device.
731
+ # Corresponds to the JSON property `appliedState`
732
+ # @return [String]
733
+ attr_accessor :applied_state
734
+
735
+ # Information about Common Criteria Mode—security standards defined in the
736
+ # Common Criteria for Information Technology Security Evaluation (https://www.
737
+ # commoncriteriaportal.org/) (CC).This information is only available if
738
+ # statusReportingSettings.commonCriteriaModeEnabled is true in the device's
739
+ # policy.
740
+ # Corresponds to the JSON property `commonCriteriaModeInfo`
741
+ # @return [Google::Apis::AndroidmanagementV1::CommonCriteriaModeInfo]
742
+ attr_accessor :common_criteria_mode_info
743
+
744
+ # Information about security related device settings on device.
745
+ # Corresponds to the JSON property `deviceSettings`
746
+ # @return [Google::Apis::AndroidmanagementV1::DeviceSettings]
747
+ attr_accessor :device_settings
748
+
749
+ # Provides a user-facing message with locale info. The maximum message length is
750
+ # 4096 characters.
751
+ # Corresponds to the JSON property `disabledReason`
752
+ # @return [Google::Apis::AndroidmanagementV1::UserFacingMessage]
753
+ attr_accessor :disabled_reason
754
+
755
+ # Detailed information about displays on the device. This information is only
756
+ # available if displayInfoEnabled is true in the device's policy.
757
+ # Corresponds to the JSON property `displays`
758
+ # @return [Array<Google::Apis::AndroidmanagementV1::DisplayProp>]
759
+ attr_accessor :displays
760
+
761
+ # The time of device enrollment.
762
+ # Corresponds to the JSON property `enrollmentTime`
763
+ # @return [String]
764
+ attr_accessor :enrollment_time
765
+
766
+ # If the device was enrolled with an enrollment token with additional data
767
+ # provided, this field contains that data.
768
+ # Corresponds to the JSON property `enrollmentTokenData`
769
+ # @return [String]
770
+ attr_accessor :enrollment_token_data
771
+
772
+ # If the device was enrolled with an enrollment token, this field contains the
773
+ # name of the token.
774
+ # Corresponds to the JSON property `enrollmentTokenName`
775
+ # @return [String]
776
+ attr_accessor :enrollment_token_name
777
+
778
+ # Information about device hardware. The fields related to temperature
779
+ # thresholds are only available if hardwareStatusEnabled is true in the device's
780
+ # policy.
781
+ # Corresponds to the JSON property `hardwareInfo`
782
+ # @return [Google::Apis::AndroidmanagementV1::HardwareInfo]
783
+ attr_accessor :hardware_info
784
+
785
+ # Hardware status samples in chronological order. This information is only
786
+ # available if hardwareStatusEnabled is true in the device's policy.
787
+ # Corresponds to the JSON property `hardwareStatusSamples`
788
+ # @return [Array<Google::Apis::AndroidmanagementV1::HardwareStatus>]
789
+ attr_accessor :hardware_status_samples
790
+
791
+ # Deprecated.
792
+ # Corresponds to the JSON property `lastPolicyComplianceReportTime`
793
+ # @return [String]
794
+ attr_accessor :last_policy_compliance_report_time
795
+
796
+ # The last time the device fetched its policy.
797
+ # Corresponds to the JSON property `lastPolicySyncTime`
798
+ # @return [String]
799
+ attr_accessor :last_policy_sync_time
800
+
801
+ # The last time the device sent a status report.
802
+ # Corresponds to the JSON property `lastStatusReportTime`
803
+ # @return [String]
804
+ attr_accessor :last_status_report_time
805
+
806
+ # The type of management mode Android Device Policy takes on the device. This
807
+ # influences which policy settings are supported.
808
+ # Corresponds to the JSON property `managementMode`
809
+ # @return [String]
810
+ attr_accessor :management_mode
811
+
812
+ # Events related to memory and storage measurements in chronological order. This
813
+ # information is only available if memoryInfoEnabled is true in the device's
814
+ # policy.
815
+ # Corresponds to the JSON property `memoryEvents`
816
+ # @return [Array<Google::Apis::AndroidmanagementV1::MemoryEvent>]
817
+ attr_accessor :memory_events
818
+
819
+ # Information about device memory and storage.
820
+ # Corresponds to the JSON property `memoryInfo`
821
+ # @return [Google::Apis::AndroidmanagementV1::MemoryInfo]
822
+ attr_accessor :memory_info
823
+
824
+ # The name of the device in the form enterprises/`enterpriseId`/devices/`
825
+ # deviceId`.
826
+ # Corresponds to the JSON property `name`
827
+ # @return [String]
828
+ attr_accessor :name
829
+
830
+ # Device network info.
831
+ # Corresponds to the JSON property `networkInfo`
832
+ # @return [Google::Apis::AndroidmanagementV1::NetworkInfo]
833
+ attr_accessor :network_info
834
+
835
+ # Details about policy settings that the device is not compliant with.
836
+ # Corresponds to the JSON property `nonComplianceDetails`
837
+ # @return [Array<Google::Apis::AndroidmanagementV1::NonComplianceDetail>]
838
+ attr_accessor :non_compliance_details
839
+
840
+ # Ownership of the managed device.
841
+ # Corresponds to the JSON property `ownership`
842
+ # @return [String]
843
+ attr_accessor :ownership
844
+
845
+ # Whether the device is compliant with its policy.
846
+ # Corresponds to the JSON property `policyCompliant`
847
+ # @return [Boolean]
848
+ attr_accessor :policy_compliant
849
+ alias_method :policy_compliant?, :policy_compliant
850
+
851
+ # The name of the policy applied to the device, in the form enterprises/`
852
+ # enterpriseId`/policies/`policyId`. If not specified, the policy_name for the
853
+ # device's user is applied. This field can be modified by a patch request. You
854
+ # can specify only the policyId when calling enterprises.devices.patch, as long
855
+ # as the policyId doesn’t contain any slashes. The rest of the policy name is
856
+ # inferred.
857
+ # Corresponds to the JSON property `policyName`
858
+ # @return [String]
859
+ attr_accessor :policy_name
860
+
861
+ # Power management events on the device in chronological order. This information
862
+ # is only available if powerManagementEventsEnabled is true in the device's
863
+ # policy.
864
+ # Corresponds to the JSON property `powerManagementEvents`
865
+ # @return [Array<Google::Apis::AndroidmanagementV1::PowerManagementEvent>]
866
+ attr_accessor :power_management_events
867
+
868
+ # If the same physical device has been enrolled multiple times, this field
869
+ # contains its previous device names. The serial number is used as the unique
870
+ # identifier to determine if the same physical device has enrolled previously.
871
+ # The names are in chronological order.
872
+ # Corresponds to the JSON property `previousDeviceNames`
873
+ # @return [Array<String>]
874
+ attr_accessor :previous_device_names
875
+
876
+ # The security posture of the device, as determined by the current device state
877
+ # and the policies applied.
878
+ # Corresponds to the JSON property `securityPosture`
879
+ # @return [Google::Apis::AndroidmanagementV1::SecurityPosture]
880
+ attr_accessor :security_posture
881
+
882
+ # Information about device software.
883
+ # Corresponds to the JSON property `softwareInfo`
884
+ # @return [Google::Apis::AndroidmanagementV1::SoftwareInfo]
885
+ attr_accessor :software_info
886
+
887
+ # The state to be applied to the device. This field can be modified by a patch
888
+ # request. Note that when calling enterprises.devices.patch, ACTIVE and DISABLED
889
+ # are the only allowable values. To enter the device into a DELETED state, call
890
+ # enterprises.devices.delete.
891
+ # Corresponds to the JSON property `state`
892
+ # @return [String]
893
+ attr_accessor :state
894
+
895
+ # Map of selected system properties name and value related to the device. This
896
+ # information is only available if systemPropertiesEnabled is true in the device'
897
+ # s policy.
898
+ # Corresponds to the JSON property `systemProperties`
899
+ # @return [Hash<String,String>]
900
+ attr_accessor :system_properties
901
+
902
+ # A user belonging to an enterprise.
903
+ # Corresponds to the JSON property `user`
904
+ # @return [Google::Apis::AndroidmanagementV1::User]
905
+ attr_accessor :user
906
+
907
+ # The resource name of the user that owns this device in the form enterprises/`
908
+ # enterpriseId`/users/`userId`.
909
+ # Corresponds to the JSON property `userName`
910
+ # @return [String]
911
+ attr_accessor :user_name
912
+
913
+ def initialize(**args)
914
+ update!(**args)
915
+ end
916
+
917
+ # Update properties of this object
918
+ def update!(**args)
919
+ @api_level = args[:api_level] if args.key?(:api_level)
920
+ @application_reports = args[:application_reports] if args.key?(:application_reports)
921
+ @applied_policy_name = args[:applied_policy_name] if args.key?(:applied_policy_name)
922
+ @applied_policy_version = args[:applied_policy_version] if args.key?(:applied_policy_version)
923
+ @applied_state = args[:applied_state] if args.key?(:applied_state)
924
+ @common_criteria_mode_info = args[:common_criteria_mode_info] if args.key?(:common_criteria_mode_info)
925
+ @device_settings = args[:device_settings] if args.key?(:device_settings)
926
+ @disabled_reason = args[:disabled_reason] if args.key?(:disabled_reason)
927
+ @displays = args[:displays] if args.key?(:displays)
928
+ @enrollment_time = args[:enrollment_time] if args.key?(:enrollment_time)
929
+ @enrollment_token_data = args[:enrollment_token_data] if args.key?(:enrollment_token_data)
930
+ @enrollment_token_name = args[:enrollment_token_name] if args.key?(:enrollment_token_name)
931
+ @hardware_info = args[:hardware_info] if args.key?(:hardware_info)
932
+ @hardware_status_samples = args[:hardware_status_samples] if args.key?(:hardware_status_samples)
933
+ @last_policy_compliance_report_time = args[:last_policy_compliance_report_time] if args.key?(:last_policy_compliance_report_time)
934
+ @last_policy_sync_time = args[:last_policy_sync_time] if args.key?(:last_policy_sync_time)
935
+ @last_status_report_time = args[:last_status_report_time] if args.key?(:last_status_report_time)
936
+ @management_mode = args[:management_mode] if args.key?(:management_mode)
937
+ @memory_events = args[:memory_events] if args.key?(:memory_events)
938
+ @memory_info = args[:memory_info] if args.key?(:memory_info)
939
+ @name = args[:name] if args.key?(:name)
940
+ @network_info = args[:network_info] if args.key?(:network_info)
941
+ @non_compliance_details = args[:non_compliance_details] if args.key?(:non_compliance_details)
942
+ @ownership = args[:ownership] if args.key?(:ownership)
943
+ @policy_compliant = args[:policy_compliant] if args.key?(:policy_compliant)
944
+ @policy_name = args[:policy_name] if args.key?(:policy_name)
945
+ @power_management_events = args[:power_management_events] if args.key?(:power_management_events)
946
+ @previous_device_names = args[:previous_device_names] if args.key?(:previous_device_names)
947
+ @security_posture = args[:security_posture] if args.key?(:security_posture)
948
+ @software_info = args[:software_info] if args.key?(:software_info)
949
+ @state = args[:state] if args.key?(:state)
950
+ @system_properties = args[:system_properties] if args.key?(:system_properties)
951
+ @user = args[:user] if args.key?(:user)
952
+ @user_name = args[:user_name] if args.key?(:user_name)
953
+ end
954
+ end
955
+
956
+ # Information about security related device settings on device.
957
+ class DeviceSettings
958
+ include Google::Apis::Core::Hashable
959
+
960
+ # Whether ADB (https://developer.android.com/studio/command-line/adb.html) is
961
+ # enabled on the device.
962
+ # Corresponds to the JSON property `adbEnabled`
963
+ # @return [Boolean]
964
+ attr_accessor :adb_enabled
965
+ alias_method :adb_enabled?, :adb_enabled
966
+
967
+ # Whether developer mode is enabled on the device.
968
+ # Corresponds to the JSON property `developmentSettingsEnabled`
969
+ # @return [Boolean]
970
+ attr_accessor :development_settings_enabled
971
+ alias_method :development_settings_enabled?, :development_settings_enabled
972
+
973
+ # Encryption status from DevicePolicyManager.
974
+ # Corresponds to the JSON property `encryptionStatus`
975
+ # @return [String]
976
+ attr_accessor :encryption_status
977
+
978
+ # Whether the device is secured with PIN/password.
979
+ # Corresponds to the JSON property `isDeviceSecure`
980
+ # @return [Boolean]
981
+ attr_accessor :is_device_secure
982
+ alias_method :is_device_secure?, :is_device_secure
983
+
984
+ # Whether the storage encryption is enabled.
985
+ # Corresponds to the JSON property `isEncrypted`
986
+ # @return [Boolean]
987
+ attr_accessor :is_encrypted
988
+ alias_method :is_encrypted?, :is_encrypted
989
+
990
+ # Whether installing apps from unknown sources is enabled.
991
+ # Corresponds to the JSON property `unknownSourcesEnabled`
992
+ # @return [Boolean]
993
+ attr_accessor :unknown_sources_enabled
994
+ alias_method :unknown_sources_enabled?, :unknown_sources_enabled
995
+
996
+ # Whether Verify Apps (Google Play Protect (https://support.google.com/
997
+ # googleplay/answer/2812853)) is enabled on the device.
998
+ # Corresponds to the JSON property `verifyAppsEnabled`
999
+ # @return [Boolean]
1000
+ attr_accessor :verify_apps_enabled
1001
+ alias_method :verify_apps_enabled?, :verify_apps_enabled
1002
+
1003
+ def initialize(**args)
1004
+ update!(**args)
1005
+ end
1006
+
1007
+ # Update properties of this object
1008
+ def update!(**args)
1009
+ @adb_enabled = args[:adb_enabled] if args.key?(:adb_enabled)
1010
+ @development_settings_enabled = args[:development_settings_enabled] if args.key?(:development_settings_enabled)
1011
+ @encryption_status = args[:encryption_status] if args.key?(:encryption_status)
1012
+ @is_device_secure = args[:is_device_secure] if args.key?(:is_device_secure)
1013
+ @is_encrypted = args[:is_encrypted] if args.key?(:is_encrypted)
1014
+ @unknown_sources_enabled = args[:unknown_sources_enabled] if args.key?(:unknown_sources_enabled)
1015
+ @verify_apps_enabled = args[:verify_apps_enabled] if args.key?(:verify_apps_enabled)
1016
+ end
1017
+ end
1018
+
1019
+ # Device display information.
1020
+ class DisplayProp
1021
+ include Google::Apis::Core::Hashable
1022
+
1023
+ # Display density expressed as dots-per-inch.
1024
+ # Corresponds to the JSON property `density`
1025
+ # @return [Fixnum]
1026
+ attr_accessor :density
1027
+
1028
+ # Unique display id.
1029
+ # Corresponds to the JSON property `displayId`
1030
+ # @return [Fixnum]
1031
+ attr_accessor :display_id
1032
+
1033
+ # Display height in pixels.
1034
+ # Corresponds to the JSON property `height`
1035
+ # @return [Fixnum]
1036
+ attr_accessor :height
1037
+
1038
+ # Name of the display.
1039
+ # Corresponds to the JSON property `name`
1040
+ # @return [String]
1041
+ attr_accessor :name
1042
+
1043
+ # Refresh rate of the display in frames per second.
1044
+ # Corresponds to the JSON property `refreshRate`
1045
+ # @return [Fixnum]
1046
+ attr_accessor :refresh_rate
1047
+
1048
+ # State of the display.
1049
+ # Corresponds to the JSON property `state`
1050
+ # @return [String]
1051
+ attr_accessor :state
1052
+
1053
+ # Display width in pixels.
1054
+ # Corresponds to the JSON property `width`
1055
+ # @return [Fixnum]
1056
+ attr_accessor :width
1057
+
1058
+ def initialize(**args)
1059
+ update!(**args)
1060
+ end
1061
+
1062
+ # Update properties of this object
1063
+ def update!(**args)
1064
+ @density = args[:density] if args.key?(:density)
1065
+ @display_id = args[:display_id] if args.key?(:display_id)
1066
+ @height = args[:height] if args.key?(:height)
1067
+ @name = args[:name] if args.key?(:name)
1068
+ @refresh_rate = args[:refresh_rate] if args.key?(:refresh_rate)
1069
+ @state = args[:state] if args.key?(:state)
1070
+ @width = args[:width] if args.key?(:width)
1071
+ end
1072
+ end
1073
+
1074
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1075
+ # messages in your APIs. A typical example is to use it as the request or the
1076
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1077
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
1078
+ # Empty is empty JSON object ``.
1079
+ class Empty
1080
+ include Google::Apis::Core::Hashable
1081
+
1082
+ def initialize(**args)
1083
+ update!(**args)
1084
+ end
1085
+
1086
+ # Update properties of this object
1087
+ def update!(**args)
1088
+ end
1089
+ end
1090
+
1091
+ # An enrollment token.
1092
+ class EnrollmentToken
1093
+ include Google::Apis::Core::Hashable
1094
+
1095
+ # Optional, arbitrary data associated with the enrollment token. This could
1096
+ # contain, for example, the ID of an org unit the device is assigned to after
1097
+ # enrollment. After a device enrolls with the token, this data will be exposed
1098
+ # in the enrollment_token_data field of the Device resource. The data must be
1099
+ # 1024 characters or less; otherwise, the creation request will fail.
1100
+ # Corresponds to the JSON property `additionalData`
1101
+ # @return [String]
1102
+ attr_accessor :additional_data
1103
+
1104
+ # Controls whether personal usage is allowed on a device provisioned with this
1105
+ # enrollment token.For company-owned devices: Enabling personal usage allows the
1106
+ # user to set up a work profile on the device. Disabling personal usage requires
1107
+ # the user provision the device as a fully managed device.For personally-owned
1108
+ # devices: Enabling personal usage allows the user to set up a work profile on
1109
+ # the device. Disabling personal usage will prevent the device from provisioning.
1110
+ # Personal usage cannot be disabled on personally-owned device.
1111
+ # Corresponds to the JSON property `allowPersonalUsage`
1112
+ # @return [String]
1113
+ attr_accessor :allow_personal_usage
1114
+
1115
+ # The length of time the enrollment token is valid, ranging from 1 minute to 30
1116
+ # days. If not specified, the default duration is 1 hour.
1117
+ # Corresponds to the JSON property `duration`
1118
+ # @return [String]
1119
+ attr_accessor :duration
1120
+
1121
+ # The expiration time of the token. This is a read-only field generated by the
1122
+ # server.
1123
+ # Corresponds to the JSON property `expirationTimestamp`
1124
+ # @return [String]
1125
+ attr_accessor :expiration_timestamp
1126
+
1127
+ # The name of the enrollment token, which is generated by the server during
1128
+ # creation, in the form enterprises/`enterpriseId`/enrollmentTokens/`
1129
+ # enrollmentTokenId`.
1130
+ # Corresponds to the JSON property `name`
1131
+ # @return [String]
1132
+ attr_accessor :name
1133
+
1134
+ # Whether the enrollment token is for one time use only. If the flag is set to
1135
+ # true, only one device can use it for registration.
1136
+ # Corresponds to the JSON property `oneTimeOnly`
1137
+ # @return [Boolean]
1138
+ attr_accessor :one_time_only
1139
+ alias_method :one_time_only?, :one_time_only
1140
+
1141
+ # The name of the policy initially applied to the enrolled device, in the form
1142
+ # enterprises/`enterpriseId`/policies/`policyId`. If not specified, the
1143
+ # policy_name for the device’s user is applied. If user_name is also not
1144
+ # specified, enterprises/`enterpriseId`/policies/default is applied by default.
1145
+ # When updating this field, you can specify only the policyId as long as the
1146
+ # policyId doesn’t contain any slashes. The rest of the policy name will be
1147
+ # inferred.
1148
+ # Corresponds to the JSON property `policyName`
1149
+ # @return [String]
1150
+ attr_accessor :policy_name
1151
+
1152
+ # A JSON string whose UTF-8 representation can be used to generate a QR code to
1153
+ # enroll a device with this enrollment token. To enroll a device using NFC, the
1154
+ # NFC record must contain a serialized java.util.Properties representation of
1155
+ # the properties in the JSON.
1156
+ # Corresponds to the JSON property `qrCode`
1157
+ # @return [String]
1158
+ attr_accessor :qr_code
1159
+
1160
+ # A user belonging to an enterprise.
1161
+ # Corresponds to the JSON property `user`
1162
+ # @return [Google::Apis::AndroidmanagementV1::User]
1163
+ attr_accessor :user
1164
+
1165
+ # The token value that's passed to the device and authorizes the device to
1166
+ # enroll. This is a read-only field generated by the server.
1167
+ # Corresponds to the JSON property `value`
1168
+ # @return [String]
1169
+ attr_accessor :value
1170
+
1171
+ def initialize(**args)
1172
+ update!(**args)
1173
+ end
1174
+
1175
+ # Update properties of this object
1176
+ def update!(**args)
1177
+ @additional_data = args[:additional_data] if args.key?(:additional_data)
1178
+ @allow_personal_usage = args[:allow_personal_usage] if args.key?(:allow_personal_usage)
1179
+ @duration = args[:duration] if args.key?(:duration)
1180
+ @expiration_timestamp = args[:expiration_timestamp] if args.key?(:expiration_timestamp)
1181
+ @name = args[:name] if args.key?(:name)
1182
+ @one_time_only = args[:one_time_only] if args.key?(:one_time_only)
1183
+ @policy_name = args[:policy_name] if args.key?(:policy_name)
1184
+ @qr_code = args[:qr_code] if args.key?(:qr_code)
1185
+ @user = args[:user] if args.key?(:user)
1186
+ @value = args[:value] if args.key?(:value)
1187
+ end
1188
+ end
1189
+
1190
+ # The configuration applied to an enterprise.
1191
+ class Enterprise
1192
+ include Google::Apis::Core::Hashable
1193
+
1194
+ # Deprecated and unused.
1195
+ # Corresponds to the JSON property `appAutoApprovalEnabled`
1196
+ # @return [Boolean]
1197
+ attr_accessor :app_auto_approval_enabled
1198
+ alias_method :app_auto_approval_enabled?, :app_auto_approval_enabled
1199
+
1200
+ # The types of Google Pub/Sub notifications enabled for the enterprise.
1201
+ # Corresponds to the JSON property `enabledNotificationTypes`
1202
+ # @return [Array<String>]
1203
+ attr_accessor :enabled_notification_types
1204
+
1205
+ # The name of the enterprise displayed to users.
1206
+ # Corresponds to the JSON property `enterpriseDisplayName`
1207
+ # @return [String]
1208
+ attr_accessor :enterprise_display_name
1209
+
1210
+ # Data hosted at an external location. The data is to be downloaded by Android
1211
+ # Device Policy and verified against the hash.
1212
+ # Corresponds to the JSON property `logo`
1213
+ # @return [Google::Apis::AndroidmanagementV1::ExternalData]
1214
+ attr_accessor :logo
1215
+
1216
+ # The name of the enterprise which is generated by the server during creation,
1217
+ # in the form enterprises/`enterpriseId`.
1218
+ # Corresponds to the JSON property `name`
1219
+ # @return [String]
1220
+ attr_accessor :name
1221
+
1222
+ # A color in RGB format that indicates the predominant color to display in the
1223
+ # device management app UI. The color components are stored as follows: (red <<
1224
+ # 16) | (green << 8) | blue, where the value of each component is between 0 and
1225
+ # 255, inclusive.
1226
+ # Corresponds to the JSON property `primaryColor`
1227
+ # @return [Fixnum]
1228
+ attr_accessor :primary_color
1229
+
1230
+ # The topic that Cloud Pub/Sub notifications are published to, in the form
1231
+ # projects/`project`/topics/`topic`. This field is only required if Pub/Sub
1232
+ # notifications are enabled.
1233
+ # Corresponds to the JSON property `pubsubTopic`
1234
+ # @return [String]
1235
+ attr_accessor :pubsub_topic
1236
+
1237
+ # Sign-in details of the enterprise.
1238
+ # Corresponds to the JSON property `signinDetails`
1239
+ # @return [Array<Google::Apis::AndroidmanagementV1::SigninDetail>]
1240
+ attr_accessor :signin_details
1241
+
1242
+ # Terms and conditions that must be accepted when provisioning a device for this
1243
+ # enterprise. A page of terms is generated for each value in this list.
1244
+ # Corresponds to the JSON property `termsAndConditions`
1245
+ # @return [Array<Google::Apis::AndroidmanagementV1::TermsAndConditions>]
1246
+ attr_accessor :terms_and_conditions
1247
+
1248
+ def initialize(**args)
1249
+ update!(**args)
1250
+ end
1251
+
1252
+ # Update properties of this object
1253
+ def update!(**args)
1254
+ @app_auto_approval_enabled = args[:app_auto_approval_enabled] if args.key?(:app_auto_approval_enabled)
1255
+ @enabled_notification_types = args[:enabled_notification_types] if args.key?(:enabled_notification_types)
1256
+ @enterprise_display_name = args[:enterprise_display_name] if args.key?(:enterprise_display_name)
1257
+ @logo = args[:logo] if args.key?(:logo)
1258
+ @name = args[:name] if args.key?(:name)
1259
+ @primary_color = args[:primary_color] if args.key?(:primary_color)
1260
+ @pubsub_topic = args[:pubsub_topic] if args.key?(:pubsub_topic)
1261
+ @signin_details = args[:signin_details] if args.key?(:signin_details)
1262
+ @terms_and_conditions = args[:terms_and_conditions] if args.key?(:terms_and_conditions)
1263
+ end
1264
+ end
1265
+
1266
+ # Data hosted at an external location. The data is to be downloaded by Android
1267
+ # Device Policy and verified against the hash.
1268
+ class ExternalData
1269
+ include Google::Apis::Core::Hashable
1270
+
1271
+ # The base-64 encoded SHA-256 hash of the content hosted at url. If the content
1272
+ # doesn't match this hash, Android Device Policy won't use the data.
1273
+ # Corresponds to the JSON property `sha256Hash`
1274
+ # @return [String]
1275
+ attr_accessor :sha256_hash
1276
+
1277
+ # The absolute URL to the data, which must use either the http or https scheme.
1278
+ # Android Device Policy doesn't provide any credentials in the GET request, so
1279
+ # the URL must be publicly accessible. Including a long, random component in the
1280
+ # URL may be used to prevent attackers from discovering the URL.
1281
+ # Corresponds to the JSON property `url`
1282
+ # @return [String]
1283
+ attr_accessor :url
1284
+
1285
+ def initialize(**args)
1286
+ update!(**args)
1287
+ end
1288
+
1289
+ # Update properties of this object
1290
+ def update!(**args)
1291
+ @sha256_hash = args[:sha256_hash] if args.key?(:sha256_hash)
1292
+ @url = args[:url] if args.key?(:url)
1293
+ end
1294
+ end
1295
+
1296
+ # A system freeze period. When a device’s clock is within the freeze period, all
1297
+ # incoming system updates (including security patches) are blocked and won’t be
1298
+ # installed. When a device is outside the freeze period, normal update behavior
1299
+ # applies. Leap years are ignored in freeze period calculations, in particular: *
1300
+ # If Feb. 29th is set as the start or end date of a freeze period, the freeze
1301
+ # period will start or end on Feb. 28th instead. * When a device’s system clock
1302
+ # reads Feb. 29th, it’s treated as Feb. 28th. * When calculating the number of
1303
+ # days in a freeze period or the time between two freeze periods, Feb. 29th is
1304
+ # ignored and not counted as a day.
1305
+ class FreezePeriod
1306
+ include Google::Apis::Core::Hashable
1307
+
1308
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1309
+ # day and time zone are either specified elsewhere or are insignificant. The
1310
+ # date is relative to the Gregorian Calendar. This can represent one of the
1311
+ # following: A full date, with non-zero year, month, and day values A month and
1312
+ # day value, with a zero year, such as an anniversary A year on its own, with
1313
+ # zero month and day values A year and month value, with a zero day, such as a
1314
+ # credit card expiration dateRelated types are google.type.TimeOfDay and google.
1315
+ # protobuf.Timestamp.
1316
+ # Corresponds to the JSON property `endDate`
1317
+ # @return [Google::Apis::AndroidmanagementV1::Date]
1318
+ attr_accessor :end_date
1319
+
1320
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1321
+ # day and time zone are either specified elsewhere or are insignificant. The
1322
+ # date is relative to the Gregorian Calendar. This can represent one of the
1323
+ # following: A full date, with non-zero year, month, and day values A month and
1324
+ # day value, with a zero year, such as an anniversary A year on its own, with
1325
+ # zero month and day values A year and month value, with a zero day, such as a
1326
+ # credit card expiration dateRelated types are google.type.TimeOfDay and google.
1327
+ # protobuf.Timestamp.
1328
+ # Corresponds to the JSON property `startDate`
1329
+ # @return [Google::Apis::AndroidmanagementV1::Date]
1330
+ attr_accessor :start_date
1331
+
1332
+ def initialize(**args)
1333
+ update!(**args)
1334
+ end
1335
+
1336
+ # Update properties of this object
1337
+ def update!(**args)
1338
+ @end_date = args[:end_date] if args.key?(:end_date)
1339
+ @start_date = args[:start_date] if args.key?(:start_date)
1340
+ end
1341
+ end
1342
+
1343
+ # Information about device hardware. The fields related to temperature
1344
+ # thresholds are only available if hardwareStatusEnabled is true in the device's
1345
+ # policy.
1346
+ class HardwareInfo
1347
+ include Google::Apis::Core::Hashable
1348
+
1349
+ # Battery shutdown temperature thresholds in Celsius for each battery on the
1350
+ # device.
1351
+ # Corresponds to the JSON property `batteryShutdownTemperatures`
1352
+ # @return [Array<Float>]
1353
+ attr_accessor :battery_shutdown_temperatures
1354
+
1355
+ # Battery throttling temperature thresholds in Celsius for each battery on the
1356
+ # device.
1357
+ # Corresponds to the JSON property `batteryThrottlingTemperatures`
1358
+ # @return [Array<Float>]
1359
+ attr_accessor :battery_throttling_temperatures
1360
+
1361
+ # Brand of the device. For example, Google.
1362
+ # Corresponds to the JSON property `brand`
1363
+ # @return [String]
1364
+ attr_accessor :brand
1365
+
1366
+ # CPU shutdown temperature thresholds in Celsius for each CPU on the device.
1367
+ # Corresponds to the JSON property `cpuShutdownTemperatures`
1368
+ # @return [Array<Float>]
1369
+ attr_accessor :cpu_shutdown_temperatures
1370
+
1371
+ # CPU throttling temperature thresholds in Celsius for each CPU on the device.
1372
+ # Corresponds to the JSON property `cpuThrottlingTemperatures`
1373
+ # @return [Array<Float>]
1374
+ attr_accessor :cpu_throttling_temperatures
1375
+
1376
+ # Baseband version. For example, MDM9625_104662.22.05.34p.
1377
+ # Corresponds to the JSON property `deviceBasebandVersion`
1378
+ # @return [String]
1379
+ attr_accessor :device_baseband_version
1380
+
1381
+ # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
1382
+ # Corresponds to the JSON property `gpuShutdownTemperatures`
1383
+ # @return [Array<Float>]
1384
+ attr_accessor :gpu_shutdown_temperatures
1385
+
1386
+ # GPU throttling temperature thresholds in Celsius for each GPU on the device.
1387
+ # Corresponds to the JSON property `gpuThrottlingTemperatures`
1388
+ # @return [Array<Float>]
1389
+ attr_accessor :gpu_throttling_temperatures
1390
+
1391
+ # Name of the hardware. For example, Angler.
1392
+ # Corresponds to the JSON property `hardware`
1393
+ # @return [String]
1394
+ attr_accessor :hardware
1395
+
1396
+ # Manufacturer. For example, Motorola.
1397
+ # Corresponds to the JSON property `manufacturer`
1398
+ # @return [String]
1399
+ attr_accessor :manufacturer
1400
+
1401
+ # The model of the device. For example, Asus Nexus 7.
1402
+ # Corresponds to the JSON property `model`
1403
+ # @return [String]
1404
+ attr_accessor :model
1405
+
1406
+ # The device serial number.
1407
+ # Corresponds to the JSON property `serialNumber`
1408
+ # @return [String]
1409
+ attr_accessor :serial_number
1410
+
1411
+ # Device skin shutdown temperature thresholds in Celsius.
1412
+ # Corresponds to the JSON property `skinShutdownTemperatures`
1413
+ # @return [Array<Float>]
1414
+ attr_accessor :skin_shutdown_temperatures
1415
+
1416
+ # Device skin throttling temperature thresholds in Celsius.
1417
+ # Corresponds to the JSON property `skinThrottlingTemperatures`
1418
+ # @return [Array<Float>]
1419
+ attr_accessor :skin_throttling_temperatures
1420
+
1421
+ def initialize(**args)
1422
+ update!(**args)
1423
+ end
1424
+
1425
+ # Update properties of this object
1426
+ def update!(**args)
1427
+ @battery_shutdown_temperatures = args[:battery_shutdown_temperatures] if args.key?(:battery_shutdown_temperatures)
1428
+ @battery_throttling_temperatures = args[:battery_throttling_temperatures] if args.key?(:battery_throttling_temperatures)
1429
+ @brand = args[:brand] if args.key?(:brand)
1430
+ @cpu_shutdown_temperatures = args[:cpu_shutdown_temperatures] if args.key?(:cpu_shutdown_temperatures)
1431
+ @cpu_throttling_temperatures = args[:cpu_throttling_temperatures] if args.key?(:cpu_throttling_temperatures)
1432
+ @device_baseband_version = args[:device_baseband_version] if args.key?(:device_baseband_version)
1433
+ @gpu_shutdown_temperatures = args[:gpu_shutdown_temperatures] if args.key?(:gpu_shutdown_temperatures)
1434
+ @gpu_throttling_temperatures = args[:gpu_throttling_temperatures] if args.key?(:gpu_throttling_temperatures)
1435
+ @hardware = args[:hardware] if args.key?(:hardware)
1436
+ @manufacturer = args[:manufacturer] if args.key?(:manufacturer)
1437
+ @model = args[:model] if args.key?(:model)
1438
+ @serial_number = args[:serial_number] if args.key?(:serial_number)
1439
+ @skin_shutdown_temperatures = args[:skin_shutdown_temperatures] if args.key?(:skin_shutdown_temperatures)
1440
+ @skin_throttling_temperatures = args[:skin_throttling_temperatures] if args.key?(:skin_throttling_temperatures)
1441
+ end
1442
+ end
1443
+
1444
+ # Hardware status. Temperatures may be compared to the temperature thresholds
1445
+ # available in hardwareInfo to determine hardware health.
1446
+ class HardwareStatus
1447
+ include Google::Apis::Core::Hashable
1448
+
1449
+ # Current battery temperatures in Celsius for each battery on the device.
1450
+ # Corresponds to the JSON property `batteryTemperatures`
1451
+ # @return [Array<Float>]
1452
+ attr_accessor :battery_temperatures
1453
+
1454
+ # Current CPU temperatures in Celsius for each CPU on the device.
1455
+ # Corresponds to the JSON property `cpuTemperatures`
1456
+ # @return [Array<Float>]
1457
+ attr_accessor :cpu_temperatures
1458
+
1459
+ # CPU usages in percentage for each core available on the device. Usage is 0 for
1460
+ # each unplugged core. Empty array implies that CPU usage is not supported in
1461
+ # the system.
1462
+ # Corresponds to the JSON property `cpuUsages`
1463
+ # @return [Array<Float>]
1464
+ attr_accessor :cpu_usages
1465
+
1466
+ # The time the measurements were taken.
1467
+ # Corresponds to the JSON property `createTime`
1468
+ # @return [String]
1469
+ attr_accessor :create_time
1470
+
1471
+ # Fan speeds in RPM for each fan on the device. Empty array means that there are
1472
+ # no fans or fan speed is not supported on the system.
1473
+ # Corresponds to the JSON property `fanSpeeds`
1474
+ # @return [Array<Float>]
1475
+ attr_accessor :fan_speeds
1476
+
1477
+ # Current GPU temperatures in Celsius for each GPU on the device.
1478
+ # Corresponds to the JSON property `gpuTemperatures`
1479
+ # @return [Array<Float>]
1480
+ attr_accessor :gpu_temperatures
1481
+
1482
+ # Current device skin temperatures in Celsius.
1483
+ # Corresponds to the JSON property `skinTemperatures`
1484
+ # @return [Array<Float>]
1485
+ attr_accessor :skin_temperatures
1486
+
1487
+ def initialize(**args)
1488
+ update!(**args)
1489
+ end
1490
+
1491
+ # Update properties of this object
1492
+ def update!(**args)
1493
+ @battery_temperatures = args[:battery_temperatures] if args.key?(:battery_temperatures)
1494
+ @cpu_temperatures = args[:cpu_temperatures] if args.key?(:cpu_temperatures)
1495
+ @cpu_usages = args[:cpu_usages] if args.key?(:cpu_usages)
1496
+ @create_time = args[:create_time] if args.key?(:create_time)
1497
+ @fan_speeds = args[:fan_speeds] if args.key?(:fan_speeds)
1498
+ @gpu_temperatures = args[:gpu_temperatures] if args.key?(:gpu_temperatures)
1499
+ @skin_temperatures = args[:skin_temperatures] if args.key?(:skin_temperatures)
1500
+ end
1501
+ end
1502
+
1503
+ # Keyed app state reported by the app.
1504
+ class KeyedAppState
1505
+ include Google::Apis::Core::Hashable
1506
+
1507
+ # The creation time of the app state on the device.
1508
+ # Corresponds to the JSON property `createTime`
1509
+ # @return [String]
1510
+ attr_accessor :create_time
1511
+
1512
+ # Optionally, a machine-readable value to be read by the EMM. For example,
1513
+ # setting values that the admin can choose to query against in the EMM console (
1514
+ # e.g. “notify me if the battery_warning data < 10”).
1515
+ # Corresponds to the JSON property `data`
1516
+ # @return [String]
1517
+ attr_accessor :data
1518
+
1519
+ # The key for the app state. Acts as a point of reference for what the app is
1520
+ # providing state for. For example, when providing managed configuration
1521
+ # feedback, this key could be the managed configuration key.
1522
+ # Corresponds to the JSON property `key`
1523
+ # @return [String]
1524
+ attr_accessor :key
1525
+
1526
+ # The time the app state was most recently updated.
1527
+ # Corresponds to the JSON property `lastUpdateTime`
1528
+ # @return [String]
1529
+ attr_accessor :last_update_time
1530
+
1531
+ # Optionally, a free-form message string to explain the app state. If the state
1532
+ # was triggered by a particular value (e.g. a managed configuration value), it
1533
+ # should be included in the message.
1534
+ # Corresponds to the JSON property `message`
1535
+ # @return [String]
1536
+ attr_accessor :message
1537
+
1538
+ # The severity of the app state.
1539
+ # Corresponds to the JSON property `severity`
1540
+ # @return [String]
1541
+ attr_accessor :severity
1542
+
1543
+ def initialize(**args)
1544
+ update!(**args)
1545
+ end
1546
+
1547
+ # Update properties of this object
1548
+ def update!(**args)
1549
+ @create_time = args[:create_time] if args.key?(:create_time)
1550
+ @data = args[:data] if args.key?(:data)
1551
+ @key = args[:key] if args.key?(:key)
1552
+ @last_update_time = args[:last_update_time] if args.key?(:last_update_time)
1553
+ @message = args[:message] if args.key?(:message)
1554
+ @severity = args[:severity] if args.key?(:severity)
1555
+ end
1556
+ end
1557
+
1558
+ # Settings controlling the behavior of a device in kiosk mode. To enable kiosk
1559
+ # mode, set kioskCustomLauncherEnabled to true or specify an app in the policy
1560
+ # with installType KIOSK.
1561
+ class KioskCustomization
1562
+ include Google::Apis::Core::Hashable
1563
+
1564
+ # Specifies whether the Settings app is allowed in kiosk mode.
1565
+ # Corresponds to the JSON property `deviceSettings`
1566
+ # @return [String]
1567
+ attr_accessor :device_settings
1568
+
1569
+ # Sets the behavior of a device in kiosk mode when a user presses and holds (
1570
+ # long-presses) the Power button.
1571
+ # Corresponds to the JSON property `powerButtonActions`
1572
+ # @return [String]
1573
+ attr_accessor :power_button_actions
1574
+
1575
+ # Specifies whether system info and notifications are disabled in kiosk mode.
1576
+ # Corresponds to the JSON property `statusBar`
1577
+ # @return [String]
1578
+ attr_accessor :status_bar
1579
+
1580
+ # Specifies whether system error dialogs for crashed or unresponsive apps are
1581
+ # blocked in kiosk mode. When blocked, the system will force-stop the app as if
1582
+ # the user chooses the "close app" option on the UI.
1583
+ # Corresponds to the JSON property `systemErrorWarnings`
1584
+ # @return [String]
1585
+ attr_accessor :system_error_warnings
1586
+
1587
+ # Specifies which navigation features are enabled (e.g. Home, Overview buttons)
1588
+ # in kiosk mode.
1589
+ # Corresponds to the JSON property `systemNavigation`
1590
+ # @return [String]
1591
+ attr_accessor :system_navigation
1592
+
1593
+ def initialize(**args)
1594
+ update!(**args)
1595
+ end
1596
+
1597
+ # Update properties of this object
1598
+ def update!(**args)
1599
+ @device_settings = args[:device_settings] if args.key?(:device_settings)
1600
+ @power_button_actions = args[:power_button_actions] if args.key?(:power_button_actions)
1601
+ @status_bar = args[:status_bar] if args.key?(:status_bar)
1602
+ @system_error_warnings = args[:system_error_warnings] if args.key?(:system_error_warnings)
1603
+ @system_navigation = args[:system_navigation] if args.key?(:system_navigation)
1604
+ end
1605
+ end
1606
+
1607
+ # An action to launch an app.
1608
+ class LaunchAppAction
1609
+ include Google::Apis::Core::Hashable
1610
+
1611
+ # Package name of app to be launched
1612
+ # Corresponds to the JSON property `packageName`
1613
+ # @return [String]
1614
+ attr_accessor :package_name
1615
+
1616
+ def initialize(**args)
1617
+ update!(**args)
1618
+ end
1619
+
1620
+ # Update properties of this object
1621
+ def update!(**args)
1622
+ @package_name = args[:package_name] if args.key?(:package_name)
1623
+ end
1624
+ end
1625
+
1626
+ # Response to a request to list devices for a given enterprise.
1627
+ class ListDevicesResponse
1628
+ include Google::Apis::Core::Hashable
1629
+
1630
+ # The list of devices.
1631
+ # Corresponds to the JSON property `devices`
1632
+ # @return [Array<Google::Apis::AndroidmanagementV1::Device>]
1633
+ attr_accessor :devices
1634
+
1635
+ # If there are more results, a token to retrieve next page of results.
1636
+ # Corresponds to the JSON property `nextPageToken`
1637
+ # @return [String]
1638
+ attr_accessor :next_page_token
1639
+
1640
+ def initialize(**args)
1641
+ update!(**args)
1642
+ end
1643
+
1644
+ # Update properties of this object
1645
+ def update!(**args)
1646
+ @devices = args[:devices] if args.key?(:devices)
1647
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1648
+ end
1649
+ end
1650
+
1651
+ # The response message for Operations.ListOperations.
1652
+ class ListOperationsResponse
1653
+ include Google::Apis::Core::Hashable
1654
+
1655
+ # The standard List next-page token.
1656
+ # Corresponds to the JSON property `nextPageToken`
1657
+ # @return [String]
1658
+ attr_accessor :next_page_token
1659
+
1660
+ # A list of operations that matches the specified filter in the request.
1661
+ # Corresponds to the JSON property `operations`
1662
+ # @return [Array<Google::Apis::AndroidmanagementV1::Operation>]
1663
+ attr_accessor :operations
1664
+
1665
+ def initialize(**args)
1666
+ update!(**args)
1667
+ end
1668
+
1669
+ # Update properties of this object
1670
+ def update!(**args)
1671
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1672
+ @operations = args[:operations] if args.key?(:operations)
1673
+ end
1674
+ end
1675
+
1676
+ # Response to a request to list policies for a given enterprise.
1677
+ class ListPoliciesResponse
1678
+ include Google::Apis::Core::Hashable
1679
+
1680
+ # If there are more results, a token to retrieve next page of results.
1681
+ # Corresponds to the JSON property `nextPageToken`
1682
+ # @return [String]
1683
+ attr_accessor :next_page_token
1684
+
1685
+ # The list of policies.
1686
+ # Corresponds to the JSON property `policies`
1687
+ # @return [Array<Google::Apis::AndroidmanagementV1::Policy>]
1688
+ attr_accessor :policies
1689
+
1690
+ def initialize(**args)
1691
+ update!(**args)
1692
+ end
1693
+
1694
+ # Update properties of this object
1695
+ def update!(**args)
1696
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1697
+ @policies = args[:policies] if args.key?(:policies)
1698
+ end
1699
+ end
1700
+
1701
+ # Response to a request to list web apps for a given enterprise.
1702
+ class ListWebAppsResponse
1703
+ include Google::Apis::Core::Hashable
1704
+
1705
+ # If there are more results, a token to retrieve next page of results.
1706
+ # Corresponds to the JSON property `nextPageToken`
1707
+ # @return [String]
1708
+ attr_accessor :next_page_token
1709
+
1710
+ # The list of web apps.
1711
+ # Corresponds to the JSON property `webApps`
1712
+ # @return [Array<Google::Apis::AndroidmanagementV1::WebApp>]
1713
+ attr_accessor :web_apps
1714
+
1715
+ def initialize(**args)
1716
+ update!(**args)
1717
+ end
1718
+
1719
+ # Update properties of this object
1720
+ def update!(**args)
1721
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1722
+ @web_apps = args[:web_apps] if args.key?(:web_apps)
1723
+ end
1724
+ end
1725
+
1726
+ # The managed configurations template for the app, saved from the managed
1727
+ # configurations iframe.
1728
+ class ManagedConfigurationTemplate
1729
+ include Google::Apis::Core::Hashable
1730
+
1731
+ # Optional, a map containing configuration variables defined for the
1732
+ # configuration.
1733
+ # Corresponds to the JSON property `configurationVariables`
1734
+ # @return [Hash<String,String>]
1735
+ attr_accessor :configuration_variables
1736
+
1737
+ # The ID of the managed configurations template.
1738
+ # Corresponds to the JSON property `templateId`
1739
+ # @return [String]
1740
+ attr_accessor :template_id
1741
+
1742
+ def initialize(**args)
1743
+ update!(**args)
1744
+ end
1745
+
1746
+ # Update properties of this object
1747
+ def update!(**args)
1748
+ @configuration_variables = args[:configuration_variables] if args.key?(:configuration_variables)
1749
+ @template_id = args[:template_id] if args.key?(:template_id)
1750
+ end
1751
+ end
1752
+
1753
+ # Managed property.
1754
+ class ManagedProperty
1755
+ include Google::Apis::Core::Hashable
1756
+
1757
+ # The default value of the property. BUNDLE_ARRAY properties don't have a
1758
+ # default value.
1759
+ # Corresponds to the JSON property `defaultValue`
1760
+ # @return [Object]
1761
+ attr_accessor :default_value
1762
+
1763
+ # A longer description of the property, providing more detail of what it affects.
1764
+ # Localized.
1765
+ # Corresponds to the JSON property `description`
1766
+ # @return [String]
1767
+ attr_accessor :description
1768
+
1769
+ # For CHOICE or MULTISELECT properties, the list of possible entries.
1770
+ # Corresponds to the JSON property `entries`
1771
+ # @return [Array<Google::Apis::AndroidmanagementV1::ManagedPropertyEntry>]
1772
+ attr_accessor :entries
1773
+
1774
+ # The unique key that the app uses to identify the property, e.g. "com.google.
1775
+ # android.gm.fieldname".
1776
+ # Corresponds to the JSON property `key`
1777
+ # @return [String]
1778
+ attr_accessor :key
1779
+
1780
+ # For BUNDLE_ARRAY properties, the list of nested properties. A BUNDLE_ARRAY
1781
+ # property is at most two levels deep.
1782
+ # Corresponds to the JSON property `nestedProperties`
1783
+ # @return [Array<Google::Apis::AndroidmanagementV1::ManagedProperty>]
1784
+ attr_accessor :nested_properties
1785
+
1786
+ # The name of the property. Localized.
1787
+ # Corresponds to the JSON property `title`
1788
+ # @return [String]
1789
+ attr_accessor :title
1790
+
1791
+ # The type of the property.
1792
+ # Corresponds to the JSON property `type`
1793
+ # @return [String]
1794
+ attr_accessor :type
1795
+
1796
+ def initialize(**args)
1797
+ update!(**args)
1798
+ end
1799
+
1800
+ # Update properties of this object
1801
+ def update!(**args)
1802
+ @default_value = args[:default_value] if args.key?(:default_value)
1803
+ @description = args[:description] if args.key?(:description)
1804
+ @entries = args[:entries] if args.key?(:entries)
1805
+ @key = args[:key] if args.key?(:key)
1806
+ @nested_properties = args[:nested_properties] if args.key?(:nested_properties)
1807
+ @title = args[:title] if args.key?(:title)
1808
+ @type = args[:type] if args.key?(:type)
1809
+ end
1810
+ end
1811
+
1812
+ # An entry of a managed property.
1813
+ class ManagedPropertyEntry
1814
+ include Google::Apis::Core::Hashable
1815
+
1816
+ # The human-readable name of the value. Localized.
1817
+ # Corresponds to the JSON property `name`
1818
+ # @return [String]
1819
+ attr_accessor :name
1820
+
1821
+ # The machine-readable value of the entry, which should be used in the
1822
+ # configuration. Not localized.
1823
+ # Corresponds to the JSON property `value`
1824
+ # @return [String]
1825
+ attr_accessor :value
1826
+
1827
+ def initialize(**args)
1828
+ update!(**args)
1829
+ end
1830
+
1831
+ # Update properties of this object
1832
+ def update!(**args)
1833
+ @name = args[:name] if args.key?(:name)
1834
+ @value = args[:value] if args.key?(:value)
1835
+ end
1836
+ end
1837
+
1838
+ # An event related to memory and storage measurements.
1839
+ class MemoryEvent
1840
+ include Google::Apis::Core::Hashable
1841
+
1842
+ # The number of free bytes in the medium, or for EXTERNAL_STORAGE_DETECTED, the
1843
+ # total capacity in bytes of the storage medium.
1844
+ # Corresponds to the JSON property `byteCount`
1845
+ # @return [Fixnum]
1846
+ attr_accessor :byte_count
1847
+
1848
+ # The creation time of the event.
1849
+ # Corresponds to the JSON property `createTime`
1850
+ # @return [String]
1851
+ attr_accessor :create_time
1852
+
1853
+ # Event type.
1854
+ # Corresponds to the JSON property `eventType`
1855
+ # @return [String]
1856
+ attr_accessor :event_type
1857
+
1858
+ def initialize(**args)
1859
+ update!(**args)
1860
+ end
1861
+
1862
+ # Update properties of this object
1863
+ def update!(**args)
1864
+ @byte_count = args[:byte_count] if args.key?(:byte_count)
1865
+ @create_time = args[:create_time] if args.key?(:create_time)
1866
+ @event_type = args[:event_type] if args.key?(:event_type)
1867
+ end
1868
+ end
1869
+
1870
+ # Information about device memory and storage.
1871
+ class MemoryInfo
1872
+ include Google::Apis::Core::Hashable
1873
+
1874
+ # Total internal storage on device in bytes.
1875
+ # Corresponds to the JSON property `totalInternalStorage`
1876
+ # @return [Fixnum]
1877
+ attr_accessor :total_internal_storage
1878
+
1879
+ # Total RAM on device in bytes.
1880
+ # Corresponds to the JSON property `totalRam`
1881
+ # @return [Fixnum]
1882
+ attr_accessor :total_ram
1883
+
1884
+ def initialize(**args)
1885
+ update!(**args)
1886
+ end
1887
+
1888
+ # Update properties of this object
1889
+ def update!(**args)
1890
+ @total_internal_storage = args[:total_internal_storage] if args.key?(:total_internal_storage)
1891
+ @total_ram = args[:total_ram] if args.key?(:total_ram)
1892
+ end
1893
+ end
1894
+
1895
+ # Device network info.
1896
+ class NetworkInfo
1897
+ include Google::Apis::Core::Hashable
1898
+
1899
+ # IMEI number of the GSM device. For example, A1000031212.
1900
+ # Corresponds to the JSON property `imei`
1901
+ # @return [String]
1902
+ attr_accessor :imei
1903
+
1904
+ # MEID number of the CDMA device. For example, A00000292788E1.
1905
+ # Corresponds to the JSON property `meid`
1906
+ # @return [String]
1907
+ attr_accessor :meid
1908
+
1909
+ # Alphabetic name of current registered operator. For example, Vodafone.
1910
+ # Corresponds to the JSON property `networkOperatorName`
1911
+ # @return [String]
1912
+ attr_accessor :network_operator_name
1913
+
1914
+ # Wi-Fi MAC address of the device. For example, 7c:11:11:11:11:11.
1915
+ # Corresponds to the JSON property `wifiMacAddress`
1916
+ # @return [String]
1917
+ attr_accessor :wifi_mac_address
1918
+
1919
+ def initialize(**args)
1920
+ update!(**args)
1921
+ end
1922
+
1923
+ # Update properties of this object
1924
+ def update!(**args)
1925
+ @imei = args[:imei] if args.key?(:imei)
1926
+ @meid = args[:meid] if args.key?(:meid)
1927
+ @network_operator_name = args[:network_operator_name] if args.key?(:network_operator_name)
1928
+ @wifi_mac_address = args[:wifi_mac_address] if args.key?(:wifi_mac_address)
1929
+ end
1930
+ end
1931
+
1932
+ # Provides detail about non-compliance with a policy setting.
1933
+ class NonComplianceDetail
1934
+ include Google::Apis::Core::Hashable
1935
+
1936
+ # If the policy setting could not be applied, the current value of the setting
1937
+ # on the device.
1938
+ # Corresponds to the JSON property `currentValue`
1939
+ # @return [Object]
1940
+ attr_accessor :current_value
1941
+
1942
+ # For settings with nested fields, if a particular nested field is out of
1943
+ # compliance, this specifies the full path to the offending field. The path is
1944
+ # formatted in the same way the policy JSON field would be referenced in
1945
+ # JavaScript, that is: 1) For object-typed fields, the field name is followed by
1946
+ # a dot then by a subfield name. 2) For array-typed fields, the field name is
1947
+ # followed by the array index enclosed in brackets. For example, to indicate a
1948
+ # problem with the url field in the externalData field in the 3rd application,
1949
+ # the path would be applications[2].externalData.url
1950
+ # Corresponds to the JSON property `fieldPath`
1951
+ # @return [String]
1952
+ attr_accessor :field_path
1953
+
1954
+ # If package_name is set and the non-compliance reason is APP_NOT_INSTALLED or
1955
+ # APP_NOT_UPDATED, the detailed reason the app can't be installed or updated.
1956
+ # Corresponds to the JSON property `installationFailureReason`
1957
+ # @return [String]
1958
+ attr_accessor :installation_failure_reason
1959
+
1960
+ # The reason the device is not in compliance with the setting.
1961
+ # Corresponds to the JSON property `nonComplianceReason`
1962
+ # @return [String]
1963
+ attr_accessor :non_compliance_reason
1964
+
1965
+ # The package name indicating which app is out of compliance, if applicable.
1966
+ # Corresponds to the JSON property `packageName`
1967
+ # @return [String]
1968
+ attr_accessor :package_name
1969
+
1970
+ # The name of the policy setting. This is the JSON field name of a top-level
1971
+ # Policy field.
1972
+ # Corresponds to the JSON property `settingName`
1973
+ # @return [String]
1974
+ attr_accessor :setting_name
1975
+
1976
+ def initialize(**args)
1977
+ update!(**args)
1978
+ end
1979
+
1980
+ # Update properties of this object
1981
+ def update!(**args)
1982
+ @current_value = args[:current_value] if args.key?(:current_value)
1983
+ @field_path = args[:field_path] if args.key?(:field_path)
1984
+ @installation_failure_reason = args[:installation_failure_reason] if args.key?(:installation_failure_reason)
1985
+ @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
1986
+ @package_name = args[:package_name] if args.key?(:package_name)
1987
+ @setting_name = args[:setting_name] if args.key?(:setting_name)
1988
+ end
1989
+ end
1990
+
1991
+ # A compliance rule condition which is satisfied if there exists any matching
1992
+ # NonComplianceDetail for the device. A NonComplianceDetail matches a
1993
+ # NonComplianceDetailCondition if all the fields which are set within the
1994
+ # NonComplianceDetailCondition match the corresponding NonComplianceDetail
1995
+ # fields.
1996
+ class NonComplianceDetailCondition
1997
+ include Google::Apis::Core::Hashable
1998
+
1999
+ # The reason the device is not in compliance with the setting. If not set, then
2000
+ # this condition matches any reason.
2001
+ # Corresponds to the JSON property `nonComplianceReason`
2002
+ # @return [String]
2003
+ attr_accessor :non_compliance_reason
2004
+
2005
+ # The package name of the app that's out of compliance. If not set, then this
2006
+ # condition matches any package name.
2007
+ # Corresponds to the JSON property `packageName`
2008
+ # @return [String]
2009
+ attr_accessor :package_name
2010
+
2011
+ # The name of the policy setting. This is the JSON field name of a top-level
2012
+ # Policy field. If not set, then this condition matches any setting name.
2013
+ # Corresponds to the JSON property `settingName`
2014
+ # @return [String]
2015
+ attr_accessor :setting_name
2016
+
2017
+ def initialize(**args)
2018
+ update!(**args)
2019
+ end
2020
+
2021
+ # Update properties of this object
2022
+ def update!(**args)
2023
+ @non_compliance_reason = args[:non_compliance_reason] if args.key?(:non_compliance_reason)
2024
+ @package_name = args[:package_name] if args.key?(:package_name)
2025
+ @setting_name = args[:setting_name] if args.key?(:setting_name)
2026
+ end
2027
+ end
2028
+
2029
+ # This resource represents a long-running operation that is the result of a
2030
+ # network API call.
2031
+ class Operation
2032
+ include Google::Apis::Core::Hashable
2033
+
2034
+ # If the value is false, it means the operation is still in progress. If true,
2035
+ # the operation is completed, and either error or response is available.
2036
+ # Corresponds to the JSON property `done`
2037
+ # @return [Boolean]
2038
+ attr_accessor :done
2039
+ alias_method :done?, :done
2040
+
2041
+ # The Status type defines a logical error model that is suitable for different
2042
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
2043
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
2044
+ # error code, error message, and error details.You can find out more about this
2045
+ # error model and how to work with it in the API Design Guide (https://cloud.
2046
+ # google.com/apis/design/errors).
2047
+ # Corresponds to the JSON property `error`
2048
+ # @return [Google::Apis::AndroidmanagementV1::Status]
2049
+ attr_accessor :error
2050
+
2051
+ # Service-specific metadata associated with the operation. It typically contains
2052
+ # progress information and common metadata such as create time. Some services
2053
+ # might not provide such metadata. Any method that returns a long-running
2054
+ # operation should document the metadata type, if any.
2055
+ # Corresponds to the JSON property `metadata`
2056
+ # @return [Hash<String,Object>]
2057
+ attr_accessor :metadata
2058
+
2059
+ # The server-assigned name, which is only unique within the same service that
2060
+ # originally returns it. If you use the default HTTP mapping, the name should be
2061
+ # a resource name ending with operations/`unique_id`.
2062
+ # Corresponds to the JSON property `name`
2063
+ # @return [String]
2064
+ attr_accessor :name
2065
+
2066
+ # The normal response of the operation in case of success. If the original
2067
+ # method returns no data on success, such as Delete, the response is google.
2068
+ # protobuf.Empty. If the original method is standard Get/Create/Update, the
2069
+ # response should be the resource. For other methods, the response should have
2070
+ # the type XxxResponse, where Xxx is the original method name. For example, if
2071
+ # the original method name is TakeSnapshot(), the inferred response type is
2072
+ # TakeSnapshotResponse.
2073
+ # Corresponds to the JSON property `response`
2074
+ # @return [Hash<String,Object>]
2075
+ attr_accessor :response
2076
+
2077
+ def initialize(**args)
2078
+ update!(**args)
2079
+ end
2080
+
2081
+ # Update properties of this object
2082
+ def update!(**args)
2083
+ @done = args[:done] if args.key?(:done)
2084
+ @error = args[:error] if args.key?(:error)
2085
+ @metadata = args[:metadata] if args.key?(:metadata)
2086
+ @name = args[:name] if args.key?(:name)
2087
+ @response = args[:response] if args.key?(:response)
2088
+ end
2089
+ end
2090
+
2091
+ # A list of package names.
2092
+ class PackageNameList
2093
+ include Google::Apis::Core::Hashable
2094
+
2095
+ # A list of package names.
2096
+ # Corresponds to the JSON property `packageNames`
2097
+ # @return [Array<String>]
2098
+ attr_accessor :package_names
2099
+
2100
+ def initialize(**args)
2101
+ update!(**args)
2102
+ end
2103
+
2104
+ # Update properties of this object
2105
+ def update!(**args)
2106
+ @package_names = args[:package_names] if args.key?(:package_names)
2107
+ end
2108
+ end
2109
+
2110
+ # Requirements for the password used to unlock a device.
2111
+ class PasswordRequirements
2112
+ include Google::Apis::Core::Hashable
2113
+
2114
+ # Number of incorrect device-unlock passwords that can be entered before a
2115
+ # device is wiped. A value of 0 means there is no restriction.
2116
+ # Corresponds to the JSON property `maximumFailedPasswordsForWipe`
2117
+ # @return [Fixnum]
2118
+ attr_accessor :maximum_failed_passwords_for_wipe
2119
+
2120
+ # Password expiration timeout.
2121
+ # Corresponds to the JSON property `passwordExpirationTimeout`
2122
+ # @return [String]
2123
+ attr_accessor :password_expiration_timeout
2124
+
2125
+ # The length of the password history. After setting this field, the user won't
2126
+ # be able to enter a new password that is the same as any password in the
2127
+ # history. A value of 0 means there is no restriction.
2128
+ # Corresponds to the JSON property `passwordHistoryLength`
2129
+ # @return [Fixnum]
2130
+ attr_accessor :password_history_length
2131
+
2132
+ # The minimum allowed password length. A value of 0 means there is no
2133
+ # restriction. Only enforced when password_quality is NUMERIC, NUMERIC_COMPLEX,
2134
+ # ALPHABETIC, ALPHANUMERIC, or COMPLEX.
2135
+ # Corresponds to the JSON property `passwordMinimumLength`
2136
+ # @return [Fixnum]
2137
+ attr_accessor :password_minimum_length
2138
+
2139
+ # Minimum number of letters required in the password. Only enforced when
2140
+ # password_quality is COMPLEX.
2141
+ # Corresponds to the JSON property `passwordMinimumLetters`
2142
+ # @return [Fixnum]
2143
+ attr_accessor :password_minimum_letters
2144
+
2145
+ # Minimum number of lower case letters required in the password. Only enforced
2146
+ # when password_quality is COMPLEX.
2147
+ # Corresponds to the JSON property `passwordMinimumLowerCase`
2148
+ # @return [Fixnum]
2149
+ attr_accessor :password_minimum_lower_case
2150
+
2151
+ # Minimum number of non-letter characters (numerical digits or symbols) required
2152
+ # in the password. Only enforced when password_quality is COMPLEX.
2153
+ # Corresponds to the JSON property `passwordMinimumNonLetter`
2154
+ # @return [Fixnum]
2155
+ attr_accessor :password_minimum_non_letter
2156
+
2157
+ # Minimum number of numerical digits required in the password. Only enforced
2158
+ # when password_quality is COMPLEX.
2159
+ # Corresponds to the JSON property `passwordMinimumNumeric`
2160
+ # @return [Fixnum]
2161
+ attr_accessor :password_minimum_numeric
2162
+
2163
+ # Minimum number of symbols required in the password. Only enforced when
2164
+ # password_quality is COMPLEX.
2165
+ # Corresponds to the JSON property `passwordMinimumSymbols`
2166
+ # @return [Fixnum]
2167
+ attr_accessor :password_minimum_symbols
2168
+
2169
+ # Minimum number of upper case letters required in the password. Only enforced
2170
+ # when password_quality is COMPLEX.
2171
+ # Corresponds to the JSON property `passwordMinimumUpperCase`
2172
+ # @return [Fixnum]
2173
+ attr_accessor :password_minimum_upper_case
2174
+
2175
+ # The required password quality.
2176
+ # Corresponds to the JSON property `passwordQuality`
2177
+ # @return [String]
2178
+ attr_accessor :password_quality
2179
+
2180
+ # The scope that the password requirement applies to.
2181
+ # Corresponds to the JSON property `passwordScope`
2182
+ # @return [String]
2183
+ attr_accessor :password_scope
2184
+
2185
+ # The length of time after a device or work profile is unlocked using a strong
2186
+ # form of authentication (password, PIN, pattern) that it can be unlocked using
2187
+ # any other authentication method (e.g. fingerprint, trust agents, face). After
2188
+ # the specified time period elapses, only strong forms of authentication can be
2189
+ # used to unlock the device or work profile.
2190
+ # Corresponds to the JSON property `requirePasswordUnlock`
2191
+ # @return [String]
2192
+ attr_accessor :require_password_unlock
2193
+
2194
+ def initialize(**args)
2195
+ update!(**args)
2196
+ end
2197
+
2198
+ # Update properties of this object
2199
+ def update!(**args)
2200
+ @maximum_failed_passwords_for_wipe = args[:maximum_failed_passwords_for_wipe] if args.key?(:maximum_failed_passwords_for_wipe)
2201
+ @password_expiration_timeout = args[:password_expiration_timeout] if args.key?(:password_expiration_timeout)
2202
+ @password_history_length = args[:password_history_length] if args.key?(:password_history_length)
2203
+ @password_minimum_length = args[:password_minimum_length] if args.key?(:password_minimum_length)
2204
+ @password_minimum_letters = args[:password_minimum_letters] if args.key?(:password_minimum_letters)
2205
+ @password_minimum_lower_case = args[:password_minimum_lower_case] if args.key?(:password_minimum_lower_case)
2206
+ @password_minimum_non_letter = args[:password_minimum_non_letter] if args.key?(:password_minimum_non_letter)
2207
+ @password_minimum_numeric = args[:password_minimum_numeric] if args.key?(:password_minimum_numeric)
2208
+ @password_minimum_symbols = args[:password_minimum_symbols] if args.key?(:password_minimum_symbols)
2209
+ @password_minimum_upper_case = args[:password_minimum_upper_case] if args.key?(:password_minimum_upper_case)
2210
+ @password_quality = args[:password_quality] if args.key?(:password_quality)
2211
+ @password_scope = args[:password_scope] if args.key?(:password_scope)
2212
+ @require_password_unlock = args[:require_password_unlock] if args.key?(:require_password_unlock)
2213
+ end
2214
+ end
2215
+
2216
+ # Configuration for an Android permission and its grant state.
2217
+ class PermissionGrant
2218
+ include Google::Apis::Core::Hashable
2219
+
2220
+ # The Android permission or group, e.g. android.permission.READ_CALENDAR or
2221
+ # android.permission_group.CALENDAR.
2222
+ # Corresponds to the JSON property `permission`
2223
+ # @return [String]
2224
+ attr_accessor :permission
2225
+
2226
+ # The policy for granting the permission.
2227
+ # Corresponds to the JSON property `policy`
2228
+ # @return [String]
2229
+ attr_accessor :policy
2230
+
2231
+ def initialize(**args)
2232
+ update!(**args)
2233
+ end
2234
+
2235
+ # Update properties of this object
2236
+ def update!(**args)
2237
+ @permission = args[:permission] if args.key?(:permission)
2238
+ @policy = args[:policy] if args.key?(:policy)
2239
+ end
2240
+ end
2241
+
2242
+ # A default activity for handling intents that match a particular intent filter.
2243
+ # Note: To set up a kiosk, use InstallType to KIOSK rather than use persistent
2244
+ # preferred activities.
2245
+ class PersistentPreferredActivity
2246
+ include Google::Apis::Core::Hashable
2247
+
2248
+ # The intent actions to match in the filter. If any actions are included in the
2249
+ # filter, then an intent's action must be one of those values for it to match.
2250
+ # If no actions are included, the intent action is ignored.
2251
+ # Corresponds to the JSON property `actions`
2252
+ # @return [Array<String>]
2253
+ attr_accessor :actions
2254
+
2255
+ # The intent categories to match in the filter. An intent includes the
2256
+ # categories that it requires, all of which must be included in the filter in
2257
+ # order to match. In other words, adding a category to the filter has no impact
2258
+ # on matching unless that category is specified in the intent.
2259
+ # Corresponds to the JSON property `categories`
2260
+ # @return [Array<String>]
2261
+ attr_accessor :categories
2262
+
2263
+ # The activity that should be the default intent handler. This should be an
2264
+ # Android component name, e.g. com.android.enterprise.app/.MainActivity.
2265
+ # Alternatively, the value may be the package name of an app, which causes
2266
+ # Android Device Policy to choose an appropriate activity from the app to handle
2267
+ # the intent.
2268
+ # Corresponds to the JSON property `receiverActivity`
2269
+ # @return [String]
2270
+ attr_accessor :receiver_activity
2271
+
2272
+ def initialize(**args)
2273
+ update!(**args)
2274
+ end
2275
+
2276
+ # Update properties of this object
2277
+ def update!(**args)
2278
+ @actions = args[:actions] if args.key?(:actions)
2279
+ @categories = args[:categories] if args.key?(:categories)
2280
+ @receiver_activity = args[:receiver_activity] if args.key?(:receiver_activity)
2281
+ end
2282
+ end
2283
+
2284
+ # Policies for apps in the personal profile of a company-owned device with a
2285
+ # work profile.
2286
+ class PersonalApplicationPolicy
2287
+ include Google::Apis::Core::Hashable
2288
+
2289
+ # The type of installation to perform.
2290
+ # Corresponds to the JSON property `installType`
2291
+ # @return [String]
2292
+ attr_accessor :install_type
2293
+
2294
+ # The package name of the application.
2295
+ # Corresponds to the JSON property `packageName`
2296
+ # @return [String]
2297
+ attr_accessor :package_name
2298
+
2299
+ def initialize(**args)
2300
+ update!(**args)
2301
+ end
2302
+
2303
+ # Update properties of this object
2304
+ def update!(**args)
2305
+ @install_type = args[:install_type] if args.key?(:install_type)
2306
+ @package_name = args[:package_name] if args.key?(:package_name)
2307
+ end
2308
+ end
2309
+
2310
+ # Policies controlling personal usage on a company-owned device with a work
2311
+ # profile.
2312
+ class PersonalUsagePolicies
2313
+ include Google::Apis::Core::Hashable
2314
+
2315
+ # Account types that can't be managed by the user.
2316
+ # Corresponds to the JSON property `accountTypesWithManagementDisabled`
2317
+ # @return [Array<String>]
2318
+ attr_accessor :account_types_with_management_disabled
2319
+
2320
+ # Whether camera is disabled.
2321
+ # Corresponds to the JSON property `cameraDisabled`
2322
+ # @return [Boolean]
2323
+ attr_accessor :camera_disabled
2324
+ alias_method :camera_disabled?, :camera_disabled
2325
+
2326
+ # Controls how long the work profile can stay off.
2327
+ # Corresponds to the JSON property `maxDaysWithWorkOff`
2328
+ # @return [Fixnum]
2329
+ attr_accessor :max_days_with_work_off
2330
+
2331
+ # Policy applied to applications in the personal profile.
2332
+ # Corresponds to the JSON property `personalApplications`
2333
+ # @return [Array<Google::Apis::AndroidmanagementV1::PersonalApplicationPolicy>]
2334
+ attr_accessor :personal_applications
2335
+
2336
+ # Used together with personalApplications to control how apps in the personal
2337
+ # profile are allowed or blocked.
2338
+ # Corresponds to the JSON property `personalPlayStoreMode`
2339
+ # @return [String]
2340
+ attr_accessor :personal_play_store_mode
2341
+
2342
+ # Whether screen capture is disabled.
2343
+ # Corresponds to the JSON property `screenCaptureDisabled`
2344
+ # @return [Boolean]
2345
+ attr_accessor :screen_capture_disabled
2346
+ alias_method :screen_capture_disabled?, :screen_capture_disabled
2347
+
2348
+ def initialize(**args)
2349
+ update!(**args)
2350
+ end
2351
+
2352
+ # Update properties of this object
2353
+ def update!(**args)
2354
+ @account_types_with_management_disabled = args[:account_types_with_management_disabled] if args.key?(:account_types_with_management_disabled)
2355
+ @camera_disabled = args[:camera_disabled] if args.key?(:camera_disabled)
2356
+ @max_days_with_work_off = args[:max_days_with_work_off] if args.key?(:max_days_with_work_off)
2357
+ @personal_applications = args[:personal_applications] if args.key?(:personal_applications)
2358
+ @personal_play_store_mode = args[:personal_play_store_mode] if args.key?(:personal_play_store_mode)
2359
+ @screen_capture_disabled = args[:screen_capture_disabled] if args.key?(:screen_capture_disabled)
2360
+ end
2361
+ end
2362
+
2363
+ # A policy resource represents a group of settings that govern the behavior of a
2364
+ # managed device and the apps installed on it.
2365
+ class Policy
2366
+ include Google::Apis::Core::Hashable
2367
+
2368
+ # Account types that can't be managed by the user.
2369
+ # Corresponds to the JSON property `accountTypesWithManagementDisabled`
2370
+ # @return [Array<String>]
2371
+ attr_accessor :account_types_with_management_disabled
2372
+
2373
+ # Whether adding new users and profiles is disabled.
2374
+ # Corresponds to the JSON property `addUserDisabled`
2375
+ # @return [Boolean]
2376
+ attr_accessor :add_user_disabled
2377
+ alias_method :add_user_disabled?, :add_user_disabled
2378
+
2379
+ # Whether adjusting the master volume is disabled.
2380
+ # Corresponds to the JSON property `adjustVolumeDisabled`
2381
+ # @return [Boolean]
2382
+ attr_accessor :adjust_volume_disabled
2383
+ alias_method :adjust_volume_disabled?, :adjust_volume_disabled
2384
+
2385
+ # Security policies set to the most secure values by default. To maintain the
2386
+ # security posture of a device, we don't recommend overriding any of the default
2387
+ # values.
2388
+ # Corresponds to the JSON property `advancedSecurityOverrides`
2389
+ # @return [Google::Apis::AndroidmanagementV1::AdvancedSecurityOverrides]
2390
+ attr_accessor :advanced_security_overrides
2391
+
2392
+ # Configuration for an always-on VPN connection.
2393
+ # Corresponds to the JSON property `alwaysOnVpnPackage`
2394
+ # @return [Google::Apis::AndroidmanagementV1::AlwaysOnVpnPackage]
2395
+ attr_accessor :always_on_vpn_package
2396
+
2397
+ # The app tracks for Android Device Policy the device can access. The device
2398
+ # receives the latest version among all accessible tracks. If no tracks are
2399
+ # specified, then the device only uses the production track.
2400
+ # Corresponds to the JSON property `androidDevicePolicyTracks`
2401
+ # @return [Array<String>]
2402
+ attr_accessor :android_device_policy_tracks
2403
+
2404
+ # The app auto update policy, which controls when automatic app updates can be
2405
+ # applied.
2406
+ # Corresponds to the JSON property `appAutoUpdatePolicy`
2407
+ # @return [String]
2408
+ attr_accessor :app_auto_update_policy
2409
+
2410
+ # Policy applied to apps.
2411
+ # Corresponds to the JSON property `applications`
2412
+ # @return [Array<Google::Apis::AndroidmanagementV1::ApplicationPolicy>]
2413
+ attr_accessor :applications
2414
+
2415
+ # Whether auto date, time, and time zone are enabled on a company-owned device.
2416
+ # If this is set, then autoTimeRequired is ignored.
2417
+ # Corresponds to the JSON property `autoDateAndTimeZone`
2418
+ # @return [String]
2419
+ attr_accessor :auto_date_and_time_zone
2420
+
2421
+ # Whether auto time is required, which prevents the user from manually setting
2422
+ # the date and time. If autoDateAndTimeZone is set, this field is ignored.
2423
+ # Corresponds to the JSON property `autoTimeRequired`
2424
+ # @return [Boolean]
2425
+ attr_accessor :auto_time_required
2426
+ alias_method :auto_time_required?, :auto_time_required
2427
+
2428
+ # Whether applications other than the ones configured in applications are
2429
+ # blocked from being installed. When set, applications that were installed under
2430
+ # a previous policy but no longer appear in the policy are automatically
2431
+ # uninstalled.
2432
+ # Corresponds to the JSON property `blockApplicationsEnabled`
2433
+ # @return [Boolean]
2434
+ attr_accessor :block_applications_enabled
2435
+ alias_method :block_applications_enabled?, :block_applications_enabled
2436
+
2437
+ # Whether configuring bluetooth is disabled.
2438
+ # Corresponds to the JSON property `bluetoothConfigDisabled`
2439
+ # @return [Boolean]
2440
+ attr_accessor :bluetooth_config_disabled
2441
+ alias_method :bluetooth_config_disabled?, :bluetooth_config_disabled
2442
+
2443
+ # Whether bluetooth contact sharing is disabled.
2444
+ # Corresponds to the JSON property `bluetoothContactSharingDisabled`
2445
+ # @return [Boolean]
2446
+ attr_accessor :bluetooth_contact_sharing_disabled
2447
+ alias_method :bluetooth_contact_sharing_disabled?, :bluetooth_contact_sharing_disabled
2448
+
2449
+ # Whether bluetooth is disabled. Prefer this setting over
2450
+ # bluetooth_config_disabled because bluetooth_config_disabled can be bypassed by
2451
+ # the user.
2452
+ # Corresponds to the JSON property `bluetoothDisabled`
2453
+ # @return [Boolean]
2454
+ attr_accessor :bluetooth_disabled
2455
+ alias_method :bluetooth_disabled?, :bluetooth_disabled
2456
+
2457
+ # Whether all cameras on the device are disabled.
2458
+ # Corresponds to the JSON property `cameraDisabled`
2459
+ # @return [Boolean]
2460
+ attr_accessor :camera_disabled
2461
+ alias_method :camera_disabled?, :camera_disabled
2462
+
2463
+ # Whether configuring cell broadcast is disabled.
2464
+ # Corresponds to the JSON property `cellBroadcastsConfigDisabled`
2465
+ # @return [Boolean]
2466
+ attr_accessor :cell_broadcasts_config_disabled
2467
+ alias_method :cell_broadcasts_config_disabled?, :cell_broadcasts_config_disabled
2468
+
2469
+ # Rules for automatically choosing a private key and certificate to authenticate
2470
+ # the device to a server. The rules are ordered by increasing precedence, so if
2471
+ # an outgoing request matches more than one rule, the last rule defines which
2472
+ # private key to use.
2473
+ # Corresponds to the JSON property `choosePrivateKeyRules`
2474
+ # @return [Array<Google::Apis::AndroidmanagementV1::ChoosePrivateKeyRule>]
2475
+ attr_accessor :choose_private_key_rules
2476
+
2477
+ # Rules declaring which mitigating actions to take when a device is not
2478
+ # compliant with its policy. When the conditions for multiple rules are
2479
+ # satisfied, all of the mitigating actions for the rules are taken. There is a
2480
+ # maximum limit of 100 rules. Use policy enforcement rules instead.
2481
+ # Corresponds to the JSON property `complianceRules`
2482
+ # @return [Array<Google::Apis::AndroidmanagementV1::ComplianceRule>]
2483
+ attr_accessor :compliance_rules
2484
+
2485
+ # Whether creating windows besides app windows is disabled.
2486
+ # Corresponds to the JSON property `createWindowsDisabled`
2487
+ # @return [Boolean]
2488
+ attr_accessor :create_windows_disabled
2489
+ alias_method :create_windows_disabled?, :create_windows_disabled
2490
+
2491
+ # Whether configuring user credentials is disabled.
2492
+ # Corresponds to the JSON property `credentialsConfigDisabled`
2493
+ # @return [Boolean]
2494
+ attr_accessor :credentials_config_disabled
2495
+ alias_method :credentials_config_disabled?, :credentials_config_disabled
2496
+
2497
+ # Whether roaming data services are disabled.
2498
+ # Corresponds to the JSON property `dataRoamingDisabled`
2499
+ # @return [Boolean]
2500
+ attr_accessor :data_roaming_disabled
2501
+ alias_method :data_roaming_disabled?, :data_roaming_disabled
2502
+
2503
+ # Whether the user is allowed to enable debugging features.
2504
+ # Corresponds to the JSON property `debuggingFeaturesAllowed`
2505
+ # @return [Boolean]
2506
+ attr_accessor :debugging_features_allowed
2507
+ alias_method :debugging_features_allowed?, :debugging_features_allowed
2508
+
2509
+ # The default permission policy for runtime permission requests.
2510
+ # Corresponds to the JSON property `defaultPermissionPolicy`
2511
+ # @return [String]
2512
+ attr_accessor :default_permission_policy
2513
+
2514
+ # Provides a user-facing message with locale info. The maximum message length is
2515
+ # 4096 characters.
2516
+ # Corresponds to the JSON property `deviceOwnerLockScreenInfo`
2517
+ # @return [Google::Apis::AndroidmanagementV1::UserFacingMessage]
2518
+ attr_accessor :device_owner_lock_screen_info
2519
+
2520
+ # Whether encryption is enabled
2521
+ # Corresponds to the JSON property `encryptionPolicy`
2522
+ # @return [String]
2523
+ attr_accessor :encryption_policy
2524
+
2525
+ # Whether app verification is force-enabled.
2526
+ # Corresponds to the JSON property `ensureVerifyAppsEnabled`
2527
+ # @return [Boolean]
2528
+ attr_accessor :ensure_verify_apps_enabled
2529
+ alias_method :ensure_verify_apps_enabled?, :ensure_verify_apps_enabled
2530
+
2531
+ # Whether factory resetting from settings is disabled.
2532
+ # Corresponds to the JSON property `factoryResetDisabled`
2533
+ # @return [Boolean]
2534
+ attr_accessor :factory_reset_disabled
2535
+ alias_method :factory_reset_disabled?, :factory_reset_disabled
2536
+
2537
+ # Email addresses of device administrators for factory reset protection. When
2538
+ # the device is factory reset, it will require one of these admins to log in
2539
+ # with the Google account email and password to unlock the device. If no admins
2540
+ # are specified, the device won't provide factory reset protection.
2541
+ # Corresponds to the JSON property `frpAdminEmails`
2542
+ # @return [Array<String>]
2543
+ attr_accessor :frp_admin_emails
2544
+
2545
+ # Whether the user is allowed to have fun. Controls whether the Easter egg game
2546
+ # in Settings is disabled.
2547
+ # Corresponds to the JSON property `funDisabled`
2548
+ # @return [Boolean]
2549
+ attr_accessor :fun_disabled
2550
+ alias_method :fun_disabled?, :fun_disabled
2551
+
2552
+ # Whether user installation of apps is disabled.
2553
+ # Corresponds to the JSON property `installAppsDisabled`
2554
+ # @return [Boolean]
2555
+ attr_accessor :install_apps_disabled
2556
+ alias_method :install_apps_disabled?, :install_apps_disabled
2557
+
2558
+ # Whether the user is allowed to enable the "Unknown Sources" setting, which
2559
+ # allows installation of apps from unknown sources.
2560
+ # Corresponds to the JSON property `installUnknownSourcesAllowed`
2561
+ # @return [Boolean]
2562
+ attr_accessor :install_unknown_sources_allowed
2563
+ alias_method :install_unknown_sources_allowed?, :install_unknown_sources_allowed
2564
+
2565
+ # Whether the keyguard is disabled.
2566
+ # Corresponds to the JSON property `keyguardDisabled`
2567
+ # @return [Boolean]
2568
+ attr_accessor :keyguard_disabled
2569
+ alias_method :keyguard_disabled?, :keyguard_disabled
2570
+
2571
+ # Disabled keyguard customizations, such as widgets.
2572
+ # Corresponds to the JSON property `keyguardDisabledFeatures`
2573
+ # @return [Array<String>]
2574
+ attr_accessor :keyguard_disabled_features
2575
+
2576
+ # Whether the kiosk custom launcher is enabled. This replaces the home screen
2577
+ # with a launcher that locks down the device to the apps installed via the
2578
+ # applications setting. Apps appear on a single page in alphabetical order. Use
2579
+ # kioskCustomization to further configure the kiosk device behavior.
2580
+ # Corresponds to the JSON property `kioskCustomLauncherEnabled`
2581
+ # @return [Boolean]
2582
+ attr_accessor :kiosk_custom_launcher_enabled
2583
+ alias_method :kiosk_custom_launcher_enabled?, :kiosk_custom_launcher_enabled
2584
+
2585
+ # Settings controlling the behavior of a device in kiosk mode. To enable kiosk
2586
+ # mode, set kioskCustomLauncherEnabled to true or specify an app in the policy
2587
+ # with installType KIOSK.
2588
+ # Corresponds to the JSON property `kioskCustomization`
2589
+ # @return [Google::Apis::AndroidmanagementV1::KioskCustomization]
2590
+ attr_accessor :kiosk_customization
2591
+
2592
+ # The degree of location detection enabled.
2593
+ # Corresponds to the JSON property `locationMode`
2594
+ # @return [String]
2595
+ attr_accessor :location_mode
2596
+
2597
+ # Provides a user-facing message with locale info. The maximum message length is
2598
+ # 4096 characters.
2599
+ # Corresponds to the JSON property `longSupportMessage`
2600
+ # @return [Google::Apis::AndroidmanagementV1::UserFacingMessage]
2601
+ attr_accessor :long_support_message
2602
+
2603
+ # Maximum time in milliseconds for user activity until the device locks. A value
2604
+ # of 0 means there is no restriction.
2605
+ # Corresponds to the JSON property `maximumTimeToLock`
2606
+ # @return [Fixnum]
2607
+ attr_accessor :maximum_time_to_lock
2608
+
2609
+ # The minimum allowed Android API level.
2610
+ # Corresponds to the JSON property `minimumApiLevel`
2611
+ # @return [Fixnum]
2612
+ attr_accessor :minimum_api_level
2613
+
2614
+ # Whether configuring mobile networks is disabled.
2615
+ # Corresponds to the JSON property `mobileNetworksConfigDisabled`
2616
+ # @return [Boolean]
2617
+ attr_accessor :mobile_networks_config_disabled
2618
+ alias_method :mobile_networks_config_disabled?, :mobile_networks_config_disabled
2619
+
2620
+ # Whether adding or removing accounts is disabled.
2621
+ # Corresponds to the JSON property `modifyAccountsDisabled`
2622
+ # @return [Boolean]
2623
+ attr_accessor :modify_accounts_disabled
2624
+ alias_method :modify_accounts_disabled?, :modify_accounts_disabled
2625
+
2626
+ # Whether the user mounting physical external media is disabled.
2627
+ # Corresponds to the JSON property `mountPhysicalMediaDisabled`
2628
+ # @return [Boolean]
2629
+ attr_accessor :mount_physical_media_disabled
2630
+ alias_method :mount_physical_media_disabled?, :mount_physical_media_disabled
2631
+
2632
+ # The name of the policy in the form enterprises/`enterpriseId`/policies/`
2633
+ # policyId`.
2634
+ # Corresponds to the JSON property `name`
2635
+ # @return [String]
2636
+ attr_accessor :name
2637
+
2638
+ # Whether the network escape hatch is enabled. If a network connection can't be
2639
+ # made at boot time, the escape hatch prompts the user to temporarily connect to
2640
+ # a network in order to refresh the device policy. After applying policy, the
2641
+ # temporary network will be forgotten and the device will continue booting. This
2642
+ # prevents being unable to connect to a network if there is no suitable network
2643
+ # in the last policy and the device boots into an app in lock task mode, or the
2644
+ # user is otherwise unable to reach device settings.
2645
+ # Corresponds to the JSON property `networkEscapeHatchEnabled`
2646
+ # @return [Boolean]
2647
+ attr_accessor :network_escape_hatch_enabled
2648
+ alias_method :network_escape_hatch_enabled?, :network_escape_hatch_enabled
2649
+
2650
+ # Whether resetting network settings is disabled.
2651
+ # Corresponds to the JSON property `networkResetDisabled`
2652
+ # @return [Boolean]
2653
+ attr_accessor :network_reset_disabled
2654
+ alias_method :network_reset_disabled?, :network_reset_disabled
2655
+
2656
+ # Network configuration for the device. See configure networks for more
2657
+ # information.
2658
+ # Corresponds to the JSON property `openNetworkConfiguration`
2659
+ # @return [Hash<String,Object>]
2660
+ attr_accessor :open_network_configuration
2661
+
2662
+ # Whether using NFC to beam data from apps is disabled.
2663
+ # Corresponds to the JSON property `outgoingBeamDisabled`
2664
+ # @return [Boolean]
2665
+ attr_accessor :outgoing_beam_disabled
2666
+ alias_method :outgoing_beam_disabled?, :outgoing_beam_disabled
2667
+
2668
+ # Whether outgoing calls are disabled.
2669
+ # Corresponds to the JSON property `outgoingCallsDisabled`
2670
+ # @return [Boolean]
2671
+ attr_accessor :outgoing_calls_disabled
2672
+ alias_method :outgoing_calls_disabled?, :outgoing_calls_disabled
2673
+
2674
+ # Password requirement policies. Different policies can be set for work profile
2675
+ # or fully managed devices by setting the password_scope field in the policy.
2676
+ # Corresponds to the JSON property `passwordPolicies`
2677
+ # @return [Array<Google::Apis::AndroidmanagementV1::PasswordRequirements>]
2678
+ attr_accessor :password_policies
2679
+
2680
+ # Requirements for the password used to unlock a device.
2681
+ # Corresponds to the JSON property `passwordRequirements`
2682
+ # @return [Google::Apis::AndroidmanagementV1::PasswordRequirements]
2683
+ attr_accessor :password_requirements
2684
+
2685
+ # Explicit permission or group grants or denials for all apps. These values
2686
+ # override the default_permission_policy.
2687
+ # Corresponds to the JSON property `permissionGrants`
2688
+ # @return [Array<Google::Apis::AndroidmanagementV1::PermissionGrant>]
2689
+ attr_accessor :permission_grants
2690
+
2691
+ # A list of package names.
2692
+ # Corresponds to the JSON property `permittedAccessibilityServices`
2693
+ # @return [Google::Apis::AndroidmanagementV1::PackageNameList]
2694
+ attr_accessor :permitted_accessibility_services
2695
+
2696
+ # A list of package names.
2697
+ # Corresponds to the JSON property `permittedInputMethods`
2698
+ # @return [Google::Apis::AndroidmanagementV1::PackageNameList]
2699
+ attr_accessor :permitted_input_methods
2700
+
2701
+ # Default intent handler activities.
2702
+ # Corresponds to the JSON property `persistentPreferredActivities`
2703
+ # @return [Array<Google::Apis::AndroidmanagementV1::PersistentPreferredActivity>]
2704
+ attr_accessor :persistent_preferred_activities
2705
+
2706
+ # Policies controlling personal usage on a company-owned device with a work
2707
+ # profile.
2708
+ # Corresponds to the JSON property `personalUsagePolicies`
2709
+ # @return [Google::Apis::AndroidmanagementV1::PersonalUsagePolicies]
2710
+ attr_accessor :personal_usage_policies
2711
+
2712
+ # This mode controls which apps are available to the user in the Play Store and
2713
+ # the behavior on the device when apps are removed from the policy.
2714
+ # Corresponds to the JSON property `playStoreMode`
2715
+ # @return [String]
2716
+ attr_accessor :play_store_mode
2717
+
2718
+ # Rules that define the behavior when a particular policy can not be applied on
2719
+ # device
2720
+ # Corresponds to the JSON property `policyEnforcementRules`
2721
+ # @return [Array<Google::Apis::AndroidmanagementV1::PolicyEnforcementRule>]
2722
+ attr_accessor :policy_enforcement_rules
2723
+
2724
+ # Allows showing UI on a device for a user to choose a private key alias if
2725
+ # there are no matching rules in ChoosePrivateKeyRules. For devices below
2726
+ # Android P, setting this may leave enterprise keys vulnerable.
2727
+ # Corresponds to the JSON property `privateKeySelectionEnabled`
2728
+ # @return [Boolean]
2729
+ attr_accessor :private_key_selection_enabled
2730
+ alias_method :private_key_selection_enabled?, :private_key_selection_enabled
2731
+
2732
+ # Configuration info for an HTTP proxy. For a direct proxy, set the host, port,
2733
+ # and excluded_hosts fields. For a PAC script proxy, set the pac_uri field.
2734
+ # Corresponds to the JSON property `recommendedGlobalProxy`
2735
+ # @return [Google::Apis::AndroidmanagementV1::ProxyInfo]
2736
+ attr_accessor :recommended_global_proxy
2737
+
2738
+ # Whether removing other users is disabled.
2739
+ # Corresponds to the JSON property `removeUserDisabled`
2740
+ # @return [Boolean]
2741
+ attr_accessor :remove_user_disabled
2742
+ alias_method :remove_user_disabled?, :remove_user_disabled
2743
+
2744
+ # Whether rebooting the device into safe boot is disabled.
2745
+ # Corresponds to the JSON property `safeBootDisabled`
2746
+ # @return [Boolean]
2747
+ attr_accessor :safe_boot_disabled
2748
+ alias_method :safe_boot_disabled?, :safe_boot_disabled
2749
+
2750
+ # Whether screen capture is disabled.
2751
+ # Corresponds to the JSON property `screenCaptureDisabled`
2752
+ # @return [Boolean]
2753
+ attr_accessor :screen_capture_disabled
2754
+ alias_method :screen_capture_disabled?, :screen_capture_disabled
2755
+
2756
+ # Whether changing the user icon is disabled.
2757
+ # Corresponds to the JSON property `setUserIconDisabled`
2758
+ # @return [Boolean]
2759
+ attr_accessor :set_user_icon_disabled
2760
+ alias_method :set_user_icon_disabled?, :set_user_icon_disabled
2761
+
2762
+ # Whether changing the wallpaper is disabled.
2763
+ # Corresponds to the JSON property `setWallpaperDisabled`
2764
+ # @return [Boolean]
2765
+ attr_accessor :set_wallpaper_disabled
2766
+ alias_method :set_wallpaper_disabled?, :set_wallpaper_disabled
2767
+
2768
+ # Actions to take during the setup process.
2769
+ # Corresponds to the JSON property `setupActions`
2770
+ # @return [Array<Google::Apis::AndroidmanagementV1::SetupAction>]
2771
+ attr_accessor :setup_actions
2772
+
2773
+ # Whether location sharing is disabled.
2774
+ # Corresponds to the JSON property `shareLocationDisabled`
2775
+ # @return [Boolean]
2776
+ attr_accessor :share_location_disabled
2777
+ alias_method :share_location_disabled?, :share_location_disabled
2778
+
2779
+ # Provides a user-facing message with locale info. The maximum message length is
2780
+ # 4096 characters.
2781
+ # Corresponds to the JSON property `shortSupportMessage`
2782
+ # @return [Google::Apis::AndroidmanagementV1::UserFacingMessage]
2783
+ attr_accessor :short_support_message
2784
+
2785
+ # Flag to skip hints on the first use. Enterprise admin can enable the system
2786
+ # recommendation for apps to skip their user tutorial and other introductory
2787
+ # hints on first start-up.
2788
+ # Corresponds to the JSON property `skipFirstUseHintsEnabled`
2789
+ # @return [Boolean]
2790
+ attr_accessor :skip_first_use_hints_enabled
2791
+ alias_method :skip_first_use_hints_enabled?, :skip_first_use_hints_enabled
2792
+
2793
+ # Whether sending and receiving SMS messages is disabled.
2794
+ # Corresponds to the JSON property `smsDisabled`
2795
+ # @return [Boolean]
2796
+ attr_accessor :sms_disabled
2797
+ alias_method :sms_disabled?, :sms_disabled
2798
+
2799
+ # Whether the status bar is disabled. This disables notifications, quick
2800
+ # settings, and other screen overlays that allow escape from full-screen mode.
2801
+ # DEPRECATED. To disable the status bar on a kiosk device, use InstallType KIOSK
2802
+ # or kioskCustomLauncherEnabled.
2803
+ # Corresponds to the JSON property `statusBarDisabled`
2804
+ # @return [Boolean]
2805
+ attr_accessor :status_bar_disabled
2806
+ alias_method :status_bar_disabled?, :status_bar_disabled
2807
+
2808
+ # Settings controlling the behavior of status reports.
2809
+ # Corresponds to the JSON property `statusReportingSettings`
2810
+ # @return [Google::Apis::AndroidmanagementV1::StatusReportingSettings]
2811
+ attr_accessor :status_reporting_settings
2812
+
2813
+ # The battery plugged in modes for which the device stays on. When using this
2814
+ # setting, it is recommended to clear maximum_time_to_lock so that the device
2815
+ # doesn't lock itself while it stays on.
2816
+ # Corresponds to the JSON property `stayOnPluggedModes`
2817
+ # @return [Array<String>]
2818
+ attr_accessor :stay_on_plugged_modes
2819
+
2820
+ # Configuration for managing system updates
2821
+ # Corresponds to the JSON property `systemUpdate`
2822
+ # @return [Google::Apis::AndroidmanagementV1::SystemUpdate]
2823
+ attr_accessor :system_update
2824
+
2825
+ # Whether configuring tethering and portable hotspots is disabled.
2826
+ # Corresponds to the JSON property `tetheringConfigDisabled`
2827
+ # @return [Boolean]
2828
+ attr_accessor :tethering_config_disabled
2829
+ alias_method :tethering_config_disabled?, :tethering_config_disabled
2830
+
2831
+ # Whether user uninstallation of applications is disabled.
2832
+ # Corresponds to the JSON property `uninstallAppsDisabled`
2833
+ # @return [Boolean]
2834
+ attr_accessor :uninstall_apps_disabled
2835
+ alias_method :uninstall_apps_disabled?, :uninstall_apps_disabled
2836
+
2837
+ # Whether the microphone is muted and adjusting microphone volume is disabled.
2838
+ # Corresponds to the JSON property `unmuteMicrophoneDisabled`
2839
+ # @return [Boolean]
2840
+ attr_accessor :unmute_microphone_disabled
2841
+ alias_method :unmute_microphone_disabled?, :unmute_microphone_disabled
2842
+
2843
+ # Whether transferring files over USB is disabled.
2844
+ # Corresponds to the JSON property `usbFileTransferDisabled`
2845
+ # @return [Boolean]
2846
+ attr_accessor :usb_file_transfer_disabled
2847
+ alias_method :usb_file_transfer_disabled?, :usb_file_transfer_disabled
2848
+
2849
+ # Whether USB storage is enabled. Deprecated.
2850
+ # Corresponds to the JSON property `usbMassStorageEnabled`
2851
+ # @return [Boolean]
2852
+ attr_accessor :usb_mass_storage_enabled
2853
+ alias_method :usb_mass_storage_enabled?, :usb_mass_storage_enabled
2854
+
2855
+ # The version of the policy. This is a read-only field. The version is
2856
+ # incremented each time the policy is updated.
2857
+ # Corresponds to the JSON property `version`
2858
+ # @return [Fixnum]
2859
+ attr_accessor :version
2860
+
2861
+ # Whether configuring VPN is disabled.
2862
+ # Corresponds to the JSON property `vpnConfigDisabled`
2863
+ # @return [Boolean]
2864
+ attr_accessor :vpn_config_disabled
2865
+ alias_method :vpn_config_disabled?, :vpn_config_disabled
2866
+
2867
+ # Whether configuring Wi-Fi access points is disabled.
2868
+ # Corresponds to the JSON property `wifiConfigDisabled`
2869
+ # @return [Boolean]
2870
+ attr_accessor :wifi_config_disabled
2871
+ alias_method :wifi_config_disabled?, :wifi_config_disabled
2872
+
2873
+ # DEPRECATED - Use wifi_config_disabled.
2874
+ # Corresponds to the JSON property `wifiConfigsLockdownEnabled`
2875
+ # @return [Boolean]
2876
+ attr_accessor :wifi_configs_lockdown_enabled
2877
+ alias_method :wifi_configs_lockdown_enabled?, :wifi_configs_lockdown_enabled
2878
+
2879
+ def initialize(**args)
2880
+ update!(**args)
2881
+ end
2882
+
2883
+ # Update properties of this object
2884
+ def update!(**args)
2885
+ @account_types_with_management_disabled = args[:account_types_with_management_disabled] if args.key?(:account_types_with_management_disabled)
2886
+ @add_user_disabled = args[:add_user_disabled] if args.key?(:add_user_disabled)
2887
+ @adjust_volume_disabled = args[:adjust_volume_disabled] if args.key?(:adjust_volume_disabled)
2888
+ @advanced_security_overrides = args[:advanced_security_overrides] if args.key?(:advanced_security_overrides)
2889
+ @always_on_vpn_package = args[:always_on_vpn_package] if args.key?(:always_on_vpn_package)
2890
+ @android_device_policy_tracks = args[:android_device_policy_tracks] if args.key?(:android_device_policy_tracks)
2891
+ @app_auto_update_policy = args[:app_auto_update_policy] if args.key?(:app_auto_update_policy)
2892
+ @applications = args[:applications] if args.key?(:applications)
2893
+ @auto_date_and_time_zone = args[:auto_date_and_time_zone] if args.key?(:auto_date_and_time_zone)
2894
+ @auto_time_required = args[:auto_time_required] if args.key?(:auto_time_required)
2895
+ @block_applications_enabled = args[:block_applications_enabled] if args.key?(:block_applications_enabled)
2896
+ @bluetooth_config_disabled = args[:bluetooth_config_disabled] if args.key?(:bluetooth_config_disabled)
2897
+ @bluetooth_contact_sharing_disabled = args[:bluetooth_contact_sharing_disabled] if args.key?(:bluetooth_contact_sharing_disabled)
2898
+ @bluetooth_disabled = args[:bluetooth_disabled] if args.key?(:bluetooth_disabled)
2899
+ @camera_disabled = args[:camera_disabled] if args.key?(:camera_disabled)
2900
+ @cell_broadcasts_config_disabled = args[:cell_broadcasts_config_disabled] if args.key?(:cell_broadcasts_config_disabled)
2901
+ @choose_private_key_rules = args[:choose_private_key_rules] if args.key?(:choose_private_key_rules)
2902
+ @compliance_rules = args[:compliance_rules] if args.key?(:compliance_rules)
2903
+ @create_windows_disabled = args[:create_windows_disabled] if args.key?(:create_windows_disabled)
2904
+ @credentials_config_disabled = args[:credentials_config_disabled] if args.key?(:credentials_config_disabled)
2905
+ @data_roaming_disabled = args[:data_roaming_disabled] if args.key?(:data_roaming_disabled)
2906
+ @debugging_features_allowed = args[:debugging_features_allowed] if args.key?(:debugging_features_allowed)
2907
+ @default_permission_policy = args[:default_permission_policy] if args.key?(:default_permission_policy)
2908
+ @device_owner_lock_screen_info = args[:device_owner_lock_screen_info] if args.key?(:device_owner_lock_screen_info)
2909
+ @encryption_policy = args[:encryption_policy] if args.key?(:encryption_policy)
2910
+ @ensure_verify_apps_enabled = args[:ensure_verify_apps_enabled] if args.key?(:ensure_verify_apps_enabled)
2911
+ @factory_reset_disabled = args[:factory_reset_disabled] if args.key?(:factory_reset_disabled)
2912
+ @frp_admin_emails = args[:frp_admin_emails] if args.key?(:frp_admin_emails)
2913
+ @fun_disabled = args[:fun_disabled] if args.key?(:fun_disabled)
2914
+ @install_apps_disabled = args[:install_apps_disabled] if args.key?(:install_apps_disabled)
2915
+ @install_unknown_sources_allowed = args[:install_unknown_sources_allowed] if args.key?(:install_unknown_sources_allowed)
2916
+ @keyguard_disabled = args[:keyguard_disabled] if args.key?(:keyguard_disabled)
2917
+ @keyguard_disabled_features = args[:keyguard_disabled_features] if args.key?(:keyguard_disabled_features)
2918
+ @kiosk_custom_launcher_enabled = args[:kiosk_custom_launcher_enabled] if args.key?(:kiosk_custom_launcher_enabled)
2919
+ @kiosk_customization = args[:kiosk_customization] if args.key?(:kiosk_customization)
2920
+ @location_mode = args[:location_mode] if args.key?(:location_mode)
2921
+ @long_support_message = args[:long_support_message] if args.key?(:long_support_message)
2922
+ @maximum_time_to_lock = args[:maximum_time_to_lock] if args.key?(:maximum_time_to_lock)
2923
+ @minimum_api_level = args[:minimum_api_level] if args.key?(:minimum_api_level)
2924
+ @mobile_networks_config_disabled = args[:mobile_networks_config_disabled] if args.key?(:mobile_networks_config_disabled)
2925
+ @modify_accounts_disabled = args[:modify_accounts_disabled] if args.key?(:modify_accounts_disabled)
2926
+ @mount_physical_media_disabled = args[:mount_physical_media_disabled] if args.key?(:mount_physical_media_disabled)
2927
+ @name = args[:name] if args.key?(:name)
2928
+ @network_escape_hatch_enabled = args[:network_escape_hatch_enabled] if args.key?(:network_escape_hatch_enabled)
2929
+ @network_reset_disabled = args[:network_reset_disabled] if args.key?(:network_reset_disabled)
2930
+ @open_network_configuration = args[:open_network_configuration] if args.key?(:open_network_configuration)
2931
+ @outgoing_beam_disabled = args[:outgoing_beam_disabled] if args.key?(:outgoing_beam_disabled)
2932
+ @outgoing_calls_disabled = args[:outgoing_calls_disabled] if args.key?(:outgoing_calls_disabled)
2933
+ @password_policies = args[:password_policies] if args.key?(:password_policies)
2934
+ @password_requirements = args[:password_requirements] if args.key?(:password_requirements)
2935
+ @permission_grants = args[:permission_grants] if args.key?(:permission_grants)
2936
+ @permitted_accessibility_services = args[:permitted_accessibility_services] if args.key?(:permitted_accessibility_services)
2937
+ @permitted_input_methods = args[:permitted_input_methods] if args.key?(:permitted_input_methods)
2938
+ @persistent_preferred_activities = args[:persistent_preferred_activities] if args.key?(:persistent_preferred_activities)
2939
+ @personal_usage_policies = args[:personal_usage_policies] if args.key?(:personal_usage_policies)
2940
+ @play_store_mode = args[:play_store_mode] if args.key?(:play_store_mode)
2941
+ @policy_enforcement_rules = args[:policy_enforcement_rules] if args.key?(:policy_enforcement_rules)
2942
+ @private_key_selection_enabled = args[:private_key_selection_enabled] if args.key?(:private_key_selection_enabled)
2943
+ @recommended_global_proxy = args[:recommended_global_proxy] if args.key?(:recommended_global_proxy)
2944
+ @remove_user_disabled = args[:remove_user_disabled] if args.key?(:remove_user_disabled)
2945
+ @safe_boot_disabled = args[:safe_boot_disabled] if args.key?(:safe_boot_disabled)
2946
+ @screen_capture_disabled = args[:screen_capture_disabled] if args.key?(:screen_capture_disabled)
2947
+ @set_user_icon_disabled = args[:set_user_icon_disabled] if args.key?(:set_user_icon_disabled)
2948
+ @set_wallpaper_disabled = args[:set_wallpaper_disabled] if args.key?(:set_wallpaper_disabled)
2949
+ @setup_actions = args[:setup_actions] if args.key?(:setup_actions)
2950
+ @share_location_disabled = args[:share_location_disabled] if args.key?(:share_location_disabled)
2951
+ @short_support_message = args[:short_support_message] if args.key?(:short_support_message)
2952
+ @skip_first_use_hints_enabled = args[:skip_first_use_hints_enabled] if args.key?(:skip_first_use_hints_enabled)
2953
+ @sms_disabled = args[:sms_disabled] if args.key?(:sms_disabled)
2954
+ @status_bar_disabled = args[:status_bar_disabled] if args.key?(:status_bar_disabled)
2955
+ @status_reporting_settings = args[:status_reporting_settings] if args.key?(:status_reporting_settings)
2956
+ @stay_on_plugged_modes = args[:stay_on_plugged_modes] if args.key?(:stay_on_plugged_modes)
2957
+ @system_update = args[:system_update] if args.key?(:system_update)
2958
+ @tethering_config_disabled = args[:tethering_config_disabled] if args.key?(:tethering_config_disabled)
2959
+ @uninstall_apps_disabled = args[:uninstall_apps_disabled] if args.key?(:uninstall_apps_disabled)
2960
+ @unmute_microphone_disabled = args[:unmute_microphone_disabled] if args.key?(:unmute_microphone_disabled)
2961
+ @usb_file_transfer_disabled = args[:usb_file_transfer_disabled] if args.key?(:usb_file_transfer_disabled)
2962
+ @usb_mass_storage_enabled = args[:usb_mass_storage_enabled] if args.key?(:usb_mass_storage_enabled)
2963
+ @version = args[:version] if args.key?(:version)
2964
+ @vpn_config_disabled = args[:vpn_config_disabled] if args.key?(:vpn_config_disabled)
2965
+ @wifi_config_disabled = args[:wifi_config_disabled] if args.key?(:wifi_config_disabled)
2966
+ @wifi_configs_lockdown_enabled = args[:wifi_configs_lockdown_enabled] if args.key?(:wifi_configs_lockdown_enabled)
2967
+ end
2968
+ end
2969
+
2970
+ # A rule that defines the actions to take if a device or work profile is not
2971
+ # compliant with the policy specified in settingName.
2972
+ class PolicyEnforcementRule
2973
+ include Google::Apis::Core::Hashable
2974
+
2975
+ # An action to block access to apps and data on a fully managed device or in a
2976
+ # work profile. This action also triggers a device or work profile to displays a
2977
+ # user-facing notification with information (where possible) on how to correct
2978
+ # the compliance issue. Note: wipeAction must also be specified.
2979
+ # Corresponds to the JSON property `blockAction`
2980
+ # @return [Google::Apis::AndroidmanagementV1::BlockAction]
2981
+ attr_accessor :block_action
2982
+
2983
+ # The top-level policy to enforce. For example, applications or passwordPolicies.
2984
+ # Corresponds to the JSON property `settingName`
2985
+ # @return [String]
2986
+ attr_accessor :setting_name
2987
+
2988
+ # An action to reset a fully managed device or delete a work profile. Note:
2989
+ # blockAction must also be specified.
2990
+ # Corresponds to the JSON property `wipeAction`
2991
+ # @return [Google::Apis::AndroidmanagementV1::WipeAction]
2992
+ attr_accessor :wipe_action
2993
+
2994
+ def initialize(**args)
2995
+ update!(**args)
2996
+ end
2997
+
2998
+ # Update properties of this object
2999
+ def update!(**args)
3000
+ @block_action = args[:block_action] if args.key?(:block_action)
3001
+ @setting_name = args[:setting_name] if args.key?(:setting_name)
3002
+ @wipe_action = args[:wipe_action] if args.key?(:wipe_action)
3003
+ end
3004
+ end
3005
+
3006
+ # Additional details regarding the security posture of the device.
3007
+ class PostureDetail
3008
+ include Google::Apis::Core::Hashable
3009
+
3010
+ # Corresponding admin-facing advice to mitigate this security risk and improve
3011
+ # the security posture of the device.
3012
+ # Corresponds to the JSON property `advice`
3013
+ # @return [Array<Google::Apis::AndroidmanagementV1::UserFacingMessage>]
3014
+ attr_accessor :advice
3015
+
3016
+ # A specific security risk that negatively affects the security posture of the
3017
+ # device.
3018
+ # Corresponds to the JSON property `securityRisk`
3019
+ # @return [String]
3020
+ attr_accessor :security_risk
3021
+
3022
+ def initialize(**args)
3023
+ update!(**args)
3024
+ end
3025
+
3026
+ # Update properties of this object
3027
+ def update!(**args)
3028
+ @advice = args[:advice] if args.key?(:advice)
3029
+ @security_risk = args[:security_risk] if args.key?(:security_risk)
3030
+ end
3031
+ end
3032
+
3033
+ # A power management event.
3034
+ class PowerManagementEvent
3035
+ include Google::Apis::Core::Hashable
3036
+
3037
+ # For BATTERY_LEVEL_COLLECTED events, the battery level as a percentage.
3038
+ # Corresponds to the JSON property `batteryLevel`
3039
+ # @return [Float]
3040
+ attr_accessor :battery_level
3041
+
3042
+ # The creation time of the event.
3043
+ # Corresponds to the JSON property `createTime`
3044
+ # @return [String]
3045
+ attr_accessor :create_time
3046
+
3047
+ # Event type.
3048
+ # Corresponds to the JSON property `eventType`
3049
+ # @return [String]
3050
+ attr_accessor :event_type
3051
+
3052
+ def initialize(**args)
3053
+ update!(**args)
3054
+ end
3055
+
3056
+ # Update properties of this object
3057
+ def update!(**args)
3058
+ @battery_level = args[:battery_level] if args.key?(:battery_level)
3059
+ @create_time = args[:create_time] if args.key?(:create_time)
3060
+ @event_type = args[:event_type] if args.key?(:event_type)
3061
+ end
3062
+ end
3063
+
3064
+ # Configuration info for an HTTP proxy. For a direct proxy, set the host, port,
3065
+ # and excluded_hosts fields. For a PAC script proxy, set the pac_uri field.
3066
+ class ProxyInfo
3067
+ include Google::Apis::Core::Hashable
3068
+
3069
+ # For a direct proxy, the hosts for which the proxy is bypassed. The host names
3070
+ # may contain wildcards such as *.example.com.
3071
+ # Corresponds to the JSON property `excludedHosts`
3072
+ # @return [Array<String>]
3073
+ attr_accessor :excluded_hosts
3074
+
3075
+ # The host of the direct proxy.
3076
+ # Corresponds to the JSON property `host`
3077
+ # @return [String]
3078
+ attr_accessor :host
3079
+
3080
+ # The URI of the PAC script used to configure the proxy.
3081
+ # Corresponds to the JSON property `pacUri`
3082
+ # @return [String]
3083
+ attr_accessor :pac_uri
3084
+
3085
+ # The port of the direct proxy.
3086
+ # Corresponds to the JSON property `port`
3087
+ # @return [Fixnum]
3088
+ attr_accessor :port
3089
+
3090
+ def initialize(**args)
3091
+ update!(**args)
3092
+ end
3093
+
3094
+ # Update properties of this object
3095
+ def update!(**args)
3096
+ @excluded_hosts = args[:excluded_hosts] if args.key?(:excluded_hosts)
3097
+ @host = args[:host] if args.key?(:host)
3098
+ @pac_uri = args[:pac_uri] if args.key?(:pac_uri)
3099
+ @port = args[:port] if args.key?(:port)
3100
+ end
3101
+ end
3102
+
3103
+ # The security posture of the device, as determined by the current device state
3104
+ # and the policies applied.
3105
+ class SecurityPosture
3106
+ include Google::Apis::Core::Hashable
3107
+
3108
+ # Device's security posture value.
3109
+ # Corresponds to the JSON property `devicePosture`
3110
+ # @return [String]
3111
+ attr_accessor :device_posture
3112
+
3113
+ # Additional details regarding the security posture of the device.
3114
+ # Corresponds to the JSON property `postureDetails`
3115
+ # @return [Array<Google::Apis::AndroidmanagementV1::PostureDetail>]
3116
+ attr_accessor :posture_details
3117
+
3118
+ def initialize(**args)
3119
+ update!(**args)
3120
+ end
3121
+
3122
+ # Update properties of this object
3123
+ def update!(**args)
3124
+ @device_posture = args[:device_posture] if args.key?(:device_posture)
3125
+ @posture_details = args[:posture_details] if args.key?(:posture_details)
3126
+ end
3127
+ end
3128
+
3129
+ # An action executed during setup.
3130
+ class SetupAction
3131
+ include Google::Apis::Core::Hashable
3132
+
3133
+ # Provides a user-facing message with locale info. The maximum message length is
3134
+ # 4096 characters.
3135
+ # Corresponds to the JSON property `description`
3136
+ # @return [Google::Apis::AndroidmanagementV1::UserFacingMessage]
3137
+ attr_accessor :description
3138
+
3139
+ # An action to launch an app.
3140
+ # Corresponds to the JSON property `launchApp`
3141
+ # @return [Google::Apis::AndroidmanagementV1::LaunchAppAction]
3142
+ attr_accessor :launch_app
3143
+
3144
+ # Provides a user-facing message with locale info. The maximum message length is
3145
+ # 4096 characters.
3146
+ # Corresponds to the JSON property `title`
3147
+ # @return [Google::Apis::AndroidmanagementV1::UserFacingMessage]
3148
+ attr_accessor :title
3149
+
3150
+ def initialize(**args)
3151
+ update!(**args)
3152
+ end
3153
+
3154
+ # Update properties of this object
3155
+ def update!(**args)
3156
+ @description = args[:description] if args.key?(:description)
3157
+ @launch_app = args[:launch_app] if args.key?(:launch_app)
3158
+ @title = args[:title] if args.key?(:title)
3159
+ end
3160
+ end
3161
+
3162
+ # A resource containing sign in details for an enterprise.
3163
+ class SigninDetail
3164
+ include Google::Apis::Core::Hashable
3165
+
3166
+ # Controls whether personal usage is allowed on a device provisioned with this
3167
+ # enrollment token.For company-owned devices: Enabling personal usage allows the
3168
+ # user to set up a work profile on the device. Disabling personal usage requires
3169
+ # the user provision the device as a fully managed device.For personally-owned
3170
+ # devices: Enabling personal usage allows the user to set up a work profile on
3171
+ # the device. Disabling personal usage will prevent the device from provisioning.
3172
+ # Personal usage cannot be disabled on personally-owned device.
3173
+ # Corresponds to the JSON property `allowPersonalUsage`
3174
+ # @return [String]
3175
+ attr_accessor :allow_personal_usage
3176
+
3177
+ # A JSON string whose UTF-8 representation can be used to generate a QR code to
3178
+ # enroll a device with this enrollment token. To enroll a device using NFC, the
3179
+ # NFC record must contain a serialized java.util.Properties representation of
3180
+ # the properties in the JSON. This is a read-only field generated by the server.
3181
+ # Corresponds to the JSON property `qrCode`
3182
+ # @return [String]
3183
+ attr_accessor :qr_code
3184
+
3185
+ # An enterprise wide enrollment token used to trigger custom sign-in flow. This
3186
+ # is a read-only field generated by the server.
3187
+ # Corresponds to the JSON property `signinEnrollmentToken`
3188
+ # @return [String]
3189
+ attr_accessor :signin_enrollment_token
3190
+
3191
+ # Sign-in URL for authentication when device is provisioned with a sign-in
3192
+ # enrollment token. The sign-in endpoint should finish authentication flow with
3193
+ # a URL in the form of https://enterprise.google.com/android/enroll?et= for a
3194
+ # successful login, or https://enterprise.google.com/android/enroll/invalid for
3195
+ # a failed login.
3196
+ # Corresponds to the JSON property `signinUrl`
3197
+ # @return [String]
3198
+ attr_accessor :signin_url
3199
+
3200
+ def initialize(**args)
3201
+ update!(**args)
3202
+ end
3203
+
3204
+ # Update properties of this object
3205
+ def update!(**args)
3206
+ @allow_personal_usage = args[:allow_personal_usage] if args.key?(:allow_personal_usage)
3207
+ @qr_code = args[:qr_code] if args.key?(:qr_code)
3208
+ @signin_enrollment_token = args[:signin_enrollment_token] if args.key?(:signin_enrollment_token)
3209
+ @signin_url = args[:signin_url] if args.key?(:signin_url)
3210
+ end
3211
+ end
3212
+
3213
+ # An enterprise signup URL.
3214
+ class SignupUrl
3215
+ include Google::Apis::Core::Hashable
3216
+
3217
+ # The name of the resource. Use this value in the signupUrl field when calling
3218
+ # enterprises.create to complete the enterprise signup flow.
3219
+ # Corresponds to the JSON property `name`
3220
+ # @return [String]
3221
+ attr_accessor :name
3222
+
3223
+ # A URL where an enterprise admin can register their enterprise. The page can't
3224
+ # be rendered in an iframe.
3225
+ # Corresponds to the JSON property `url`
3226
+ # @return [String]
3227
+ attr_accessor :url
3228
+
3229
+ def initialize(**args)
3230
+ update!(**args)
3231
+ end
3232
+
3233
+ # Update properties of this object
3234
+ def update!(**args)
3235
+ @name = args[:name] if args.key?(:name)
3236
+ @url = args[:url] if args.key?(:url)
3237
+ end
3238
+ end
3239
+
3240
+ # Information about device software.
3241
+ class SoftwareInfo
3242
+ include Google::Apis::Core::Hashable
3243
+
3244
+ # Android build ID string meant for displaying to the user. For example, shamu-
3245
+ # userdebug 6.0.1 MOB30I 2756745 dev-keys.
3246
+ # Corresponds to the JSON property `androidBuildNumber`
3247
+ # @return [String]
3248
+ attr_accessor :android_build_number
3249
+
3250
+ # Build time.
3251
+ # Corresponds to the JSON property `androidBuildTime`
3252
+ # @return [String]
3253
+ attr_accessor :android_build_time
3254
+
3255
+ # The Android Device Policy app version code.
3256
+ # Corresponds to the JSON property `androidDevicePolicyVersionCode`
3257
+ # @return [Fixnum]
3258
+ attr_accessor :android_device_policy_version_code
3259
+
3260
+ # The Android Device Policy app version as displayed to the user.
3261
+ # Corresponds to the JSON property `androidDevicePolicyVersionName`
3262
+ # @return [String]
3263
+ attr_accessor :android_device_policy_version_name
3264
+
3265
+ # The user-visible Android version string. For example, 6.0.1.
3266
+ # Corresponds to the JSON property `androidVersion`
3267
+ # @return [String]
3268
+ attr_accessor :android_version
3269
+
3270
+ # The system bootloader version number, e.g. 0.6.7.
3271
+ # Corresponds to the JSON property `bootloaderVersion`
3272
+ # @return [String]
3273
+ attr_accessor :bootloader_version
3274
+
3275
+ # SHA-256 hash of android.content.pm.Signature (https://developer.android.com/
3276
+ # reference/android/content/pm/Signature.html) associated with the system
3277
+ # package, which can be used to verify that the system build hasn't been
3278
+ # modified.
3279
+ # Corresponds to the JSON property `deviceBuildSignature`
3280
+ # @return [String]
3281
+ attr_accessor :device_build_signature
3282
+
3283
+ # Kernel version, for example, 2.6.32.9-g103d848.
3284
+ # Corresponds to the JSON property `deviceKernelVersion`
3285
+ # @return [String]
3286
+ attr_accessor :device_kernel_version
3287
+
3288
+ # An IETF BCP 47 language code for the primary locale on the device.
3289
+ # Corresponds to the JSON property `primaryLanguageCode`
3290
+ # @return [String]
3291
+ attr_accessor :primary_language_code
3292
+
3293
+ # Security patch level, e.g. 2016-05-01.
3294
+ # Corresponds to the JSON property `securityPatchLevel`
3295
+ # @return [String]
3296
+ attr_accessor :security_patch_level
3297
+
3298
+ # Information about a potential pending system update.
3299
+ # Corresponds to the JSON property `systemUpdateInfo`
3300
+ # @return [Google::Apis::AndroidmanagementV1::SystemUpdateInfo]
3301
+ attr_accessor :system_update_info
3302
+
3303
+ def initialize(**args)
3304
+ update!(**args)
3305
+ end
3306
+
3307
+ # Update properties of this object
3308
+ def update!(**args)
3309
+ @android_build_number = args[:android_build_number] if args.key?(:android_build_number)
3310
+ @android_build_time = args[:android_build_time] if args.key?(:android_build_time)
3311
+ @android_device_policy_version_code = args[:android_device_policy_version_code] if args.key?(:android_device_policy_version_code)
3312
+ @android_device_policy_version_name = args[:android_device_policy_version_name] if args.key?(:android_device_policy_version_name)
3313
+ @android_version = args[:android_version] if args.key?(:android_version)
3314
+ @bootloader_version = args[:bootloader_version] if args.key?(:bootloader_version)
3315
+ @device_build_signature = args[:device_build_signature] if args.key?(:device_build_signature)
3316
+ @device_kernel_version = args[:device_kernel_version] if args.key?(:device_kernel_version)
3317
+ @primary_language_code = args[:primary_language_code] if args.key?(:primary_language_code)
3318
+ @security_patch_level = args[:security_patch_level] if args.key?(:security_patch_level)
3319
+ @system_update_info = args[:system_update_info] if args.key?(:system_update_info)
3320
+ end
3321
+ end
3322
+
3323
+ # The Status type defines a logical error model that is suitable for different
3324
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
3325
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
3326
+ # error code, error message, and error details.You can find out more about this
3327
+ # error model and how to work with it in the API Design Guide (https://cloud.
3328
+ # google.com/apis/design/errors).
3329
+ class Status
3330
+ include Google::Apis::Core::Hashable
3331
+
3332
+ # The status code, which should be an enum value of google.rpc.Code.
3333
+ # Corresponds to the JSON property `code`
3334
+ # @return [Fixnum]
3335
+ attr_accessor :code
3336
+
3337
+ # A list of messages that carry the error details. There is a common set of
3338
+ # message types for APIs to use.
3339
+ # Corresponds to the JSON property `details`
3340
+ # @return [Array<Hash<String,Object>>]
3341
+ attr_accessor :details
3342
+
3343
+ # A developer-facing error message, which should be in English. Any user-facing
3344
+ # error message should be localized and sent in the google.rpc.Status.details
3345
+ # field, or localized by the client.
3346
+ # Corresponds to the JSON property `message`
3347
+ # @return [String]
3348
+ attr_accessor :message
3349
+
3350
+ def initialize(**args)
3351
+ update!(**args)
3352
+ end
3353
+
3354
+ # Update properties of this object
3355
+ def update!(**args)
3356
+ @code = args[:code] if args.key?(:code)
3357
+ @details = args[:details] if args.key?(:details)
3358
+ @message = args[:message] if args.key?(:message)
3359
+ end
3360
+ end
3361
+
3362
+ # Settings controlling the behavior of status reports.
3363
+ class StatusReportingSettings
3364
+ include Google::Apis::Core::Hashable
3365
+
3366
+ # Settings controlling the behavior of application reports.
3367
+ # Corresponds to the JSON property `applicationReportingSettings`
3368
+ # @return [Google::Apis::AndroidmanagementV1::ApplicationReportingSettings]
3369
+ attr_accessor :application_reporting_settings
3370
+
3371
+ # Whether app reports are enabled.
3372
+ # Corresponds to the JSON property `applicationReportsEnabled`
3373
+ # @return [Boolean]
3374
+ attr_accessor :application_reports_enabled
3375
+ alias_method :application_reports_enabled?, :application_reports_enabled
3376
+
3377
+ # Whether Common Criteria Mode reporting is enabled.
3378
+ # Corresponds to the JSON property `commonCriteriaModeEnabled`
3379
+ # @return [Boolean]
3380
+ attr_accessor :common_criteria_mode_enabled
3381
+ alias_method :common_criteria_mode_enabled?, :common_criteria_mode_enabled
3382
+
3383
+ # Whether device settings reporting is enabled.
3384
+ # Corresponds to the JSON property `deviceSettingsEnabled`
3385
+ # @return [Boolean]
3386
+ attr_accessor :device_settings_enabled
3387
+ alias_method :device_settings_enabled?, :device_settings_enabled
3388
+
3389
+ # Whether displays reporting is enabled. Report data is not available for
3390
+ # personally owned devices with work profiles.
3391
+ # Corresponds to the JSON property `displayInfoEnabled`
3392
+ # @return [Boolean]
3393
+ attr_accessor :display_info_enabled
3394
+ alias_method :display_info_enabled?, :display_info_enabled
3395
+
3396
+ # Whether hardware status reporting is enabled. Report data is not available for
3397
+ # personally owned devices with work profiles.
3398
+ # Corresponds to the JSON property `hardwareStatusEnabled`
3399
+ # @return [Boolean]
3400
+ attr_accessor :hardware_status_enabled
3401
+ alias_method :hardware_status_enabled?, :hardware_status_enabled
3402
+
3403
+ # Whether memory reporting is enabled.
3404
+ # Corresponds to the JSON property `memoryInfoEnabled`
3405
+ # @return [Boolean]
3406
+ attr_accessor :memory_info_enabled
3407
+ alias_method :memory_info_enabled?, :memory_info_enabled
3408
+
3409
+ # Whether network info reporting is enabled.
3410
+ # Corresponds to the JSON property `networkInfoEnabled`
3411
+ # @return [Boolean]
3412
+ attr_accessor :network_info_enabled
3413
+ alias_method :network_info_enabled?, :network_info_enabled
3414
+
3415
+ # Whether power management event reporting is enabled. Report data is not
3416
+ # available for personally owned devices with work profiles.
3417
+ # Corresponds to the JSON property `powerManagementEventsEnabled`
3418
+ # @return [Boolean]
3419
+ attr_accessor :power_management_events_enabled
3420
+ alias_method :power_management_events_enabled?, :power_management_events_enabled
3421
+
3422
+ # Whether software info reporting is enabled.
3423
+ # Corresponds to the JSON property `softwareInfoEnabled`
3424
+ # @return [Boolean]
3425
+ attr_accessor :software_info_enabled
3426
+ alias_method :software_info_enabled?, :software_info_enabled
3427
+
3428
+ # Whether system properties reporting is enabled.
3429
+ # Corresponds to the JSON property `systemPropertiesEnabled`
3430
+ # @return [Boolean]
3431
+ attr_accessor :system_properties_enabled
3432
+ alias_method :system_properties_enabled?, :system_properties_enabled
3433
+
3434
+ def initialize(**args)
3435
+ update!(**args)
3436
+ end
3437
+
3438
+ # Update properties of this object
3439
+ def update!(**args)
3440
+ @application_reporting_settings = args[:application_reporting_settings] if args.key?(:application_reporting_settings)
3441
+ @application_reports_enabled = args[:application_reports_enabled] if args.key?(:application_reports_enabled)
3442
+ @common_criteria_mode_enabled = args[:common_criteria_mode_enabled] if args.key?(:common_criteria_mode_enabled)
3443
+ @device_settings_enabled = args[:device_settings_enabled] if args.key?(:device_settings_enabled)
3444
+ @display_info_enabled = args[:display_info_enabled] if args.key?(:display_info_enabled)
3445
+ @hardware_status_enabled = args[:hardware_status_enabled] if args.key?(:hardware_status_enabled)
3446
+ @memory_info_enabled = args[:memory_info_enabled] if args.key?(:memory_info_enabled)
3447
+ @network_info_enabled = args[:network_info_enabled] if args.key?(:network_info_enabled)
3448
+ @power_management_events_enabled = args[:power_management_events_enabled] if args.key?(:power_management_events_enabled)
3449
+ @software_info_enabled = args[:software_info_enabled] if args.key?(:software_info_enabled)
3450
+ @system_properties_enabled = args[:system_properties_enabled] if args.key?(:system_properties_enabled)
3451
+ end
3452
+ end
3453
+
3454
+ # Configuration for managing system updates
3455
+ class SystemUpdate
3456
+ include Google::Apis::Core::Hashable
3457
+
3458
+ # If the type is WINDOWED, the end of the maintenance window, measured as the
3459
+ # number of minutes after midnight in device's local time. This value must be
3460
+ # between 0 and 1439, inclusive. If this value is less than start_minutes, then
3461
+ # the maintenance window spans midnight. If the maintenance window specified is
3462
+ # smaller than 30 minutes, the actual window is extended to 30 minutes beyond
3463
+ # the start time.
3464
+ # Corresponds to the JSON property `endMinutes`
3465
+ # @return [Fixnum]
3466
+ attr_accessor :end_minutes
3467
+
3468
+ # An annually repeating time period in which over-the-air (OTA) system updates
3469
+ # are postponed to freeze the OS version running on a device. To prevent
3470
+ # freezing the device indefinitely, each freeze period must be separated by at
3471
+ # least 60 days.
3472
+ # Corresponds to the JSON property `freezePeriods`
3473
+ # @return [Array<Google::Apis::AndroidmanagementV1::FreezePeriod>]
3474
+ attr_accessor :freeze_periods
3475
+
3476
+ # If the type is WINDOWED, the start of the maintenance window, measured as the
3477
+ # number of minutes after midnight in the device's local time. This value must
3478
+ # be between 0 and 1439, inclusive.
3479
+ # Corresponds to the JSON property `startMinutes`
3480
+ # @return [Fixnum]
3481
+ attr_accessor :start_minutes
3482
+
3483
+ # The type of system update to configure.
3484
+ # Corresponds to the JSON property `type`
3485
+ # @return [String]
3486
+ attr_accessor :type
3487
+
3488
+ def initialize(**args)
3489
+ update!(**args)
3490
+ end
3491
+
3492
+ # Update properties of this object
3493
+ def update!(**args)
3494
+ @end_minutes = args[:end_minutes] if args.key?(:end_minutes)
3495
+ @freeze_periods = args[:freeze_periods] if args.key?(:freeze_periods)
3496
+ @start_minutes = args[:start_minutes] if args.key?(:start_minutes)
3497
+ @type = args[:type] if args.key?(:type)
3498
+ end
3499
+ end
3500
+
3501
+ # Information about a potential pending system update.
3502
+ class SystemUpdateInfo
3503
+ include Google::Apis::Core::Hashable
3504
+
3505
+ # The time when the update was first available. A zero value indicates that this
3506
+ # field is not set. This field is set only if an update is available (that is,
3507
+ # updateStatus is neither UPDATE_STATUS_UNKNOWN nor UP_TO_DATE).
3508
+ # Corresponds to the JSON property `updateReceivedTime`
3509
+ # @return [String]
3510
+ attr_accessor :update_received_time
3511
+
3512
+ # The status of an update: whether an update exists and what type it is.
3513
+ # Corresponds to the JSON property `updateStatus`
3514
+ # @return [String]
3515
+ attr_accessor :update_status
3516
+
3517
+ def initialize(**args)
3518
+ update!(**args)
3519
+ end
3520
+
3521
+ # Update properties of this object
3522
+ def update!(**args)
3523
+ @update_received_time = args[:update_received_time] if args.key?(:update_received_time)
3524
+ @update_status = args[:update_status] if args.key?(:update_status)
3525
+ end
3526
+ end
3527
+
3528
+ # A terms and conditions page to be accepted during provisioning.
3529
+ class TermsAndConditions
3530
+ include Google::Apis::Core::Hashable
3531
+
3532
+ # Provides a user-facing message with locale info. The maximum message length is
3533
+ # 4096 characters.
3534
+ # Corresponds to the JSON property `content`
3535
+ # @return [Google::Apis::AndroidmanagementV1::UserFacingMessage]
3536
+ attr_accessor :content
3537
+
3538
+ # Provides a user-facing message with locale info. The maximum message length is
3539
+ # 4096 characters.
3540
+ # Corresponds to the JSON property `header`
3541
+ # @return [Google::Apis::AndroidmanagementV1::UserFacingMessage]
3542
+ attr_accessor :header
3543
+
3544
+ def initialize(**args)
3545
+ update!(**args)
3546
+ end
3547
+
3548
+ # Update properties of this object
3549
+ def update!(**args)
3550
+ @content = args[:content] if args.key?(:content)
3551
+ @header = args[:header] if args.key?(:header)
3552
+ end
3553
+ end
3554
+
3555
+ # A user belonging to an enterprise.
3556
+ class User
3557
+ include Google::Apis::Core::Hashable
3558
+
3559
+ # A unique identifier you create for this user, such as user342 or asset#44418.
3560
+ # This field must be set when the user is created and can't be updated. This
3561
+ # field must not contain personally identifiable information (PII). This
3562
+ # identifier must be 1024 characters or less; otherwise, the update policy
3563
+ # request will fail.
3564
+ # Corresponds to the JSON property `accountIdentifier`
3565
+ # @return [String]
3566
+ attr_accessor :account_identifier
3567
+
3568
+ def initialize(**args)
3569
+ update!(**args)
3570
+ end
3571
+
3572
+ # Update properties of this object
3573
+ def update!(**args)
3574
+ @account_identifier = args[:account_identifier] if args.key?(:account_identifier)
3575
+ end
3576
+ end
3577
+
3578
+ # Provides a user-facing message with locale info. The maximum message length is
3579
+ # 4096 characters.
3580
+ class UserFacingMessage
3581
+ include Google::Apis::Core::Hashable
3582
+
3583
+ # The default message displayed if no localized message is specified or the user'
3584
+ # s locale doesn't match with any of the localized messages. A default message
3585
+ # must be provided if any localized messages are provided.
3586
+ # Corresponds to the JSON property `defaultMessage`
3587
+ # @return [String]
3588
+ attr_accessor :default_message
3589
+
3590
+ # A map containing pairs, where locale is a well-formed BCP 47 language (https://
3591
+ # www.w3.org/International/articles/language-tags/) code, such as en-US, es-ES,
3592
+ # or fr.
3593
+ # Corresponds to the JSON property `localizedMessages`
3594
+ # @return [Hash<String,String>]
3595
+ attr_accessor :localized_messages
3596
+
3597
+ def initialize(**args)
3598
+ update!(**args)
3599
+ end
3600
+
3601
+ # Update properties of this object
3602
+ def update!(**args)
3603
+ @default_message = args[:default_message] if args.key?(:default_message)
3604
+ @localized_messages = args[:localized_messages] if args.key?(:localized_messages)
3605
+ end
3606
+ end
3607
+
3608
+ # A web app.
3609
+ class WebApp
3610
+ include Google::Apis::Core::Hashable
3611
+
3612
+ # The display mode of the web app.
3613
+ # Corresponds to the JSON property `displayMode`
3614
+ # @return [String]
3615
+ attr_accessor :display_mode
3616
+
3617
+ # A list of icons for the web app. Must have at least one element.
3618
+ # Corresponds to the JSON property `icons`
3619
+ # @return [Array<Google::Apis::AndroidmanagementV1::WebAppIcon>]
3620
+ attr_accessor :icons
3621
+
3622
+ # The name of the web app, which is generated by the server during creation in
3623
+ # the form enterprises/`enterpriseId`/webApps/`packageName`.
3624
+ # Corresponds to the JSON property `name`
3625
+ # @return [String]
3626
+ attr_accessor :name
3627
+
3628
+ # The start URL, i.e. the URL that should load when the user opens the
3629
+ # application.
3630
+ # Corresponds to the JSON property `startUrl`
3631
+ # @return [String]
3632
+ attr_accessor :start_url
3633
+
3634
+ # The title of the web app as displayed to the user (e.g., amongst a list of
3635
+ # other applications, or as a label for an icon).
3636
+ # Corresponds to the JSON property `title`
3637
+ # @return [String]
3638
+ attr_accessor :title
3639
+
3640
+ # The current version of the app.Note that the version can automatically
3641
+ # increase during the lifetime of the web app, while Google does internal
3642
+ # housekeeping to keep the web app up-to-date.
3643
+ # Corresponds to the JSON property `versionCode`
3644
+ # @return [Fixnum]
3645
+ attr_accessor :version_code
3646
+
3647
+ def initialize(**args)
3648
+ update!(**args)
3649
+ end
3650
+
3651
+ # Update properties of this object
3652
+ def update!(**args)
3653
+ @display_mode = args[:display_mode] if args.key?(:display_mode)
3654
+ @icons = args[:icons] if args.key?(:icons)
3655
+ @name = args[:name] if args.key?(:name)
3656
+ @start_url = args[:start_url] if args.key?(:start_url)
3657
+ @title = args[:title] if args.key?(:title)
3658
+ @version_code = args[:version_code] if args.key?(:version_code)
3659
+ end
3660
+ end
3661
+
3662
+ # An icon for a web app. Supported formats are: png, jpg and webp.
3663
+ class WebAppIcon
3664
+ include Google::Apis::Core::Hashable
3665
+
3666
+ # The actual bytes of the image in a base64url encoded string (c.f. RFC4648,
3667
+ # section 5 "Base 64 Encoding with URL and Filename Safe Alphabet"). - The image
3668
+ # type can be png or jpg. - The image should ideally be square. - The image
3669
+ # should ideally have a size of 512x512.
3670
+ # Corresponds to the JSON property `imageData`
3671
+ # @return [String]
3672
+ attr_accessor :image_data
3673
+
3674
+ def initialize(**args)
3675
+ update!(**args)
3676
+ end
3677
+
3678
+ # Update properties of this object
3679
+ def update!(**args)
3680
+ @image_data = args[:image_data] if args.key?(:image_data)
3681
+ end
3682
+ end
3683
+
3684
+ # A web token used to access the managed Google Play iframe.
3685
+ class WebToken
3686
+ include Google::Apis::Core::Hashable
3687
+
3688
+ # The features to enable. Use this if you want to control exactly which feature(
3689
+ # s) will be activated; leave empty to allow all features.Restrictions / things
3690
+ # to note: - If no features are listed here, all features are enabled — this is
3691
+ # the default behavior where you give access to all features to your admins. -
3692
+ # This must not contain any FEATURE_UNSPECIFIED values. - Repeated values are
3693
+ # ignored
3694
+ # Corresponds to the JSON property `enabledFeatures`
3695
+ # @return [Array<String>]
3696
+ attr_accessor :enabled_features
3697
+
3698
+ # The name of the web token, which is generated by the server during creation in
3699
+ # the form enterprises/`enterpriseId`/webTokens/`webTokenId`.
3700
+ # Corresponds to the JSON property `name`
3701
+ # @return [String]
3702
+ attr_accessor :name
3703
+
3704
+ # The URL of the parent frame hosting the iframe with the embedded UI. To
3705
+ # prevent XSS, the iframe may not be hosted at other URLs. The URL must use the
3706
+ # https scheme.
3707
+ # Corresponds to the JSON property `parentFrameUrl`
3708
+ # @return [String]
3709
+ attr_accessor :parent_frame_url
3710
+
3711
+ # Permissions available to an admin in the embedded UI. An admin must have all
3712
+ # of these permissions in order to view the UI. This field is deprecated.
3713
+ # Corresponds to the JSON property `permissions`
3714
+ # @return [Array<String>]
3715
+ attr_accessor :permissions
3716
+
3717
+ # The token value which is used in the hosting page to generate the iframe with
3718
+ # the embedded UI. This is a read-only field generated by the server.
3719
+ # Corresponds to the JSON property `value`
3720
+ # @return [String]
3721
+ attr_accessor :value
3722
+
3723
+ def initialize(**args)
3724
+ update!(**args)
3725
+ end
3726
+
3727
+ # Update properties of this object
3728
+ def update!(**args)
3729
+ @enabled_features = args[:enabled_features] if args.key?(:enabled_features)
3730
+ @name = args[:name] if args.key?(:name)
3731
+ @parent_frame_url = args[:parent_frame_url] if args.key?(:parent_frame_url)
3732
+ @permissions = args[:permissions] if args.key?(:permissions)
3733
+ @value = args[:value] if args.key?(:value)
3734
+ end
3735
+ end
3736
+
3737
+ # An action to reset a fully managed device or delete a work profile. Note:
3738
+ # blockAction must also be specified.
3739
+ class WipeAction
3740
+ include Google::Apis::Core::Hashable
3741
+
3742
+ # Whether the factory-reset protection data is preserved on the device. This
3743
+ # setting doesn’t apply to work profiles.
3744
+ # Corresponds to the JSON property `preserveFrp`
3745
+ # @return [Boolean]
3746
+ attr_accessor :preserve_frp
3747
+ alias_method :preserve_frp?, :preserve_frp
3748
+
3749
+ # Number of days the policy is non-compliant before the device or work profile
3750
+ # is wiped. wipeAfterDays must be greater than blockAfterDays.
3751
+ # Corresponds to the JSON property `wipeAfterDays`
3752
+ # @return [Fixnum]
3753
+ attr_accessor :wipe_after_days
3754
+
3755
+ def initialize(**args)
3756
+ update!(**args)
3757
+ end
3758
+
3759
+ # Update properties of this object
3760
+ def update!(**args)
3761
+ @preserve_frp = args[:preserve_frp] if args.key?(:preserve_frp)
3762
+ @wipe_after_days = args[:wipe_after_days] if args.key?(:wipe_after_days)
3763
+ end
3764
+ end
3765
+ end
3766
+ end
3767
+ end