| // This is a generated file (see the discoveryapis_generator project). |
| |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: comment_references |
| // ignore_for_file: file_names |
| // ignore_for_file: library_names |
| // ignore_for_file: lines_longer_than_80_chars |
| // ignore_for_file: non_constant_identifier_names |
| // ignore_for_file: prefer_expression_function_bodies |
| // ignore_for_file: prefer_interpolation_to_compose_strings |
| // ignore_for_file: unnecessary_brace_in_string_interps |
| // ignore_for_file: unnecessary_cast |
| // ignore_for_file: unnecessary_lambdas |
| // ignore_for_file: unnecessary_parenthesis |
| // ignore_for_file: unnecessary_string_interpolations |
| |
| /// Android Management API - v1 |
| /// |
| /// The Android Management API provides remote enterprise management of Android |
| /// devices and apps. |
| /// |
| /// For more information, see <https://developers.google.com/android/management> |
| /// |
| /// Create an instance of [AndroidManagementApi] to access these resources: |
| /// |
| /// - [EnterprisesResource] |
| /// - [EnterprisesApplicationsResource] |
| /// - [EnterprisesDevicesResource] |
| /// - [EnterprisesDevicesOperationsResource] |
| /// - [EnterprisesEnrollmentTokensResource] |
| /// - [EnterprisesPoliciesResource] |
| /// - [EnterprisesWebAppsResource] |
| /// - [EnterprisesWebTokensResource] |
| /// - [SignupUrlsResource] |
| library androidmanagement.v1; |
| |
| import 'dart:async' as async; |
| import 'dart:convert' as convert; |
| import 'dart:core' as core; |
| |
| import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
| import 'package:http/http.dart' as http; |
| |
| import '../src/user_agent.dart'; |
| |
| export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' |
| show ApiRequestError, DetailedApiRequestError; |
| |
| /// The Android Management API provides remote enterprise management of Android |
| /// devices and apps. |
| class AndroidManagementApi { |
| /// Manage Android devices and apps for your customers |
| static const androidmanagementScope = |
| 'https://www.googleapis.com/auth/androidmanagement'; |
| |
| final commons.ApiRequester _requester; |
| |
| EnterprisesResource get enterprises => EnterprisesResource(_requester); |
| SignupUrlsResource get signupUrls => SignupUrlsResource(_requester); |
| |
| AndroidManagementApi(http.Client client, |
| {core.String rootUrl = 'https://androidmanagement.googleapis.com/', |
| core.String servicePath = ''}) |
| : _requester = |
| commons.ApiRequester(client, rootUrl, servicePath, userAgent); |
| } |
| |
| class EnterprisesResource { |
| final commons.ApiRequester _requester; |
| |
| EnterprisesApplicationsResource get applications => |
| EnterprisesApplicationsResource(_requester); |
| EnterprisesDevicesResource get devices => |
| EnterprisesDevicesResource(_requester); |
| EnterprisesEnrollmentTokensResource get enrollmentTokens => |
| EnterprisesEnrollmentTokensResource(_requester); |
| EnterprisesPoliciesResource get policies => |
| EnterprisesPoliciesResource(_requester); |
| EnterprisesWebAppsResource get webApps => |
| EnterprisesWebAppsResource(_requester); |
| EnterprisesWebTokensResource get webTokens => |
| EnterprisesWebTokensResource(_requester); |
| |
| EnterprisesResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Creates an enterprise. |
| /// |
| /// This is the last step in the enterprise signup flow. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [agreementAccepted] - This feature is not generally available yet. Whether |
| /// the managed Google Play Agreement is presented and agreed. |
| /// |
| /// [enterpriseToken] - The enterprise token appended to the callback URL. |
| /// |
| /// [projectId] - The ID of the Google Cloud Platform project which will own |
| /// the enterprise. |
| /// |
| /// [signupUrlName] - The name of the SignupUrl used to sign up for the |
| /// enterprise. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Enterprise]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Enterprise> create( |
| Enterprise request, { |
| core.bool agreementAccepted, |
| core.String enterpriseToken, |
| core.String projectId, |
| core.String signupUrlName, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (agreementAccepted != null) { |
| _queryParams['agreementAccepted'] = ['${agreementAccepted}']; |
| } |
| if (enterpriseToken != null) { |
| _queryParams['enterpriseToken'] = [enterpriseToken]; |
| } |
| if (projectId != null) { |
| _queryParams['projectId'] = [projectId]; |
| } |
| if (signupUrlName != null) { |
| _queryParams['signupUrlName'] = [signupUrlName]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| const _url = 'v1/enterprises'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return Enterprise.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// This feature is not generally available yet. |
| /// |
| /// Deletes an enterprise. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - This feature is not generally available yet. The name of the |
| /// enterprise in the form enterprises/{enterpriseId}. |
| /// Value must have pattern `^enterprises/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> delete( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'DELETE', |
| queryParams: _queryParams, |
| ); |
| return Empty.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets an enterprise. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the enterprise in the form |
| /// enterprises/{enterpriseId}. |
| /// Value must have pattern `^enterprises/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Enterprise]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Enterprise> get( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return Enterprise.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// This feature is not generally available yet. |
| /// |
| /// Lists enterprises that are managed by an EMM. Only partial views are |
| /// returned. |
| /// |
| /// Request parameters: |
| /// |
| /// [pageSize] - This feature is not generally available yet. The requested |
| /// page size. The actual page size may be fixed to a min or max value. |
| /// |
| /// [pageToken] - This feature is not generally available yet. A token |
| /// identifying a page of results returned by the server. |
| /// |
| /// [projectId] - Required. This feature is not generally available yet. The |
| /// ID of the Cloud project of the EMM the enterprises belongs to. |
| /// |
| /// [view] - This feature is not generally available yet. View that specify |
| /// that partial response should be returned. |
| /// Possible string values are: |
| /// - "ENTERPRISE_VIEW_UNSPECIFIED" : This feature is not generally available |
| /// yet. The API will default to the BASIC view for the List method. |
| /// - "BASIC" : This feature is not generally available yet. Includes name and |
| /// enterprise_display_name fields. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListEnterprisesResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListEnterprisesResponse> list({ |
| core.int pageSize, |
| core.String pageToken, |
| core.String projectId, |
| core.String view, |
| core.String $fields, |
| }) async { |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if (projectId != null) { |
| _queryParams['projectId'] = [projectId]; |
| } |
| if (view != null) { |
| _queryParams['view'] = [view]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| const _url = 'v1/enterprises'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListEnterprisesResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates an enterprise. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the enterprise in the form |
| /// enterprises/{enterpriseId}. |
| /// Value must have pattern `^enterprises/\[^/\]+$`. |
| /// |
| /// [updateMask] - The field mask indicating the fields to update. If not set, |
| /// all modifiable fields will be modified. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Enterprise]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Enterprise> patch( |
| Enterprise request, |
| core.String name, { |
| core.String updateMask, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (updateMask != null) { |
| _queryParams['updateMask'] = [updateMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return Enterprise.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class EnterprisesApplicationsResource { |
| final commons.ApiRequester _requester; |
| |
| EnterprisesApplicationsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Gets info about an application. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the application in the form |
| /// enterprises/{enterpriseId}/applications/{package_name}. |
| /// Value must have pattern `^enterprises/\[^/\]+/applications/\[^/\]+$`. |
| /// |
| /// [languageCode] - The preferred language for localized application info, as |
| /// a BCP47 tag (e.g. "en-US", "de"). If not specified the default language of |
| /// the application will be used. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Application]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Application> get( |
| core.String name, { |
| core.String languageCode, |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (languageCode != null) { |
| _queryParams['languageCode'] = [languageCode]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return Application.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class EnterprisesDevicesResource { |
| final commons.ApiRequester _requester; |
| |
| EnterprisesDevicesOperationsResource get operations => |
| EnterprisesDevicesOperationsResource(_requester); |
| |
| EnterprisesDevicesResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Deletes a device. |
| /// |
| /// This operation wipes the device. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the device in the form |
| /// enterprises/{enterpriseId}/devices/{deviceId}. |
| /// Value must have pattern `^enterprises/\[^/\]+/devices/\[^/\]+$`. |
| /// |
| /// [wipeDataFlags] - Optional flags that control the device wiping behavior. |
| /// |
| /// [wipeReasonMessage] - Optional. A short message displayed to the user |
| /// before wiping the work profile on personal devices. This has no effect on |
| /// company owned devices. The maximum message length is 200 characters. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> delete( |
| core.String name, { |
| core.List<core.String> wipeDataFlags, |
| core.String wipeReasonMessage, |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (wipeDataFlags != null) { |
| _queryParams['wipeDataFlags'] = wipeDataFlags; |
| } |
| if (wipeReasonMessage != null) { |
| _queryParams['wipeReasonMessage'] = [wipeReasonMessage]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'DELETE', |
| queryParams: _queryParams, |
| ); |
| return Empty.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets a device. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the device in the form |
| /// enterprises/{enterpriseId}/devices/{deviceId}. |
| /// Value must have pattern `^enterprises/\[^/\]+/devices/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Device]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Device> get( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return Device.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Issues a command to a device. |
| /// |
| /// The Operation resource returned contains a Command in its metadata field. |
| /// Use the get operation method to get the status of the command. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the device in the form |
| /// enterprises/{enterpriseId}/devices/{deviceId}. |
| /// Value must have pattern `^enterprises/\[^/\]+/devices/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> issueCommand( |
| Command request, |
| core.String name, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$name') + |
| ':issueCommand'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return Operation.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists devices for a given enterprise. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The name of the enterprise in the form |
| /// enterprises/{enterpriseId}. |
| /// Value must have pattern `^enterprises/\[^/\]+$`. |
| /// |
| /// [pageSize] - The requested page size. The actual page size may be fixed to |
| /// a min or max value. |
| /// |
| /// [pageToken] - A token identifying a page of results returned by the |
| /// server. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListDevicesResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListDevicesResponse> list( |
| core.String parent, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) async { |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/devices'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListDevicesResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates a device. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the device in the form |
| /// enterprises/{enterpriseId}/devices/{deviceId}. |
| /// Value must have pattern `^enterprises/\[^/\]+/devices/\[^/\]+$`. |
| /// |
| /// [updateMask] - The field mask indicating the fields to update. If not set, |
| /// all modifiable fields will be modified. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Device]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Device> patch( |
| Device request, |
| core.String name, { |
| core.String updateMask, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (updateMask != null) { |
| _queryParams['updateMask'] = [updateMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return Device.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class EnterprisesDevicesOperationsResource { |
| final commons.ApiRequester _requester; |
| |
| EnterprisesDevicesOperationsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Starts asynchronous cancellation on a long-running operation. |
| /// |
| /// The server makes a best effort to cancel the operation, but success is not |
| /// guaranteed. If the server doesn't support this method, it returns |
| /// google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation or |
| /// other methods to check whether the cancellation succeeded or whether the |
| /// operation completed despite cancellation. On successful cancellation, the |
| /// operation is not deleted; instead, it becomes an operation with an |
| /// Operation.error value with a google.rpc.Status.code of 1, corresponding to |
| /// Code.CANCELLED. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource to be cancelled. |
| /// Value must have pattern |
| /// `^enterprises/\[^/\]+/devices/\[^/\]+/operations/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> cancel( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':cancel'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| queryParams: _queryParams, |
| ); |
| return Empty.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Deletes a long-running operation. |
| /// |
| /// This method indicates that the client is no longer interested in the |
| /// operation result. It does not cancel the operation. If the server doesn't |
| /// support this method, it returns google.rpc.Code.UNIMPLEMENTED. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource to be deleted. |
| /// Value must have pattern |
| /// `^enterprises/\[^/\]+/devices/\[^/\]+/operations/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> delete( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'DELETE', |
| queryParams: _queryParams, |
| ); |
| return Empty.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets the latest state of a long-running operation. |
| /// |
| /// Clients can use this method to poll the operation result at intervals as |
| /// recommended by the API service. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource. |
| /// Value must have pattern |
| /// `^enterprises/\[^/\]+/devices/\[^/\]+/operations/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> get( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return Operation.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists operations that match the specified filter in the request. |
| /// |
| /// If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: |
| /// the name binding allows API services to override the binding to use |
| /// different resource name schemes, such as users / * /operations. To |
| /// override the binding, API services can add a binding such as |
| /// "/v1/{name=users / * }/operations" to their service configuration. For |
| /// backwards compatibility, the default name includes the operations |
| /// collection id, however overriding users must ensure the name binding is |
| /// the parent resource, without the operations collection id. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation's parent resource. |
| /// Value must have pattern |
| /// `^enterprises/\[^/\]+/devices/\[^/\]+/operations$`. |
| /// |
| /// [filter] - The standard list filter. |
| /// |
| /// [pageSize] - The standard list page size. |
| /// |
| /// [pageToken] - The standard list page token. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListOperationsResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListOperationsResponse> list( |
| core.String name, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListOperationsResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class EnterprisesEnrollmentTokensResource { |
| final commons.ApiRequester _requester; |
| |
| EnterprisesEnrollmentTokensResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates an enrollment token for a given enterprise. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The name of the enterprise in the form |
| /// enterprises/{enterpriseId}. |
| /// Value must have pattern `^enterprises/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [EnrollmentToken]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<EnrollmentToken> create( |
| EnrollmentToken request, |
| core.String parent, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/enrollmentTokens'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return EnrollmentToken.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Deletes an enrollment token. |
| /// |
| /// This operation invalidates the token, preventing its future use. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the enrollment token in the form |
| /// enterprises/{enterpriseId}/enrollmentTokens/{enrollmentTokenId}. |
| /// Value must have pattern `^enterprises/\[^/\]+/enrollmentTokens/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> delete( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'DELETE', |
| queryParams: _queryParams, |
| ); |
| return Empty.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class EnterprisesPoliciesResource { |
| final commons.ApiRequester _requester; |
| |
| EnterprisesPoliciesResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Deletes a policy. |
| /// |
| /// This operation is only permitted if no devices are currently referencing |
| /// the policy. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the policy in the form |
| /// enterprises/{enterpriseId}/policies/{policyId}. |
| /// Value must have pattern `^enterprises/\[^/\]+/policies/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> delete( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'DELETE', |
| queryParams: _queryParams, |
| ); |
| return Empty.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets a policy. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the policy in the form |
| /// enterprises/{enterpriseId}/policies/{policyId}. |
| /// Value must have pattern `^enterprises/\[^/\]+/policies/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Policy> get( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return Policy.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists policies for a given enterprise. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The name of the enterprise in the form |
| /// enterprises/{enterpriseId}. |
| /// Value must have pattern `^enterprises/\[^/\]+$`. |
| /// |
| /// [pageSize] - The requested page size. The actual page size may be fixed to |
| /// a min or max value. |
| /// |
| /// [pageToken] - A token identifying a page of results returned by the |
| /// server. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListPoliciesResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListPoliciesResponse> list( |
| core.String parent, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) async { |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/policies'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListPoliciesResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates or creates a policy. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the policy in the form |
| /// enterprises/{enterpriseId}/policies/{policyId}. |
| /// Value must have pattern `^enterprises/\[^/\]+/policies/\[^/\]+$`. |
| /// |
| /// [updateMask] - The field mask indicating the fields to update. If not set, |
| /// all modifiable fields will be modified. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Policy> patch( |
| Policy request, |
| core.String name, { |
| core.String updateMask, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (updateMask != null) { |
| _queryParams['updateMask'] = [updateMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return Policy.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class EnterprisesWebAppsResource { |
| final commons.ApiRequester _requester; |
| |
| EnterprisesWebAppsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Creates a web app. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The name of the enterprise in the form |
| /// enterprises/{enterpriseId}. |
| /// Value must have pattern `^enterprises/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [WebApp]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<WebApp> create( |
| WebApp request, |
| core.String parent, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/webApps'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return WebApp.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Deletes a web app. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the web app in the form |
| /// enterprises/{enterpriseId}/webApps/{packageName}. |
| /// Value must have pattern `^enterprises/\[^/\]+/webApps/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Empty> delete( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'DELETE', |
| queryParams: _queryParams, |
| ); |
| return Empty.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Gets a web app. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the web app in the form |
| /// enterprises/{enterpriseId}/webApp/{packageName}. |
| /// Value must have pattern `^enterprises/\[^/\]+/webApps/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [WebApp]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<WebApp> get( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return WebApp.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists web apps for a given enterprise. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The name of the enterprise in the form |
| /// enterprises/{enterpriseId}. |
| /// Value must have pattern `^enterprises/\[^/\]+$`. |
| /// |
| /// [pageSize] - The requested page size. The actual page size may be fixed to |
| /// a min or max value. |
| /// |
| /// [pageToken] - A token identifying a page of results returned by the |
| /// server. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListWebAppsResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListWebAppsResponse> list( |
| core.String parent, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) async { |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/webApps'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListWebAppsResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Updates a web app. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the web app in the form |
| /// enterprises/{enterpriseId}/webApps/{packageName}. |
| /// Value must have pattern `^enterprises/\[^/\]+/webApps/\[^/\]+$`. |
| /// |
| /// [updateMask] - The field mask indicating the fields to update. If not set, |
| /// all modifiable fields will be modified. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [WebApp]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<WebApp> patch( |
| WebApp request, |
| core.String name, { |
| core.String updateMask, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (updateMask != null) { |
| _queryParams['updateMask'] = [updateMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return WebApp.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class EnterprisesWebTokensResource { |
| final commons.ApiRequester _requester; |
| |
| EnterprisesWebTokensResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates a web token to access an embeddable managed Google Play web UI for |
| /// a given enterprise. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - The name of the enterprise in the form |
| /// enterprises/{enterpriseId}. |
| /// Value must have pattern `^enterprises/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [WebToken]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<WebToken> create( |
| WebToken request, |
| core.String parent, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/webTokens'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return WebToken.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class SignupUrlsResource { |
| final commons.ApiRequester _requester; |
| |
| SignupUrlsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Creates an enterprise signup URL. |
| /// |
| /// Request parameters: |
| /// |
| /// [callbackUrl] - The callback URL that the admin will be redirected to |
| /// after successfully creating an enterprise. Before redirecting there the |
| /// system will add a query parameter to this URL named enterpriseToken which |
| /// will contain an opaque token to be used for the create enterprise request. |
| /// The URL will be parsed then reformatted in order to add the |
| /// enterpriseToken parameter, so there may be some minor formatting changes. |
| /// |
| /// [projectId] - The ID of the Google Cloud Platform project which will own |
| /// the enterprise. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [SignupUrl]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<SignupUrl> create({ |
| core.String callbackUrl, |
| core.String projectId, |
| core.String $fields, |
| }) async { |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (callbackUrl != null) { |
| _queryParams['callbackUrl'] = [callbackUrl]; |
| } |
| if (projectId != null) { |
| _queryParams['projectId'] = [projectId]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| const _url = 'v1/signupUrls'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| queryParams: _queryParams, |
| ); |
| return SignupUrl.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| /// Security policies set to the most secure values by default. |
| /// |
| /// To maintain the security posture of a device, we don't recommend overriding |
| /// any of the default values. |
| class AdvancedSecurityOverrides { |
| /// Controls Common Criteria Mode—security standards defined in the Common |
| /// Criteria for Information Technology Security Evaluation |
| /// (https://www.commoncriteriaportal.org/) (CC). |
| /// |
| /// Enabling Common Criteria Mode increases certain security components on a |
| /// device, including AES-GCM encryption of Bluetooth Long Term Keys, and |
| /// Wi-Fi configuration stores.Warning: Common Criteria Mode enforces a strict |
| /// security model typically only required for IT products used in national |
| /// security systems and other highly sensitive organizations. Standard device |
| /// use may be affected. Only enabled if required. |
| /// Possible string values are: |
| /// - "COMMON_CRITERIA_MODE_UNSPECIFIED" : Unspecified. Defaults to |
| /// COMMON_CRITERIA_MODE_DISABLED. |
| /// - "COMMON_CRITERIA_MODE_DISABLED" : Default. Disables Common Criteria |
| /// Mode. |
| /// - "COMMON_CRITERIA_MODE_ENABLED" : Enables Common Criteria Mode. |
| core.String commonCriteriaMode; |
| |
| /// The policy for untrusted apps (apps from unknown sources) enforced on the |
| /// device. |
| /// |
| /// Replaces install_unknown_sources_allowed (deprecated). |
| /// Possible string values are: |
| /// - "UNTRUSTED_APPS_POLICY_UNSPECIFIED" : Unspecified. Defaults to |
| /// DISALLOW_INSTALL. |
| /// - "DISALLOW_INSTALL" : Default. Disallow untrusted app installs on entire |
| /// device. |
| /// - "ALLOW_INSTALL_IN_PERSONAL_PROFILE_ONLY" : For devices with work |
| /// profiles, allow untrusted app installs in the device's personal profile |
| /// only. |
| /// - "ALLOW_INSTALL_DEVICE_WIDE" : Allow untrusted app installs on entire |
| /// device. |
| core.String untrustedAppsPolicy; |
| |
| AdvancedSecurityOverrides(); |
| |
| AdvancedSecurityOverrides.fromJson(core.Map _json) { |
| if (_json.containsKey('commonCriteriaMode')) { |
| commonCriteriaMode = _json['commonCriteriaMode'] as core.String; |
| } |
| if (_json.containsKey('untrustedAppsPolicy')) { |
| untrustedAppsPolicy = _json['untrustedAppsPolicy'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (commonCriteriaMode != null) { |
| _json['commonCriteriaMode'] = commonCriteriaMode; |
| } |
| if (untrustedAppsPolicy != null) { |
| _json['untrustedAppsPolicy'] = untrustedAppsPolicy; |
| } |
| return _json; |
| } |
| } |
| |
| /// Configuration for an always-on VPN connection. |
| class AlwaysOnVpnPackage { |
| /// Disallows networking when the VPN is not connected. |
| core.bool lockdownEnabled; |
| |
| /// The package name of the VPN app. |
| core.String packageName; |
| |
| AlwaysOnVpnPackage(); |
| |
| AlwaysOnVpnPackage.fromJson(core.Map _json) { |
| if (_json.containsKey('lockdownEnabled')) { |
| lockdownEnabled = _json['lockdownEnabled'] as core.bool; |
| } |
| if (_json.containsKey('packageName')) { |
| packageName = _json['packageName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (lockdownEnabled != null) { |
| _json['lockdownEnabled'] = lockdownEnabled; |
| } |
| if (packageName != null) { |
| _json['packageName'] = packageName; |
| } |
| return _json; |
| } |
| } |
| |
| /// A compliance rule condition which is satisfied if the Android Framework API |
| /// level on the device doesn't meet a minimum requirement. |
| /// |
| /// There can only be one rule with this type of condition per policy. |
| class ApiLevelCondition { |
| /// The minimum desired Android Framework API level. |
| /// |
| /// If the device doesn't meet the minimum requirement, this condition is |
| /// satisfied. Must be greater than zero. |
| core.int minApiLevel; |
| |
| ApiLevelCondition(); |
| |
| ApiLevelCondition.fromJson(core.Map _json) { |
| if (_json.containsKey('minApiLevel')) { |
| minApiLevel = _json['minApiLevel'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (minApiLevel != null) { |
| _json['minApiLevel'] = minApiLevel; |
| } |
| return _json; |
| } |
| } |
| |
| /// Id to name association of a app track. |
| class AppTrackInfo { |
| /// The track name associated with the trackId, set in the Play Console. |
| /// |
| /// The name is modifiable from Play Console. |
| core.String trackAlias; |
| |
| /// The unmodifiable unique track identifier, taken from the releaseTrackId in |
| /// the URL of the Play Console page that displays the app’s track |
| /// information. |
| core.String trackId; |
| |
| AppTrackInfo(); |
| |
| AppTrackInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('trackAlias')) { |
| trackAlias = _json['trackAlias'] as core.String; |
| } |
| if (_json.containsKey('trackId')) { |
| trackId = _json['trackId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (trackAlias != null) { |
| _json['trackAlias'] = trackAlias; |
| } |
| if (trackId != null) { |
| _json['trackId'] = trackId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Information about an app. |
| class Application { |
| /// Application tracks visible to the enterprise. |
| core.List<AppTrackInfo> appTracks; |
| |
| /// The set of managed properties available to be pre-configured for the app. |
| core.List<ManagedProperty> managedProperties; |
| |
| /// The name of the app in the form |
| /// enterprises/{enterpriseId}/applications/{package_name}. |
| core.String name; |
| |
| /// The permissions required by the app. |
| core.List<ApplicationPermission> permissions; |
| |
| /// The title of the app. |
| /// |
| /// Localized. |
| core.String title; |
| |
| Application(); |
| |
| Application.fromJson(core.Map _json) { |
| if (_json.containsKey('appTracks')) { |
| appTracks = (_json['appTracks'] as core.List) |
| .map<AppTrackInfo>((value) => AppTrackInfo.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('managedProperties')) { |
| managedProperties = (_json['managedProperties'] as core.List) |
| .map<ManagedProperty>((value) => ManagedProperty.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('permissions')) { |
| permissions = (_json['permissions'] as core.List) |
| .map<ApplicationPermission>((value) => ApplicationPermission.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('title')) { |
| title = _json['title'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (appTracks != null) { |
| _json['appTracks'] = appTracks.map((value) => value.toJson()).toList(); |
| } |
| if (managedProperties != null) { |
| _json['managedProperties'] = |
| managedProperties.map((value) => value.toJson()).toList(); |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (permissions != null) { |
| _json['permissions'] = |
| permissions.map((value) => value.toJson()).toList(); |
| } |
| if (title != null) { |
| _json['title'] = title; |
| } |
| return _json; |
| } |
| } |
| |
| /// An app-related event. |
| class ApplicationEvent { |
| /// The creation time of the event. |
| core.String createTime; |
| |
| /// App event type. |
| /// Possible string values are: |
| /// - "APPLICATION_EVENT_TYPE_UNSPECIFIED" : This value is disallowed. |
| /// - "INSTALLED" : The app was installed. |
| /// - "CHANGED" : The app was changed, for example, a component was enabled or |
| /// disabled. |
| /// - "DATA_CLEARED" : The app data was cleared. |
| /// - "REMOVED" : The app was removed. |
| /// - "REPLACED" : A new version of the app has been installed, replacing the |
| /// old version. |
| /// - "RESTARTED" : The app was restarted. |
| /// - "PINNED" : The app was pinned to the foreground. |
| /// - "UNPINNED" : The app was unpinned. |
| core.String eventType; |
| |
| ApplicationEvent(); |
| |
| ApplicationEvent.fromJson(core.Map _json) { |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('eventType')) { |
| eventType = _json['eventType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (eventType != null) { |
| _json['eventType'] = eventType; |
| } |
| return _json; |
| } |
| } |
| |
| /// A permission required by the app. |
| class ApplicationPermission { |
| /// A longer description of the permission, providing more detail on what it |
| /// affects. |
| /// |
| /// Localized. |
| core.String description; |
| |
| /// The name of the permission. |
| /// |
| /// Localized. |
| core.String name; |
| |
| /// An opaque string uniquely identifying the permission. |
| /// |
| /// Not localized. |
| core.String permissionId; |
| |
| ApplicationPermission(); |
| |
| ApplicationPermission.fromJson(core.Map _json) { |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('permissionId')) { |
| permissionId = _json['permissionId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (permissionId != null) { |
| _json['permissionId'] = permissionId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Policy for an individual app. |
| class ApplicationPolicy { |
| /// List of the app’s track IDs that a device belonging to the enterprise can |
| /// access. |
| /// |
| /// If the list contains multiple track IDs, devices receive the latest |
| /// version among all accessible tracks. If the list contains no track IDs, |
| /// devices only have access to the app’s production track. More details about |
| /// each track are available in AppTrackInfo. |
| core.List<core.String> accessibleTrackIds; |
| |
| /// This feature is not generally available yet. |
| /// Possible string values are: |
| /// - "AUTO_UPDATE_MODE_UNSPECIFIED" : This feature is not generally available |
| /// yet. |
| /// - "AUTO_UPDATE_DEFAULT" : This feature is not generally available yet. |
| /// - "AUTO_UPDATE_POSTPONED" : This feature is not generally available yet. |
| /// - "AUTO_UPDATE_HIGH_PRIORITY" : This feature is not generally available |
| /// yet. |
| core.String autoUpdateMode; |
| |
| /// Controls whether the app can communicate with itself across a device’s |
| /// work and personal profiles, subject to user consent. |
| /// Possible string values are: |
| /// - "CONNECTED_WORK_AND_PERSONAL_APP_UNSPECIFIED" : Unspecified. Defaults to |
| /// CONNECTED_WORK_AND_PERSONAL_APPS_DISALLOWED. |
| /// - "CONNECTED_WORK_AND_PERSONAL_APP_DISALLOWED" : Default. Prevents the app |
| /// from communicating cross-profile. |
| /// - "CONNECTED_WORK_AND_PERSONAL_APP_ALLOWED" : Allows the app to |
| /// communicate across profiles after receiving user consent. |
| core.String connectedWorkAndPersonalApp; |
| |
| /// The default policy for all permissions requested by the app. |
| /// |
| /// If specified, this overrides the policy-level default_permission_policy |
| /// which applies to all apps. It does not override the permission_grants |
| /// which applies to all apps. |
| /// Possible string values are: |
| /// - "PERMISSION_POLICY_UNSPECIFIED" : Policy not specified. If no policy is |
| /// specified for a permission at any level, then the PROMPT behavior is used |
| /// by default. |
| /// - "PROMPT" : Prompt the user to grant a permission. |
| /// - "GRANT" : Automatically grant a permission. |
| /// - "DENY" : Automatically deny a permission. |
| core.String defaultPermissionPolicy; |
| |
| /// The scopes delegated to the app from Android Device Policy. |
| core.List<core.String> delegatedScopes; |
| |
| /// Whether the app is disabled. |
| /// |
| /// When disabled, the app data is still preserved. |
| core.bool disabled; |
| |
| /// The type of installation to perform. |
| /// Possible string values are: |
| /// - "INSTALL_TYPE_UNSPECIFIED" : Unspecified. Defaults to AVAILABLE. |
| /// - "PREINSTALLED" : The app is automatically installed and can be removed |
| /// by the user. |
| /// - "FORCE_INSTALLED" : The app is automatically installed and can't be |
| /// removed by the user. |
| /// - "BLOCKED" : The app is blocked and can't be installed. If the app was |
| /// installed under a previous policy, it will be uninstalled. |
| /// - "AVAILABLE" : The app is available to install. |
| /// - "REQUIRED_FOR_SETUP" : The app is automatically installed and can't be |
| /// removed by the user and will prevent setup from completion until |
| /// installation is complete. |
| /// - "KIOSK" : The app is automatically installed in kiosk mode: it's set as |
| /// the preferred home intent and whitelisted for lock task mode. Device setup |
| /// won't complete until the app is installed. After installation, users won't |
| /// be able to remove the app. You can only set this installType for one app |
| /// per policy. When this is present in the policy, status bar will be |
| /// automatically disabled. |
| core.String installType; |
| |
| /// Whether the app is allowed to lock itself in full-screen mode. |
| /// |
| /// DEPRECATED. Use InstallType KIOSK or kioskCustomLauncherEnabled to to |
| /// configure a dedicated device. |
| core.bool lockTaskAllowed; |
| |
| /// Managed configuration applied to the app. |
| /// |
| /// The format for the configuration is dictated by the ManagedProperty values |
| /// supported by the app. Each field name in the managed configuration must |
| /// match the key field of the ManagedProperty. The field value must be |
| /// compatible with the type of the ManagedProperty: *type* *JSON value* BOOL |
| /// true or false STRING string INTEGER number CHOICE string MULTISELECT array |
| /// of strings HIDDEN string BUNDLE_ARRAY array of objects |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> managedConfiguration; |
| |
| /// The managed configurations template for the app, saved from the managed |
| /// configurations iframe. |
| /// |
| /// This field is ignored if managed_configuration is set. |
| ManagedConfigurationTemplate managedConfigurationTemplate; |
| |
| /// The minimum version of the app that runs on the device. |
| /// |
| /// If set, the device attempts to update the app to at least this version |
| /// code. If the app is not up-to-date, the device will contain a |
| /// NonComplianceDetail with non_compliance_reason set to APP_NOT_UPDATED. The |
| /// app must already be published to Google Play with a version code greater |
| /// than or equal to this value. At most 20 apps may specify a minimum version |
| /// code per policy. |
| core.int minimumVersionCode; |
| |
| /// The package name of the app. |
| /// |
| /// For example, com.google.android.youtube for the YouTube app. |
| core.String packageName; |
| |
| /// Explicit permission grants or denials for the app. |
| /// |
| /// These values override the default_permission_policy and permission_grants |
| /// which apply to all apps. |
| core.List<PermissionGrant> permissionGrants; |
| |
| ApplicationPolicy(); |
| |
| ApplicationPolicy.fromJson(core.Map _json) { |
| if (_json.containsKey('accessibleTrackIds')) { |
| accessibleTrackIds = (_json['accessibleTrackIds'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('autoUpdateMode')) { |
| autoUpdateMode = _json['autoUpdateMode'] as core.String; |
| } |
| if (_json.containsKey('connectedWorkAndPersonalApp')) { |
| connectedWorkAndPersonalApp = |
| _json['connectedWorkAndPersonalApp'] as core.String; |
| } |
| if (_json.containsKey('defaultPermissionPolicy')) { |
| defaultPermissionPolicy = _json['defaultPermissionPolicy'] as core.String; |
| } |
| if (_json.containsKey('delegatedScopes')) { |
| delegatedScopes = (_json['delegatedScopes'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('disabled')) { |
| disabled = _json['disabled'] as core.bool; |
| } |
| if (_json.containsKey('installType')) { |
| installType = _json['installType'] as core.String; |
| } |
| if (_json.containsKey('lockTaskAllowed')) { |
| lockTaskAllowed = _json['lockTaskAllowed'] as core.bool; |
| } |
| if (_json.containsKey('managedConfiguration')) { |
| managedConfiguration = (_json['managedConfiguration'] as core.Map) |
| .cast<core.String, core.Object>() |
| .map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.Object, |
| ), |
| ); |
| } |
| if (_json.containsKey('managedConfigurationTemplate')) { |
| managedConfigurationTemplate = ManagedConfigurationTemplate.fromJson( |
| _json['managedConfigurationTemplate'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('minimumVersionCode')) { |
| minimumVersionCode = _json['minimumVersionCode'] as core.int; |
| } |
| if (_json.containsKey('packageName')) { |
| packageName = _json['packageName'] as core.String; |
| } |
| if (_json.containsKey('permissionGrants')) { |
| permissionGrants = (_json['permissionGrants'] as core.List) |
| .map<PermissionGrant>((value) => PermissionGrant.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accessibleTrackIds != null) { |
| _json['accessibleTrackIds'] = accessibleTrackIds; |
| } |
| if (autoUpdateMode != null) { |
| _json['autoUpdateMode'] = autoUpdateMode; |
| } |
| if (connectedWorkAndPersonalApp != null) { |
| _json['connectedWorkAndPersonalApp'] = connectedWorkAndPersonalApp; |
| } |
| if (defaultPermissionPolicy != null) { |
| _json['defaultPermissionPolicy'] = defaultPermissionPolicy; |
| } |
| if (delegatedScopes != null) { |
| _json['delegatedScopes'] = delegatedScopes; |
| } |
| if (disabled != null) { |
| _json['disabled'] = disabled; |
| } |
| if (installType != null) { |
| _json['installType'] = installType; |
| } |
| if (lockTaskAllowed != null) { |
| _json['lockTaskAllowed'] = lockTaskAllowed; |
| } |
| if (managedConfiguration != null) { |
| _json['managedConfiguration'] = managedConfiguration; |
| } |
| if (managedConfigurationTemplate != null) { |
| _json['managedConfigurationTemplate'] = |
| managedConfigurationTemplate.toJson(); |
| } |
| if (minimumVersionCode != null) { |
| _json['minimumVersionCode'] = minimumVersionCode; |
| } |
| if (packageName != null) { |
| _json['packageName'] = packageName; |
| } |
| if (permissionGrants != null) { |
| _json['permissionGrants'] = |
| permissionGrants.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Information reported about an installed app. |
| class ApplicationReport { |
| /// The source of the package. |
| /// Possible string values are: |
| /// - "APPLICATION_SOURCE_UNSPECIFIED" : The app was sideloaded from an |
| /// unspecified source. |
| /// - "SYSTEM_APP_FACTORY_VERSION" : This is a system app from the device's |
| /// factory image. |
| /// - "SYSTEM_APP_UPDATED_VERSION" : This is an updated system app. |
| /// - "INSTALLED_FROM_PLAY_STORE" : The app was installed from the Google Play |
| /// Store. |
| core.String applicationSource; |
| |
| /// The display name of the app. |
| core.String displayName; |
| |
| /// List of app events. |
| /// |
| /// The most recent 20 events are stored in the list. |
| core.List<ApplicationEvent> events; |
| |
| /// The package name of the app that installed this app. |
| core.String installerPackageName; |
| |
| /// List of keyed app states reported by the app. |
| core.List<KeyedAppState> keyedAppStates; |
| |
| /// Package name of the app. |
| core.String packageName; |
| |
| /// The SHA-256 hash of the app's APK file, which can be used to verify the |
| /// app hasn't been modified. |
| /// |
| /// Each byte of the hash value is represented as a two-digit hexadecimal |
| /// number. |
| core.String packageSha256Hash; |
| |
| /// The SHA-1 hash of each android.content.pm.Signature |
| /// (https://developer.android.com/reference/android/content/pm/Signature.html) |
| /// associated with the app package. |
| /// |
| /// Each byte of each hash value is represented as a two-digit hexadecimal |
| /// number. |
| core.List<core.String> signingKeyCertFingerprints; |
| |
| /// Application state. |
| /// Possible string values are: |
| /// - "APPLICATION_STATE_UNSPECIFIED" : App state is unspecified |
| /// - "REMOVED" : App was removed from the device |
| /// - "INSTALLED" : App is installed on the device |
| core.String state; |
| |
| /// The app version code, which can be used to determine whether one version |
| /// is more recent than another. |
| core.int versionCode; |
| |
| /// The app version as displayed to the user. |
| core.String versionName; |
| |
| ApplicationReport(); |
| |
| ApplicationReport.fromJson(core.Map _json) { |
| if (_json.containsKey('applicationSource')) { |
| applicationSource = _json['applicationSource'] as core.String; |
| } |
| if (_json.containsKey('displayName')) { |
| displayName = _json['displayName'] as core.String; |
| } |
| if (_json.containsKey('events')) { |
| events = (_json['events'] as core.List) |
| .map<ApplicationEvent>((value) => ApplicationEvent.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('installerPackageName')) { |
| installerPackageName = _json['installerPackageName'] as core.String; |
| } |
| if (_json.containsKey('keyedAppStates')) { |
| keyedAppStates = (_json['keyedAppStates'] as core.List) |
| .map<KeyedAppState>((value) => KeyedAppState.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('packageName')) { |
| packageName = _json['packageName'] as core.String; |
| } |
| if (_json.containsKey('packageSha256Hash')) { |
| packageSha256Hash = _json['packageSha256Hash'] as core.String; |
| } |
| if (_json.containsKey('signingKeyCertFingerprints')) { |
| signingKeyCertFingerprints = |
| (_json['signingKeyCertFingerprints'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('state')) { |
| state = _json['state'] as core.String; |
| } |
| if (_json.containsKey('versionCode')) { |
| versionCode = _json['versionCode'] as core.int; |
| } |
| if (_json.containsKey('versionName')) { |
| versionName = _json['versionName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (applicationSource != null) { |
| _json['applicationSource'] = applicationSource; |
| } |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| if (events != null) { |
| _json['events'] = events.map((value) => value.toJson()).toList(); |
| } |
| if (installerPackageName != null) { |
| _json['installerPackageName'] = installerPackageName; |
| } |
| if (keyedAppStates != null) { |
| _json['keyedAppStates'] = |
| keyedAppStates.map((value) => value.toJson()).toList(); |
| } |
| if (packageName != null) { |
| _json['packageName'] = packageName; |
| } |
| if (packageSha256Hash != null) { |
| _json['packageSha256Hash'] = packageSha256Hash; |
| } |
| if (signingKeyCertFingerprints != null) { |
| _json['signingKeyCertFingerprints'] = signingKeyCertFingerprints; |
| } |
| if (state != null) { |
| _json['state'] = state; |
| } |
| if (versionCode != null) { |
| _json['versionCode'] = versionCode; |
| } |
| if (versionName != null) { |
| _json['versionName'] = versionName; |
| } |
| return _json; |
| } |
| } |
| |
| /// Settings controlling the behavior of application reports. |
| class ApplicationReportingSettings { |
| /// Whether removed apps are included in application reports. |
| core.bool includeRemovedApps; |
| |
| ApplicationReportingSettings(); |
| |
| ApplicationReportingSettings.fromJson(core.Map _json) { |
| if (_json.containsKey('includeRemovedApps')) { |
| includeRemovedApps = _json['includeRemovedApps'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (includeRemovedApps != null) { |
| _json['includeRemovedApps'] = includeRemovedApps; |
| } |
| return _json; |
| } |
| } |
| |
| /// An action to block access to apps and data on a fully managed device or in a |
| /// work profile. |
| /// |
| /// This action also triggers a device or work profile to displays a user-facing |
| /// notification with information (where possible) on how to correct the |
| /// compliance issue. Note: wipeAction must also be specified. |
| class BlockAction { |
| /// Number of days the policy is non-compliant before the device or work |
| /// profile is blocked. |
| /// |
| /// To block access immediately, set to 0. blockAfterDays must be less than |
| /// wipeAfterDays. |
| core.int blockAfterDays; |
| |
| /// Specifies the scope of this BlockAction. |
| /// |
| /// Only applicable to devices that are company-owned. |
| /// Possible string values are: |
| /// - "BLOCK_SCOPE_UNSPECIFIED" : Unspecified. Defaults to |
| /// BLOCK_SCOPE_WORK_PROFILE. |
| /// - "BLOCK_SCOPE_WORK_PROFILE" : Block action is only applied to apps in the |
| /// work profile. Apps in the personal profile are unaffected. |
| /// - "BLOCK_SCOPE_DEVICE" : Block action is applied to the entire device, |
| /// including apps in the personal profile. |
| core.String blockScope; |
| |
| BlockAction(); |
| |
| BlockAction.fromJson(core.Map _json) { |
| if (_json.containsKey('blockAfterDays')) { |
| blockAfterDays = _json['blockAfterDays'] as core.int; |
| } |
| if (_json.containsKey('blockScope')) { |
| blockScope = _json['blockScope'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (blockAfterDays != null) { |
| _json['blockAfterDays'] = blockAfterDays; |
| } |
| if (blockScope != null) { |
| _json['blockScope'] = blockScope; |
| } |
| return _json; |
| } |
| } |
| |
| /// A rule for automatically choosing a private key and certificate to |
| /// authenticate the device to a server. |
| class ChoosePrivateKeyRule { |
| /// The package names for which outgoing requests are subject to this rule. |
| /// |
| /// If no package names are specified, then the rule applies to all packages. |
| /// For each package name listed, the rule applies to that package and all |
| /// other packages that shared the same Android UID. The SHA256 hash of the |
| /// signing key signatures of each package_name will be verified against those |
| /// provided by Play |
| core.List<core.String> packageNames; |
| |
| /// The alias of the private key to be used. |
| core.String privateKeyAlias; |
| |
| /// The URL pattern to match against the URL of the outgoing request. |
| /// |
| /// The pattern may contain asterisk (*) wildcards. Any URL is matched if |
| /// unspecified. |
| core.String urlPattern; |
| |
| ChoosePrivateKeyRule(); |
| |
| ChoosePrivateKeyRule.fromJson(core.Map _json) { |
| if (_json.containsKey('packageNames')) { |
| packageNames = (_json['packageNames'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('privateKeyAlias')) { |
| privateKeyAlias = _json['privateKeyAlias'] as core.String; |
| } |
| if (_json.containsKey('urlPattern')) { |
| urlPattern = _json['urlPattern'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (packageNames != null) { |
| _json['packageNames'] = packageNames; |
| } |
| if (privateKeyAlias != null) { |
| _json['privateKeyAlias'] = privateKeyAlias; |
| } |
| if (urlPattern != null) { |
| _json['urlPattern'] = urlPattern; |
| } |
| return _json; |
| } |
| } |
| |
| /// A command. |
| class Command { |
| /// The timestamp at which the command was created. |
| /// |
| /// The timestamp is automatically generated by the server. |
| core.String createTime; |
| |
| /// The duration for which the command is valid. |
| /// |
| /// The command will expire if not executed by the device during this time. |
| /// The default duration if unspecified is ten minutes. There is no maximum |
| /// duration. |
| core.String duration; |
| |
| /// If the command failed, an error code explaining the failure. |
| /// |
| /// This is not set when the command is cancelled by the caller. |
| /// Possible string values are: |
| /// - "COMMAND_ERROR_CODE_UNSPECIFIED" : There was no error. |
| /// - "UNKNOWN" : An unknown error occurred. |
| /// - "API_LEVEL" : The API level of the device does not support this command. |
| /// - "MANAGEMENT_MODE" : The management mode (profile owner, device owner, |
| /// etc.) does not support the command. |
| /// - "INVALID_VALUE" : The command has an invalid parameter value. |
| /// - "UNSUPPORTED" : The device doesn't support the command. Updating Android |
| /// Device Policy to the latest version may resolve the issue. |
| core.String errorCode; |
| |
| /// For commands of type RESET_PASSWORD, optionally specifies the new |
| /// password. |
| core.String newPassword; |
| |
| /// For commands of type RESET_PASSWORD, optionally specifies flags. |
| core.List<core.String> resetPasswordFlags; |
| |
| /// The type of the command. |
| /// Possible string values are: |
| /// - "COMMAND_TYPE_UNSPECIFIED" : This value is disallowed. |
| /// - "LOCK" : Lock the device, as if the lock screen timeout had expired. |
| /// - "RESET_PASSWORD" : Reset the user's password. |
| /// - "REBOOT" : Reboot the device. Only supported on fully managed devices |
| /// running Android 7.0 (API level 24) or higher. |
| /// - "RELINQUISH_OWNERSHIP" : Removes the work profile and all policies from |
| /// a company-owned Android 8.0+ device, relinquishing the device for personal |
| /// use. Apps and data associated with the personal profile(s) are preserved. |
| /// The device will be deleted from the server after it acknowledges the |
| /// command. |
| core.String type; |
| |
| /// The resource name of the user that owns the device in the form |
| /// enterprises/{enterpriseId}/users/{userId}. |
| /// |
| /// This is automatically generated by the server based on the device the |
| /// command is sent to. |
| core.String userName; |
| |
| Command(); |
| |
| Command.fromJson(core.Map _json) { |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('duration')) { |
| duration = _json['duration'] as core.String; |
| } |
| if (_json.containsKey('errorCode')) { |
| errorCode = _json['errorCode'] as core.String; |
| } |
| if (_json.containsKey('newPassword')) { |
| newPassword = _json['newPassword'] as core.String; |
| } |
| if (_json.containsKey('resetPasswordFlags')) { |
| resetPasswordFlags = (_json['resetPasswordFlags'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('type')) { |
| type = _json['type'] as core.String; |
| } |
| if (_json.containsKey('userName')) { |
| userName = _json['userName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (duration != null) { |
| _json['duration'] = duration; |
| } |
| if (errorCode != null) { |
| _json['errorCode'] = errorCode; |
| } |
| if (newPassword != null) { |
| _json['newPassword'] = newPassword; |
| } |
| if (resetPasswordFlags != null) { |
| _json['resetPasswordFlags'] = resetPasswordFlags; |
| } |
| if (type != null) { |
| _json['type'] = type; |
| } |
| if (userName != null) { |
| _json['userName'] = userName; |
| } |
| return _json; |
| } |
| } |
| |
| /// Information about Common Criteria Mode—security standards defined in the |
| /// Common Criteria for Information Technology Security Evaluation |
| /// (https://www.commoncriteriaportal.org/) (CC).This information is only |
| /// available if statusReportingSettings.commonCriteriaModeEnabled is true in |
| /// the device's policy. |
| class CommonCriteriaModeInfo { |
| /// Whether Common Criteria Mode is enabled. |
| /// Possible string values are: |
| /// - "COMMON_CRITERIA_MODE_STATUS_UNKNOWN" : Unknown status. |
| /// - "COMMON_CRITERIA_MODE_DISABLED" : Common Criteria Mode is currently |
| /// disabled. |
| /// - "COMMON_CRITERIA_MODE_ENABLED" : Common Criteria Mode is currently |
| /// enabled. |
| core.String commonCriteriaModeStatus; |
| |
| CommonCriteriaModeInfo(); |
| |
| CommonCriteriaModeInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('commonCriteriaModeStatus')) { |
| commonCriteriaModeStatus = |
| _json['commonCriteriaModeStatus'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (commonCriteriaModeStatus != null) { |
| _json['commonCriteriaModeStatus'] = commonCriteriaModeStatus; |
| } |
| return _json; |
| } |
| } |
| |
| /// A rule declaring which mitigating actions to take when a device is not |
| /// compliant with its policy. |
| /// |
| /// For every rule, there is always an implicit mitigating action to set |
| /// policy_compliant to false for the Device resource, and display a message on |
| /// the device indicating that the device is not compliant with its policy. |
| /// Other mitigating actions may optionally be taken as well, depending on the |
| /// field values in the rule. |
| class ComplianceRule { |
| /// A condition which is satisfied if the Android Framework API level on the |
| /// device doesn't meet a minimum requirement. |
| ApiLevelCondition apiLevelCondition; |
| |
| /// If set to true, the rule includes a mitigating action to disable apps so |
| /// that the device is effectively disabled, but app data is preserved. |
| /// |
| /// If the device is running an app in locked task mode, the app will be |
| /// closed and a UI showing the reason for non-compliance will be displayed. |
| core.bool disableApps; |
| |
| /// A condition which is satisfied if there exists any matching |
| /// NonComplianceDetail for the device. |
| NonComplianceDetailCondition nonComplianceDetailCondition; |
| |
| /// If set, the rule includes a mitigating action to disable apps specified in |
| /// the list, but app data is preserved. |
| core.List<core.String> packageNamesToDisable; |
| |
| ComplianceRule(); |
| |
| ComplianceRule.fromJson(core.Map _json) { |
| if (_json.containsKey('apiLevelCondition')) { |
| apiLevelCondition = ApiLevelCondition.fromJson( |
| _json['apiLevelCondition'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('disableApps')) { |
| disableApps = _json['disableApps'] as core.bool; |
| } |
| if (_json.containsKey('nonComplianceDetailCondition')) { |
| nonComplianceDetailCondition = NonComplianceDetailCondition.fromJson( |
| _json['nonComplianceDetailCondition'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('packageNamesToDisable')) { |
| packageNamesToDisable = (_json['packageNamesToDisable'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (apiLevelCondition != null) { |
| _json['apiLevelCondition'] = apiLevelCondition.toJson(); |
| } |
| if (disableApps != null) { |
| _json['disableApps'] = disableApps; |
| } |
| if (nonComplianceDetailCondition != null) { |
| _json['nonComplianceDetailCondition'] = |
| nonComplianceDetailCondition.toJson(); |
| } |
| if (packageNamesToDisable != null) { |
| _json['packageNamesToDisable'] = packageNamesToDisable; |
| } |
| return _json; |
| } |
| } |
| |
| /// Contact details for LaForge enterprises. |
| class ContactInfo { |
| /// Email address for a point of contact, which will be used to send important |
| /// announcements related to managed Google Play. |
| core.String contactEmail; |
| |
| /// The email of the data protection officer. |
| /// |
| /// The email is validated but not verified. |
| core.String dataProtectionOfficerEmail; |
| |
| /// The name of the data protection officer. |
| core.String dataProtectionOfficerName; |
| |
| /// The phone number of the data protection officer The phone number is |
| /// validated but not verified. |
| core.String dataProtectionOfficerPhone; |
| |
| /// The email of the EU representative. |
| /// |
| /// The email is validated but not verified. |
| core.String euRepresentativeEmail; |
| |
| /// The name of the EU representative. |
| core.String euRepresentativeName; |
| |
| /// The phone number of the EU representative. |
| /// |
| /// The phone number is validated but not verified. |
| core.String euRepresentativePhone; |
| |
| ContactInfo(); |
| |
| ContactInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('contactEmail')) { |
| contactEmail = _json['contactEmail'] as core.String; |
| } |
| if (_json.containsKey('dataProtectionOfficerEmail')) { |
| dataProtectionOfficerEmail = |
| _json['dataProtectionOfficerEmail'] as core.String; |
| } |
| if (_json.containsKey('dataProtectionOfficerName')) { |
| dataProtectionOfficerName = |
| _json['dataProtectionOfficerName'] as core.String; |
| } |
| if (_json.containsKey('dataProtectionOfficerPhone')) { |
| dataProtectionOfficerPhone = |
| _json['dataProtectionOfficerPhone'] as core.String; |
| } |
| if (_json.containsKey('euRepresentativeEmail')) { |
| euRepresentativeEmail = _json['euRepresentativeEmail'] as core.String; |
| } |
| if (_json.containsKey('euRepresentativeName')) { |
| euRepresentativeName = _json['euRepresentativeName'] as core.String; |
| } |
| if (_json.containsKey('euRepresentativePhone')) { |
| euRepresentativePhone = _json['euRepresentativePhone'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (contactEmail != null) { |
| _json['contactEmail'] = contactEmail; |
| } |
| if (dataProtectionOfficerEmail != null) { |
| _json['dataProtectionOfficerEmail'] = dataProtectionOfficerEmail; |
| } |
| if (dataProtectionOfficerName != null) { |
| _json['dataProtectionOfficerName'] = dataProtectionOfficerName; |
| } |
| if (dataProtectionOfficerPhone != null) { |
| _json['dataProtectionOfficerPhone'] = dataProtectionOfficerPhone; |
| } |
| if (euRepresentativeEmail != null) { |
| _json['euRepresentativeEmail'] = euRepresentativeEmail; |
| } |
| if (euRepresentativeName != null) { |
| _json['euRepresentativeName'] = euRepresentativeName; |
| } |
| if (euRepresentativePhone != null) { |
| _json['euRepresentativePhone'] = euRepresentativePhone; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a whole or partial calendar date, such as a birthday. |
| /// |
| /// The time of day and time zone are either specified elsewhere or are |
| /// insignificant. The date is relative to the Gregorian Calendar. This can |
| /// represent one of the following: A full date, with non-zero year, month, and |
| /// day values A month and day value, with a zero year, such as an anniversary A |
| /// year on its own, with zero month and day values A year and month value, with |
| /// a zero day, such as a credit card expiration dateRelated types are |
| /// google.type.TimeOfDay and google.protobuf.Timestamp. |
| class Date { |
| /// Day of a month. |
| /// |
| /// Must be from 1 to 31 and valid for the year and month, or 0 to specify a |
| /// year by itself or a year and month where the day isn't significant. |
| core.int day; |
| |
| /// Month of a year. |
| /// |
| /// Must be from 1 to 12, or 0 to specify a year without a month and day. |
| core.int month; |
| |
| /// Year of the date. |
| /// |
| /// Must be from 1 to 9999, or 0 to specify a date without a year. |
| core.int year; |
| |
| Date(); |
| |
| Date.fromJson(core.Map _json) { |
| if (_json.containsKey('day')) { |
| day = _json['day'] as core.int; |
| } |
| if (_json.containsKey('month')) { |
| month = _json['month'] as core.int; |
| } |
| if (_json.containsKey('year')) { |
| year = _json['year'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (day != null) { |
| _json['day'] = day; |
| } |
| if (month != null) { |
| _json['month'] = month; |
| } |
| if (year != null) { |
| _json['year'] = year; |
| } |
| return _json; |
| } |
| } |
| |
| /// A device owned by an enterprise. |
| /// |
| /// Unless otherwise noted, all fields are read-only and can't be modified by |
| /// enterprises.devices.patch. |
| class Device { |
| /// The API level of the Android platform version running on the device. |
| core.int apiLevel; |
| |
| /// Reports for apps installed on the device. |
| /// |
| /// This information is only available when application_reports_enabled is |
| /// true in the device's policy. |
| core.List<ApplicationReport> applicationReports; |
| |
| /// The name of the policy currently applied to the device. |
| core.String appliedPolicyName; |
| |
| /// The version of the policy currently applied to the device. |
| core.String appliedPolicyVersion; |
| |
| /// The state currently applied to the device. |
| /// Possible string values are: |
| /// - "DEVICE_STATE_UNSPECIFIED" : This value is disallowed. |
| /// - "ACTIVE" : The device is active. |
| /// - "DISABLED" : The device is disabled. |
| /// - "DELETED" : The device was deleted. This state will never be returned by |
| /// an API call, but is used in the final status report published to Cloud |
| /// Pub/Sub when the device acknowledges the deletion. |
| /// - "PROVISIONING" : The device is being provisioned. Newly enrolled devices |
| /// are in this state until they have a policy applied. |
| core.String appliedState; |
| |
| /// Information about Common Criteria Mode—security standards defined in the |
| /// Common Criteria for Information Technology Security Evaluation |
| /// (https://www.commoncriteriaportal.org/) (CC).This information is only |
| /// available if statusReportingSettings.commonCriteriaModeEnabled is true in |
| /// the device's policy. |
| CommonCriteriaModeInfo commonCriteriaModeInfo; |
| |
| /// Device settings information. |
| /// |
| /// This information is only available if deviceSettingsEnabled is true in the |
| /// device's policy. |
| DeviceSettings deviceSettings; |
| |
| /// If the device state is DISABLED, an optional message that is displayed on |
| /// the device indicating the reason the device is disabled. |
| /// |
| /// This field can be modified by a patch request. |
| UserFacingMessage disabledReason; |
| |
| /// Detailed information about displays on the device. |
| /// |
| /// This information is only available if displayInfoEnabled is true in the |
| /// device's policy. |
| core.List<Display> displays; |
| |
| /// The time of device enrollment. |
| core.String enrollmentTime; |
| |
| /// If the device was enrolled with an enrollment token with additional data |
| /// provided, this field contains that data. |
| core.String enrollmentTokenData; |
| |
| /// If the device was enrolled with an enrollment token, this field contains |
| /// the name of the token. |
| core.String enrollmentTokenName; |
| |
| /// Detailed information about the device hardware. |
| HardwareInfo hardwareInfo; |
| |
| /// Hardware status samples in chronological order. |
| /// |
| /// This information is only available if hardwareStatusEnabled is true in the |
| /// device's policy. |
| core.List<HardwareStatus> hardwareStatusSamples; |
| |
| /// Deprecated. |
| core.String lastPolicyComplianceReportTime; |
| |
| /// The last time the device fetched its policy. |
| core.String lastPolicySyncTime; |
| |
| /// The last time the device sent a status report. |
| core.String lastStatusReportTime; |
| |
| /// The type of management mode Android Device Policy takes on the device. |
| /// |
| /// This influences which policy settings are supported. |
| /// Possible string values are: |
| /// - "MANAGEMENT_MODE_UNSPECIFIED" : This value is disallowed. |
| /// - "DEVICE_OWNER" : Device owner. Android Device Policy has full control |
| /// over the device. |
| /// - "PROFILE_OWNER" : Profile owner. Android Device Policy has control over |
| /// a managed profile on the device. |
| core.String managementMode; |
| |
| /// Events related to memory and storage measurements in chronological order. |
| /// |
| /// This information is only available if memoryInfoEnabled is true in the |
| /// device's policy. |
| core.List<MemoryEvent> memoryEvents; |
| |
| /// Memory information. |
| /// |
| /// This information is only available if memoryInfoEnabled is true in the |
| /// device's policy. |
| MemoryInfo memoryInfo; |
| |
| /// The name of the device in the form |
| /// enterprises/{enterpriseId}/devices/{deviceId}. |
| core.String name; |
| |
| /// Device network information. |
| /// |
| /// This information is only available if networkInfoEnabled is true in the |
| /// device's policy. |
| NetworkInfo networkInfo; |
| |
| /// Details about policy settings that the device is not compliant with. |
| core.List<NonComplianceDetail> nonComplianceDetails; |
| |
| /// Ownership of the managed device. |
| /// Possible string values are: |
| /// - "OWNERSHIP_UNSPECIFIED" : Ownership is unspecified. |
| /// - "COMPANY_OWNED" : Device is company-owned. |
| /// - "PERSONALLY_OWNED" : Device is personally-owned. |
| core.String ownership; |
| |
| /// Whether the device is compliant with its policy. |
| core.bool policyCompliant; |
| |
| /// The name of the policy applied to the device, in the form |
| /// enterprises/{enterpriseId}/policies/{policyId}. |
| /// |
| /// If not specified, the policy_name for the device's user is applied. This |
| /// field can be modified by a patch request. You can specify only the |
| /// policyId when calling enterprises.devices.patch, as long as the policyId |
| /// doesn’t contain any slashes. The rest of the policy name is inferred. |
| core.String policyName; |
| |
| /// Power management events on the device in chronological order. |
| /// |
| /// This information is only available if powerManagementEventsEnabled is true |
| /// in the device's policy. |
| core.List<PowerManagementEvent> powerManagementEvents; |
| |
| /// If the same physical device has been enrolled multiple times, this field |
| /// contains its previous device names. |
| /// |
| /// The serial number is used as the unique identifier to determine if the |
| /// same physical device has enrolled previously. The names are in |
| /// chronological order. |
| core.List<core.String> previousDeviceNames; |
| |
| /// Device's security posture value that reflects how secure the device is. |
| SecurityPosture securityPosture; |
| |
| /// Detailed information about the device software. |
| /// |
| /// This information is only available if softwareInfoEnabled is true in the |
| /// device's policy. |
| SoftwareInfo softwareInfo; |
| |
| /// The state to be applied to the device. |
| /// |
| /// This field can be modified by a patch request. Note that when calling |
| /// enterprises.devices.patch, ACTIVE and DISABLED are the only allowable |
| /// values. To enter the device into a DELETED state, call |
| /// enterprises.devices.delete. |
| /// Possible string values are: |
| /// - "DEVICE_STATE_UNSPECIFIED" : This value is disallowed. |
| /// - "ACTIVE" : The device is active. |
| /// - "DISABLED" : The device is disabled. |
| /// - "DELETED" : The device was deleted. This state will never be returned by |
| /// an API call, but is used in the final status report published to Cloud |
| /// Pub/Sub when the device acknowledges the deletion. |
| /// - "PROVISIONING" : The device is being provisioned. Newly enrolled devices |
| /// are in this state until they have a policy applied. |
| core.String state; |
| |
| /// Map of selected system properties name and value related to the device. |
| /// |
| /// This information is only available if systemPropertiesEnabled is true in |
| /// the device's policy. |
| core.Map<core.String, core.String> systemProperties; |
| |
| /// The user who owns the device. |
| User user; |
| |
| /// The resource name of the user that owns this device in the form |
| /// enterprises/{enterpriseId}/users/{userId}. |
| core.String userName; |
| |
| Device(); |
| |
| Device.fromJson(core.Map _json) { |
| if (_json.containsKey('apiLevel')) { |
| apiLevel = _json['apiLevel'] as core.int; |
| } |
| if (_json.containsKey('applicationReports')) { |
| applicationReports = (_json['applicationReports'] as core.List) |
| .map<ApplicationReport>((value) => ApplicationReport.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('appliedPolicyName')) { |
| appliedPolicyName = _json['appliedPolicyName'] as core.String; |
| } |
| if (_json.containsKey('appliedPolicyVersion')) { |
| appliedPolicyVersion = _json['appliedPolicyVersion'] as core.String; |
| } |
| if (_json.containsKey('appliedState')) { |
| appliedState = _json['appliedState'] as core.String; |
| } |
| if (_json.containsKey('commonCriteriaModeInfo')) { |
| commonCriteriaModeInfo = CommonCriteriaModeInfo.fromJson( |
| _json['commonCriteriaModeInfo'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('deviceSettings')) { |
| deviceSettings = DeviceSettings.fromJson( |
| _json['deviceSettings'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('disabledReason')) { |
| disabledReason = UserFacingMessage.fromJson( |
| _json['disabledReason'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('displays')) { |
| displays = (_json['displays'] as core.List) |
| .map<Display>((value) => |
| Display.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('enrollmentTime')) { |
| enrollmentTime = _json['enrollmentTime'] as core.String; |
| } |
| if (_json.containsKey('enrollmentTokenData')) { |
| enrollmentTokenData = _json['enrollmentTokenData'] as core.String; |
| } |
| if (_json.containsKey('enrollmentTokenName')) { |
| enrollmentTokenName = _json['enrollmentTokenName'] as core.String; |
| } |
| if (_json.containsKey('hardwareInfo')) { |
| hardwareInfo = HardwareInfo.fromJson( |
| _json['hardwareInfo'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('hardwareStatusSamples')) { |
| hardwareStatusSamples = (_json['hardwareStatusSamples'] as core.List) |
| .map<HardwareStatus>((value) => HardwareStatus.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('lastPolicyComplianceReportTime')) { |
| lastPolicyComplianceReportTime = |
| _json['lastPolicyComplianceReportTime'] as core.String; |
| } |
| if (_json.containsKey('lastPolicySyncTime')) { |
| lastPolicySyncTime = _json['lastPolicySyncTime'] as core.String; |
| } |
| if (_json.containsKey('lastStatusReportTime')) { |
| lastStatusReportTime = _json['lastStatusReportTime'] as core.String; |
| } |
| if (_json.containsKey('managementMode')) { |
| managementMode = _json['managementMode'] as core.String; |
| } |
| if (_json.containsKey('memoryEvents')) { |
| memoryEvents = (_json['memoryEvents'] as core.List) |
| .map<MemoryEvent>((value) => MemoryEvent.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('memoryInfo')) { |
| memoryInfo = MemoryInfo.fromJson( |
| _json['memoryInfo'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('networkInfo')) { |
| networkInfo = NetworkInfo.fromJson( |
| _json['networkInfo'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('nonComplianceDetails')) { |
| nonComplianceDetails = (_json['nonComplianceDetails'] as core.List) |
| .map<NonComplianceDetail>((value) => NonComplianceDetail.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('ownership')) { |
| ownership = _json['ownership'] as core.String; |
| } |
| if (_json.containsKey('policyCompliant')) { |
| policyCompliant = _json['policyCompliant'] as core.bool; |
| } |
| if (_json.containsKey('policyName')) { |
| policyName = _json['policyName'] as core.String; |
| } |
| if (_json.containsKey('powerManagementEvents')) { |
| powerManagementEvents = (_json['powerManagementEvents'] as core.List) |
| .map<PowerManagementEvent>((value) => PowerManagementEvent.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('previousDeviceNames')) { |
| previousDeviceNames = (_json['previousDeviceNames'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('securityPosture')) { |
| securityPosture = SecurityPosture.fromJson( |
| _json['securityPosture'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('softwareInfo')) { |
| softwareInfo = SoftwareInfo.fromJson( |
| _json['softwareInfo'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('state')) { |
| state = _json['state'] as core.String; |
| } |
| if (_json.containsKey('systemProperties')) { |
| systemProperties = (_json['systemProperties'] as core.Map) |
| .cast<core.String, core.String>() |
| .map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.String, |
| ), |
| ); |
| } |
| if (_json.containsKey('user')) { |
| user = |
| User.fromJson(_json['user'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('userName')) { |
| userName = _json['userName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (apiLevel != null) { |
| _json['apiLevel'] = apiLevel; |
| } |
| if (applicationReports != null) { |
| _json['applicationReports'] = |
| applicationReports.map((value) => value.toJson()).toList(); |
| } |
| if (appliedPolicyName != null) { |
| _json['appliedPolicyName'] = appliedPolicyName; |
| } |
| if (appliedPolicyVersion != null) { |
| _json['appliedPolicyVersion'] = appliedPolicyVersion; |
| } |
| if (appliedState != null) { |
| _json['appliedState'] = appliedState; |
| } |
| if (commonCriteriaModeInfo != null) { |
| _json['commonCriteriaModeInfo'] = commonCriteriaModeInfo.toJson(); |
| } |
| if (deviceSettings != null) { |
| _json['deviceSettings'] = deviceSettings.toJson(); |
| } |
| if (disabledReason != null) { |
| _json['disabledReason'] = disabledReason.toJson(); |
| } |
| if (displays != null) { |
| _json['displays'] = displays.map((value) => value.toJson()).toList(); |
| } |
| if (enrollmentTime != null) { |
| _json['enrollmentTime'] = enrollmentTime; |
| } |
| if (enrollmentTokenData != null) { |
| _json['enrollmentTokenData'] = enrollmentTokenData; |
| } |
| if (enrollmentTokenName != null) { |
| _json['enrollmentTokenName'] = enrollmentTokenName; |
| } |
| if (hardwareInfo != null) { |
| _json['hardwareInfo'] = hardwareInfo.toJson(); |
| } |
| if (hardwareStatusSamples != null) { |
| _json['hardwareStatusSamples'] = |
| hardwareStatusSamples.map((value) => value.toJson()).toList(); |
| } |
| if (lastPolicyComplianceReportTime != null) { |
| _json['lastPolicyComplianceReportTime'] = lastPolicyComplianceReportTime; |
| } |
| if (lastPolicySyncTime != null) { |
| _json['lastPolicySyncTime'] = lastPolicySyncTime; |
| } |
| if (lastStatusReportTime != null) { |
| _json['lastStatusReportTime'] = lastStatusReportTime; |
| } |
| if (managementMode != null) { |
| _json['managementMode'] = managementMode; |
| } |
| if (memoryEvents != null) { |
| _json['memoryEvents'] = |
| memoryEvents.map((value) => value.toJson()).toList(); |
| } |
| if (memoryInfo != null) { |
| _json['memoryInfo'] = memoryInfo.toJson(); |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (networkInfo != null) { |
| _json['networkInfo'] = networkInfo.toJson(); |
| } |
| if (nonComplianceDetails != null) { |
| _json['nonComplianceDetails'] = |
| nonComplianceDetails.map((value) => value.toJson()).toList(); |
| } |
| if (ownership != null) { |
| _json['ownership'] = ownership; |
| } |
| if (policyCompliant != null) { |
| _json['policyCompliant'] = policyCompliant; |
| } |
| if (policyName != null) { |
| _json['policyName'] = policyName; |
| } |
| if (powerManagementEvents != null) { |
| _json['powerManagementEvents'] = |
| powerManagementEvents.map((value) => value.toJson()).toList(); |
| } |
| if (previousDeviceNames != null) { |
| _json['previousDeviceNames'] = previousDeviceNames; |
| } |
| if (securityPosture != null) { |
| _json['securityPosture'] = securityPosture.toJson(); |
| } |
| if (softwareInfo != null) { |
| _json['softwareInfo'] = softwareInfo.toJson(); |
| } |
| if (state != null) { |
| _json['state'] = state; |
| } |
| if (systemProperties != null) { |
| _json['systemProperties'] = systemProperties; |
| } |
| if (user != null) { |
| _json['user'] = user.toJson(); |
| } |
| if (userName != null) { |
| _json['userName'] = userName; |
| } |
| return _json; |
| } |
| } |
| |
| /// Information about security related device settings on device. |
| class DeviceSettings { |
| /// Whether ADB (https://developer.android.com/studio/command-line/adb.html) |
| /// is enabled on the device. |
| core.bool adbEnabled; |
| |
| /// Whether developer mode is enabled on the device. |
| core.bool developmentSettingsEnabled; |
| |
| /// Encryption status from DevicePolicyManager. |
| /// Possible string values are: |
| /// - "ENCRYPTION_STATUS_UNSPECIFIED" : Unspecified. No device should have |
| /// this type. |
| /// - "UNSUPPORTED" : Encryption is not supported by the device. |
| /// - "INACTIVE" : Encryption is supported by the device, but is not currently |
| /// active. |
| /// - "ACTIVATING" : Encryption is not currently active, but is currently |
| /// being activated. |
| /// - "ACTIVE" : Encryption is active. |
| /// - "ACTIVE_DEFAULT_KEY" : Encryption is active, but an encryption key is |
| /// not set by the user. |
| /// - "ACTIVE_PER_USER" : Encryption is active, and the encryption key is tied |
| /// to the user profile. |
| core.String encryptionStatus; |
| |
| /// Whether the device is secured with PIN/password. |
| core.bool isDeviceSecure; |
| |
| /// Whether the storage encryption is enabled. |
| core.bool isEncrypted; |
| |
| /// Whether installing apps from unknown sources is enabled. |
| core.bool unknownSourcesEnabled; |
| |
| /// Whether Verify Apps (Google Play Protect |
| /// (https://support.google.com/googleplay/answer/2812853)) is enabled on the |
| /// device. |
| core.bool verifyAppsEnabled; |
| |
| DeviceSettings(); |
| |
| DeviceSettings.fromJson(core.Map _json) { |
| if (_json.containsKey('adbEnabled')) { |
| adbEnabled = _json['adbEnabled'] as core.bool; |
| } |
| if (_json.containsKey('developmentSettingsEnabled')) { |
| developmentSettingsEnabled = |
| _json['developmentSettingsEnabled'] as core.bool; |
| } |
| if (_json.containsKey('encryptionStatus')) { |
| encryptionStatus = _json['encryptionStatus'] as core.String; |
| } |
| if (_json.containsKey('isDeviceSecure')) { |
| isDeviceSecure = _json['isDeviceSecure'] as core.bool; |
| } |
| if (_json.containsKey('isEncrypted')) { |
| isEncrypted = _json['isEncrypted'] as core.bool; |
| } |
| if (_json.containsKey('unknownSourcesEnabled')) { |
| unknownSourcesEnabled = _json['unknownSourcesEnabled'] as core.bool; |
| } |
| if (_json.containsKey('verifyAppsEnabled')) { |
| verifyAppsEnabled = _json['verifyAppsEnabled'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (adbEnabled != null) { |
| _json['adbEnabled'] = adbEnabled; |
| } |
| if (developmentSettingsEnabled != null) { |
| _json['developmentSettingsEnabled'] = developmentSettingsEnabled; |
| } |
| if (encryptionStatus != null) { |
| _json['encryptionStatus'] = encryptionStatus; |
| } |
| if (isDeviceSecure != null) { |
| _json['isDeviceSecure'] = isDeviceSecure; |
| } |
| if (isEncrypted != null) { |
| _json['isEncrypted'] = isEncrypted; |
| } |
| if (unknownSourcesEnabled != null) { |
| _json['unknownSourcesEnabled'] = unknownSourcesEnabled; |
| } |
| if (verifyAppsEnabled != null) { |
| _json['verifyAppsEnabled'] = verifyAppsEnabled; |
| } |
| return _json; |
| } |
| } |
| |
| /// Device display information. |
| class Display { |
| /// Display density expressed as dots-per-inch. |
| core.int density; |
| |
| /// Unique display id. |
| core.int displayId; |
| |
| /// Display height in pixels. |
| core.int height; |
| |
| /// Name of the display. |
| core.String name; |
| |
| /// Refresh rate of the display in frames per second. |
| core.int refreshRate; |
| |
| /// State of the display. |
| /// Possible string values are: |
| /// - "DISPLAY_STATE_UNSPECIFIED" : This value is disallowed. |
| /// - "OFF" : Display is off. |
| /// - "ON" : Display is on. |
| /// - "DOZE" : Display is dozing in a low power state |
| /// - "SUSPENDED" : Display is dozing in a suspended low power state. |
| core.String state; |
| |
| /// Display width in pixels. |
| core.int width; |
| |
| Display(); |
| |
| Display.fromJson(core.Map _json) { |
| if (_json.containsKey('density')) { |
| density = _json['density'] as core.int; |
| } |
| if (_json.containsKey('displayId')) { |
| displayId = _json['displayId'] as core.int; |
| } |
| if (_json.containsKey('height')) { |
| height = _json['height'] as core.int; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('refreshRate')) { |
| refreshRate = _json['refreshRate'] as core.int; |
| } |
| if (_json.containsKey('state')) { |
| state = _json['state'] as core.String; |
| } |
| if (_json.containsKey('width')) { |
| width = _json['width'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (density != null) { |
| _json['density'] = density; |
| } |
| if (displayId != null) { |
| _json['displayId'] = displayId; |
| } |
| if (height != null) { |
| _json['height'] = height; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (refreshRate != null) { |
| _json['refreshRate'] = refreshRate; |
| } |
| if (state != null) { |
| _json['state'] = state; |
| } |
| if (width != null) { |
| _json['width'] = width; |
| } |
| return _json; |
| } |
| } |
| |
| /// A generic empty message that you can re-use to avoid defining duplicated |
| /// empty messages in your APIs. |
| /// |
| /// A typical example is to use it as the request or the response type of an API |
| /// method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns |
| /// (google.protobuf.Empty); } The JSON representation for Empty is empty JSON |
| /// object {}. |
| class Empty { |
| Empty(); |
| |
| Empty.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// An enrollment token. |
| class EnrollmentToken { |
| /// Optional, arbitrary data associated with the enrollment token. |
| /// |
| /// This could contain, for example, the ID of an org unit the device is |
| /// assigned to after enrollment. After a device enrolls with the token, this |
| /// data will be exposed in the enrollment_token_data field of the Device |
| /// resource. The data must be 1024 characters or less; otherwise, the |
| /// creation request will fail. |
| core.String additionalData; |
| |
| /// Controls whether personal usage is allowed on a device provisioned with |
| /// this enrollment token.For company-owned devices: Enabling personal usage |
| /// allows the user to set up a work profile on the device. |
| /// |
| /// Disabling personal usage requires the user provision the device as a fully |
| /// managed device.For personally-owned devices: Enabling personal usage |
| /// allows the user to set up a work profile on the device. Disabling personal |
| /// usage will prevent the device from provisioning. Personal usage cannot be |
| /// disabled on personally-owned device. |
| /// Possible string values are: |
| /// - "ALLOW_PERSONAL_USAGE_UNSPECIFIED" : Personal usage restriction is not |
| /// specified |
| /// - "PERSONAL_USAGE_ALLOWED" : Personal usage is allowed |
| /// - "PERSONAL_USAGE_DISALLOWED" : Personal usage is disallowed |
| core.String allowPersonalUsage; |
| |
| /// The length of time the enrollment token is valid, ranging from 1 minute to |
| /// 90 days. |
| /// |
| /// If not specified, the default duration is 1 hour. |
| core.String duration; |
| |
| /// The expiration time of the token. |
| /// |
| /// This is a read-only field generated by the server. |
| core.String expirationTimestamp; |
| |
| /// The name of the enrollment token, which is generated by the server during |
| /// creation, in the form |
| /// enterprises/{enterpriseId}/enrollmentTokens/{enrollmentTokenId}. |
| core.String name; |
| |
| /// Whether the enrollment token is for one time use only. |
| /// |
| /// If the flag is set to true, only one device can use it for registration. |
| core.bool oneTimeOnly; |
| |
| /// The name of the policy initially applied to the enrolled device, in the |
| /// form enterprises/{enterpriseId}/policies/{policyId}. |
| /// |
| /// If not specified, the policy_name for the device’s user is applied. If |
| /// user_name is also not specified, |
| /// enterprises/{enterpriseId}/policies/default is applied by default. When |
| /// updating this field, you can specify only the policyId as long as the |
| /// policyId doesn’t contain any slashes. The rest of the policy name will be |
| /// inferred. |
| core.String policyName; |
| |
| /// A JSON string whose UTF-8 representation can be used to generate a QR code |
| /// to enroll a device with this enrollment token. |
| /// |
| /// To enroll a device using NFC, the NFC record must contain a serialized |
| /// java.util.Properties representation of the properties in the JSON. |
| core.String qrCode; |
| |
| /// The user associated with this enrollment token. |
| /// |
| /// If it's specified when the enrollment token is created and the user does |
| /// not exist, the user will be created. This field must not contain |
| /// personally identifiable information. Only the account_identifier field |
| /// needs to be set. |
| User user; |
| |
| /// The token value that's passed to the device and authorizes the device to |
| /// enroll. |
| /// |
| /// This is a read-only field generated by the server. |
| core.String value; |
| |
| EnrollmentToken(); |
| |
| EnrollmentToken.fromJson(core.Map _json) { |
| if (_json.containsKey('additionalData')) { |
| additionalData = _json['additionalData'] as core.String; |
| } |
| if (_json.containsKey('allowPersonalUsage')) { |
| allowPersonalUsage = _json['allowPersonalUsage'] as core.String; |
| } |
| if (_json.containsKey('duration')) { |
| duration = _json['duration'] as core.String; |
| } |
| if (_json.containsKey('expirationTimestamp')) { |
| expirationTimestamp = _json['expirationTimestamp'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('oneTimeOnly')) { |
| oneTimeOnly = _json['oneTimeOnly'] as core.bool; |
| } |
| if (_json.containsKey('policyName')) { |
| policyName = _json['policyName'] as core.String; |
| } |
| if (_json.containsKey('qrCode')) { |
| qrCode = _json['qrCode'] as core.String; |
| } |
| if (_json.containsKey('user')) { |
| user = |
| User.fromJson(_json['user'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('value')) { |
| value = _json['value'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (additionalData != null) { |
| _json['additionalData'] = additionalData; |
| } |
| if (allowPersonalUsage != null) { |
| _json['allowPersonalUsage'] = allowPersonalUsage; |
| } |
| if (duration != null) { |
| _json['duration'] = duration; |
| } |
| if (expirationTimestamp != null) { |
| _json['expirationTimestamp'] = expirationTimestamp; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (oneTimeOnly != null) { |
| _json['oneTimeOnly'] = oneTimeOnly; |
| } |
| if (policyName != null) { |
| _json['policyName'] = policyName; |
| } |
| if (qrCode != null) { |
| _json['qrCode'] = qrCode; |
| } |
| if (user != null) { |
| _json['user'] = user.toJson(); |
| } |
| if (value != null) { |
| _json['value'] = value; |
| } |
| return _json; |
| } |
| } |
| |
| /// The configuration applied to an enterprise. |
| class Enterprise { |
| /// Deprecated and unused. |
| core.bool appAutoApprovalEnabled; |
| |
| /// This feature is not generally available yet. |
| /// |
| /// The enterprise contact info of an EMM owned enterprise |
| ContactInfo contactInfo; |
| |
| /// The types of Google Pub/Sub notifications enabled for the enterprise. |
| core.List<core.String> enabledNotificationTypes; |
| |
| /// The name of the enterprise displayed to users. |
| core.String enterpriseDisplayName; |
| |
| /// An image displayed as a logo during device provisioning. |
| /// |
| /// Supported types are: image/bmp, image/gif, image/x-ico, image/jpeg, |
| /// image/png, image/webp, image/vnd.wap.wbmp, image/x-adobe-dng. |
| ExternalData logo; |
| |
| /// The name of the enterprise which is generated by the server during |
| /// creation, in the form enterprises/{enterpriseId}. |
| core.String name; |
| |
| /// A color in RGB format that indicates the predominant color to display in |
| /// the device management app UI. |
| /// |
| /// The color components are stored as follows: (red << 16) | (green << 8) | |
| /// blue, where the value of each component is between 0 and 255, inclusive. |
| core.int primaryColor; |
| |
| /// The topic that Cloud Pub/Sub notifications are published to, in the form |
| /// projects/{project}/topics/{topic}. |
| /// |
| /// This field is only required if Pub/Sub notifications are enabled. |
| core.String pubsubTopic; |
| |
| /// Sign-in details of the enterprise. |
| core.List<SigninDetail> signinDetails; |
| |
| /// Terms and conditions that must be accepted when provisioning a device for |
| /// this enterprise. |
| /// |
| /// A page of terms is generated for each value in this list. |
| core.List<TermsAndConditions> termsAndConditions; |
| |
| Enterprise(); |
| |
| Enterprise.fromJson(core.Map _json) { |
| if (_json.containsKey('appAutoApprovalEnabled')) { |
| appAutoApprovalEnabled = _json['appAutoApprovalEnabled'] as core.bool; |
| } |
| if (_json.containsKey('contactInfo')) { |
| contactInfo = ContactInfo.fromJson( |
| _json['contactInfo'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('enabledNotificationTypes')) { |
| enabledNotificationTypes = |
| (_json['enabledNotificationTypes'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('enterpriseDisplayName')) { |
| enterpriseDisplayName = _json['enterpriseDisplayName'] as core.String; |
| } |
| if (_json.containsKey('logo')) { |
| logo = ExternalData.fromJson( |
| _json['logo'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('primaryColor')) { |
| primaryColor = _json['primaryColor'] as core.int; |
| } |
| if (_json.containsKey('pubsubTopic')) { |
| pubsubTopic = _json['pubsubTopic'] as core.String; |
| } |
| if (_json.containsKey('signinDetails')) { |
| signinDetails = (_json['signinDetails'] as core.List) |
| .map<SigninDetail>((value) => SigninDetail.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('termsAndConditions')) { |
| termsAndConditions = (_json['termsAndConditions'] as core.List) |
| .map<TermsAndConditions>((value) => TermsAndConditions.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (appAutoApprovalEnabled != null) { |
| _json['appAutoApprovalEnabled'] = appAutoApprovalEnabled; |
| } |
| if (contactInfo != null) { |
| _json['contactInfo'] = contactInfo.toJson(); |
| } |
| if (enabledNotificationTypes != null) { |
| _json['enabledNotificationTypes'] = enabledNotificationTypes; |
| } |
| if (enterpriseDisplayName != null) { |
| _json['enterpriseDisplayName'] = enterpriseDisplayName; |
| } |
| if (logo != null) { |
| _json['logo'] = logo.toJson(); |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (primaryColor != null) { |
| _json['primaryColor'] = primaryColor; |
| } |
| if (pubsubTopic != null) { |
| _json['pubsubTopic'] = pubsubTopic; |
| } |
| if (signinDetails != null) { |
| _json['signinDetails'] = |
| signinDetails.map((value) => value.toJson()).toList(); |
| } |
| if (termsAndConditions != null) { |
| _json['termsAndConditions'] = |
| termsAndConditions.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Data hosted at an external location. |
| /// |
| /// The data is to be downloaded by Android Device Policy and verified against |
| /// the hash. |
| class ExternalData { |
| /// The base-64 encoded SHA-256 hash of the content hosted at url. |
| /// |
| /// If the content doesn't match this hash, Android Device Policy won't use |
| /// the data. |
| core.String sha256Hash; |
| |
| /// The absolute URL to the data, which must use either the http or https |
| /// scheme. |
| /// |
| /// Android Device Policy doesn't provide any credentials in the GET request, |
| /// so the URL must be publicly accessible. Including a long, random component |
| /// in the URL may be used to prevent attackers from discovering the URL. |
| core.String url; |
| |
| ExternalData(); |
| |
| ExternalData.fromJson(core.Map _json) { |
| if (_json.containsKey('sha256Hash')) { |
| sha256Hash = _json['sha256Hash'] as core.String; |
| } |
| if (_json.containsKey('url')) { |
| url = _json['url'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (sha256Hash != null) { |
| _json['sha256Hash'] = sha256Hash; |
| } |
| if (url != null) { |
| _json['url'] = url; |
| } |
| return _json; |
| } |
| } |
| |
| /// A system freeze period. |
| /// |
| /// When a device’s clock is within the freeze period, all incoming system |
| /// updates (including security patches) are blocked and won’t be installed. |
| /// When a device is outside the freeze period, normal update behavior applies. |
| /// Leap years are ignored in freeze period calculations, in particular: * If |
| /// Feb. 29th is set as the start or end date of a freeze period, the freeze |
| /// period will start or end on Feb. 28th instead. * When a device’s system |
| /// clock reads Feb. 29th, it’s treated as Feb. 28th. * When calculating the |
| /// number of days in a freeze period or the time between two freeze periods, |
| /// Feb. 29th is ignored and not counted as a day. |
| class FreezePeriod { |
| /// The end date (inclusive) of the freeze period. |
| /// |
| /// Must be no later than 90 days from the start date. If the end date is |
| /// earlier than the start date, the freeze period is considered wrapping |
| /// year-end. Note: year must not be set. For example, {"month": 1,"date": |
| /// 30}. |
| Date endDate; |
| |
| /// The start date (inclusive) of the freeze period. |
| /// |
| /// Note: year must not be set. For example, {"month": 1,"date": 30}. |
| Date startDate; |
| |
| FreezePeriod(); |
| |
| FreezePeriod.fromJson(core.Map _json) { |
| if (_json.containsKey('endDate')) { |
| endDate = Date.fromJson( |
| _json['endDate'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('startDate')) { |
| startDate = Date.fromJson( |
| _json['startDate'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (endDate != null) { |
| _json['endDate'] = endDate.toJson(); |
| } |
| if (startDate != null) { |
| _json['startDate'] = startDate.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Information about device hardware. |
| /// |
| /// The fields related to temperature thresholds are only available if |
| /// hardwareStatusEnabled is true in the device's policy. |
| class HardwareInfo { |
| /// Battery shutdown temperature thresholds in Celsius for each battery on the |
| /// device. |
| core.List<core.double> batteryShutdownTemperatures; |
| |
| /// Battery throttling temperature thresholds in Celsius for each battery on |
| /// the device. |
| core.List<core.double> batteryThrottlingTemperatures; |
| |
| /// Brand of the device. |
| /// |
| /// For example, Google. |
| core.String brand; |
| |
| /// CPU shutdown temperature thresholds in Celsius for each CPU on the device. |
| core.List<core.double> cpuShutdownTemperatures; |
| |
| /// CPU throttling temperature thresholds in Celsius for each CPU on the |
| /// device. |
| core.List<core.double> cpuThrottlingTemperatures; |
| |
| /// Baseband version. |
| /// |
| /// For example, MDM9625_104662.22.05.34p. |
| core.String deviceBasebandVersion; |
| |
| /// GPU shutdown temperature thresholds in Celsius for each GPU on the device. |
| core.List<core.double> gpuShutdownTemperatures; |
| |
| /// GPU throttling temperature thresholds in Celsius for each GPU on the |
| /// device. |
| core.List<core.double> gpuThrottlingTemperatures; |
| |
| /// Name of the hardware. |
| /// |
| /// For example, Angler. |
| core.String hardware; |
| |
| /// Manufacturer. |
| /// |
| /// For example, Motorola. |
| core.String manufacturer; |
| |
| /// The model of the device. |
| /// |
| /// For example, Asus Nexus 7. |
| core.String model; |
| |
| /// The device serial number. |
| core.String serialNumber; |
| |
| /// Device skin shutdown temperature thresholds in Celsius. |
| core.List<core.double> skinShutdownTemperatures; |
| |
| /// Device skin throttling temperature thresholds in Celsius. |
| core.List<core.double> skinThrottlingTemperatures; |
| |
| HardwareInfo(); |
| |
| HardwareInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('batteryShutdownTemperatures')) { |
| batteryShutdownTemperatures = |
| (_json['batteryShutdownTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('batteryThrottlingTemperatures')) { |
| batteryThrottlingTemperatures = |
| (_json['batteryThrottlingTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('brand')) { |
| brand = _json['brand'] as core.String; |
| } |
| if (_json.containsKey('cpuShutdownTemperatures')) { |
| cpuShutdownTemperatures = (_json['cpuShutdownTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('cpuThrottlingTemperatures')) { |
| cpuThrottlingTemperatures = |
| (_json['cpuThrottlingTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('deviceBasebandVersion')) { |
| deviceBasebandVersion = _json['deviceBasebandVersion'] as core.String; |
| } |
| if (_json.containsKey('gpuShutdownTemperatures')) { |
| gpuShutdownTemperatures = (_json['gpuShutdownTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('gpuThrottlingTemperatures')) { |
| gpuThrottlingTemperatures = |
| (_json['gpuThrottlingTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('hardware')) { |
| hardware = _json['hardware'] as core.String; |
| } |
| if (_json.containsKey('manufacturer')) { |
| manufacturer = _json['manufacturer'] as core.String; |
| } |
| if (_json.containsKey('model')) { |
| model = _json['model'] as core.String; |
| } |
| if (_json.containsKey('serialNumber')) { |
| serialNumber = _json['serialNumber'] as core.String; |
| } |
| if (_json.containsKey('skinShutdownTemperatures')) { |
| skinShutdownTemperatures = |
| (_json['skinShutdownTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('skinThrottlingTemperatures')) { |
| skinThrottlingTemperatures = |
| (_json['skinThrottlingTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (batteryShutdownTemperatures != null) { |
| _json['batteryShutdownTemperatures'] = batteryShutdownTemperatures; |
| } |
| if (batteryThrottlingTemperatures != null) { |
| _json['batteryThrottlingTemperatures'] = batteryThrottlingTemperatures; |
| } |
| if (brand != null) { |
| _json['brand'] = brand; |
| } |
| if (cpuShutdownTemperatures != null) { |
| _json['cpuShutdownTemperatures'] = cpuShutdownTemperatures; |
| } |
| if (cpuThrottlingTemperatures != null) { |
| _json['cpuThrottlingTemperatures'] = cpuThrottlingTemperatures; |
| } |
| if (deviceBasebandVersion != null) { |
| _json['deviceBasebandVersion'] = deviceBasebandVersion; |
| } |
| if (gpuShutdownTemperatures != null) { |
| _json['gpuShutdownTemperatures'] = gpuShutdownTemperatures; |
| } |
| if (gpuThrottlingTemperatures != null) { |
| _json['gpuThrottlingTemperatures'] = gpuThrottlingTemperatures; |
| } |
| if (hardware != null) { |
| _json['hardware'] = hardware; |
| } |
| if (manufacturer != null) { |
| _json['manufacturer'] = manufacturer; |
| } |
| if (model != null) { |
| _json['model'] = model; |
| } |
| if (serialNumber != null) { |
| _json['serialNumber'] = serialNumber; |
| } |
| if (skinShutdownTemperatures != null) { |
| _json['skinShutdownTemperatures'] = skinShutdownTemperatures; |
| } |
| if (skinThrottlingTemperatures != null) { |
| _json['skinThrottlingTemperatures'] = skinThrottlingTemperatures; |
| } |
| return _json; |
| } |
| } |
| |
| /// Hardware status. |
| /// |
| /// Temperatures may be compared to the temperature thresholds available in |
| /// hardwareInfo to determine hardware health. |
| class HardwareStatus { |
| /// Current battery temperatures in Celsius for each battery on the device. |
| core.List<core.double> batteryTemperatures; |
| |
| /// Current CPU temperatures in Celsius for each CPU on the device. |
| core.List<core.double> cpuTemperatures; |
| |
| /// CPU usages in percentage for each core available on the device. |
| /// |
| /// Usage is 0 for each unplugged core. Empty array implies that CPU usage is |
| /// not supported in the system. |
| core.List<core.double> cpuUsages; |
| |
| /// The time the measurements were taken. |
| core.String createTime; |
| |
| /// Fan speeds in RPM for each fan on the device. |
| /// |
| /// Empty array means that there are no fans or fan speed is not supported on |
| /// the system. |
| core.List<core.double> fanSpeeds; |
| |
| /// Current GPU temperatures in Celsius for each GPU on the device. |
| core.List<core.double> gpuTemperatures; |
| |
| /// Current device skin temperatures in Celsius. |
| core.List<core.double> skinTemperatures; |
| |
| HardwareStatus(); |
| |
| HardwareStatus.fromJson(core.Map _json) { |
| if (_json.containsKey('batteryTemperatures')) { |
| batteryTemperatures = (_json['batteryTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('cpuTemperatures')) { |
| cpuTemperatures = (_json['cpuTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('cpuUsages')) { |
| cpuUsages = (_json['cpuUsages'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('fanSpeeds')) { |
| fanSpeeds = (_json['fanSpeeds'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('gpuTemperatures')) { |
| gpuTemperatures = (_json['gpuTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| if (_json.containsKey('skinTemperatures')) { |
| skinTemperatures = (_json['skinTemperatures'] as core.List) |
| .map<core.double>((value) => (value as core.num).toDouble()) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (batteryTemperatures != null) { |
| _json['batteryTemperatures'] = batteryTemperatures; |
| } |
| if (cpuTemperatures != null) { |
| _json['cpuTemperatures'] = cpuTemperatures; |
| } |
| if (cpuUsages != null) { |
| _json['cpuUsages'] = cpuUsages; |
| } |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (fanSpeeds != null) { |
| _json['fanSpeeds'] = fanSpeeds; |
| } |
| if (gpuTemperatures != null) { |
| _json['gpuTemperatures'] = gpuTemperatures; |
| } |
| if (skinTemperatures != null) { |
| _json['skinTemperatures'] = skinTemperatures; |
| } |
| return _json; |
| } |
| } |
| |
| /// Keyed app state reported by the app. |
| class KeyedAppState { |
| /// The creation time of the app state on the device. |
| core.String createTime; |
| |
| /// Optionally, a machine-readable value to be read by the EMM. |
| /// |
| /// For example, setting values that the admin can choose to query against in |
| /// the EMM console (e.g. “notify me if the battery_warning data < 10”). |
| core.String data; |
| |
| /// The key for the app state. |
| /// |
| /// Acts as a point of reference for what the app is providing state for. For |
| /// example, when providing managed configuration feedback, this key could be |
| /// the managed configuration key. |
| core.String key; |
| |
| /// The time the app state was most recently updated. |
| core.String lastUpdateTime; |
| |
| /// Optionally, a free-form message string to explain the app state. |
| /// |
| /// If the state was triggered by a particular value (e.g. a managed |
| /// configuration value), it should be included in the message. |
| core.String message; |
| |
| /// The severity of the app state. |
| /// Possible string values are: |
| /// - "SEVERITY_UNSPECIFIED" : Unspecified severity level. |
| /// - "INFO" : Information severity level. |
| /// - "ERROR" : Error severity level. This should only be set for genuine |
| /// error conditions that a management organization needs to take action to |
| /// fix. |
| core.String severity; |
| |
| KeyedAppState(); |
| |
| KeyedAppState.fromJson(core.Map _json) { |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('data')) { |
| data = _json['data'] as core.String; |
| } |
| if (_json.containsKey('key')) { |
| key = _json['key'] as core.String; |
| } |
| if (_json.containsKey('lastUpdateTime')) { |
| lastUpdateTime = _json['lastUpdateTime'] as core.String; |
| } |
| if (_json.containsKey('message')) { |
| message = _json['message'] as core.String; |
| } |
| if (_json.containsKey('severity')) { |
| severity = _json['severity'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (data != null) { |
| _json['data'] = data; |
| } |
| if (key != null) { |
| _json['key'] = key; |
| } |
| if (lastUpdateTime != null) { |
| _json['lastUpdateTime'] = lastUpdateTime; |
| } |
| if (message != null) { |
| _json['message'] = message; |
| } |
| if (severity != null) { |
| _json['severity'] = severity; |
| } |
| return _json; |
| } |
| } |
| |
| /// Settings controlling the behavior of a device in kiosk mode. |
| /// |
| /// To enable kiosk mode, set kioskCustomLauncherEnabled to true or specify an |
| /// app in the policy with installType KIOSK. |
| class KioskCustomization { |
| /// Specifies whether the Settings app is allowed in kiosk mode. |
| /// Possible string values are: |
| /// - "DEVICE_SETTINGS_UNSPECIFIED" : Unspecified, defaults to |
| /// SETTINGS_ACCESS_ALLOWED. |
| /// - "SETTINGS_ACCESS_ALLOWED" : Access to the Settings app is allowed in |
| /// kiosk mode. |
| /// - "SETTINGS_ACCESS_BLOCKED" : Access to the Settings app is not allowed in |
| /// kiosk mode. |
| core.String deviceSettings; |
| |
| /// Sets the behavior of a device in kiosk mode when a user presses and holds |
| /// (long-presses) the Power button. |
| /// Possible string values are: |
| /// - "POWER_BUTTON_ACTIONS_UNSPECIFIED" : Unspecified, defaults to |
| /// POWER_BUTTON_AVAILABLE. |
| /// - "POWER_BUTTON_AVAILABLE" : The power menu (e.g. Power off, Restart) is |
| /// shown when a user long-presses the Power button of a device in kiosk mode. |
| /// - "POWER_BUTTON_BLOCKED" : The power menu (e.g. Power off, Restart) is not |
| /// shown when a user long-presses the Power button of a device in kiosk mode. |
| /// Note: this may prevent users from turning off the device. |
| core.String powerButtonActions; |
| |
| /// Specifies whether system info and notifications are disabled in kiosk |
| /// mode. |
| /// Possible string values are: |
| /// - "STATUS_BAR_UNSPECIFIED" : Unspecified, defaults to |
| /// INFO_AND_NOTIFICATIONS_DISABLED. |
| /// - "NOTIFICATIONS_AND_SYSTEM_INFO_ENABLED" : System info and notifications |
| /// are shown on the status bar in kiosk mode.Note: For this policy to take |
| /// effect, the device's home button must be enabled using |
| /// kioskCustomization.systemNavigation. |
| /// - "NOTIFICATIONS_AND_SYSTEM_INFO_DISABLED" : System info and notifications |
| /// are disabled in kiosk mode. |
| /// - "SYSTEM_INFO_ONLY" : Only system info is shown on the status bar. |
| core.String statusBar; |
| |
| /// Specifies whether system error dialogs for crashed or unresponsive apps |
| /// are blocked in kiosk mode. |
| /// |
| /// When blocked, the system will force-stop the app as if the user chooses |
| /// the "close app" option on the UI. |
| /// Possible string values are: |
| /// - "SYSTEM_ERROR_WARNINGS_UNSPECIFIED" : Unspecified, defaults to |
| /// ERROR_AND_WARNINGS_MUTED. |
| /// - "ERROR_AND_WARNINGS_ENABLED" : All system error dialogs such as crash |
| /// and app not responding (ANR) are displayed. |
| /// - "ERROR_AND_WARNINGS_MUTED" : All system error dialogs, such as crash and |
| /// app not responding (ANR) are blocked. When blocked, the system force-stops |
| /// the app as if the user closes the app from the UI. |
| core.String systemErrorWarnings; |
| |
| /// Specifies which navigation features are enabled (e.g. Home, Overview |
| /// buttons) in kiosk mode. |
| /// Possible string values are: |
| /// - "SYSTEM_NAVIGATION_UNSPECIFIED" : Unspecified, defaults to |
| /// NAVIGATION_DISABLED. |
| /// - "NAVIGATION_ENABLED" : Home and overview buttons are enabled. |
| /// - "NAVIGATION_DISABLED" : The home and Overview buttons are not |
| /// accessible. |
| /// - "HOME_BUTTON_ONLY" : Only the home button is enabled. |
| core.String systemNavigation; |
| |
| KioskCustomization(); |
| |
| KioskCustomization.fromJson(core.Map _json) { |
| if (_json.containsKey('deviceSettings')) { |
| deviceSettings = _json['deviceSettings'] as core.String; |
| } |
| if (_json.containsKey('powerButtonActions')) { |
| powerButtonActions = _json['powerButtonActions'] as core.String; |
| } |
| if (_json.containsKey('statusBar')) { |
| statusBar = _json['statusBar'] as core.String; |
| } |
| if (_json.containsKey('systemErrorWarnings')) { |
| systemErrorWarnings = _json['systemErrorWarnings'] as core.String; |
| } |
| if (_json.containsKey('systemNavigation')) { |
| systemNavigation = _json['systemNavigation'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (deviceSettings != null) { |
| _json['deviceSettings'] = deviceSettings; |
| } |
| if (powerButtonActions != null) { |
| _json['powerButtonActions'] = powerButtonActions; |
| } |
| if (statusBar != null) { |
| _json['statusBar'] = statusBar; |
| } |
| if (systemErrorWarnings != null) { |
| _json['systemErrorWarnings'] = systemErrorWarnings; |
| } |
| if (systemNavigation != null) { |
| _json['systemNavigation'] = systemNavigation; |
| } |
| return _json; |
| } |
| } |
| |
| /// An action to launch an app. |
| class LaunchAppAction { |
| /// Package name of app to be launched |
| core.String packageName; |
| |
| LaunchAppAction(); |
| |
| LaunchAppAction.fromJson(core.Map _json) { |
| if (_json.containsKey('packageName')) { |
| packageName = _json['packageName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (packageName != null) { |
| _json['packageName'] = packageName; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response to a request to list devices for a given enterprise. |
| class ListDevicesResponse { |
| /// The list of devices. |
| core.List<Device> devices; |
| |
| /// If there are more results, a token to retrieve next page of results. |
| core.String nextPageToken; |
| |
| ListDevicesResponse(); |
| |
| ListDevicesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('devices')) { |
| devices = (_json['devices'] as core.List) |
| .map<Device>((value) => |
| Device.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (devices != null) { |
| _json['devices'] = devices.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// This feature is not generally available yet. |
| /// |
| /// Response to a request to list enterprises. |
| class ListEnterprisesResponse { |
| /// This feature is not generally available yet. |
| /// |
| /// The list of enterprises. |
| core.List<Enterprise> enterprises; |
| |
| /// This feature is not generally available yet. |
| /// |
| /// If there are more results, a token to retrieve next page of results. |
| core.String nextPageToken; |
| |
| ListEnterprisesResponse(); |
| |
| ListEnterprisesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('enterprises')) { |
| enterprises = (_json['enterprises'] as core.List) |
| .map<Enterprise>((value) => |
| Enterprise.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (enterprises != null) { |
| _json['enterprises'] = |
| enterprises.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// The response message for Operations.ListOperations. |
| class ListOperationsResponse { |
| /// The standard List next-page token. |
| core.String nextPageToken; |
| |
| /// A list of operations that matches the specified filter in the request. |
| core.List<Operation> operations; |
| |
| ListOperationsResponse(); |
| |
| ListOperationsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('operations')) { |
| operations = (_json['operations'] as core.List) |
| .map<Operation>((value) => |
| Operation.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (operations != null) { |
| _json['operations'] = operations.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Response to a request to list policies for a given enterprise. |
| class ListPoliciesResponse { |
| /// If there are more results, a token to retrieve next page of results. |
| core.String nextPageToken; |
| |
| /// The list of policies. |
| core.List<Policy> policies; |
| |
| ListPoliciesResponse(); |
| |
| ListPoliciesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('policies')) { |
| policies = (_json['policies'] as core.List) |
| .map<Policy>((value) => |
| Policy.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (policies != null) { |
| _json['policies'] = policies.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Response to a request to list web apps for a given enterprise. |
| class ListWebAppsResponse { |
| /// If there are more results, a token to retrieve next page of results. |
| core.String nextPageToken; |
| |
| /// The list of web apps. |
| core.List<WebApp> webApps; |
| |
| ListWebAppsResponse(); |
| |
| ListWebAppsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('webApps')) { |
| webApps = (_json['webApps'] as core.List) |
| .map<WebApp>((value) => |
| WebApp.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (webApps != null) { |
| _json['webApps'] = webApps.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The managed configurations template for the app, saved from the managed |
| /// configurations iframe. |
| class ManagedConfigurationTemplate { |
| /// Optional, a map containing configuration variables defined for the |
| /// configuration. |
| core.Map<core.String, core.String> configurationVariables; |
| |
| /// The ID of the managed configurations template. |
| core.String templateId; |
| |
| ManagedConfigurationTemplate(); |
| |
| ManagedConfigurationTemplate.fromJson(core.Map _json) { |
| if (_json.containsKey('configurationVariables')) { |
| configurationVariables = (_json['configurationVariables'] as core.Map) |
| .cast<core.String, core.String>() |
| .map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.String, |
| ), |
| ); |
| } |
| if (_json.containsKey('templateId')) { |
| templateId = _json['templateId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (configurationVariables != null) { |
| _json['configurationVariables'] = configurationVariables; |
| } |
| if (templateId != null) { |
| _json['templateId'] = templateId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Managed property. |
| class ManagedProperty { |
| /// The default value of the property. |
| /// |
| /// BUNDLE_ARRAY properties don't have a default value. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Object defaultValue; |
| |
| /// A longer description of the property, providing more detail of what it |
| /// affects. |
| /// |
| /// Localized. |
| core.String description; |
| |
| /// For CHOICE or MULTISELECT properties, the list of possible entries. |
| core.List<ManagedPropertyEntry> entries; |
| |
| /// The unique key that the app uses to identify the property, e.g. |
| /// "com.google.android.gm.fieldname". |
| core.String key; |
| |
| /// For BUNDLE_ARRAY properties, the list of nested properties. |
| /// |
| /// A BUNDLE_ARRAY property is at most two levels deep. |
| core.List<ManagedProperty> nestedProperties; |
| |
| /// The name of the property. |
| /// |
| /// Localized. |
| core.String title; |
| |
| /// The type of the property. |
| /// Possible string values are: |
| /// - "MANAGED_PROPERTY_TYPE_UNSPECIFIED" : Not used. |
| /// - "BOOL" : A property of boolean type. |
| /// - "STRING" : A property of string type. |
| /// - "INTEGER" : A property of integer type. |
| /// - "CHOICE" : A choice of one item from a set. |
| /// - "MULTISELECT" : A choice of multiple items from a set. |
| /// - "HIDDEN" : A hidden restriction of string type (the default value can be |
| /// used to pass along information that can't be modified, such as a version |
| /// code). |
| /// - "BUNDLE" : A bundle of properties |
| /// - "BUNDLE_ARRAY" : An array of property bundles. |
| core.String type; |
| |
| ManagedProperty(); |
| |
| ManagedProperty.fromJson(core.Map _json) { |
| if (_json.containsKey('defaultValue')) { |
| defaultValue = _json['defaultValue'] as core.Object; |
| } |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('entries')) { |
| entries = (_json['entries'] as core.List) |
| .map<ManagedPropertyEntry>((value) => ManagedPropertyEntry.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('key')) { |
| key = _json['key'] as core.String; |
| } |
| if (_json.containsKey('nestedProperties')) { |
| nestedProperties = (_json['nestedProperties'] as core.List) |
| .map<ManagedProperty>((value) => ManagedProperty.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('title')) { |
| title = _json['title'] as core.String; |
| } |
| if (_json.containsKey('type')) { |
| type = _json['type'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (defaultValue != null) { |
| _json['defaultValue'] = defaultValue; |
| } |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (entries != null) { |
| _json['entries'] = entries.map((value) => value.toJson()).toList(); |
| } |
| if (key != null) { |
| _json['key'] = key; |
| } |
| if (nestedProperties != null) { |
| _json['nestedProperties'] = |
| nestedProperties.map((value) => value.toJson()).toList(); |
| } |
| if (title != null) { |
| _json['title'] = title; |
| } |
| if (type != null) { |
| _json['type'] = type; |
| } |
| return _json; |
| } |
| } |
| |
| /// An entry of a managed property. |
| class ManagedPropertyEntry { |
| /// The human-readable name of the value. |
| /// |
| /// Localized. |
| core.String name; |
| |
| /// The machine-readable value of the entry, which should be used in the |
| /// configuration. |
| /// |
| /// Not localized. |
| core.String value; |
| |
| ManagedPropertyEntry(); |
| |
| ManagedPropertyEntry.fromJson(core.Map _json) { |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('value')) { |
| value = _json['value'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (value != null) { |
| _json['value'] = value; |
| } |
| return _json; |
| } |
| } |
| |
| /// An event related to memory and storage measurements. |
| class MemoryEvent { |
| /// The number of free bytes in the medium, or for EXTERNAL_STORAGE_DETECTED, |
| /// the total capacity in bytes of the storage medium. |
| core.String byteCount; |
| |
| /// The creation time of the event. |
| core.String createTime; |
| |
| /// Event type. |
| /// Possible string values are: |
| /// - "MEMORY_EVENT_TYPE_UNSPECIFIED" : Unspecified. No events have this type. |
| /// - "RAM_MEASURED" : Free space in RAM was measured. |
| /// - "INTERNAL_STORAGE_MEASURED" : Free space in internal storage was |
| /// measured. |
| /// - "EXTERNAL_STORAGE_DETECTED" : A new external storage medium was |
| /// detected. The reported byte count is the total capacity of the storage |
| /// medium. |
| /// - "EXTERNAL_STORAGE_REMOVED" : An external storage medium was removed. The |
| /// reported byte count is zero. |
| /// - "EXTERNAL_STORAGE_MEASURED" : Free space in an external storage medium |
| /// was measured. |
| core.String eventType; |
| |
| MemoryEvent(); |
| |
| MemoryEvent.fromJson(core.Map _json) { |
| if (_json.containsKey('byteCount')) { |
| byteCount = _json['byteCount'] as core.String; |
| } |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('eventType')) { |
| eventType = _json['eventType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (byteCount != null) { |
| _json['byteCount'] = byteCount; |
| } |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (eventType != null) { |
| _json['eventType'] = eventType; |
| } |
| return _json; |
| } |
| } |
| |
| /// Information about device memory and storage. |
| class MemoryInfo { |
| /// Total internal storage on device in bytes. |
| core.String totalInternalStorage; |
| |
| /// Total RAM on device in bytes. |
| core.String totalRam; |
| |
| MemoryInfo(); |
| |
| MemoryInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('totalInternalStorage')) { |
| totalInternalStorage = _json['totalInternalStorage'] as core.String; |
| } |
| if (_json.containsKey('totalRam')) { |
| totalRam = _json['totalRam'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (totalInternalStorage != null) { |
| _json['totalInternalStorage'] = totalInternalStorage; |
| } |
| if (totalRam != null) { |
| _json['totalRam'] = totalRam; |
| } |
| return _json; |
| } |
| } |
| |
| /// Device network info. |
| class NetworkInfo { |
| /// IMEI number of the GSM device. |
| /// |
| /// For example, A1000031212. |
| core.String imei; |
| |
| /// MEID number of the CDMA device. |
| /// |
| /// For example, A00000292788E1. |
| core.String meid; |
| |
| /// Alphabetic name of current registered operator. |
| /// |
| /// For example, Vodafone. |
| core.String networkOperatorName; |
| |
| /// Provides telephony information associated with each SIM card on the |
| /// device. |
| /// |
| /// Only supported on fully managed devices starting from Android API level 23 |
| /// and above. |
| core.List<TelephonyInfo> telephonyInfos; |
| |
| /// Wi-Fi MAC address of the device. |
| /// |
| /// For example, 7c:11:11:11:11:11. |
| core.String wifiMacAddress; |
| |
| NetworkInfo(); |
| |
| NetworkInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('imei')) { |
| imei = _json['imei'] as core.String; |
| } |
| if (_json.containsKey('meid')) { |
| meid = _json['meid'] as core.String; |
| } |
| if (_json.containsKey('networkOperatorName')) { |
| networkOperatorName = _json['networkOperatorName'] as core.String; |
| } |
| if (_json.containsKey('telephonyInfos')) { |
| telephonyInfos = (_json['telephonyInfos'] as core.List) |
| .map<TelephonyInfo>((value) => TelephonyInfo.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('wifiMacAddress')) { |
| wifiMacAddress = _json['wifiMacAddress'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (imei != null) { |
| _json['imei'] = imei; |
| } |
| if (meid != null) { |
| _json['meid'] = meid; |
| } |
| if (networkOperatorName != null) { |
| _json['networkOperatorName'] = networkOperatorName; |
| } |
| if (telephonyInfos != null) { |
| _json['telephonyInfos'] = |
| telephonyInfos.map((value) => value.toJson()).toList(); |
| } |
| if (wifiMacAddress != null) { |
| _json['wifiMacAddress'] = wifiMacAddress; |
| } |
| return _json; |
| } |
| } |
| |
| /// Provides detail about non-compliance with a policy setting. |
| class NonComplianceDetail { |
| /// If the policy setting could not be applied, the current value of the |
| /// setting on the device. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Object currentValue; |
| |
| /// For settings with nested fields, if a particular nested field is out of |
| /// compliance, this specifies the full path to the offending field. |
| /// |
| /// The path is formatted in the same way the policy JSON field would be |
| /// referenced in JavaScript, that is: 1) For object-typed fields, the field |
| /// name is followed by a dot then by a subfield name. 2) For array-typed |
| /// fields, the field name is followed by the array index enclosed in |
| /// brackets. For example, to indicate a problem with the url field in the |
| /// externalData field in the 3rd application, the path would be |
| /// applications\[2\].externalData.url |
| core.String fieldPath; |
| |
| /// If package_name is set and the non-compliance reason is APP_NOT_INSTALLED |
| /// or APP_NOT_UPDATED, the detailed reason the app can't be installed or |
| /// updated. |
| /// Possible string values are: |
| /// - "INSTALLATION_FAILURE_REASON_UNSPECIFIED" : This value is disallowed. |
| /// - "INSTALLATION_FAILURE_REASON_UNKNOWN" : An unknown condition is |
| /// preventing the app from being installed. Some potential reasons are that |
| /// the device doesn't have enough storage, the device network connection is |
| /// unreliable, or the installation is taking longer than expected. The |
| /// installation will be retried automatically. |
| /// - "IN_PROGRESS" : The installation is still in progress. |
| /// - "NOT_FOUND" : The app was not found in Play. |
| /// - "NOT_COMPATIBLE_WITH_DEVICE" : The app is incompatible with the device. |
| /// - "NOT_APPROVED" : The app has not been approved by the admin. |
| /// - "PERMISSIONS_NOT_ACCEPTED" : The app has new permissions that have not |
| /// been accepted by the admin. |
| /// - "NOT_AVAILABLE_IN_COUNTRY" : The app is not available in the user's |
| /// country. |
| /// - "NO_LICENSES_REMAINING" : There are no licenses available to assign to |
| /// the user. |
| /// - "NOT_ENROLLED" : The enterprise is no longer enrolled with Managed |
| /// Google Play or the admin has not accepted the latest Managed Google Play |
| /// Terms of Service. |
| /// - "USER_INVALID" : The user is no longer valid. The user may have been |
| /// deleted or disabled. |
| core.String installationFailureReason; |
| |
| /// The reason the device is not in compliance with the setting. |
| /// Possible string values are: |
| /// - "NON_COMPLIANCE_REASON_UNSPECIFIED" : This value is disallowed. |
| /// - "API_LEVEL" : The setting is not supported in the API level of the |
| /// Android version running on the device. |
| /// - "MANAGEMENT_MODE" : The management mode (profile owner, device owner, |
| /// etc.) doesn't support the setting. |
| /// - "USER_ACTION" : The user has not taken required action to comply with |
| /// the setting. |
| /// - "INVALID_VALUE" : The setting has an invalid value. |
| /// - "APP_NOT_INSTALLED" : The app required to implement the policy is not |
| /// installed. |
| /// - "UNSUPPORTED" : The policy is not supported by the version of Android |
| /// Device Policy on the device. |
| /// - "APP_INSTALLED" : A blocked app is installed. |
| /// - "PENDING" : The setting hasn't been applied at the time of the report, |
| /// but is expected to be applied shortly. |
| /// - "APP_INCOMPATIBLE" : The setting can't be applied to the app because the |
| /// app doesn't support it, for example because its target SDK version is not |
| /// high enough. |
| /// - "APP_NOT_UPDATED" : The app is installed, but it hasn't been updated to |
| /// the minimum version code specified by policy. |
| core.String nonComplianceReason; |
| |
| /// The package name indicating which app is out of compliance, if applicable. |
| core.String packageName; |
| |
| /// The name of the policy setting. |
| /// |
| /// This is the JSON field name of a top-level Policy field. |
| core.String settingName; |
| |
| NonComplianceDetail(); |
| |
| NonComplianceDetail.fromJson(core.Map _json) { |
| if (_json.containsKey('currentValue')) { |
| currentValue = _json['currentValue'] as core.Object; |
| } |
| if (_json.containsKey('fieldPath')) { |
| fieldPath = _json['fieldPath'] as core.String; |
| } |
| if (_json.containsKey('installationFailureReason')) { |
| installationFailureReason = |
| _json['installationFailureReason'] as core.String; |
| } |
| if (_json.containsKey('nonComplianceReason')) { |
| nonComplianceReason = _json['nonComplianceReason'] as core.String; |
| } |
| if (_json.containsKey('packageName')) { |
| packageName = _json['packageName'] as core.String; |
| } |
| if (_json.containsKey('settingName')) { |
| settingName = _json['settingName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (currentValue != null) { |
| _json['currentValue'] = currentValue; |
| } |
| if (fieldPath != null) { |
| _json['fieldPath'] = fieldPath; |
| } |
| if (installationFailureReason != null) { |
| _json['installationFailureReason'] = installationFailureReason; |
| } |
| if (nonComplianceReason != null) { |
| _json['nonComplianceReason'] = nonComplianceReason; |
| } |
| if (packageName != null) { |
| _json['packageName'] = packageName; |
| } |
| if (settingName != null) { |
| _json['settingName'] = settingName; |
| } |
| return _json; |
| } |
| } |
| |
| /// A compliance rule condition which is satisfied if there exists any matching |
| /// NonComplianceDetail for the device. |
| /// |
| /// A NonComplianceDetail matches a NonComplianceDetailCondition if all the |
| /// fields which are set within the NonComplianceDetailCondition match the |
| /// corresponding NonComplianceDetail fields. |
| class NonComplianceDetailCondition { |
| /// The reason the device is not in compliance with the setting. |
| /// |
| /// If not set, then this condition matches any reason. |
| /// Possible string values are: |
| /// - "NON_COMPLIANCE_REASON_UNSPECIFIED" : This value is disallowed. |
| /// - "API_LEVEL" : The setting is not supported in the API level of the |
| /// Android version running on the device. |
| /// - "MANAGEMENT_MODE" : The management mode (profile owner, device owner, |
| /// etc.) doesn't support the setting. |
| /// - "USER_ACTION" : The user has not taken required action to comply with |
| /// the setting. |
| /// - "INVALID_VALUE" : The setting has an invalid value. |
| /// - "APP_NOT_INSTALLED" : The app required to implement the policy is not |
| /// installed. |
| /// - "UNSUPPORTED" : The policy is not supported by the version of Android |
| /// Device Policy on the device. |
| /// - "APP_INSTALLED" : A blocked app is installed. |
| /// - "PENDING" : The setting hasn't been applied at the time of the report, |
| /// but is expected to be applied shortly. |
| /// - "APP_INCOMPATIBLE" : The setting can't be applied to the app because the |
| /// app doesn't support it, for example because its target SDK version is not |
| /// high enough. |
| /// - "APP_NOT_UPDATED" : The app is installed, but it hasn't been updated to |
| /// the minimum version code specified by policy. |
| core.String nonComplianceReason; |
| |
| /// The package name of the app that's out of compliance. |
| /// |
| /// If not set, then this condition matches any package name. |
| core.String packageName; |
| |
| /// The name of the policy setting. |
| /// |
| /// This is the JSON field name of a top-level Policy field. If not set, then |
| /// this condition matches any setting name. |
| core.String settingName; |
| |
| NonComplianceDetailCondition(); |
| |
| NonComplianceDetailCondition.fromJson(core.Map _json) { |
| if (_json.containsKey('nonComplianceReason')) { |
| nonComplianceReason = _json['nonComplianceReason'] as core.String; |
| } |
| if (_json.containsKey('packageName')) { |
| packageName = _json['packageName'] as core.String; |
| } |
| if (_json.containsKey('settingName')) { |
| settingName = _json['settingName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nonComplianceReason != null) { |
| _json['nonComplianceReason'] = nonComplianceReason; |
| } |
| if (packageName != null) { |
| _json['packageName'] = packageName; |
| } |
| if (settingName != null) { |
| _json['settingName'] = settingName; |
| } |
| return _json; |
| } |
| } |
| |
| /// This resource represents a long-running operation that is the result of a |
| /// network API call. |
| class Operation { |
| /// If the value is false, it means the operation is still in progress. |
| /// |
| /// If true, the operation is completed, and either error or response is |
| /// available. |
| core.bool done; |
| |
| /// The error result of the operation in case of failure or cancellation. |
| Status error; |
| |
| /// Service-specific metadata associated with the operation. |
| /// |
| /// It typically contains progress information and common metadata such as |
| /// create time. Some services might not provide such metadata. Any method |
| /// that returns a long-running operation should document the metadata type, |
| /// if any. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> metadata; |
| |
| /// The server-assigned name, which is only unique within the same service |
| /// that originally returns it. |
| /// |
| /// If you use the default HTTP mapping, the name should be a resource name |
| /// ending with operations/{unique_id}. |
| core.String name; |
| |
| /// The normal response of the operation in case of success. |
| /// |
| /// If the original method returns no data on success, such as Delete, the |
| /// response is google.protobuf.Empty. If the original method is standard |
| /// Get/Create/Update, the response should be the resource. For other methods, |
| /// the response should have the type XxxResponse, where Xxx is the original |
| /// method name. For example, if the original method name is TakeSnapshot(), |
| /// the inferred response type is TakeSnapshotResponse. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> response; |
| |
| Operation(); |
| |
| Operation.fromJson(core.Map _json) { |
| if (_json.containsKey('done')) { |
| done = _json['done'] as core.bool; |
| } |
| if (_json.containsKey('error')) { |
| error = Status.fromJson( |
| _json['error'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('metadata')) { |
| metadata = |
| (_json['metadata'] as core.Map).cast<core.String, core.Object>().map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.Object, |
| ), |
| ); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('response')) { |
| response = |
| (_json['response'] as core.Map).cast<core.String, core.Object>().map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.Object, |
| ), |
| ); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (done != null) { |
| _json['done'] = done; |
| } |
| if (error != null) { |
| _json['error'] = error.toJson(); |
| } |
| if (metadata != null) { |
| _json['metadata'] = metadata; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (response != null) { |
| _json['response'] = response; |
| } |
| return _json; |
| } |
| } |
| |
| /// A list of package names. |
| class PackageNameList { |
| /// A list of package names. |
| core.List<core.String> packageNames; |
| |
| PackageNameList(); |
| |
| PackageNameList.fromJson(core.Map _json) { |
| if (_json.containsKey('packageNames')) { |
| packageNames = (_json['packageNames'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (packageNames != null) { |
| _json['packageNames'] = packageNames; |
| } |
| return _json; |
| } |
| } |
| |
| /// Requirements for the password used to unlock a device. |
| class PasswordRequirements { |
| /// Number of incorrect device-unlock passwords that can be entered before a |
| /// device is wiped. |
| /// |
| /// A value of 0 means there is no restriction. |
| core.int maximumFailedPasswordsForWipe; |
| |
| /// Password expiration timeout. |
| core.String passwordExpirationTimeout; |
| |
| /// The length of the password history. |
| /// |
| /// After setting this field, the user won't be able to enter a new password |
| /// that is the same as any password in the history. A value of 0 means there |
| /// is no restriction. |
| core.int passwordHistoryLength; |
| |
| /// The minimum allowed password length. |
| /// |
| /// A value of 0 means there is no restriction. Only enforced when |
| /// password_quality is NUMERIC, NUMERIC_COMPLEX, ALPHABETIC, ALPHANUMERIC, or |
| /// COMPLEX. |
| core.int passwordMinimumLength; |
| |
| /// Minimum number of letters required in the password. |
| /// |
| /// Only enforced when password_quality is COMPLEX. |
| core.int passwordMinimumLetters; |
| |
| /// Minimum number of lower case letters required in the password. |
| /// |
| /// Only enforced when password_quality is COMPLEX. |
| core.int passwordMinimumLowerCase; |
| |
| /// Minimum number of non-letter characters (numerical digits or symbols) |
| /// required in the password. |
| /// |
| /// Only enforced when password_quality is COMPLEX. |
| core.int passwordMinimumNonLetter; |
| |
| /// Minimum number of numerical digits required in the password. |
| /// |
| /// Only enforced when password_quality is COMPLEX. |
| core.int passwordMinimumNumeric; |
| |
| /// Minimum number of symbols required in the password. |
| /// |
| /// Only enforced when password_quality is COMPLEX. |
| core.int passwordMinimumSymbols; |
| |
| /// Minimum number of upper case letters required in the password. |
| /// |
| /// Only enforced when password_quality is COMPLEX. |
| core.int passwordMinimumUpperCase; |
| |
| /// The required password quality. |
| /// Possible string values are: |
| /// - "PASSWORD_QUALITY_UNSPECIFIED" : There are no password requirements. |
| /// - "BIOMETRIC_WEAK" : The device must be secured with a low-security |
| /// biometric recognition technology, at minimum. This includes technologies |
| /// that can recognize the identity of an individual that are roughly |
| /// equivalent to a 3-digit PIN (false detection is less than 1 in 1,000). |
| /// - "SOMETHING" : A password is required, but there are no restrictions on |
| /// what the password must contain. |
| /// - "NUMERIC" : The password must contain numeric characters. |
| /// - "NUMERIC_COMPLEX" : The password must contain numeric characters with no |
| /// repeating (4444) or ordered (1234, 4321, 2468) sequences. |
| /// - "ALPHABETIC" : The password must contain alphabetic (or symbol) |
| /// characters. |
| /// - "ALPHANUMERIC" : The password must contain both numeric and alphabetic |
| /// (or symbol) characters. |
| /// - "COMPLEX" : The password must meet the minimum requirements specified in |
| /// passwordMinimumLength, passwordMinimumLetters, passwordMinimumSymbols, |
| /// etc. For example, if passwordMinimumSymbols is 2, the password must |
| /// contain at least two symbols. |
| core.String passwordQuality; |
| |
| /// The scope that the password requirement applies to. |
| /// Possible string values are: |
| /// - "SCOPE_UNSPECIFIED" : The scope is unspecified. The password |
| /// requirements are applied to the work profile for work profile devices and |
| /// the whole device for fully managed or dedicated devices. |
| /// - "SCOPE_DEVICE" : The password requirements are only applied to the |
| /// device. |
| /// - "SCOPE_PROFILE" : The password requirements are only applied to the work |
| /// profile. |
| core.String passwordScope; |
| |
| /// The length of time after a device or work profile is unlocked using a |
| /// strong form of authentication (password, PIN, pattern) that it can be |
| /// unlocked using any other authentication method (e.g. fingerprint, trust |
| /// agents, face). |
| /// |
| /// After the specified time period elapses, only strong forms of |
| /// authentication can be used to unlock the device or work profile. |
| /// Possible string values are: |
| /// - "REQUIRE_PASSWORD_UNLOCK_UNSPECIFIED" : Unspecified. Defaults to |
| /// USE_DEFAULT_DEVICE_TIMEOUT. |
| /// - "USE_DEFAULT_DEVICE_TIMEOUT" : The timeout period is set to the device’s |
| /// default. |
| /// - "REQUIRE_EVERY_DAY" : The timeout period is set to 24 hours. |
| core.String requirePasswordUnlock; |
| |
| PasswordRequirements(); |
| |
| PasswordRequirements.fromJson(core.Map _json) { |
| if (_json.containsKey('maximumFailedPasswordsForWipe')) { |
| maximumFailedPasswordsForWipe = |
| _json['maximumFailedPasswordsForWipe'] as core.int; |
| } |
| if (_json.containsKey('passwordExpirationTimeout')) { |
| passwordExpirationTimeout = |
| _json['passwordExpirationTimeout'] as core.String; |
| } |
| if (_json.containsKey('passwordHistoryLength')) { |
| passwordHistoryLength = _json['passwordHistoryLength'] as core.int; |
| } |
| if (_json.containsKey('passwordMinimumLength')) { |
| passwordMinimumLength = _json['passwordMinimumLength'] as core.int; |
| } |
| if (_json.containsKey('passwordMinimumLetters')) { |
| passwordMinimumLetters = _json['passwordMinimumLetters'] as core.int; |
| } |
| if (_json.containsKey('passwordMinimumLowerCase')) { |
| passwordMinimumLowerCase = _json['passwordMinimumLowerCase'] as core.int; |
| } |
| if (_json.containsKey('passwordMinimumNonLetter')) { |
| passwordMinimumNonLetter = _json['passwordMinimumNonLetter'] as core.int; |
| } |
| if (_json.containsKey('passwordMinimumNumeric')) { |
| passwordMinimumNumeric = _json['passwordMinimumNumeric'] as core.int; |
| } |
| if (_json.containsKey('passwordMinimumSymbols')) { |
| passwordMinimumSymbols = _json['passwordMinimumSymbols'] as core.int; |
| } |
| if (_json.containsKey('passwordMinimumUpperCase')) { |
| passwordMinimumUpperCase = _json['passwordMinimumUpperCase'] as core.int; |
| } |
| if (_json.containsKey('passwordQuality')) { |
| passwordQuality = _json['passwordQuality'] as core.String; |
| } |
| if (_json.containsKey('passwordScope')) { |
| passwordScope = _json['passwordScope'] as core.String; |
| } |
| if (_json.containsKey('requirePasswordUnlock')) { |
| requirePasswordUnlock = _json['requirePasswordUnlock'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (maximumFailedPasswordsForWipe != null) { |
| _json['maximumFailedPasswordsForWipe'] = maximumFailedPasswordsForWipe; |
| } |
| if (passwordExpirationTimeout != null) { |
| _json['passwordExpirationTimeout'] = passwordExpirationTimeout; |
| } |
| if (passwordHistoryLength != null) { |
| _json['passwordHistoryLength'] = passwordHistoryLength; |
| } |
| if (passwordMinimumLength != null) { |
| _json['passwordMinimumLength'] = passwordMinimumLength; |
| } |
| if (passwordMinimumLetters != null) { |
| _json['passwordMinimumLetters'] = passwordMinimumLetters; |
| } |
| if (passwordMinimumLowerCase != null) { |
| _json['passwordMinimumLowerCase'] = passwordMinimumLowerCase; |
| } |
| if (passwordMinimumNonLetter != null) { |
| _json['passwordMinimumNonLetter'] = passwordMinimumNonLetter; |
| } |
| if (passwordMinimumNumeric != null) { |
| _json['passwordMinimumNumeric'] = passwordMinimumNumeric; |
| } |
| if (passwordMinimumSymbols != null) { |
| _json['passwordMinimumSymbols'] = passwordMinimumSymbols; |
| } |
| if (passwordMinimumUpperCase != null) { |
| _json['passwordMinimumUpperCase'] = passwordMinimumUpperCase; |
| } |
| if (passwordQuality != null) { |
| _json['passwordQuality'] = passwordQuality; |
| } |
| if (passwordScope != null) { |
| _json['passwordScope'] = passwordScope; |
| } |
| if (requirePasswordUnlock != null) { |
| _json['requirePasswordUnlock'] = requirePasswordUnlock; |
| } |
| return _json; |
| } |
| } |
| |
| /// Configuration for an Android permission and its grant state. |
| class PermissionGrant { |
| /// The Android permission or group, e.g. android.permission.READ_CALENDAR or |
| /// android.permission_group.CALENDAR. |
| core.String permission; |
| |
| /// The policy for granting the permission. |
| /// Possible string values are: |
| /// - "PERMISSION_POLICY_UNSPECIFIED" : Policy not specified. If no policy is |
| /// specified for a permission at any level, then the PROMPT behavior is used |
| /// by default. |
| /// - "PROMPT" : Prompt the user to grant a permission. |
| /// - "GRANT" : Automatically grant a permission. |
| /// - "DENY" : Automatically deny a permission. |
| core.String policy; |
| |
| PermissionGrant(); |
| |
| PermissionGrant.fromJson(core.Map _json) { |
| if (_json.containsKey('permission')) { |
| permission = _json['permission'] as core.String; |
| } |
| if (_json.containsKey('policy')) { |
| policy = _json['policy'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (permission != null) { |
| _json['permission'] = permission; |
| } |
| if (policy != null) { |
| _json['policy'] = policy; |
| } |
| return _json; |
| } |
| } |
| |
| /// A default activity for handling intents that match a particular intent |
| /// filter. |
| /// |
| /// Note: To set up a kiosk, use InstallType to KIOSK rather than use persistent |
| /// preferred activities. |
| class PersistentPreferredActivity { |
| /// The intent actions to match in the filter. |
| /// |
| /// If any actions are included in the filter, then an intent's action must be |
| /// one of those values for it to match. If no actions are included, the |
| /// intent action is ignored. |
| core.List<core.String> actions; |
| |
| /// The intent categories to match in the filter. |
| /// |
| /// An intent includes the categories that it requires, all of which must be |
| /// included in the filter in order to match. In other words, adding a |
| /// category to the filter has no impact on matching unless that category is |
| /// specified in the intent. |
| core.List<core.String> categories; |
| |
| /// The activity that should be the default intent handler. |
| /// |
| /// This should be an Android component name, e.g. |
| /// com.android.enterprise.app/.MainActivity. Alternatively, the value may be |
| /// the package name of an app, which causes Android Device Policy to choose |
| /// an appropriate activity from the app to handle the intent. |
| core.String receiverActivity; |
| |
| PersistentPreferredActivity(); |
| |
| PersistentPreferredActivity.fromJson(core.Map _json) { |
| if (_json.containsKey('actions')) { |
| actions = (_json['actions'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('categories')) { |
| categories = (_json['categories'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('receiverActivity')) { |
| receiverActivity = _json['receiverActivity'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (actions != null) { |
| _json['actions'] = actions; |
| } |
| if (categories != null) { |
| _json['categories'] = categories; |
| } |
| if (receiverActivity != null) { |
| _json['receiverActivity'] = receiverActivity; |
| } |
| return _json; |
| } |
| } |
| |
| /// Policies for apps in the personal profile of a company-owned device with a |
| /// work profile. |
| class PersonalApplicationPolicy { |
| /// The type of installation to perform. |
| /// Possible string values are: |
| /// - "INSTALL_TYPE_UNSPECIFIED" : Unspecified. Defaults to AVAILABLE. |
| /// - "BLOCKED" : The app is blocked and can't be installed in the personal |
| /// profile. |
| /// - "AVAILABLE" : The app is available to install in the personal profile. |
| core.String installType; |
| |
| /// The package name of the application. |
| core.String packageName; |
| |
| PersonalApplicationPolicy(); |
| |
| PersonalApplicationPolicy.fromJson(core.Map _json) { |
| if (_json.containsKey('installType')) { |
| installType = _json['installType'] as core.String; |
| } |
| if (_json.containsKey('packageName')) { |
| packageName = _json['packageName'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (installType != null) { |
| _json['installType'] = installType; |
| } |
| if (packageName != null) { |
| _json['packageName'] = packageName; |
| } |
| return _json; |
| } |
| } |
| |
| /// Policies controlling personal usage on a company-owned device with a work |
| /// profile. |
| class PersonalUsagePolicies { |
| /// Account types that can't be managed by the user. |
| core.List<core.String> accountTypesWithManagementDisabled; |
| |
| /// Whether camera is disabled. |
| core.bool cameraDisabled; |
| |
| /// Controls how long the work profile can stay off. |
| core.int maxDaysWithWorkOff; |
| |
| /// Policy applied to applications in the personal profile. |
| core.List<PersonalApplicationPolicy> personalApplications; |
| |
| /// Used together with personalApplications to control how apps in the |
| /// personal profile are allowed or blocked. |
| /// Possible string values are: |
| /// - "PLAY_STORE_MODE_UNSPECIFIED" : Unspecified. Defaults to BLOCKLIST. |
| /// - "BLACKLIST" : All Play Store apps are available for installation in the |
| /// personal profile, except those whose installType is BLOCKED in |
| /// personalApplications. |
| /// - "BLOCKLIST" : All Play Store apps are available for installation in the |
| /// personal profile, except those whose installType is BLOCKED in |
| /// personalApplications. |
| /// - "ALLOWLIST" : Only apps explicitly specified in personalApplications |
| /// with installType set to AVAILABLE are allowed to be installed in the |
| /// personal profile. |
| core.String personalPlayStoreMode; |
| |
| /// Whether screen capture is disabled. |
| core.bool screenCaptureDisabled; |
| |
| PersonalUsagePolicies(); |
| |
| PersonalUsagePolicies.fromJson(core.Map _json) { |
| if (_json.containsKey('accountTypesWithManagementDisabled')) { |
| accountTypesWithManagementDisabled = |
| (_json['accountTypesWithManagementDisabled'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('cameraDisabled')) { |
| cameraDisabled = _json['cameraDisabled'] as core.bool; |
| } |
| if (_json.containsKey('maxDaysWithWorkOff')) { |
| maxDaysWithWorkOff = _json['maxDaysWithWorkOff'] as core.int; |
| } |
| if (_json.containsKey('personalApplications')) { |
| personalApplications = (_json['personalApplications'] as core.List) |
| .map<PersonalApplicationPolicy>((value) => |
| PersonalApplicationPolicy.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('personalPlayStoreMode')) { |
| personalPlayStoreMode = _json['personalPlayStoreMode'] as core.String; |
| } |
| if (_json.containsKey('screenCaptureDisabled')) { |
| screenCaptureDisabled = _json['screenCaptureDisabled'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accountTypesWithManagementDisabled != null) { |
| _json['accountTypesWithManagementDisabled'] = |
| accountTypesWithManagementDisabled; |
| } |
| if (cameraDisabled != null) { |
| _json['cameraDisabled'] = cameraDisabled; |
| } |
| if (maxDaysWithWorkOff != null) { |
| _json['maxDaysWithWorkOff'] = maxDaysWithWorkOff; |
| } |
| if (personalApplications != null) { |
| _json['personalApplications'] = |
| personalApplications.map((value) => value.toJson()).toList(); |
| } |
| if (personalPlayStoreMode != null) { |
| _json['personalPlayStoreMode'] = personalPlayStoreMode; |
| } |
| if (screenCaptureDisabled != null) { |
| _json['screenCaptureDisabled'] = screenCaptureDisabled; |
| } |
| return _json; |
| } |
| } |
| |
| /// A policy resource represents a group of settings that govern the behavior of |
| /// a managed device and the apps installed on it. |
| class Policy { |
| /// Account types that can't be managed by the user. |
| core.List<core.String> accountTypesWithManagementDisabled; |
| |
| /// Whether adding new users and profiles is disabled. |
| core.bool addUserDisabled; |
| |
| /// Whether adjusting the master volume is disabled. |
| core.bool adjustVolumeDisabled; |
| |
| /// Security policies set to the most secure values by default. |
| /// |
| /// To maintain the security posture of a device, we don't recommend |
| /// overriding any of the default values. |
| AdvancedSecurityOverrides advancedSecurityOverrides; |
| |
| /// Configuration for an always-on VPN connection. |
| /// |
| /// Use with vpn_config_disabled to prevent modification of this setting. |
| AlwaysOnVpnPackage alwaysOnVpnPackage; |
| |
| /// The app tracks for Android Device Policy the device can access. |
| /// |
| /// The device receives the latest version among all accessible tracks. If no |
| /// tracks are specified, then the device only uses the production track. |
| core.List<core.String> androidDevicePolicyTracks; |
| |
| /// The app auto update policy, which controls when automatic app updates can |
| /// be applied. |
| /// Possible string values are: |
| /// - "APP_AUTO_UPDATE_POLICY_UNSPECIFIED" : The auto-update policy is not |
| /// set. Equivalent to CHOICE_TO_THE_USER. |
| /// - "CHOICE_TO_THE_USER" : The user can control auto-updates. |
| /// - "NEVER" : Apps are never auto-updated. |
| /// - "WIFI_ONLY" : Apps are auto-updated over Wi-Fi only. |
| /// - "ALWAYS" : Apps are auto-updated at any time. Data charges may apply. |
| core.String appAutoUpdatePolicy; |
| |
| /// Policy applied to apps. |
| core.List<ApplicationPolicy> applications; |
| |
| /// Whether auto date, time, and time zone are enabled on a company-owned |
| /// device. |
| /// |
| /// If this is set, then autoTimeRequired is ignored. |
| /// Possible string values are: |
| /// - "AUTO_DATE_AND_TIME_ZONE_UNSPECIFIED" : Unspecified. Defaults to |
| /// AUTO_DATE_AND_TIME_ZONE_USER_CHOICE. |
| /// - "AUTO_DATE_AND_TIME_ZONE_USER_CHOICE" : Auto date, time, and time zone |
| /// are left to user's choice. |
| /// - "AUTO_DATE_AND_TIME_ZONE_ENFORCED" : Enforce auto date, time, and time |
| /// zone on the device. |
| core.String autoDateAndTimeZone; |
| |
| /// Whether auto time is required, which prevents the user from manually |
| /// setting the date and time. |
| /// |
| /// If autoDateAndTimeZone is set, this field is ignored. |
| core.bool autoTimeRequired; |
| |
| /// Whether applications other than the ones configured in applications are |
| /// blocked from being installed. |
| /// |
| /// When set, applications that were installed under a previous policy but no |
| /// longer appear in the policy are automatically uninstalled. |
| core.bool blockApplicationsEnabled; |
| |
| /// Whether configuring bluetooth is disabled. |
| core.bool bluetoothConfigDisabled; |
| |
| /// Whether bluetooth contact sharing is disabled. |
| core.bool bluetoothContactSharingDisabled; |
| |
| /// Whether bluetooth is disabled. |
| /// |
| /// Prefer this setting over bluetooth_config_disabled because |
| /// bluetooth_config_disabled can be bypassed by the user. |
| core.bool bluetoothDisabled; |
| |
| /// Whether all cameras on the device are disabled. |
| core.bool cameraDisabled; |
| |
| /// Whether configuring cell broadcast is disabled. |
| core.bool cellBroadcastsConfigDisabled; |
| |
| /// Rules for automatically choosing a private key and certificate to |
| /// authenticate the device to a server. |
| /// |
| /// The rules are ordered by increasing precedence, so if an outgoing request |
| /// matches more than one rule, the last rule defines which private key to |
| /// use. |
| core.List<ChoosePrivateKeyRule> choosePrivateKeyRules; |
| |
| /// Rules declaring which mitigating actions to take when a device is not |
| /// compliant with its policy. |
| /// |
| /// When the conditions for multiple rules are satisfied, all of the |
| /// mitigating actions for the rules are taken. There is a maximum limit of |
| /// 100 rules. Use policy enforcement rules instead. |
| core.List<ComplianceRule> complianceRules; |
| |
| /// Whether creating windows besides app windows is disabled. |
| core.bool createWindowsDisabled; |
| |
| /// Whether configuring user credentials is disabled. |
| core.bool credentialsConfigDisabled; |
| |
| /// Whether roaming data services are disabled. |
| core.bool dataRoamingDisabled; |
| |
| /// Whether the user is allowed to enable debugging features. |
| core.bool debuggingFeaturesAllowed; |
| |
| /// The default permission policy for runtime permission requests. |
| /// Possible string values are: |
| /// - "PERMISSION_POLICY_UNSPECIFIED" : Policy not specified. If no policy is |
| /// specified for a permission at any level, then the PROMPT behavior is used |
| /// by default. |
| /// - "PROMPT" : Prompt the user to grant a permission. |
| /// - "GRANT" : Automatically grant a permission. |
| /// - "DENY" : Automatically deny a permission. |
| core.String defaultPermissionPolicy; |
| |
| /// The device owner information to be shown on the lock screen. |
| UserFacingMessage deviceOwnerLockScreenInfo; |
| |
| /// Whether encryption is enabled |
| /// Possible string values are: |
| /// - "ENCRYPTION_POLICY_UNSPECIFIED" : This value is ignored, i.e. no |
| /// encryption required |
| /// - "ENABLED_WITHOUT_PASSWORD" : Encryption required but no password |
| /// required to boot |
| /// - "ENABLED_WITH_PASSWORD" : Encryption required with password required to |
| /// boot |
| core.String encryptionPolicy; |
| |
| /// Whether app verification is force-enabled. |
| core.bool ensureVerifyAppsEnabled; |
| |
| /// Whether factory resetting from settings is disabled. |
| core.bool factoryResetDisabled; |
| |
| /// Email addresses of device administrators for factory reset protection. |
| /// |
| /// When the device is factory reset, it will require one of these admins to |
| /// log in with the Google account email and password to unlock the device. If |
| /// no admins are specified, the device won't provide factory reset |
| /// protection. |
| core.List<core.String> frpAdminEmails; |
| |
| /// Whether the user is allowed to have fun. |
| /// |
| /// Controls whether the Easter egg game in Settings is disabled. |
| core.bool funDisabled; |
| |
| /// Whether user installation of apps is disabled. |
| core.bool installAppsDisabled; |
| |
| /// Whether the user is allowed to enable the "Unknown Sources" setting, which |
| /// allows installation of apps from unknown sources. |
| core.bool installUnknownSourcesAllowed; |
| |
| /// Whether the keyguard is disabled. |
| core.bool keyguardDisabled; |
| |
| /// Disabled keyguard customizations, such as widgets. |
| core.List<core.String> keyguardDisabledFeatures; |
| |
| /// Whether the kiosk custom launcher is enabled. |
| /// |
| /// This replaces the home screen with a launcher that locks down the device |
| /// to the apps installed via the applications setting. Apps appear on a |
| /// single page in alphabetical order. Use kioskCustomization to further |
| /// configure the kiosk device behavior. |
| core.bool kioskCustomLauncherEnabled; |
| |
| /// Settings controlling the behavior of a device in kiosk mode. |
| /// |
| /// To enable kiosk mode, set kioskCustomLauncherEnabled to true or specify an |
| /// app in the policy with installType KIOSK. |
| KioskCustomization kioskCustomization; |
| |
| /// The degree of location detection enabled. |
| /// Possible string values are: |
| /// - "LOCATION_MODE_UNSPECIFIED" : Defaults to LOCATION_USER_CHOICE. |
| /// - "HIGH_ACCURACY" : On Android 8 and below, all location detection methods |
| /// are enabled, including GPS, networks, and other sensors. On Android 9 and |
| /// above, this is equivalent to LOCATION_ENFORCED. |
| /// - "SENSORS_ONLY" : On Android 8 and below, only GPS and other sensors are |
| /// enabled. On Android 9 and above, this is equivalent to LOCATION_ENFORCED. |
| /// - "BATTERY_SAVING" : On Android 8 and below, only the network location |
| /// provider is enabled. On Android 9 and above, this is equivalent to |
| /// LOCATION_ENFORCED. |
| /// - "OFF" : On Android 8 and below, location setting and accuracy are |
| /// disabled. On Android 9 and above, this is equivalent to LOCATION_DISABLED. |
| /// - "LOCATION_USER_CHOICE" : Location setting is not restricted on the |
| /// device. No specific behavior is set or enforced. |
| /// - "LOCATION_ENFORCED" : Enable location setting on the device. |
| /// - "LOCATION_DISABLED" : Disable location setting on the device. |
| core.String locationMode; |
| |
| /// A message displayed to the user in the device administators settings |
| /// screen. |
| UserFacingMessage longSupportMessage; |
| |
| /// Maximum time in milliseconds for user activity until the device locks. |
| /// |
| /// A value of 0 means there is no restriction. |
| core.String maximumTimeToLock; |
| |
| /// The minimum allowed Android API level. |
| core.int minimumApiLevel; |
| |
| /// Whether configuring mobile networks is disabled. |
| core.bool mobileNetworksConfigDisabled; |
| |
| /// Whether adding or removing accounts is disabled. |
| core.bool modifyAccountsDisabled; |
| |
| /// Whether the user mounting physical external media is disabled. |
| core.bool mountPhysicalMediaDisabled; |
| |
| /// The name of the policy in the form |
| /// enterprises/{enterpriseId}/policies/{policyId}. |
| core.String name; |
| |
| /// Whether the network escape hatch is enabled. |
| /// |
| /// If a network connection can't be made at boot time, the escape hatch |
| /// prompts the user to temporarily connect to a network in order to refresh |
| /// the device policy. After applying policy, the temporary network will be |
| /// forgotten and the device will continue booting. This prevents being unable |
| /// to connect to a network if there is no suitable network in the last policy |
| /// and the device boots into an app in lock task mode, or the user is |
| /// otherwise unable to reach device settings. |
| core.bool networkEscapeHatchEnabled; |
| |
| /// Whether resetting network settings is disabled. |
| core.bool networkResetDisabled; |
| |
| /// Network configuration for the device. |
| /// |
| /// See configure networks for more information. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object> openNetworkConfiguration; |
| |
| /// Whether using NFC to beam data from apps is disabled. |
| core.bool outgoingBeamDisabled; |
| |
| /// Whether outgoing calls are disabled. |
| core.bool outgoingCallsDisabled; |
| |
| /// Password requirement policies. |
| /// |
| /// Different policies can be set for work profile or fully managed devices by |
| /// setting the password_scope field in the policy. |
| core.List<PasswordRequirements> passwordPolicies; |
| |
| /// Password requirements. |
| /// |
| /// The field password_requirements.require_password_unlock must not be set. |
| /// DEPRECATED - Use password_policies. |
| PasswordRequirements passwordRequirements; |
| |
| /// Explicit permission or group grants or denials for all apps. |
| /// |
| /// These values override the default_permission_policy. |
| core.List<PermissionGrant> permissionGrants; |
| |
| /// Specifies permitted accessibility services. |
| /// |
| /// If the field is not set, any accessibility service can be used. If the |
| /// field is set, only the accessibility services in this list and the |
| /// system's built-in accessibility service can be used. In particular, if the |
| /// field is set to empty, only the system's built-in accessibility servicess |
| /// can be used. |
| PackageNameList permittedAccessibilityServices; |
| |
| /// If present, only the input methods provided by packages in this list are |
| /// permitted. |
| /// |
| /// If this field is present, but the list is empty, then only system input |
| /// methods are permitted. |
| PackageNameList permittedInputMethods; |
| |
| /// Default intent handler activities. |
| core.List<PersistentPreferredActivity> persistentPreferredActivities; |
| |
| /// Policies managing personal usage on a company-owned device. |
| PersonalUsagePolicies personalUsagePolicies; |
| |
| /// This mode controls which apps are available to the user in the Play Store |
| /// and the behavior on the device when apps are removed from the policy. |
| /// Possible string values are: |
| /// - "PLAY_STORE_MODE_UNSPECIFIED" : Unspecified. Defaults to WHITELIST. |
| /// - "WHITELIST" : Only apps that are in the policy are available and any app |
| /// not in the policy will be automatically uninstalled from the device. |
| /// - "BLACKLIST" : All apps are available and any app that should not be on |
| /// the device should be explicitly marked as 'BLOCKED' in the applications |
| /// policy. |
| core.String playStoreMode; |
| |
| /// Rules that define the behavior when a particular policy can not be applied |
| /// on device |
| core.List<PolicyEnforcementRule> policyEnforcementRules; |
| |
| /// Allows showing UI on a device for a user to choose a private key alias if |
| /// there are no matching rules in ChoosePrivateKeyRules. |
| /// |
| /// For devices below Android P, setting this may leave enterprise keys |
| /// vulnerable. |
| core.bool privateKeySelectionEnabled; |
| |
| /// The network-independent global HTTP proxy. |
| /// |
| /// Typically proxies should be configured per-network in |
| /// open_network_configuration. However for unusual configurations like |
| /// general internal filtering a global HTTP proxy may be useful. If the proxy |
| /// is not accessible, network access may break. The global proxy is only a |
| /// recommendation and some apps may ignore it. |
| ProxyInfo recommendedGlobalProxy; |
| |
| /// Whether removing other users is disabled. |
| core.bool removeUserDisabled; |
| |
| /// Whether rebooting the device into safe boot is disabled. |
| core.bool safeBootDisabled; |
| |
| /// Whether screen capture is disabled. |
| core.bool screenCaptureDisabled; |
| |
| /// Whether changing the user icon is disabled. |
| core.bool setUserIconDisabled; |
| |
| /// Whether changing the wallpaper is disabled. |
| core.bool setWallpaperDisabled; |
| |
| /// Actions to take during the setup process. |
| core.List<SetupAction> setupActions; |
| |
| /// Whether location sharing is disabled. |
| core.bool shareLocationDisabled; |
| |
| /// A message displayed to the user in the settings screen wherever |
| /// functionality has been disabled by the admin. |
| /// |
| /// If the message is longer than 200 characters it may be truncated. |
| UserFacingMessage shortSupportMessage; |
| |
| /// Flag to skip hints on the first use. |
| /// |
| /// Enterprise admin can enable the system recommendation for apps to skip |
| /// their user tutorial and other introductory hints on first start-up. |
| core.bool skipFirstUseHintsEnabled; |
| |
| /// Whether sending and receiving SMS messages is disabled. |
| core.bool smsDisabled; |
| |
| /// Whether the status bar is disabled. |
| /// |
| /// This disables notifications, quick settings, and other screen overlays |
| /// that allow escape from full-screen mode. DEPRECATED. To disable the status |
| /// bar on a kiosk device, use InstallType KIOSK or |
| /// kioskCustomLauncherEnabled. |
| core.bool statusBarDisabled; |
| |
| /// Status reporting settings |
| StatusReportingSettings statusReportingSettings; |
| |
| /// The battery plugged in modes for which the device stays on. |
| /// |
| /// When using this setting, it is recommended to clear maximum_time_to_lock |
| /// so that the device doesn't lock itself while it stays on. |
| core.List<core.String> stayOnPluggedModes; |
| |
| /// The system update policy, which controls how OS updates are applied. |
| /// |
| /// If the update type is WINDOWED, the update window will automatically apply |
| /// to Play app updates as well. |
| SystemUpdate systemUpdate; |
| |
| /// Whether configuring tethering and portable hotspots is disabled. |
| core.bool tetheringConfigDisabled; |
| |
| /// Whether user uninstallation of applications is disabled. |
| core.bool uninstallAppsDisabled; |
| |
| /// Whether the microphone is muted and adjusting microphone volume is |
| /// disabled. |
| core.bool unmuteMicrophoneDisabled; |
| |
| /// Whether transferring files over USB is disabled. |
| core.bool usbFileTransferDisabled; |
| |
| /// Whether USB storage is enabled. |
| /// |
| /// Deprecated. |
| core.bool usbMassStorageEnabled; |
| |
| /// The version of the policy. |
| /// |
| /// This is a read-only field. The version is incremented each time the policy |
| /// is updated. |
| core.String version; |
| |
| /// Whether configuring VPN is disabled. |
| core.bool vpnConfigDisabled; |
| |
| /// Whether configuring Wi-Fi access points is disabled. |
| core.bool wifiConfigDisabled; |
| |
| /// DEPRECATED - Use wifi_config_disabled. |
| core.bool wifiConfigsLockdownEnabled; |
| |
| Policy(); |
| |
| Policy.fromJson(core.Map _json) { |
| if (_json.containsKey('accountTypesWithManagementDisabled')) { |
| accountTypesWithManagementDisabled = |
| (_json['accountTypesWithManagementDisabled'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('addUserDisabled')) { |
| addUserDisabled = _json['addUserDisabled'] as core.bool; |
| } |
| if (_json.containsKey('adjustVolumeDisabled')) { |
| adjustVolumeDisabled = _json['adjustVolumeDisabled'] as core.bool; |
| } |
| if (_json.containsKey('advancedSecurityOverrides')) { |
| advancedSecurityOverrides = AdvancedSecurityOverrides.fromJson( |
| _json['advancedSecurityOverrides'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('alwaysOnVpnPackage')) { |
| alwaysOnVpnPackage = AlwaysOnVpnPackage.fromJson( |
| _json['alwaysOnVpnPackage'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('androidDevicePolicyTracks')) { |
| androidDevicePolicyTracks = |
| (_json['androidDevicePolicyTracks'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('appAutoUpdatePolicy')) { |
| appAutoUpdatePolicy = _json['appAutoUpdatePolicy'] as core.String; |
| } |
| if (_json.containsKey('applications')) { |
| applications = (_json['applications'] as core.List) |
| .map<ApplicationPolicy>((value) => ApplicationPolicy.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('autoDateAndTimeZone')) { |
| autoDateAndTimeZone = _json['autoDateAndTimeZone'] as core.String; |
| } |
| if (_json.containsKey('autoTimeRequired')) { |
| autoTimeRequired = _json['autoTimeRequired'] as core.bool; |
| } |
| if (_json.containsKey('blockApplicationsEnabled')) { |
| blockApplicationsEnabled = _json['blockApplicationsEnabled'] as core.bool; |
| } |
| if (_json.containsKey('bluetoothConfigDisabled')) { |
| bluetoothConfigDisabled = _json['bluetoothConfigDisabled'] as core.bool; |
| } |
| if (_json.containsKey('bluetoothContactSharingDisabled')) { |
| bluetoothContactSharingDisabled = |
| _json['bluetoothContactSharingDisabled'] as core.bool; |
| } |
| if (_json.containsKey('bluetoothDisabled')) { |
| bluetoothDisabled = _json['bluetoothDisabled'] as core.bool; |
| } |
| if (_json.containsKey('cameraDisabled')) { |
| cameraDisabled = _json['cameraDisabled'] as core.bool; |
| } |
| if (_json.containsKey('cellBroadcastsConfigDisabled')) { |
| cellBroadcastsConfigDisabled = |
| _json['cellBroadcastsConfigDisabled'] as core.bool; |
| } |
| if (_json.containsKey('choosePrivateKeyRules')) { |
| choosePrivateKeyRules = (_json['choosePrivateKeyRules'] as core.List) |
| .map<ChoosePrivateKeyRule>((value) => ChoosePrivateKeyRule.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('complianceRules')) { |
| complianceRules = (_json['complianceRules'] as core.List) |
| .map<ComplianceRule>((value) => ComplianceRule.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('createWindowsDisabled')) { |
| createWindowsDisabled = _json['createWindowsDisabled'] as core.bool; |
| } |
| if (_json.containsKey('credentialsConfigDisabled')) { |
| credentialsConfigDisabled = |
| _json['credentialsConfigDisabled'] as core.bool; |
| } |
| if (_json.containsKey('dataRoamingDisabled')) { |
| dataRoamingDisabled = _json['dataRoamingDisabled'] as core.bool; |
| } |
| if (_json.containsKey('debuggingFeaturesAllowed')) { |
| debuggingFeaturesAllowed = _json['debuggingFeaturesAllowed'] as core.bool; |
| } |
| if (_json.containsKey('defaultPermissionPolicy')) { |
| defaultPermissionPolicy = _json['defaultPermissionPolicy'] as core.String; |
| } |
| if (_json.containsKey('deviceOwnerLockScreenInfo')) { |
| deviceOwnerLockScreenInfo = UserFacingMessage.fromJson( |
| _json['deviceOwnerLockScreenInfo'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('encryptionPolicy')) { |
| encryptionPolicy = _json['encryptionPolicy'] as core.String; |
| } |
| if (_json.containsKey('ensureVerifyAppsEnabled')) { |
| ensureVerifyAppsEnabled = _json['ensureVerifyAppsEnabled'] as core.bool; |
| } |
| if (_json.containsKey('factoryResetDisabled')) { |
| factoryResetDisabled = _json['factoryResetDisabled'] as core.bool; |
| } |
| if (_json.containsKey('frpAdminEmails')) { |
| frpAdminEmails = (_json['frpAdminEmails'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('funDisabled')) { |
| funDisabled = _json['funDisabled'] as core.bool; |
| } |
| if (_json.containsKey('installAppsDisabled')) { |
| installAppsDisabled = _json['installAppsDisabled'] as core.bool; |
| } |
| if (_json.containsKey('installUnknownSourcesAllowed')) { |
| installUnknownSourcesAllowed = |
| _json['installUnknownSourcesAllowed'] as core.bool; |
| } |
| if (_json.containsKey('keyguardDisabled')) { |
| keyguardDisabled = _json['keyguardDisabled'] as core.bool; |
| } |
| if (_json.containsKey('keyguardDisabledFeatures')) { |
| keyguardDisabledFeatures = |
| (_json['keyguardDisabledFeatures'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('kioskCustomLauncherEnabled')) { |
| kioskCustomLauncherEnabled = |
| _json['kioskCustomLauncherEnabled'] as core.bool; |
| } |
| if (_json.containsKey('kioskCustomization')) { |
| kioskCustomization = KioskCustomization.fromJson( |
| _json['kioskCustomization'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('locationMode')) { |
| locationMode = _json['locationMode'] as core.String; |
| } |
| if (_json.containsKey('longSupportMessage')) { |
| longSupportMessage = UserFacingMessage.fromJson( |
| _json['longSupportMessage'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('maximumTimeToLock')) { |
| maximumTimeToLock = _json['maximumTimeToLock'] as core.String; |
| } |
| if (_json.containsKey('minimumApiLevel')) { |
| minimumApiLevel = _json['minimumApiLevel'] as core.int; |
| } |
| if (_json.containsKey('mobileNetworksConfigDisabled')) { |
| mobileNetworksConfigDisabled = |
| _json['mobileNetworksConfigDisabled'] as core.bool; |
| } |
| if (_json.containsKey('modifyAccountsDisabled')) { |
| modifyAccountsDisabled = _json['modifyAccountsDisabled'] as core.bool; |
| } |
| if (_json.containsKey('mountPhysicalMediaDisabled')) { |
| mountPhysicalMediaDisabled = |
| _json['mountPhysicalMediaDisabled'] as core.bool; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('networkEscapeHatchEnabled')) { |
| networkEscapeHatchEnabled = |
| _json['networkEscapeHatchEnabled'] as core.bool; |
| } |
| if (_json.containsKey('networkResetDisabled')) { |
| networkResetDisabled = _json['networkResetDisabled'] as core.bool; |
| } |
| if (_json.containsKey('openNetworkConfiguration')) { |
| openNetworkConfiguration = (_json['openNetworkConfiguration'] as core.Map) |
| .cast<core.String, core.Object>() |
| .map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.Object, |
| ), |
| ); |
| } |
| if (_json.containsKey('outgoingBeamDisabled')) { |
| outgoingBeamDisabled = _json['outgoingBeamDisabled'] as core.bool; |
| } |
| if (_json.containsKey('outgoingCallsDisabled')) { |
| outgoingCallsDisabled = _json['outgoingCallsDisabled'] as core.bool; |
| } |
| if (_json.containsKey('passwordPolicies')) { |
| passwordPolicies = (_json['passwordPolicies'] as core.List) |
| .map<PasswordRequirements>((value) => PasswordRequirements.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('passwordRequirements')) { |
| passwordRequirements = PasswordRequirements.fromJson( |
| _json['passwordRequirements'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('permissionGrants')) { |
| permissionGrants = (_json['permissionGrants'] as core.List) |
| .map<PermissionGrant>((value) => PermissionGrant.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('permittedAccessibilityServices')) { |
| permittedAccessibilityServices = PackageNameList.fromJson( |
| _json['permittedAccessibilityServices'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('permittedInputMethods')) { |
| permittedInputMethods = PackageNameList.fromJson( |
| _json['permittedInputMethods'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('persistentPreferredActivities')) { |
| persistentPreferredActivities = |
| (_json['persistentPreferredActivities'] as core.List) |
| .map<PersistentPreferredActivity>((value) => |
| PersistentPreferredActivity.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('personalUsagePolicies')) { |
| personalUsagePolicies = PersonalUsagePolicies.fromJson( |
| _json['personalUsagePolicies'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('playStoreMode')) { |
| playStoreMode = _json['playStoreMode'] as core.String; |
| } |
| if (_json.containsKey('policyEnforcementRules')) { |
| policyEnforcementRules = (_json['policyEnforcementRules'] as core.List) |
| .map<PolicyEnforcementRule>((value) => PolicyEnforcementRule.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('privateKeySelectionEnabled')) { |
| privateKeySelectionEnabled = |
| _json['privateKeySelectionEnabled'] as core.bool; |
| } |
| if (_json.containsKey('recommendedGlobalProxy')) { |
| recommendedGlobalProxy = ProxyInfo.fromJson( |
| _json['recommendedGlobalProxy'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('removeUserDisabled')) { |
| removeUserDisabled = _json['removeUserDisabled'] as core.bool; |
| } |
| if (_json.containsKey('safeBootDisabled')) { |
| safeBootDisabled = _json['safeBootDisabled'] as core.bool; |
| } |
| if (_json.containsKey('screenCaptureDisabled')) { |
| screenCaptureDisabled = _json['screenCaptureDisabled'] as core.bool; |
| } |
| if (_json.containsKey('setUserIconDisabled')) { |
| setUserIconDisabled = _json['setUserIconDisabled'] as core.bool; |
| } |
| if (_json.containsKey('setWallpaperDisabled')) { |
| setWallpaperDisabled = _json['setWallpaperDisabled'] as core.bool; |
| } |
| if (_json.containsKey('setupActions')) { |
| setupActions = (_json['setupActions'] as core.List) |
| .map<SetupAction>((value) => SetupAction.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('shareLocationDisabled')) { |
| shareLocationDisabled = _json['shareLocationDisabled'] as core.bool; |
| } |
| if (_json.containsKey('shortSupportMessage')) { |
| shortSupportMessage = UserFacingMessage.fromJson( |
| _json['shortSupportMessage'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('skipFirstUseHintsEnabled')) { |
| skipFirstUseHintsEnabled = _json['skipFirstUseHintsEnabled'] as core.bool; |
| } |
| if (_json.containsKey('smsDisabled')) { |
| smsDisabled = _json['smsDisabled'] as core.bool; |
| } |
| if (_json.containsKey('statusBarDisabled')) { |
| statusBarDisabled = _json['statusBarDisabled'] as core.bool; |
| } |
| if (_json.containsKey('statusReportingSettings')) { |
| statusReportingSettings = StatusReportingSettings.fromJson( |
| _json['statusReportingSettings'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('stayOnPluggedModes')) { |
| stayOnPluggedModes = (_json['stayOnPluggedModes'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('systemUpdate')) { |
| systemUpdate = SystemUpdate.fromJson( |
| _json['systemUpdate'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('tetheringConfigDisabled')) { |
| tetheringConfigDisabled = _json['tetheringConfigDisabled'] as core.bool; |
| } |
| if (_json.containsKey('uninstallAppsDisabled')) { |
| uninstallAppsDisabled = _json['uninstallAppsDisabled'] as core.bool; |
| } |
| if (_json.containsKey('unmuteMicrophoneDisabled')) { |
| unmuteMicrophoneDisabled = _json['unmuteMicrophoneDisabled'] as core.bool; |
| } |
| if (_json.containsKey('usbFileTransferDisabled')) { |
| usbFileTransferDisabled = _json['usbFileTransferDisabled'] as core.bool; |
| } |
| if (_json.containsKey('usbMassStorageEnabled')) { |
| usbMassStorageEnabled = _json['usbMassStorageEnabled'] as core.bool; |
| } |
| if (_json.containsKey('version')) { |
| version = _json['version'] as core.String; |
| } |
| if (_json.containsKey('vpnConfigDisabled')) { |
| vpnConfigDisabled = _json['vpnConfigDisabled'] as core.bool; |
| } |
| if (_json.containsKey('wifiConfigDisabled')) { |
| wifiConfigDisabled = _json['wifiConfigDisabled'] as core.bool; |
| } |
| if (_json.containsKey('wifiConfigsLockdownEnabled')) { |
| wifiConfigsLockdownEnabled = |
| _json['wifiConfigsLockdownEnabled'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accountTypesWithManagementDisabled != null) { |
| _json['accountTypesWithManagementDisabled'] = |
| accountTypesWithManagementDisabled; |
| } |
| if (addUserDisabled != null) { |
| _json['addUserDisabled'] = addUserDisabled; |
| } |
| if (adjustVolumeDisabled != null) { |
| _json['adjustVolumeDisabled'] = adjustVolumeDisabled; |
| } |
| if (advancedSecurityOverrides != null) { |
| _json['advancedSecurityOverrides'] = advancedSecurityOverrides.toJson(); |
| } |
| if (alwaysOnVpnPackage != null) { |
| _json['alwaysOnVpnPackage'] = alwaysOnVpnPackage.toJson(); |
| } |
| if (androidDevicePolicyTracks != null) { |
| _json['androidDevicePolicyTracks'] = androidDevicePolicyTracks; |
| } |
| if (appAutoUpdatePolicy != null) { |
| _json['appAutoUpdatePolicy'] = appAutoUpdatePolicy; |
| } |
| if (applications != null) { |
| _json['applications'] = |
| applications.map((value) => value.toJson()).toList(); |
| } |
| if (autoDateAndTimeZone != null) { |
| _json['autoDateAndTimeZone'] = autoDateAndTimeZone; |
| } |
| if (autoTimeRequired != null) { |
| _json['autoTimeRequired'] = autoTimeRequired; |
| } |
| if (blockApplicationsEnabled != null) { |
| _json['blockApplicationsEnabled'] = blockApplicationsEnabled; |
| } |
| if (bluetoothConfigDisabled != null) { |
| _json['bluetoothConfigDisabled'] = bluetoothConfigDisabled; |
| } |
| if (bluetoothContactSharingDisabled != null) { |
| _json['bluetoothContactSharingDisabled'] = |
| bluetoothContactSharingDisabled; |
| } |
| if (bluetoothDisabled != null) { |
| _json['bluetoothDisabled'] = bluetoothDisabled; |
| } |
| if (cameraDisabled != null) { |
| _json['cameraDisabled'] = cameraDisabled; |
| } |
| if (cellBroadcastsConfigDisabled != null) { |
| _json['cellBroadcastsConfigDisabled'] = cellBroadcastsConfigDisabled; |
| } |
| if (choosePrivateKeyRules != null) { |
| _json['choosePrivateKeyRules'] = |
| choosePrivateKeyRules.map((value) => value.toJson()).toList(); |
| } |
| if (complianceRules != null) { |
| _json['complianceRules'] = |
| complianceRules.map((value) => value.toJson()).toList(); |
| } |
| if (createWindowsDisabled != null) { |
| _json['createWindowsDisabled'] = createWindowsDisabled; |
| } |
| if (credentialsConfigDisabled != null) { |
| _json['credentialsConfigDisabled'] = credentialsConfigDisabled; |
| } |
| if (dataRoamingDisabled != null) { |
| _json['dataRoamingDisabled'] = dataRoamingDisabled; |
| } |
| if (debuggingFeaturesAllowed != null) { |
| _json['debuggingFeaturesAllowed'] = debuggingFeaturesAllowed; |
| } |
| if (defaultPermissionPolicy != null) { |
| _json['defaultPermissionPolicy'] = defaultPermissionPolicy; |
| } |
| if (deviceOwnerLockScreenInfo != null) { |
| _json['deviceOwnerLockScreenInfo'] = deviceOwnerLockScreenInfo.toJson(); |
| } |
| if (encryptionPolicy != null) { |
| _json['encryptionPolicy'] = encryptionPolicy; |
| } |
| if (ensureVerifyAppsEnabled != null) { |
| _json['ensureVerifyAppsEnabled'] = ensureVerifyAppsEnabled; |
| } |
| if (factoryResetDisabled != null) { |
| _json['factoryResetDisabled'] = factoryResetDisabled; |
| } |
| if (frpAdminEmails != null) { |
| _json['frpAdminEmails'] = frpAdminEmails; |
| } |
| if (funDisabled != null) { |
| _json['funDisabled'] = funDisabled; |
| } |
| if (installAppsDisabled != null) { |
| _json['installAppsDisabled'] = installAppsDisabled; |
| } |
| if (installUnknownSourcesAllowed != null) { |
| _json['installUnknownSourcesAllowed'] = installUnknownSourcesAllowed; |
| } |
| if (keyguardDisabled != null) { |
| _json['keyguardDisabled'] = keyguardDisabled; |
| } |
| if (keyguardDisabledFeatures != null) { |
| _json['keyguardDisabledFeatures'] = keyguardDisabledFeatures; |
| } |
| if (kioskCustomLauncherEnabled != null) { |
| _json['kioskCustomLauncherEnabled'] = kioskCustomLauncherEnabled; |
| } |
| if (kioskCustomization != null) { |
| _json['kioskCustomization'] = kioskCustomization.toJson(); |
| } |
| if (locationMode != null) { |
| _json['locationMode'] = locationMode; |
| } |
| if (longSupportMessage != null) { |
| _json['longSupportMessage'] = longSupportMessage.toJson(); |
| } |
| if (maximumTimeToLock != null) { |
| _json['maximumTimeToLock'] = maximumTimeToLock; |
| } |
| if (minimumApiLevel != null) { |
| _json['minimumApiLevel'] = minimumApiLevel; |
| } |
| if (mobileNetworksConfigDisabled != null) { |
| _json['mobileNetworksConfigDisabled'] = mobileNetworksConfigDisabled; |
| } |
| if (modifyAccountsDisabled != null) { |
| _json['modifyAccountsDisabled'] = modifyAccountsDisabled; |
| } |
| if (mountPhysicalMediaDisabled != null) { |
| _json['mountPhysicalMediaDisabled'] = mountPhysicalMediaDisabled; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (networkEscapeHatchEnabled != null) { |
| _json['networkEscapeHatchEnabled'] = networkEscapeHatchEnabled; |
| } |
| if (networkResetDisabled != null) { |
| _json['networkResetDisabled'] = networkResetDisabled; |
| } |
| if (openNetworkConfiguration != null) { |
| _json['openNetworkConfiguration'] = openNetworkConfiguration; |
| } |
| if (outgoingBeamDisabled != null) { |
| _json['outgoingBeamDisabled'] = outgoingBeamDisabled; |
| } |
| if (outgoingCallsDisabled != null) { |
| _json['outgoingCallsDisabled'] = outgoingCallsDisabled; |
| } |
| if (passwordPolicies != null) { |
| _json['passwordPolicies'] = |
| passwordPolicies.map((value) => value.toJson()).toList(); |
| } |
| if (passwordRequirements != null) { |
| _json['passwordRequirements'] = passwordRequirements.toJson(); |
| } |
| if (permissionGrants != null) { |
| _json['permissionGrants'] = |
| permissionGrants.map((value) => value.toJson()).toList(); |
| } |
| if (permittedAccessibilityServices != null) { |
| _json['permittedAccessibilityServices'] = |
| permittedAccessibilityServices.toJson(); |
| } |
| if (permittedInputMethods != null) { |
| _json['permittedInputMethods'] = permittedInputMethods.toJson(); |
| } |
| if (persistentPreferredActivities != null) { |
| _json['persistentPreferredActivities'] = |
| persistentPreferredActivities.map((value) => value.toJson()).toList(); |
| } |
| if (personalUsagePolicies != null) { |
| _json['personalUsagePolicies'] = personalUsagePolicies.toJson(); |
| } |
| if (playStoreMode != null) { |
| _json['playStoreMode'] = playStoreMode; |
| } |
| if (policyEnforcementRules != null) { |
| _json['policyEnforcementRules'] = |
| policyEnforcementRules.map((value) => value.toJson()).toList(); |
| } |
| if (privateKeySelectionEnabled != null) { |
| _json['privateKeySelectionEnabled'] = privateKeySelectionEnabled; |
| } |
| if (recommendedGlobalProxy != null) { |
| _json['recommendedGlobalProxy'] = recommendedGlobalProxy.toJson(); |
| } |
| if (removeUserDisabled != null) { |
| _json['removeUserDisabled'] = removeUserDisabled; |
| } |
| if (safeBootDisabled != null) { |
| _json['safeBootDisabled'] = safeBootDisabled; |
| } |
| if (screenCaptureDisabled != null) { |
| _json['screenCaptureDisabled'] = screenCaptureDisabled; |
| } |
| if (setUserIconDisabled != null) { |
| _json['setUserIconDisabled'] = setUserIconDisabled; |
| } |
| if (setWallpaperDisabled != null) { |
| _json['setWallpaperDisabled'] = setWallpaperDisabled; |
| } |
| if (setupActions != null) { |
| _json['setupActions'] = |
| setupActions.map((value) => value.toJson()).toList(); |
| } |
| if (shareLocationDisabled != null) { |
| _json['shareLocationDisabled'] = shareLocationDisabled; |
| } |
| if (shortSupportMessage != null) { |
| _json['shortSupportMessage'] = shortSupportMessage.toJson(); |
| } |
| if (skipFirstUseHintsEnabled != null) { |
| _json['skipFirstUseHintsEnabled'] = skipFirstUseHintsEnabled; |
| } |
| if (smsDisabled != null) { |
| _json['smsDisabled'] = smsDisabled; |
| } |
| if (statusBarDisabled != null) { |
| _json['statusBarDisabled'] = statusBarDisabled; |
| } |
| if (statusReportingSettings != null) { |
| _json['statusReportingSettings'] = statusReportingSettings.toJson(); |
| } |
| if (stayOnPluggedModes != null) { |
| _json['stayOnPluggedModes'] = stayOnPluggedModes; |
| } |
| if (systemUpdate != null) { |
| _json['systemUpdate'] = systemUpdate.toJson(); |
| } |
| if (tetheringConfigDisabled != null) { |
| _json['tetheringConfigDisabled'] = tetheringConfigDisabled; |
| } |
| if (uninstallAppsDisabled != null) { |
| _json['uninstallAppsDisabled'] = uninstallAppsDisabled; |
| } |
| if (unmuteMicrophoneDisabled != null) { |
| _json['unmuteMicrophoneDisabled'] = unmuteMicrophoneDisabled; |
| } |
| if (usbFileTransferDisabled != null) { |
| _json['usbFileTransferDisabled'] = usbFileTransferDisabled; |
| } |
| if (usbMassStorageEnabled != null) { |
| _json['usbMassStorageEnabled'] = usbMassStorageEnabled; |
| } |
| if (version != null) { |
| _json['version'] = version; |
| } |
| if (vpnConfigDisabled != null) { |
| _json['vpnConfigDisabled'] = vpnConfigDisabled; |
| } |
| if (wifiConfigDisabled != null) { |
| _json['wifiConfigDisabled'] = wifiConfigDisabled; |
| } |
| if (wifiConfigsLockdownEnabled != null) { |
| _json['wifiConfigsLockdownEnabled'] = wifiConfigsLockdownEnabled; |
| } |
| return _json; |
| } |
| } |
| |
| /// A rule that defines the actions to take if a device or work profile is not |
| /// compliant with the policy specified in settingName. |
| class PolicyEnforcementRule { |
| /// An action to block access to apps and data on a fully managed device or in |
| /// a work profile. |
| /// |
| /// This action also triggers a user-facing notification with information |
| /// (where possible) on how to correct the compliance issue. Note: wipeAction |
| /// must also be specified. |
| BlockAction blockAction; |
| |
| /// The top-level policy to enforce. |
| /// |
| /// For example, applications or passwordPolicies. |
| core.String settingName; |
| |
| /// An action to reset a fully managed device or delete a work profile. |
| /// |
| /// Note: blockAction must also be specified. |
| WipeAction wipeAction; |
| |
| PolicyEnforcementRule(); |
| |
| PolicyEnforcementRule.fromJson(core.Map _json) { |
| if (_json.containsKey('blockAction')) { |
| blockAction = BlockAction.fromJson( |
| _json['blockAction'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('settingName')) { |
| settingName = _json['settingName'] as core.String; |
| } |
| if (_json.containsKey('wipeAction')) { |
| wipeAction = WipeAction.fromJson( |
| _json['wipeAction'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (blockAction != null) { |
| _json['blockAction'] = blockAction.toJson(); |
| } |
| if (settingName != null) { |
| _json['settingName'] = settingName; |
| } |
| if (wipeAction != null) { |
| _json['wipeAction'] = wipeAction.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Additional details regarding the security posture of the device. |
| class PostureDetail { |
| /// Corresponding admin-facing advice to mitigate this security risk and |
| /// improve the security posture of the device. |
| core.List<UserFacingMessage> advice; |
| |
| /// A specific security risk that negatively affects the security posture of |
| /// the device. |
| /// Possible string values are: |
| /// - "SECURITY_RISK_UNSPECIFIED" : Unspecified. |
| /// - "UNKNOWN_OS" : SafetyNet detects that the device is running an unknown |
| /// OS (basicIntegrity check succeeds but ctsProfileMatch fails). |
| /// - "COMPROMISED_OS" : SafetyNet detects that the device is running a |
| /// compromised OS (basicIntegrity check fails). |
| core.String securityRisk; |
| |
| PostureDetail(); |
| |
| PostureDetail.fromJson(core.Map _json) { |
| if (_json.containsKey('advice')) { |
| advice = (_json['advice'] as core.List) |
| .map<UserFacingMessage>((value) => UserFacingMessage.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('securityRisk')) { |
| securityRisk = _json['securityRisk'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (advice != null) { |
| _json['advice'] = advice.map((value) => value.toJson()).toList(); |
| } |
| if (securityRisk != null) { |
| _json['securityRisk'] = securityRisk; |
| } |
| return _json; |
| } |
| } |
| |
| /// A power management event. |
| class PowerManagementEvent { |
| /// For BATTERY_LEVEL_COLLECTED events, the battery level as a percentage. |
| core.double batteryLevel; |
| |
| /// The creation time of the event. |
| core.String createTime; |
| |
| /// Event type. |
| /// Possible string values are: |
| /// - "POWER_MANAGEMENT_EVENT_TYPE_UNSPECIFIED" : Unspecified. No events have |
| /// this type. |
| /// - "BATTERY_LEVEL_COLLECTED" : Battery level was measured. |
| /// - "POWER_CONNECTED" : The device started charging. |
| /// - "POWER_DISCONNECTED" : The device stopped charging. |
| /// - "BATTERY_LOW" : The device entered low-power mode. |
| /// - "BATTERY_OKAY" : The device exited low-power mode. |
| /// - "BOOT_COMPLETED" : The device booted. |
| /// - "SHUTDOWN" : The device shut down. |
| core.String eventType; |
| |
| PowerManagementEvent(); |
| |
| PowerManagementEvent.fromJson(core.Map _json) { |
| if (_json.containsKey('batteryLevel')) { |
| batteryLevel = (_json['batteryLevel'] as core.num).toDouble(); |
| } |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('eventType')) { |
| eventType = _json['eventType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (batteryLevel != null) { |
| _json['batteryLevel'] = batteryLevel; |
| } |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (eventType != null) { |
| _json['eventType'] = eventType; |
| } |
| return _json; |
| } |
| } |
| |
| /// Configuration info for an HTTP proxy. |
| /// |
| /// For a direct proxy, set the host, port, and excluded_hosts fields. For a PAC |
| /// script proxy, set the pac_uri field. |
| class ProxyInfo { |
| /// For a direct proxy, the hosts for which the proxy is bypassed. |
| /// |
| /// The host names may contain wildcards such as *.example.com. |
| core.List<core.String> excludedHosts; |
| |
| /// The host of the direct proxy. |
| core.String host; |
| |
| /// The URI of the PAC script used to configure the proxy. |
| core.String pacUri; |
| |
| /// The port of the direct proxy. |
| core.int port; |
| |
| ProxyInfo(); |
| |
| ProxyInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('excludedHosts')) { |
| excludedHosts = (_json['excludedHosts'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('host')) { |
| host = _json['host'] as core.String; |
| } |
| if (_json.containsKey('pacUri')) { |
| pacUri = _json['pacUri'] as core.String; |
| } |
| if (_json.containsKey('port')) { |
| port = _json['port'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (excludedHosts != null) { |
| _json['excludedHosts'] = excludedHosts; |
| } |
| if (host != null) { |
| _json['host'] = host; |
| } |
| if (pacUri != null) { |
| _json['pacUri'] = pacUri; |
| } |
| if (port != null) { |
| _json['port'] = port; |
| } |
| return _json; |
| } |
| } |
| |
| /// The security posture of the device, as determined by the current device |
| /// state and the policies applied. |
| class SecurityPosture { |
| /// Device's security posture value. |
| /// Possible string values are: |
| /// - "POSTURE_UNSPECIFIED" : Unspecified. There is no posture detail for this |
| /// posture value. |
| /// - "SECURE" : This device is secure. |
| /// - "AT_RISK" : This device may be more vulnerable to malicious actors than |
| /// is recommended for use with corporate data. |
| /// - "POTENTIALLY_COMPROMISED" : This device may be compromised and corporate |
| /// data may be accessible to unauthorized actors. |
| core.String devicePosture; |
| |
| /// Additional details regarding the security posture of the device. |
| core.List<PostureDetail> postureDetails; |
| |
| SecurityPosture(); |
| |
| SecurityPosture.fromJson(core.Map _json) { |
| if (_json.containsKey('devicePosture')) { |
| devicePosture = _json['devicePosture'] as core.String; |
| } |
| if (_json.containsKey('postureDetails')) { |
| postureDetails = (_json['postureDetails'] as core.List) |
| .map<PostureDetail>((value) => PostureDetail.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (devicePosture != null) { |
| _json['devicePosture'] = devicePosture; |
| } |
| if (postureDetails != null) { |
| _json['postureDetails'] = |
| postureDetails.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// An action executed during setup. |
| class SetupAction { |
| /// Description of this action. |
| UserFacingMessage description; |
| |
| /// An action to launch an app. |
| LaunchAppAction launchApp; |
| |
| /// Title of this action. |
| UserFacingMessage title; |
| |
| SetupAction(); |
| |
| SetupAction.fromJson(core.Map _json) { |
| if (_json.containsKey('description')) { |
| description = UserFacingMessage.fromJson( |
| _json['description'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('launchApp')) { |
| launchApp = LaunchAppAction.fromJson( |
| _json['launchApp'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('title')) { |
| title = UserFacingMessage.fromJson( |
| _json['title'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (description != null) { |
| _json['description'] = description.toJson(); |
| } |
| if (launchApp != null) { |
| _json['launchApp'] = launchApp.toJson(); |
| } |
| if (title != null) { |
| _json['title'] = title.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A resource containing sign in details for an enterprise. |
| class SigninDetail { |
| /// Controls whether personal usage is allowed on a device provisioned with |
| /// this enrollment token.For company-owned devices: Enabling personal usage |
| /// allows the user to set up a work profile on the device. |
| /// |
| /// Disabling personal usage requires the user provision the device as a fully |
| /// managed device.For personally-owned devices: Enabling personal usage |
| /// allows the user to set up a work profile on the device. Disabling personal |
| /// usage will prevent the device from provisioning. Personal usage cannot be |
| /// disabled on personally-owned device. |
| /// Possible string values are: |
| /// - "ALLOW_PERSONAL_USAGE_UNSPECIFIED" : Personal usage restriction is not |
| /// specified |
| /// - "PERSONAL_USAGE_ALLOWED" : Personal usage is allowed |
| /// - "PERSONAL_USAGE_DISALLOWED" : Personal usage is disallowed |
| core.String allowPersonalUsage; |
| |
| /// A JSON string whose UTF-8 representation can be used to generate a QR code |
| /// to enroll a device with this enrollment token. |
| /// |
| /// To enroll a device using NFC, the NFC record must contain a serialized |
| /// java.util.Properties representation of the properties in the JSON. This is |
| /// a read-only field generated by the server. |
| core.String qrCode; |
| |
| /// An enterprise wide enrollment token used to trigger custom sign-in flow. |
| /// |
| /// This is a read-only field generated by the server. |
| core.String signinEnrollmentToken; |
| |
| /// Sign-in URL for authentication when device is provisioned with a sign-in |
| /// enrollment token. |
| /// |
| /// The sign-in endpoint should finish authentication flow with a URL in the |
| /// form of https://enterprise.google.com/android/enroll?et= for a successful |
| /// login, or https://enterprise.google.com/android/enroll/invalid for a |
| /// failed login. |
| core.String signinUrl; |
| |
| SigninDetail(); |
| |
| SigninDetail.fromJson(core.Map _json) { |
| if (_json.containsKey('allowPersonalUsage')) { |
| allowPersonalUsage = _json['allowPersonalUsage'] as core.String; |
| } |
| if (_json.containsKey('qrCode')) { |
| qrCode = _json['qrCode'] as core.String; |
| } |
| if (_json.containsKey('signinEnrollmentToken')) { |
| signinEnrollmentToken = _json['signinEnrollmentToken'] as core.String; |
| } |
| if (_json.containsKey('signinUrl')) { |
| signinUrl = _json['signinUrl'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (allowPersonalUsage != null) { |
| _json['allowPersonalUsage'] = allowPersonalUsage; |
| } |
| if (qrCode != null) { |
| _json['qrCode'] = qrCode; |
| } |
| if (signinEnrollmentToken != null) { |
| _json['signinEnrollmentToken'] = signinEnrollmentToken; |
| } |
| if (signinUrl != null) { |
| _json['signinUrl'] = signinUrl; |
| } |
| return _json; |
| } |
| } |
| |
| /// An enterprise signup URL. |
| class SignupUrl { |
| /// The name of the resource. |
| /// |
| /// Use this value in the signupUrl field when calling enterprises.create to |
| /// complete the enterprise signup flow. |
| core.String name; |
| |
| /// A URL where an enterprise admin can register their enterprise. |
| /// |
| /// The page can't be rendered in an iframe. |
| core.String url; |
| |
| SignupUrl(); |
| |
| SignupUrl.fromJson(core.Map _json) { |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('url')) { |
| url = _json['url'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (url != null) { |
| _json['url'] = url; |
| } |
| return _json; |
| } |
| } |
| |
| /// Information about device software. |
| class SoftwareInfo { |
| /// Android build ID string meant for displaying to the user. |
| /// |
| /// For example, shamu-userdebug 6.0.1 MOB30I 2756745 dev-keys. |
| core.String androidBuildNumber; |
| |
| /// Build time. |
| core.String androidBuildTime; |
| |
| /// The Android Device Policy app version code. |
| core.int androidDevicePolicyVersionCode; |
| |
| /// The Android Device Policy app version as displayed to the user. |
| core.String androidDevicePolicyVersionName; |
| |
| /// The user-visible Android version string. |
| /// |
| /// For example, 6.0.1. |
| core.String androidVersion; |
| |
| /// The system bootloader version number, e.g. 0.6.7. |
| core.String bootloaderVersion; |
| |
| /// SHA-256 hash of android.content.pm.Signature |
| /// (https://developer.android.com/reference/android/content/pm/Signature.html) |
| /// associated with the system package, which can be used to verify that the |
| /// system build hasn't been modified. |
| core.String deviceBuildSignature; |
| |
| /// Kernel version, for example, 2.6.32.9-g103d848. |
| core.String deviceKernelVersion; |
| |
| /// An IETF BCP 47 language code for the primary locale on the device. |
| core.String primaryLanguageCode; |
| |
| /// Security patch level, e.g. 2016-05-01. |
| core.String securityPatchLevel; |
| |
| /// Information about a potential pending system update. |
| SystemUpdateInfo systemUpdateInfo; |
| |
| SoftwareInfo(); |
| |
| SoftwareInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('androidBuildNumber')) { |
| androidBuildNumber = _json['androidBuildNumber'] as core.String; |
| } |
| if (_json.containsKey('androidBuildTime')) { |
| androidBuildTime = _json['androidBuildTime'] as core.String; |
| } |
| if (_json.containsKey('androidDevicePolicyVersionCode')) { |
| androidDevicePolicyVersionCode = |
| _json['androidDevicePolicyVersionCode'] as core.int; |
| } |
| if (_json.containsKey('androidDevicePolicyVersionName')) { |
| androidDevicePolicyVersionName = |
| _json['androidDevicePolicyVersionName'] as core.String; |
| } |
| if (_json.containsKey('androidVersion')) { |
| androidVersion = _json['androidVersion'] as core.String; |
| } |
| if (_json.containsKey('bootloaderVersion')) { |
| bootloaderVersion = _json['bootloaderVersion'] as core.String; |
| } |
| if (_json.containsKey('deviceBuildSignature')) { |
| deviceBuildSignature = _json['deviceBuildSignature'] as core.String; |
| } |
| if (_json.containsKey('deviceKernelVersion')) { |
| deviceKernelVersion = _json['deviceKernelVersion'] as core.String; |
| } |
| if (_json.containsKey('primaryLanguageCode')) { |
| primaryLanguageCode = _json['primaryLanguageCode'] as core.String; |
| } |
| if (_json.containsKey('securityPatchLevel')) { |
| securityPatchLevel = _json['securityPatchLevel'] as core.String; |
| } |
| if (_json.containsKey('systemUpdateInfo')) { |
| systemUpdateInfo = SystemUpdateInfo.fromJson( |
| _json['systemUpdateInfo'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (androidBuildNumber != null) { |
| _json['androidBuildNumber'] = androidBuildNumber; |
| } |
| if (androidBuildTime != null) { |
| _json['androidBuildTime'] = androidBuildTime; |
| } |
| if (androidDevicePolicyVersionCode != null) { |
| _json['androidDevicePolicyVersionCode'] = androidDevicePolicyVersionCode; |
| } |
| if (androidDevicePolicyVersionName != null) { |
| _json['androidDevicePolicyVersionName'] = androidDevicePolicyVersionName; |
| } |
| if (androidVersion != null) { |
| _json['androidVersion'] = androidVersion; |
| } |
| if (bootloaderVersion != null) { |
| _json['bootloaderVersion'] = bootloaderVersion; |
| } |
| if (deviceBuildSignature != null) { |
| _json['deviceBuildSignature'] = deviceBuildSignature; |
| } |
| if (deviceKernelVersion != null) { |
| _json['deviceKernelVersion'] = deviceKernelVersion; |
| } |
| if (primaryLanguageCode != null) { |
| _json['primaryLanguageCode'] = primaryLanguageCode; |
| } |
| if (securityPatchLevel != null) { |
| _json['securityPatchLevel'] = securityPatchLevel; |
| } |
| if (systemUpdateInfo != null) { |
| _json['systemUpdateInfo'] = systemUpdateInfo.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The Status type defines a logical error model that is suitable for different |
| /// programming environments, including REST APIs and RPC APIs. |
| /// |
| /// It is used by gRPC (https://github.com/grpc). Each Status message contains |
| /// three pieces of data: error code, error message, and error details.You can |
| /// find out more about this error model and how to work with it in the API |
| /// Design Guide (https://cloud.google.com/apis/design/errors). |
| class Status { |
| /// The status code, which should be an enum value of google.rpc.Code. |
| core.int code; |
| |
| /// A list of messages that carry the error details. |
| /// |
| /// There is a common set of message types for APIs to use. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.List<core.Map<core.String, core.Object>> details; |
| |
| /// A developer-facing error message, which should be in English. |
| /// |
| /// Any user-facing error message should be localized and sent in the |
| /// google.rpc.Status.details field, or localized by the client. |
| core.String message; |
| |
| Status(); |
| |
| Status.fromJson(core.Map _json) { |
| if (_json.containsKey('code')) { |
| code = _json['code'] as core.int; |
| } |
| if (_json.containsKey('details')) { |
| details = (_json['details'] as core.List) |
| .map<core.Map<core.String, core.Object>>((value) => |
| (value as core.Map).cast<core.String, core.Object>().map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.Object, |
| ), |
| )) |
| .toList(); |
| } |
| if (_json.containsKey('message')) { |
| message = _json['message'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (code != null) { |
| _json['code'] = code; |
| } |
| if (details != null) { |
| _json['details'] = details; |
| } |
| if (message != null) { |
| _json['message'] = message; |
| } |
| return _json; |
| } |
| } |
| |
| /// Settings controlling the behavior of status reports. |
| class StatusReportingSettings { |
| /// Application reporting settings. |
| /// |
| /// Only applicable if application_reports_enabled is true. |
| ApplicationReportingSettings applicationReportingSettings; |
| |
| /// Whether app reports are enabled. |
| core.bool applicationReportsEnabled; |
| |
| /// Whether Common Criteria Mode reporting is enabled. |
| core.bool commonCriteriaModeEnabled; |
| |
| /// Whether device settings reporting is enabled. |
| core.bool deviceSettingsEnabled; |
| |
| /// Whether displays reporting is enabled. |
| /// |
| /// Report data is not available for personally owned devices with work |
| /// profiles. |
| core.bool displayInfoEnabled; |
| |
| /// Whether hardware status reporting is enabled. |
| /// |
| /// Report data is not available for personally owned devices with work |
| /// profiles. |
| core.bool hardwareStatusEnabled; |
| |
| /// Whether memory reporting is enabled. |
| core.bool memoryInfoEnabled; |
| |
| /// Whether network info reporting is enabled. |
| core.bool networkInfoEnabled; |
| |
| /// Whether power management event reporting is enabled. |
| /// |
| /// Report data is not available for personally owned devices with work |
| /// profiles. |
| core.bool powerManagementEventsEnabled; |
| |
| /// Whether software info reporting is enabled. |
| core.bool softwareInfoEnabled; |
| |
| /// Whether system properties reporting is enabled. |
| core.bool systemPropertiesEnabled; |
| |
| StatusReportingSettings(); |
| |
| StatusReportingSettings.fromJson(core.Map _json) { |
| if (_json.containsKey('applicationReportingSettings')) { |
| applicationReportingSettings = ApplicationReportingSettings.fromJson( |
| _json['applicationReportingSettings'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('applicationReportsEnabled')) { |
| applicationReportsEnabled = |
| _json['applicationReportsEnabled'] as core.bool; |
| } |
| if (_json.containsKey('commonCriteriaModeEnabled')) { |
| commonCriteriaModeEnabled = |
| _json['commonCriteriaModeEnabled'] as core.bool; |
| } |
| if (_json.containsKey('deviceSettingsEnabled')) { |
| deviceSettingsEnabled = _json['deviceSettingsEnabled'] as core.bool; |
| } |
| if (_json.containsKey('displayInfoEnabled')) { |
| displayInfoEnabled = _json['displayInfoEnabled'] as core.bool; |
| } |
| if (_json.containsKey('hardwareStatusEnabled')) { |
| hardwareStatusEnabled = _json['hardwareStatusEnabled'] as core.bool; |
| } |
| if (_json.containsKey('memoryInfoEnabled')) { |
| memoryInfoEnabled = _json['memoryInfoEnabled'] as core.bool; |
| } |
| if (_json.containsKey('networkInfoEnabled')) { |
| networkInfoEnabled = _json['networkInfoEnabled'] as core.bool; |
| } |
| if (_json.containsKey('powerManagementEventsEnabled')) { |
| powerManagementEventsEnabled = |
| _json['powerManagementEventsEnabled'] as core.bool; |
| } |
| if (_json.containsKey('softwareInfoEnabled')) { |
| softwareInfoEnabled = _json['softwareInfoEnabled'] as core.bool; |
| } |
| if (_json.containsKey('systemPropertiesEnabled')) { |
| systemPropertiesEnabled = _json['systemPropertiesEnabled'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (applicationReportingSettings != null) { |
| _json['applicationReportingSettings'] = |
| applicationReportingSettings.toJson(); |
| } |
| if (applicationReportsEnabled != null) { |
| _json['applicationReportsEnabled'] = applicationReportsEnabled; |
| } |
| if (commonCriteriaModeEnabled != null) { |
| _json['commonCriteriaModeEnabled'] = commonCriteriaModeEnabled; |
| } |
| if (deviceSettingsEnabled != null) { |
| _json['deviceSettingsEnabled'] = deviceSettingsEnabled; |
| } |
| if (displayInfoEnabled != null) { |
| _json['displayInfoEnabled'] = displayInfoEnabled; |
| } |
| if (hardwareStatusEnabled != null) { |
| _json['hardwareStatusEnabled'] = hardwareStatusEnabled; |
| } |
| if (memoryInfoEnabled != null) { |
| _json['memoryInfoEnabled'] = memoryInfoEnabled; |
| } |
| if (networkInfoEnabled != null) { |
| _json['networkInfoEnabled'] = networkInfoEnabled; |
| } |
| if (powerManagementEventsEnabled != null) { |
| _json['powerManagementEventsEnabled'] = powerManagementEventsEnabled; |
| } |
| if (softwareInfoEnabled != null) { |
| _json['softwareInfoEnabled'] = softwareInfoEnabled; |
| } |
| if (systemPropertiesEnabled != null) { |
| _json['systemPropertiesEnabled'] = systemPropertiesEnabled; |
| } |
| return _json; |
| } |
| } |
| |
| /// Configuration for managing system updates |
| class SystemUpdate { |
| /// If the type is WINDOWED, the end of the maintenance window, measured as |
| /// the number of minutes after midnight in device's local time. |
| /// |
| /// This value must be between 0 and 1439, inclusive. If this value is less |
| /// than start_minutes, then the maintenance window spans midnight. If the |
| /// maintenance window specified is smaller than 30 minutes, the actual window |
| /// is extended to 30 minutes beyond the start time. |
| core.int endMinutes; |
| |
| /// An annually repeating time period in which over-the-air (OTA) system |
| /// updates are postponed to freeze the OS version running on a device. |
| /// |
| /// To prevent freezing the device indefinitely, each freeze period must be |
| /// separated by at least 60 days. |
| core.List<FreezePeriod> freezePeriods; |
| |
| /// If the type is WINDOWED, the start of the maintenance window, measured as |
| /// the number of minutes after midnight in the device's local time. |
| /// |
| /// This value must be between 0 and 1439, inclusive. |
| core.int startMinutes; |
| |
| /// The type of system update to configure. |
| /// Possible string values are: |
| /// - "SYSTEM_UPDATE_TYPE_UNSPECIFIED" : Follow the default update behavior |
| /// for the device, which typically requires the user to accept system |
| /// updates. |
| /// - "AUTOMATIC" : Install automatically as soon as an update is available. |
| /// - "WINDOWED" : Install automatically within a daily maintenance window. |
| /// This also configures Play apps to be updated within the window. This is |
| /// strongly recommended for kiosk devices because this is the only way apps |
| /// persistently pinned to the foreground can be updated by Play. |
| /// - "POSTPONE" : Postpone automatic install up to a maximum of 30 days. |
| core.String type; |
| |
| SystemUpdate(); |
| |
| SystemUpdate.fromJson(core.Map _json) { |
| if (_json.containsKey('endMinutes')) { |
| endMinutes = _json['endMinutes'] as core.int; |
| } |
| if (_json.containsKey('freezePeriods')) { |
| freezePeriods = (_json['freezePeriods'] as core.List) |
| .map<FreezePeriod>((value) => FreezePeriod.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('startMinutes')) { |
| startMinutes = _json['startMinutes'] as core.int; |
| } |
| if (_json.containsKey('type')) { |
| type = _json['type'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (endMinutes != null) { |
| _json['endMinutes'] = endMinutes; |
| } |
| if (freezePeriods != null) { |
| _json['freezePeriods'] = |
| freezePeriods.map((value) => value.toJson()).toList(); |
| } |
| if (startMinutes != null) { |
| _json['startMinutes'] = startMinutes; |
| } |
| if (type != null) { |
| _json['type'] = type; |
| } |
| return _json; |
| } |
| } |
| |
| /// Information about a potential pending system update. |
| class SystemUpdateInfo { |
| /// The time when the update was first available. |
| /// |
| /// A zero value indicates that this field is not set. This field is set only |
| /// if an update is available (that is, updateStatus is neither |
| /// UPDATE_STATUS_UNKNOWN nor UP_TO_DATE). |
| core.String updateReceivedTime; |
| |
| /// The status of an update: whether an update exists and what type it is. |
| /// Possible string values are: |
| /// - "UPDATE_STATUS_UNKNOWN" : It is unknown whether there is a pending |
| /// system update. This happens when, for example, the device API level is |
| /// less than 26, or if the version of Android Device Policy is outdated. |
| /// - "UP_TO_DATE" : There is no pending system update available on the |
| /// device. |
| /// - "UNKNOWN_UPDATE_AVAILABLE" : There is a pending system update available, |
| /// but its type is not known. |
| /// - "SECURITY_UPDATE_AVAILABLE" : There is a pending security update |
| /// available. |
| /// - "OS_UPDATE_AVAILABLE" : There is a pending OS update available. |
| core.String updateStatus; |
| |
| SystemUpdateInfo(); |
| |
| SystemUpdateInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('updateReceivedTime')) { |
| updateReceivedTime = _json['updateReceivedTime'] as core.String; |
| } |
| if (_json.containsKey('updateStatus')) { |
| updateStatus = _json['updateStatus'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (updateReceivedTime != null) { |
| _json['updateReceivedTime'] = updateReceivedTime; |
| } |
| if (updateStatus != null) { |
| _json['updateStatus'] = updateStatus; |
| } |
| return _json; |
| } |
| } |
| |
| /// Telephony information associated with a given SIM card on the device. |
| /// |
| /// Only supported on fully managed devices starting from Android API level 23 |
| /// and above. |
| class TelephonyInfo { |
| /// The carrier name associated with this SIM card. |
| core.String carrierName; |
| |
| /// The phone number associated with this SIM card. |
| core.String phoneNumber; |
| |
| TelephonyInfo(); |
| |
| TelephonyInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('carrierName')) { |
| carrierName = _json['carrierName'] as core.String; |
| } |
| if (_json.containsKey('phoneNumber')) { |
| phoneNumber = _json['phoneNumber'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (carrierName != null) { |
| _json['carrierName'] = carrierName; |
| } |
| if (phoneNumber != null) { |
| _json['phoneNumber'] = phoneNumber; |
| } |
| return _json; |
| } |
| } |
| |
| /// A terms and conditions page to be accepted during provisioning. |
| class TermsAndConditions { |
| /// A well-formatted HTML string. |
| /// |
| /// It will be parsed on the client with android.text.Html#fromHtml. |
| UserFacingMessage content; |
| |
| /// A short header which appears above the HTML content. |
| UserFacingMessage header; |
| |
| TermsAndConditions(); |
| |
| TermsAndConditions.fromJson(core.Map _json) { |
| if (_json.containsKey('content')) { |
| content = UserFacingMessage.fromJson( |
| _json['content'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('header')) { |
| header = UserFacingMessage.fromJson( |
| _json['header'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (content != null) { |
| _json['content'] = content.toJson(); |
| } |
| if (header != null) { |
| _json['header'] = header.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A user belonging to an enterprise. |
| class User { |
| /// A unique identifier you create for this user, such as user342 or |
| /// asset#44418. |
| /// |
| /// This field must be set when the user is created and can't be updated. This |
| /// field must not contain personally identifiable information (PII). This |
| /// identifier must be 1024 characters or less; otherwise, the update policy |
| /// request will fail. |
| core.String accountIdentifier; |
| |
| User(); |
| |
| User.fromJson(core.Map _json) { |
| if (_json.containsKey('accountIdentifier')) { |
| accountIdentifier = _json['accountIdentifier'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accountIdentifier != null) { |
| _json['accountIdentifier'] = accountIdentifier; |
| } |
| return _json; |
| } |
| } |
| |
| /// Provides a user-facing message with locale info. |
| /// |
| /// The maximum message length is 4096 characters. |
| class UserFacingMessage { |
| /// The default message displayed if no localized message is specified or the |
| /// user's locale doesn't match with any of the localized messages. |
| /// |
| /// A default message must be provided if any localized messages are provided. |
| core.String defaultMessage; |
| |
| /// A map containing pairs, where locale is a well-formed BCP 47 language |
| /// (https://www.w3.org/International/articles/language-tags/) code, such as |
| /// en-US, es-ES, or fr. |
| core.Map<core.String, core.String> localizedMessages; |
| |
| UserFacingMessage(); |
| |
| UserFacingMessage.fromJson(core.Map _json) { |
| if (_json.containsKey('defaultMessage')) { |
| defaultMessage = _json['defaultMessage'] as core.String; |
| } |
| if (_json.containsKey('localizedMessages')) { |
| localizedMessages = (_json['localizedMessages'] as core.Map) |
| .cast<core.String, core.String>() |
| .map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.String, |
| ), |
| ); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (defaultMessage != null) { |
| _json['defaultMessage'] = defaultMessage; |
| } |
| if (localizedMessages != null) { |
| _json['localizedMessages'] = localizedMessages; |
| } |
| return _json; |
| } |
| } |
| |
| /// A web app. |
| class WebApp { |
| /// The display mode of the web app. |
| /// Possible string values are: |
| /// - "DISPLAY_MODE_UNSPECIFIED" : Not used. |
| /// - "MINIMAL_UI" : Opens the web app with a minimal set of browser UI |
| /// elements for controlling navigation and viewing the page URL. |
| /// - "STANDALONE" : Opens the web app to look and feel like a standalone |
| /// native application. The browser UI elements and page URL are not visible, |
| /// however the system status bar and back button are visible. |
| /// - "FULL_SCREEN" : Opens the web app in full screen without any visible |
| /// controls. The browser UI elements, page URL, system status bar and back |
| /// button are not visible, and the web app takes up the entirety of the |
| /// available display area. |
| core.String displayMode; |
| |
| /// A list of icons for the web app. |
| /// |
| /// Must have at least one element. |
| core.List<WebAppIcon> icons; |
| |
| /// The name of the web app, which is generated by the server during creation |
| /// in the form enterprises/{enterpriseId}/webApps/{packageName}. |
| core.String name; |
| |
| /// The start URL, i.e. the URL that should load when the user opens the |
| /// application. |
| core.String startUrl; |
| |
| /// The title of the web app as displayed to the user (e.g., amongst a list of |
| /// other applications, or as a label for an icon). |
| core.String title; |
| |
| /// The current version of the app.Note that the version can automatically |
| /// increase during the lifetime of the web app, while Google does internal |
| /// housekeeping to keep the web app up-to-date. |
| core.String versionCode; |
| |
| WebApp(); |
| |
| WebApp.fromJson(core.Map _json) { |
| if (_json.containsKey('displayMode')) { |
| displayMode = _json['displayMode'] as core.String; |
| } |
| if (_json.containsKey('icons')) { |
| icons = (_json['icons'] as core.List) |
| .map<WebAppIcon>((value) => |
| WebAppIcon.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('startUrl')) { |
| startUrl = _json['startUrl'] as core.String; |
| } |
| if (_json.containsKey('title')) { |
| title = _json['title'] as core.String; |
| } |
| if (_json.containsKey('versionCode')) { |
| versionCode = _json['versionCode'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (displayMode != null) { |
| _json['displayMode'] = displayMode; |
| } |
| if (icons != null) { |
| _json['icons'] = icons.map((value) => value.toJson()).toList(); |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (startUrl != null) { |
| _json['startUrl'] = startUrl; |
| } |
| if (title != null) { |
| _json['title'] = title; |
| } |
| if (versionCode != null) { |
| _json['versionCode'] = versionCode; |
| } |
| return _json; |
| } |
| } |
| |
| /// An icon for a web app. |
| /// |
| /// Supported formats are: png, jpg and webp. |
| class WebAppIcon { |
| /// The actual bytes of the image in a base64url encoded string (c.f. RFC4648, |
| /// section 5 "Base 64 Encoding with URL and Filename Safe Alphabet"). |
| /// |
| /// - The image type can be png or jpg. - The image should ideally be square. |
| /// - The image should ideally have a size of 512x512. |
| core.String imageData; |
| |
| WebAppIcon(); |
| |
| WebAppIcon.fromJson(core.Map _json) { |
| if (_json.containsKey('imageData')) { |
| imageData = _json['imageData'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (imageData != null) { |
| _json['imageData'] = imageData; |
| } |
| return _json; |
| } |
| } |
| |
| /// A web token used to access the managed Google Play iframe. |
| class WebToken { |
| /// The features to enable. |
| /// |
| /// Use this if you want to control exactly which feature(s) will be |
| /// activated; leave empty to allow all features.Restrictions / things to |
| /// note: - If no features are listed here, all features are enabled — this is |
| /// the default behavior where you give access to all features to your admins. |
| /// - This must not contain any FEATURE_UNSPECIFIED values. - Repeated values |
| /// are ignored |
| core.List<core.String> enabledFeatures; |
| |
| /// The name of the web token, which is generated by the server during |
| /// creation in the form enterprises/{enterpriseId}/webTokens/{webTokenId}. |
| core.String name; |
| |
| /// The URL of the parent frame hosting the iframe with the embedded UI. |
| /// |
| /// To prevent XSS, the iframe may not be hosted at other URLs. The URL must |
| /// use the https scheme. |
| core.String parentFrameUrl; |
| |
| /// Permissions available to an admin in the embedded UI. |
| /// |
| /// An admin must have all of these permissions in order to view the UI. This |
| /// field is deprecated. |
| core.List<core.String> permissions; |
| |
| /// The token value which is used in the hosting page to generate the iframe |
| /// with the embedded UI. |
| /// |
| /// This is a read-only field generated by the server. |
| core.String value; |
| |
| WebToken(); |
| |
| WebToken.fromJson(core.Map _json) { |
| if (_json.containsKey('enabledFeatures')) { |
| enabledFeatures = (_json['enabledFeatures'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('parentFrameUrl')) { |
| parentFrameUrl = _json['parentFrameUrl'] as core.String; |
| } |
| if (_json.containsKey('permissions')) { |
| permissions = (_json['permissions'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('value')) { |
| value = _json['value'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (enabledFeatures != null) { |
| _json['enabledFeatures'] = enabledFeatures; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (parentFrameUrl != null) { |
| _json['parentFrameUrl'] = parentFrameUrl; |
| } |
| if (permissions != null) { |
| _json['permissions'] = permissions; |
| } |
| if (value != null) { |
| _json['value'] = value; |
| } |
| return _json; |
| } |
| } |
| |
| /// An action to reset a fully managed device or delete a work profile. |
| /// |
| /// Note: blockAction must also be specified. |
| class WipeAction { |
| /// Whether the factory-reset protection data is preserved on the device. |
| /// |
| /// This setting doesn’t apply to work profiles. |
| core.bool preserveFrp; |
| |
| /// Number of days the policy is non-compliant before the device or work |
| /// profile is wiped. |
| /// |
| /// wipeAfterDays must be greater than blockAfterDays. |
| core.int wipeAfterDays; |
| |
| WipeAction(); |
| |
| WipeAction.fromJson(core.Map _json) { |
| if (_json.containsKey('preserveFrp')) { |
| preserveFrp = _json['preserveFrp'] as core.bool; |
| } |
| if (_json.containsKey('wipeAfterDays')) { |
| wipeAfterDays = _json['wipeAfterDays'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (preserveFrp != null) { |
| _json['preserveFrp'] = preserveFrp; |
| } |
| if (wipeAfterDays != null) { |
| _json['wipeAfterDays'] = wipeAfterDays; |
| } |
| return _json; |
| } |
| } |