google-apis-androidmanagement_v1 0.89.0 → 0.91.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -55,6 +55,32 @@ module Google
55
55
  end
56
56
  end
57
57
 
58
+ # Parameters associated with the ADD_ESIM command to add an eSIM profile to the
59
+ # device.
60
+ class AddEsimParams
61
+ include Google::Apis::Core::Hashable
62
+
63
+ # Required. The activation code for the eSIM profile.
64
+ # Corresponds to the JSON property `activationCode`
65
+ # @return [String]
66
+ attr_accessor :activation_code
67
+
68
+ # Required. The activation state of the eSIM profile once it is downloaded.
69
+ # Corresponds to the JSON property `activationState`
70
+ # @return [String]
71
+ attr_accessor :activation_state
72
+
73
+ def initialize(**args)
74
+ update!(**args)
75
+ end
76
+
77
+ # Update properties of this object
78
+ def update!(**args)
79
+ @activation_code = args[:activation_code] if args.key?(:activation_code)
80
+ @activation_state = args[:activation_state] if args.key?(:activation_state)
81
+ end
82
+ end
83
+
58
84
  # Advanced security settings. In most cases, setting these is not needed.
59
85
  class AdvancedSecurityOverrides
60
86
  include Google::Apis::Core::Hashable
@@ -179,6 +205,209 @@ module Google
179
205
  end
180
206
  end
181
207
 
208
+ # Access Point Name (APN) policy. Configuration for Access Point Names (APNs)
209
+ # which may override any other APNs on the device. See OVERRIDE_APNS_ENABLED and
210
+ # overrideApns for details.
211
+ class ApnPolicy
212
+ include Google::Apis::Core::Hashable
213
+
214
+ # Optional. APN settings for override APNs. There must not be any conflict
215
+ # between any of APN settings provided, otherwise the policy will be rejected.
216
+ # Two ApnSettings are considered to conflict when all of the following fields
217
+ # match on both: numericOperatorId, apn, proxyAddress, proxyPort,
218
+ # mmsProxyAddress, mmsProxyPort, mmsc, mvnoType, protocol, roamingProtocol. If
219
+ # some of the APN settings result in non-compliance of INVALID_VALUE , they will
220
+ # be ignored. This can be set on fully managed devices on Android 10 and above.
221
+ # This can also be set on work profiles on Android 13 and above and only with
222
+ # ApnSetting's with ENTERPRISE APN type. A nonComplianceDetail with API_LEVEL is
223
+ # reported if the Android version is less than 10. A nonComplianceDetail with
224
+ # MANAGEMENT_MODE is reported for work profiles on Android versions less than 13.
225
+ # Corresponds to the JSON property `apnSettings`
226
+ # @return [Array<Google::Apis::AndroidmanagementV1::ApnSetting>]
227
+ attr_accessor :apn_settings
228
+
229
+ # Optional. Whether override APNs are disabled or enabled. See
230
+ # DevicePolicyManager.setOverrideApnsEnabled (https://developer.android.com/
231
+ # reference/android/app/admin/DevicePolicyManager#setOverrideApnsEnabled) for
232
+ # more details.
233
+ # Corresponds to the JSON property `overrideApns`
234
+ # @return [String]
235
+ attr_accessor :override_apns
236
+
237
+ def initialize(**args)
238
+ update!(**args)
239
+ end
240
+
241
+ # Update properties of this object
242
+ def update!(**args)
243
+ @apn_settings = args[:apn_settings] if args.key?(:apn_settings)
244
+ @override_apns = args[:override_apns] if args.key?(:override_apns)
245
+ end
246
+ end
247
+
248
+ # An Access Point Name (APN) configuration for a carrier data connection. The
249
+ # APN provides configuration to connect a cellular network device to an IP data
250
+ # network. A carrier uses this setting to decide which IP address to assign, any
251
+ # security methods to apply, and how the device might be connected to private
252
+ # networks.
253
+ class ApnSetting
254
+ include Google::Apis::Core::Hashable
255
+
256
+ # Optional. Whether User Plane resources have to be activated during every
257
+ # transition from CM-IDLE mode to CM-CONNECTED state for this APN. See 3GPP TS
258
+ # 23.501 section 5.6.13.
259
+ # Corresponds to the JSON property `alwaysOnSetting`
260
+ # @return [String]
261
+ attr_accessor :always_on_setting
262
+
263
+ # Required. Name of the APN. Policy will be rejected if this field is empty.
264
+ # Corresponds to the JSON property `apn`
265
+ # @return [String]
266
+ attr_accessor :apn
267
+
268
+ # Required. Usage categories for the APN. Policy will be rejected if this field
269
+ # is empty or contains APN_TYPE_UNSPECIFIED or duplicates. Multiple APN types
270
+ # can be set on fully managed devices. ENTERPRISE is the only allowed APN type
271
+ # on work profiles. A nonComplianceDetail with MANAGEMENT_MODE is reported for
272
+ # any other value on work profiles. APN types that are not supported on the
273
+ # device or management mode will be ignored. If this results in the empty list,
274
+ # the APN setting will be ignored, because apnTypes is a required field. A
275
+ # nonComplianceDetail with INVALID_VALUE is reported if none of the APN types
276
+ # are supported on the device or management mode.
277
+ # Corresponds to the JSON property `apnTypes`
278
+ # @return [Array<String>]
279
+ attr_accessor :apn_types
280
+
281
+ # Optional. Authentication type of the APN.
282
+ # Corresponds to the JSON property `authType`
283
+ # @return [String]
284
+ attr_accessor :auth_type
285
+
286
+ # Optional. Carrier ID for the APN. A value of 0 (default) means not set and
287
+ # negative values are rejected.
288
+ # Corresponds to the JSON property `carrierId`
289
+ # @return [Fixnum]
290
+ attr_accessor :carrier_id
291
+
292
+ # Required. Human-readable name that describes the APN. Policy will be rejected
293
+ # if this field is empty.
294
+ # Corresponds to the JSON property `displayName`
295
+ # @return [String]
296
+ attr_accessor :display_name
297
+
298
+ # Optional. MMS (Multimedia Messaging Service) proxy address of the APN which
299
+ # can be an IP address or hostname (not a URL).
300
+ # Corresponds to the JSON property `mmsProxyAddress`
301
+ # @return [String]
302
+ attr_accessor :mms_proxy_address
303
+
304
+ # Optional. MMS (Multimedia Messaging Service) proxy port of the APN. A value of
305
+ # 0 (default) means not set and negative values are rejected.
306
+ # Corresponds to the JSON property `mmsProxyPort`
307
+ # @return [Fixnum]
308
+ attr_accessor :mms_proxy_port
309
+
310
+ # Optional. MMSC (Multimedia Messaging Service Center) URI of the APN.
311
+ # Corresponds to the JSON property `mmsc`
312
+ # @return [String]
313
+ attr_accessor :mmsc
314
+
315
+ # Optional. The default MTU (Maximum Transmission Unit) size in bytes of the
316
+ # IPv4 routes brought up by this APN setting. A value of 0 (default) means not
317
+ # set and negative values are rejected. Supported on Android 13 and above. A
318
+ # nonComplianceDetail with API_LEVEL is reported if the Android version is less
319
+ # than 13.
320
+ # Corresponds to the JSON property `mtuV4`
321
+ # @return [Fixnum]
322
+ attr_accessor :mtu_v4
323
+
324
+ # Optional. The MTU (Maximum Transmission Unit) size of the IPv6 mobile
325
+ # interface to which the APN connected. A value of 0 (default) means not set and
326
+ # negative values are rejected. Supported on Android 13 and above. A
327
+ # nonComplianceDetail with API_LEVEL is reported if the Android version is less
328
+ # than 13.
329
+ # Corresponds to the JSON property `mtuV6`
330
+ # @return [Fixnum]
331
+ attr_accessor :mtu_v6
332
+
333
+ # Optional. MVNO match type for the APN.
334
+ # Corresponds to the JSON property `mvnoType`
335
+ # @return [String]
336
+ attr_accessor :mvno_type
337
+
338
+ # Optional. Radio technologies (network types) the APN may use. Policy will be
339
+ # rejected if this field contains NETWORK_TYPE_UNSPECIFIED or duplicates.
340
+ # Corresponds to the JSON property `networkTypes`
341
+ # @return [Array<String>]
342
+ attr_accessor :network_types
343
+
344
+ # Optional. The numeric operator ID of the APN. Numeric operator ID is defined
345
+ # as MCC (Mobile Country Code) + MNC (Mobile Network Code).
346
+ # Corresponds to the JSON property `numericOperatorId`
347
+ # @return [String]
348
+ attr_accessor :numeric_operator_id
349
+
350
+ # Optional. APN password of the APN.
351
+ # Corresponds to the JSON property `password`
352
+ # @return [String]
353
+ attr_accessor :password
354
+
355
+ # Optional. The protocol to use to connect to this APN.
356
+ # Corresponds to the JSON property `protocol`
357
+ # @return [String]
358
+ attr_accessor :protocol
359
+
360
+ # Optional. The proxy address of the APN.
361
+ # Corresponds to the JSON property `proxyAddress`
362
+ # @return [String]
363
+ attr_accessor :proxy_address
364
+
365
+ # Optional. The proxy port of the APN. A value of 0 (default) means not set and
366
+ # negative values are rejected.
367
+ # Corresponds to the JSON property `proxyPort`
368
+ # @return [Fixnum]
369
+ attr_accessor :proxy_port
370
+
371
+ # Optional. The protocol to use to connect to this APN while the device is
372
+ # roaming.
373
+ # Corresponds to the JSON property `roamingProtocol`
374
+ # @return [String]
375
+ attr_accessor :roaming_protocol
376
+
377
+ # Optional. APN username of the APN.
378
+ # Corresponds to the JSON property `username`
379
+ # @return [String]
380
+ attr_accessor :username
381
+
382
+ def initialize(**args)
383
+ update!(**args)
384
+ end
385
+
386
+ # Update properties of this object
387
+ def update!(**args)
388
+ @always_on_setting = args[:always_on_setting] if args.key?(:always_on_setting)
389
+ @apn = args[:apn] if args.key?(:apn)
390
+ @apn_types = args[:apn_types] if args.key?(:apn_types)
391
+ @auth_type = args[:auth_type] if args.key?(:auth_type)
392
+ @carrier_id = args[:carrier_id] if args.key?(:carrier_id)
393
+ @display_name = args[:display_name] if args.key?(:display_name)
394
+ @mms_proxy_address = args[:mms_proxy_address] if args.key?(:mms_proxy_address)
395
+ @mms_proxy_port = args[:mms_proxy_port] if args.key?(:mms_proxy_port)
396
+ @mmsc = args[:mmsc] if args.key?(:mmsc)
397
+ @mtu_v4 = args[:mtu_v4] if args.key?(:mtu_v4)
398
+ @mtu_v6 = args[:mtu_v6] if args.key?(:mtu_v6)
399
+ @mvno_type = args[:mvno_type] if args.key?(:mvno_type)
400
+ @network_types = args[:network_types] if args.key?(:network_types)
401
+ @numeric_operator_id = args[:numeric_operator_id] if args.key?(:numeric_operator_id)
402
+ @password = args[:password] if args.key?(:password)
403
+ @protocol = args[:protocol] if args.key?(:protocol)
404
+ @proxy_address = args[:proxy_address] if args.key?(:proxy_address)
405
+ @proxy_port = args[:proxy_port] if args.key?(:proxy_port)
406
+ @roaming_protocol = args[:roaming_protocol] if args.key?(:roaming_protocol)
407
+ @username = args[:username] if args.key?(:username)
408
+ end
409
+ end
410
+
182
411
  # Information about a process. It contains process name, start time, app Uid,
183
412
  # app Pid, seinfo tag, hash of the base APK.
184
413
  class AppProcessInfo
@@ -679,6 +908,18 @@ module Google
679
908
  # @return [Array<Google::Apis::AndroidmanagementV1::PermissionGrant>]
680
909
  attr_accessor :permission_grants
681
910
 
911
+ # Optional. ID of the preferential network the application uses. There must be a
912
+ # configuration for the specified network ID in
913
+ # preferentialNetworkServiceConfigs. If set to
914
+ # PREFERENTIAL_NETWORK_ID_UNSPECIFIED, the application will use the default
915
+ # network ID specified in defaultPreferentialNetworkId. See the documentation of
916
+ # defaultPreferentialNetworkId for the list of apps excluded from this
917
+ # defaulting. This applies on both work profiles and fully managed devices on
918
+ # Android 13 and above.
919
+ # Corresponds to the JSON property `preferentialNetworkId`
920
+ # @return [String]
921
+ attr_accessor :preferential_network_id
922
+
682
923
  # Optional. Specifies whether user control is permitted for the app. User
683
924
  # control includes user actions like force-stopping and clearing app data.
684
925
  # Supported on Android 11 and above.
@@ -716,6 +957,7 @@ module Google
716
957
  @minimum_version_code = args[:minimum_version_code] if args.key?(:minimum_version_code)
717
958
  @package_name = args[:package_name] if args.key?(:package_name)
718
959
  @permission_grants = args[:permission_grants] if args.key?(:permission_grants)
960
+ @preferential_network_id = args[:preferential_network_id] if args.key?(:preferential_network_id)
719
961
  @user_control_settings = args[:user_control_settings] if args.key?(:user_control_settings)
720
962
  @work_profile_widgets = args[:work_profile_widgets] if args.key?(:work_profile_widgets)
721
963
  end
@@ -832,6 +1074,37 @@ module Google
832
1074
  end
833
1075
  end
834
1076
 
1077
+ # An admin has enabled or disabled backup service.
1078
+ class BackupServiceToggledEvent
1079
+ include Google::Apis::Core::Hashable
1080
+
1081
+ # Package name of the admin app requesting the change.
1082
+ # Corresponds to the JSON property `adminPackageName`
1083
+ # @return [String]
1084
+ attr_accessor :admin_package_name
1085
+
1086
+ # User ID of the admin app from the which the change was requested.
1087
+ # Corresponds to the JSON property `adminUserId`
1088
+ # @return [Fixnum]
1089
+ attr_accessor :admin_user_id
1090
+
1091
+ # Whether the backup service is enabled
1092
+ # Corresponds to the JSON property `backupServiceState`
1093
+ # @return [String]
1094
+ attr_accessor :backup_service_state
1095
+
1096
+ def initialize(**args)
1097
+ update!(**args)
1098
+ end
1099
+
1100
+ # Update properties of this object
1101
+ def update!(**args)
1102
+ @admin_package_name = args[:admin_package_name] if args.key?(:admin_package_name)
1103
+ @admin_user_id = args[:admin_user_id] if args.key?(:admin_user_id)
1104
+ @backup_service_state = args[:backup_service_state] if args.key?(:backup_service_state)
1105
+ end
1106
+ end
1107
+
835
1108
  # Batched event logs of events from the device.
836
1109
  class BatchUsageLogEvents
837
1110
  include Google::Apis::Core::Hashable
@@ -1097,6 +1370,12 @@ module Google
1097
1370
  class Command
1098
1371
  include Google::Apis::Core::Hashable
1099
1372
 
1373
+ # Parameters associated with the ADD_ESIM command to add an eSIM profile to the
1374
+ # device.
1375
+ # Corresponds to the JSON property `addEsimParams`
1376
+ # @return [Google::Apis::AndroidmanagementV1::AddEsimParams]
1377
+ attr_accessor :add_esim_params
1378
+
1100
1379
  # Parameters associated with the CLEAR_APP_DATA command to clear the data of
1101
1380
  # specified apps from the device.
1102
1381
  # Corresponds to the JSON property `clearAppsDataParams`
@@ -1123,11 +1402,20 @@ module Google
1123
1402
  attr_accessor :duration
1124
1403
 
1125
1404
  # If the command failed, an error code explaining the failure. This is not set
1126
- # when the command is cancelled by the caller.
1405
+ # when the command is cancelled by the caller. For reasoning about command
1406
+ # errors, prefer fields in the following order (most preferred first): 1.
1407
+ # Command-specific fields like clearAppsDataStatus, startLostModeStatus, or
1408
+ # similar, if they exist. 2. This field, if set. 3. The generic error field in
1409
+ # the Operation that wraps the command.
1127
1410
  # Corresponds to the JSON property `errorCode`
1128
1411
  # @return [String]
1129
1412
  attr_accessor :error_code
1130
1413
 
1414
+ # Status and error details (if present) of an ADD_ESIM or REMOVE_ESIM command.
1415
+ # Corresponds to the JSON property `esimStatus`
1416
+ # @return [Google::Apis::AndroidmanagementV1::EsimCommandStatus]
1417
+ attr_accessor :esim_status
1418
+
1131
1419
  # For commands of type RESET_PASSWORD, optionally specifies the new password.
1132
1420
  # Note: The new password must be at least 6 characters long if it is numeric in
1133
1421
  # case of Android 14 devices. Else the command will fail with INVALID_VALUE.
@@ -1135,6 +1423,23 @@ module Google
1135
1423
  # @return [String]
1136
1424
  attr_accessor :new_password
1137
1425
 
1426
+ # Parameters associated with the REMOVE_ESIM command to remove an eSIM profile
1427
+ # from the device.
1428
+ # Corresponds to the JSON property `removeEsimParams`
1429
+ # @return [Google::Apis::AndroidmanagementV1::RemoveEsimParams]
1430
+ attr_accessor :remove_esim_params
1431
+
1432
+ # Parameters associated with the REQUEST_DEVICE_INFO command to get device
1433
+ # related information.
1434
+ # Corresponds to the JSON property `requestDeviceInfoParams`
1435
+ # @return [Google::Apis::AndroidmanagementV1::RequestDeviceInfoParams]
1436
+ attr_accessor :request_device_info_params
1437
+
1438
+ # Status of the REQUEST_DEVICE_INFO command.
1439
+ # Corresponds to the JSON property `requestDeviceInfoStatus`
1440
+ # @return [Google::Apis::AndroidmanagementV1::RequestDeviceInfoStatus]
1441
+ attr_accessor :request_device_info_status
1442
+
1138
1443
  # For commands of type RESET_PASSWORD, optionally specifies flags.
1139
1444
  # Corresponds to the JSON property `resetPasswordFlags`
1140
1445
  # @return [Array<String>]
@@ -1181,12 +1486,17 @@ module Google
1181
1486
 
1182
1487
  # Update properties of this object
1183
1488
  def update!(**args)
1489
+ @add_esim_params = args[:add_esim_params] if args.key?(:add_esim_params)
1184
1490
  @clear_apps_data_params = args[:clear_apps_data_params] if args.key?(:clear_apps_data_params)
1185
1491
  @clear_apps_data_status = args[:clear_apps_data_status] if args.key?(:clear_apps_data_status)
1186
1492
  @create_time = args[:create_time] if args.key?(:create_time)
1187
1493
  @duration = args[:duration] if args.key?(:duration)
1188
1494
  @error_code = args[:error_code] if args.key?(:error_code)
1495
+ @esim_status = args[:esim_status] if args.key?(:esim_status)
1189
1496
  @new_password = args[:new_password] if args.key?(:new_password)
1497
+ @remove_esim_params = args[:remove_esim_params] if args.key?(:remove_esim_params)
1498
+ @request_device_info_params = args[:request_device_info_params] if args.key?(:request_device_info_params)
1499
+ @request_device_info_status = args[:request_device_info_status] if args.key?(:request_device_info_status)
1190
1500
  @reset_password_flags = args[:reset_password_flags] if args.key?(:reset_password_flags)
1191
1501
  @start_lost_mode_params = args[:start_lost_mode_params] if args.key?(:start_lost_mode_params)
1192
1502
  @start_lost_mode_status = args[:start_lost_mode_status] if args.key?(:start_lost_mode_status)
@@ -1789,12 +2099,29 @@ module Google
1789
2099
  class DeviceConnectivityManagement
1790
2100
  include Google::Apis::Core::Hashable
1791
2101
 
2102
+ # Access Point Name (APN) policy. Configuration for Access Point Names (APNs)
2103
+ # which may override any other APNs on the device. See OVERRIDE_APNS_ENABLED and
2104
+ # overrideApns for details.
2105
+ # Corresponds to the JSON property `apnPolicy`
2106
+ # @return [Google::Apis::AndroidmanagementV1::ApnPolicy]
2107
+ attr_accessor :apn_policy
2108
+
2109
+ # Optional. Controls whether Bluetooth sharing is allowed.
2110
+ # Corresponds to the JSON property `bluetoothSharing`
2111
+ # @return [String]
2112
+ attr_accessor :bluetooth_sharing
2113
+
1792
2114
  # Controls Wi-Fi configuring privileges. Based on the option set, user will have
1793
2115
  # either full or limited or no control in configuring Wi-Fi networks.
1794
2116
  # Corresponds to the JSON property `configureWifi`
1795
2117
  # @return [String]
1796
2118
  attr_accessor :configure_wifi
1797
2119
 
2120
+ # Preferential network service settings.
2121
+ # Corresponds to the JSON property `preferentialNetworkServiceSettings`
2122
+ # @return [Google::Apis::AndroidmanagementV1::PreferentialNetworkServiceSettings]
2123
+ attr_accessor :preferential_network_service_settings
2124
+
1798
2125
  # Controls tethering settings. Based on the value set, the user is partially or
1799
2126
  # fully disallowed from using different forms of tethering.
1800
2127
  # Corresponds to the JSON property `tetheringSettings`
@@ -1831,7 +2158,10 @@ module Google
1831
2158
 
1832
2159
  # Update properties of this object
1833
2160
  def update!(**args)
2161
+ @apn_policy = args[:apn_policy] if args.key?(:apn_policy)
2162
+ @bluetooth_sharing = args[:bluetooth_sharing] if args.key?(:bluetooth_sharing)
1834
2163
  @configure_wifi = args[:configure_wifi] if args.key?(:configure_wifi)
2164
+ @preferential_network_service_settings = args[:preferential_network_service_settings] if args.key?(:preferential_network_service_settings)
1835
2165
  @tethering_settings = args[:tethering_settings] if args.key?(:tethering_settings)
1836
2166
  @usb_data_access = args[:usb_data_access] if args.key?(:usb_data_access)
1837
2167
  @wifi_direct_settings = args[:wifi_direct_settings] if args.key?(:wifi_direct_settings)
@@ -2095,6 +2425,44 @@ module Google
2095
2425
  end
2096
2426
  end
2097
2427
 
2428
+ # EID information for each eUICC chip.
2429
+ class Eid
2430
+ include Google::Apis::Core::Hashable
2431
+
2432
+ # Output only. The EID
2433
+ # Corresponds to the JSON property `eid`
2434
+ # @return [String]
2435
+ attr_accessor :eid
2436
+
2437
+ def initialize(**args)
2438
+ update!(**args)
2439
+ end
2440
+
2441
+ # Update properties of this object
2442
+ def update!(**args)
2443
+ @eid = args[:eid] if args.key?(:eid)
2444
+ end
2445
+ end
2446
+
2447
+ # Information related to the EIDs of the device.
2448
+ class EidInfo
2449
+ include Google::Apis::Core::Hashable
2450
+
2451
+ # Output only. EID information for each eUICC chip.
2452
+ # Corresponds to the JSON property `eids`
2453
+ # @return [Array<Google::Apis::AndroidmanagementV1::Eid>]
2454
+ attr_accessor :eids
2455
+
2456
+ def initialize(**args)
2457
+ update!(**args)
2458
+ end
2459
+
2460
+ # Update properties of this object
2461
+ def update!(**args)
2462
+ @eids = args[:eids] if args.key?(:eids)
2463
+ end
2464
+ end
2465
+
2098
2466
  # A generic empty message that you can re-use to avoid defining duplicated empty
2099
2467
  # messages in your APIs. A typical example is to use it as the request or the
2100
2468
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -2365,6 +2733,77 @@ module Google
2365
2733
  end
2366
2734
  end
2367
2735
 
2736
+ # Status and error details (if present) of an ADD_ESIM or REMOVE_ESIM command.
2737
+ class EsimCommandStatus
2738
+ include Google::Apis::Core::Hashable
2739
+
2740
+ # Details of the eSIM added or removed.
2741
+ # Corresponds to the JSON property `esimInfo`
2742
+ # @return [Google::Apis::AndroidmanagementV1::EsimInfo]
2743
+ attr_accessor :esim_info
2744
+
2745
+ # Internal error details if present for the ADD_ESIM or REMOVE_ESIM command.
2746
+ # Corresponds to the JSON property `internalErrorDetails`
2747
+ # @return [Google::Apis::AndroidmanagementV1::InternalErrorDetails]
2748
+ attr_accessor :internal_error_details
2749
+
2750
+ # Output only. Status of an ADD_ESIM or REMOVE_ESIM command.
2751
+ # Corresponds to the JSON property `status`
2752
+ # @return [String]
2753
+ attr_accessor :status
2754
+
2755
+ def initialize(**args)
2756
+ update!(**args)
2757
+ end
2758
+
2759
+ # Update properties of this object
2760
+ def update!(**args)
2761
+ @esim_info = args[:esim_info] if args.key?(:esim_info)
2762
+ @internal_error_details = args[:internal_error_details] if args.key?(:internal_error_details)
2763
+ @status = args[:status] if args.key?(:status)
2764
+ end
2765
+ end
2766
+
2767
+ # Details of the eSIM added or removed.
2768
+ class EsimInfo
2769
+ include Google::Apis::Core::Hashable
2770
+
2771
+ # Output only. ICC ID of the eSIM.
2772
+ # Corresponds to the JSON property `iccId`
2773
+ # @return [String]
2774
+ attr_accessor :icc_id
2775
+
2776
+ def initialize(**args)
2777
+ update!(**args)
2778
+ end
2779
+
2780
+ # Update properties of this object
2781
+ def update!(**args)
2782
+ @icc_id = args[:icc_id] if args.key?(:icc_id)
2783
+ end
2784
+ end
2785
+
2786
+ # Information related to the eUICC chip.
2787
+ class EuiccChipInfo
2788
+ include Google::Apis::Core::Hashable
2789
+
2790
+ # Output only. The Embedded Identity Document (EID) that identifies the eUICC
2791
+ # chip for each eUICC chip on the device. This is available on company owned
2792
+ # devices running Android 13 and above.
2793
+ # Corresponds to the JSON property `eid`
2794
+ # @return [String]
2795
+ attr_accessor :eid
2796
+
2797
+ def initialize(**args)
2798
+ update!(**args)
2799
+ end
2800
+
2801
+ # Update properties of this object
2802
+ def update!(**args)
2803
+ @eid = args[:eid] if args.key?(:eid)
2804
+ end
2805
+ end
2806
+
2368
2807
  # Configuration to enable an app as an extension app, with the capability of
2369
2808
  # interacting with Android Device Policy offline. For Android versions 11 and
2370
2809
  # above, extension apps are exempt from battery restrictions so will not be
@@ -2653,6 +3092,11 @@ module Google
2653
3092
  # @return [String]
2654
3093
  attr_accessor :enterprise_specific_id
2655
3094
 
3095
+ # Output only. Information related to the eUICC chip.
3096
+ # Corresponds to the JSON property `euiccChipInfo`
3097
+ # @return [Array<Google::Apis::AndroidmanagementV1::EuiccChipInfo>]
3098
+ attr_accessor :euicc_chip_info
3099
+
2656
3100
  # GPU shutdown temperature thresholds in Celsius for each GPU on the device.
2657
3101
  # Corresponds to the JSON property `gpuShutdownTemperatures`
2658
3102
  # @return [Array<Float>]
@@ -2706,6 +3150,7 @@ module Google
2706
3150
  @cpu_throttling_temperatures = args[:cpu_throttling_temperatures] if args.key?(:cpu_throttling_temperatures)
2707
3151
  @device_baseband_version = args[:device_baseband_version] if args.key?(:device_baseband_version)
2708
3152
  @enterprise_specific_id = args[:enterprise_specific_id] if args.key?(:enterprise_specific_id)
3153
+ @euicc_chip_info = args[:euicc_chip_info] if args.key?(:euicc_chip_info)
2709
3154
  @gpu_shutdown_temperatures = args[:gpu_shutdown_temperatures] if args.key?(:gpu_shutdown_temperatures)
2710
3155
  @gpu_throttling_temperatures = args[:gpu_throttling_temperatures] if args.key?(:gpu_throttling_temperatures)
2711
3156
  @hardware = args[:hardware] if args.key?(:hardware)
@@ -2810,6 +3255,49 @@ module Google
2810
3255
  end
2811
3256
  end
2812
3257
 
3258
+ # Internal error details if present for the ADD_ESIM or REMOVE_ESIM command.
3259
+ class InternalErrorDetails
3260
+ include Google::Apis::Core::Hashable
3261
+
3262
+ # Output only. Integer representation of the error code as specified here (https:
3263
+ # //developer.android.com/reference/android/telephony/euicc/EuiccManager#
3264
+ # EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE). See also,
3265
+ # OPERATION_SMDX_SUBJECT_REASON_CODE. See error_code_detail for more details.
3266
+ # Corresponds to the JSON property `errorCode`
3267
+ # @return [Fixnum]
3268
+ attr_accessor :error_code
3269
+
3270
+ # Output only. The error code detail corresponding to the error_code.
3271
+ # Corresponds to the JSON property `errorCodeDetail`
3272
+ # @return [String]
3273
+ attr_accessor :error_code_detail
3274
+
3275
+ # Output only. Integer representation of the operation code as specified here (
3276
+ # https://developer.android.com/reference/android/telephony/euicc/EuiccManager#
3277
+ # EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE). See operation_code_detail for more
3278
+ # details.
3279
+ # Corresponds to the JSON property `operationCode`
3280
+ # @return [Fixnum]
3281
+ attr_accessor :operation_code
3282
+
3283
+ # Output only. The operation code detail corresponding to the operation_code.
3284
+ # Corresponds to the JSON property `operationCodeDetail`
3285
+ # @return [String]
3286
+ attr_accessor :operation_code_detail
3287
+
3288
+ def initialize(**args)
3289
+ update!(**args)
3290
+ end
3291
+
3292
+ # Update properties of this object
3293
+ def update!(**args)
3294
+ @error_code = args[:error_code] if args.key?(:error_code)
3295
+ @error_code_detail = args[:error_code_detail] if args.key?(:error_code_detail)
3296
+ @operation_code = args[:operation_code] if args.key?(:operation_code)
3297
+ @operation_code_detail = args[:operation_code_detail] if args.key?(:operation_code_detail)
3298
+ end
3299
+ end
3300
+
2813
3301
  # Response on issuing a command. This is currently empty as a placeholder.
2814
3302
  class IssueCommandResponse
2815
3303
  include Google::Apis::Core::Hashable
@@ -4312,6 +4800,11 @@ module Google
4312
4800
  # @return [Array<String>]
4313
4801
  attr_accessor :account_types_with_management_disabled
4314
4802
 
4803
+ # Optional. Whether bluetooth sharing is allowed.
4804
+ # Corresponds to the JSON property `bluetoothSharing`
4805
+ # @return [String]
4806
+ attr_accessor :bluetooth_sharing
4807
+
4315
4808
  # If true, the camera is disabled on the personal profile.
4316
4809
  # Corresponds to the JSON property `cameraDisabled`
4317
4810
  # @return [Boolean]
@@ -4357,6 +4850,7 @@ module Google
4357
4850
  # Update properties of this object
4358
4851
  def update!(**args)
4359
4852
  @account_types_with_management_disabled = args[:account_types_with_management_disabled] if args.key?(:account_types_with_management_disabled)
4853
+ @bluetooth_sharing = args[:bluetooth_sharing] if args.key?(:bluetooth_sharing)
4360
4854
  @camera_disabled = args[:camera_disabled] if args.key?(:camera_disabled)
4361
4855
  @max_days_with_work_off = args[:max_days_with_work_off] if args.key?(:max_days_with_work_off)
4362
4856
  @personal_applications = args[:personal_applications] if args.key?(:personal_applications)
@@ -4587,6 +5081,12 @@ module Google
4587
5081
  attr_accessor :ensure_verify_apps_enabled
4588
5082
  alias_method :ensure_verify_apps_enabled?, :ensure_verify_apps_enabled
4589
5083
 
5084
+ # Optional. Controls whether the enterpriseDisplayName is visible on the device (
5085
+ # e.g. lock screen message on company-owned devices).
5086
+ # Corresponds to the JSON property `enterpriseDisplayNameVisibility`
5087
+ # @return [String]
5088
+ attr_accessor :enterprise_display_name_visibility
5089
+
4590
5090
  # Whether factory resetting from settings is disabled.
4591
5091
  # Corresponds to the JSON property `factoryResetDisabled`
4592
5092
  # @return [Boolean]
@@ -4797,12 +5297,14 @@ module Google
4797
5297
  # @return [Array<Google::Apis::AndroidmanagementV1::PolicyEnforcementRule>]
4798
5298
  attr_accessor :policy_enforcement_rules
4799
5299
 
4800
- # Controls whether preferential network service is enabled on the work profile.
4801
- # For example, an organization may have an agreement with a carrier that all of
4802
- # the work data from its employees' devices will be sent via a network service
4803
- # dedicated for enterprise use. An example of a supported preferential network
4804
- # service is the enterprise slice on 5G networks. This has no effect on fully
4805
- # managed devices.
5300
+ # Controls whether preferential network service is enabled on the work profile
5301
+ # or on fully managed devices. For example, an organization may have an
5302
+ # agreement with a carrier that all of the work data from its employees' devices
5303
+ # will be sent via a network service dedicated for enterprise use. An example of
5304
+ # a supported preferential network service is the enterprise slice on 5G
5305
+ # networks. This policy has no effect if preferentialNetworkServiceSettings or
5306
+ # ApplicationPolicy.preferentialNetworkId is set on devices running Android 13
5307
+ # or above.
4806
5308
  # Corresponds to the JSON property `preferentialNetworkService`
4807
5309
  # @return [String]
4808
5310
  attr_accessor :preferential_network_service
@@ -4999,6 +5501,20 @@ module Google
4999
5501
  attr_accessor :wifi_configs_lockdown_enabled
5000
5502
  alias_method :wifi_configs_lockdown_enabled?, :wifi_configs_lockdown_enabled
5001
5503
 
5504
+ # Optional. Wipe flags to indicate what data is wiped when a device or profile
5505
+ # wipe is triggered due to any reason (for example, non-compliance). This does
5506
+ # not apply to the enterprises.devices.delete method. . This list must not have
5507
+ # duplicates.
5508
+ # Corresponds to the JSON property `wipeDataFlags`
5509
+ # @return [Array<String>]
5510
+ attr_accessor :wipe_data_flags
5511
+
5512
+ # Controls the work account setup configuration, such as details of whether a
5513
+ # Google authenticated account is required.
5514
+ # Corresponds to the JSON property `workAccountSetupConfig`
5515
+ # @return [Google::Apis::AndroidmanagementV1::WorkAccountSetupConfig]
5516
+ attr_accessor :work_account_setup_config
5517
+
5002
5518
  def initialize(**args)
5003
5519
  update!(**args)
5004
5520
  end
@@ -5038,6 +5554,7 @@ module Google
5038
5554
  @display_settings = args[:display_settings] if args.key?(:display_settings)
5039
5555
  @encryption_policy = args[:encryption_policy] if args.key?(:encryption_policy)
5040
5556
  @ensure_verify_apps_enabled = args[:ensure_verify_apps_enabled] if args.key?(:ensure_verify_apps_enabled)
5557
+ @enterprise_display_name_visibility = args[:enterprise_display_name_visibility] if args.key?(:enterprise_display_name_visibility)
5041
5558
  @factory_reset_disabled = args[:factory_reset_disabled] if args.key?(:factory_reset_disabled)
5042
5559
  @frp_admin_emails = args[:frp_admin_emails] if args.key?(:frp_admin_emails)
5043
5560
  @fun_disabled = args[:fun_disabled] if args.key?(:fun_disabled)
@@ -5099,6 +5616,8 @@ module Google
5099
5616
  @vpn_config_disabled = args[:vpn_config_disabled] if args.key?(:vpn_config_disabled)
5100
5617
  @wifi_config_disabled = args[:wifi_config_disabled] if args.key?(:wifi_config_disabled)
5101
5618
  @wifi_configs_lockdown_enabled = args[:wifi_configs_lockdown_enabled] if args.key?(:wifi_configs_lockdown_enabled)
5619
+ @wipe_data_flags = args[:wipe_data_flags] if args.key?(:wipe_data_flags)
5620
+ @work_account_setup_config = args[:work_account_setup_config] if args.key?(:work_account_setup_config)
5102
5621
  end
5103
5622
  end
5104
5623
 
@@ -5201,6 +5720,88 @@ module Google
5201
5720
  end
5202
5721
  end
5203
5722
 
5723
+ # Individual preferential network service configuration.
5724
+ class PreferentialNetworkServiceConfig
5725
+ include Google::Apis::Core::Hashable
5726
+
5727
+ # Optional. Whether fallback to the device-wide default network is allowed. If
5728
+ # this is set to FALLBACK_TO_DEFAULT_CONNECTION_ALLOWED, then
5729
+ # nonMatchingNetworks must not be set to NON_MATCHING_NETWORKS_DISALLOWED, the
5730
+ # policy will be rejected otherwise. Note: If this is set to
5731
+ # FALLBACK_TO_DEFAULT_CONNECTION_DISALLOWED, applications are not able to access
5732
+ # the internet if the 5G slice is not available.
5733
+ # Corresponds to the JSON property `fallbackToDefaultConnection`
5734
+ # @return [String]
5735
+ attr_accessor :fallback_to_default_connection
5736
+
5737
+ # Optional. Whether apps this configuration applies to are blocked from using
5738
+ # networks other than the preferential service. If this is set to
5739
+ # NON_MATCHING_NETWORKS_DISALLOWED, then fallbackToDefaultConnection must be set
5740
+ # to FALLBACK_TO_DEFAULT_CONNECTION_DISALLOWED.
5741
+ # Corresponds to the JSON property `nonMatchingNetworks`
5742
+ # @return [String]
5743
+ attr_accessor :non_matching_networks
5744
+
5745
+ # Required. Preferential network identifier. This must not be set to
5746
+ # NO_PREFERENTIAL_NETWORK or PREFERENTIAL_NETWORK_ID_UNSPECIFIED, the policy
5747
+ # will be rejected otherwise.
5748
+ # Corresponds to the JSON property `preferentialNetworkId`
5749
+ # @return [String]
5750
+ attr_accessor :preferential_network_id
5751
+
5752
+ def initialize(**args)
5753
+ update!(**args)
5754
+ end
5755
+
5756
+ # Update properties of this object
5757
+ def update!(**args)
5758
+ @fallback_to_default_connection = args[:fallback_to_default_connection] if args.key?(:fallback_to_default_connection)
5759
+ @non_matching_networks = args[:non_matching_networks] if args.key?(:non_matching_networks)
5760
+ @preferential_network_id = args[:preferential_network_id] if args.key?(:preferential_network_id)
5761
+ end
5762
+ end
5763
+
5764
+ # Preferential network service settings.
5765
+ class PreferentialNetworkServiceSettings
5766
+ include Google::Apis::Core::Hashable
5767
+
5768
+ # Required. Default preferential network ID for the applications that are not in
5769
+ # applications or if ApplicationPolicy.preferentialNetworkId is set to
5770
+ # PREFERENTIAL_NETWORK_ID_UNSPECIFIED. There must be a configuration for the
5771
+ # specified network ID in preferentialNetworkServiceConfigs, unless this is set
5772
+ # to NO_PREFERENTIAL_NETWORK. If set to PREFERENTIAL_NETWORK_ID_UNSPECIFIED or
5773
+ # unset, this defaults to NO_PREFERENTIAL_NETWORK. Note: If the default
5774
+ # preferential network is misconfigured, applications with no ApplicationPolicy.
5775
+ # preferentialNetworkId set are not able to access the internet. This setting
5776
+ # does not apply to the following critical apps: com.google.android.apps.work.
5777
+ # clouddpc com.google.android.gmsApplicationPolicy.preferentialNetworkId can
5778
+ # still be used to configure the preferential network for them.
5779
+ # Corresponds to the JSON property `defaultPreferentialNetworkId`
5780
+ # @return [String]
5781
+ attr_accessor :default_preferential_network_id
5782
+
5783
+ # Required. Preferential network service configurations which enables having
5784
+ # multiple enterprise slices. There must not be multiple configurations with the
5785
+ # same preferentialNetworkId. If a configuration is not referenced by any
5786
+ # application by setting ApplicationPolicy.preferentialNetworkId or by setting
5787
+ # defaultPreferentialNetworkId, it will be ignored. For devices on 4G networks,
5788
+ # enterprise APN needs to be configured additionally to set up data call for
5789
+ # preferential network service. These APNs can be added using apnPolicy.
5790
+ # Corresponds to the JSON property `preferentialNetworkServiceConfigs`
5791
+ # @return [Array<Google::Apis::AndroidmanagementV1::PreferentialNetworkServiceConfig>]
5792
+ attr_accessor :preferential_network_service_configs
5793
+
5794
+ def initialize(**args)
5795
+ update!(**args)
5796
+ end
5797
+
5798
+ # Update properties of this object
5799
+ def update!(**args)
5800
+ @default_preferential_network_id = args[:default_preferential_network_id] if args.key?(:default_preferential_network_id)
5801
+ @preferential_network_service_configs = args[:preferential_network_service_configs] if args.key?(:preferential_network_service_configs)
5802
+ end
5803
+ end
5804
+
5204
5805
  # Information about a device that is available during setup.
5205
5806
  class ProvisioningInfo
5206
5807
  include Google::Apis::Core::Hashable
@@ -5353,6 +5954,71 @@ module Google
5353
5954
  end
5354
5955
  end
5355
5956
 
5957
+ # Parameters associated with the REMOVE_ESIM command to remove an eSIM profile
5958
+ # from the device.
5959
+ class RemoveEsimParams
5960
+ include Google::Apis::Core::Hashable
5961
+
5962
+ # Required. ICC ID of the eSIM profile to be deleted.
5963
+ # Corresponds to the JSON property `iccId`
5964
+ # @return [String]
5965
+ attr_accessor :icc_id
5966
+
5967
+ def initialize(**args)
5968
+ update!(**args)
5969
+ end
5970
+
5971
+ # Update properties of this object
5972
+ def update!(**args)
5973
+ @icc_id = args[:icc_id] if args.key?(:icc_id)
5974
+ end
5975
+ end
5976
+
5977
+ # Parameters associated with the REQUEST_DEVICE_INFO command to get device
5978
+ # related information.
5979
+ class RequestDeviceInfoParams
5980
+ include Google::Apis::Core::Hashable
5981
+
5982
+ # Required. Type of device information to be requested.
5983
+ # Corresponds to the JSON property `deviceInfo`
5984
+ # @return [String]
5985
+ attr_accessor :device_info
5986
+
5987
+ def initialize(**args)
5988
+ update!(**args)
5989
+ end
5990
+
5991
+ # Update properties of this object
5992
+ def update!(**args)
5993
+ @device_info = args[:device_info] if args.key?(:device_info)
5994
+ end
5995
+ end
5996
+
5997
+ # Status of the REQUEST_DEVICE_INFO command.
5998
+ class RequestDeviceInfoStatus
5999
+ include Google::Apis::Core::Hashable
6000
+
6001
+ # Information related to the EIDs of the device.
6002
+ # Corresponds to the JSON property `eidInfo`
6003
+ # @return [Google::Apis::AndroidmanagementV1::EidInfo]
6004
+ attr_accessor :eid_info
6005
+
6006
+ # Output only. Status of a REQUEST_DEVICE_INFO command.
6007
+ # Corresponds to the JSON property `status`
6008
+ # @return [String]
6009
+ attr_accessor :status
6010
+
6011
+ def initialize(**args)
6012
+ update!(**args)
6013
+ end
6014
+
6015
+ # Update properties of this object
6016
+ def update!(**args)
6017
+ @eid_info = args[:eid_info] if args.key?(:eid_info)
6018
+ @status = args[:status] if args.key?(:status)
6019
+ end
6020
+ end
6021
+
5356
6022
  # Controls for the screen brightness settings.
5357
6023
  class ScreenBrightnessSettings
5358
6024
  include Google::Apis::Core::Hashable
@@ -6034,11 +6700,27 @@ module Google
6034
6700
  class TelephonyInfo
6035
6701
  include Google::Apis::Core::Hashable
6036
6702
 
6703
+ # Output only. Activation state of the SIM card on the device. This is
6704
+ # applicable for eSIMs only. This is supported on all devices for API level 35
6705
+ # and above. This is always ACTIVATION_STATE_UNSPECIFIED for physical SIMs and
6706
+ # for devices below API level 35.
6707
+ # Corresponds to the JSON property `activationState`
6708
+ # @return [String]
6709
+ attr_accessor :activation_state
6710
+
6037
6711
  # The carrier name associated with this SIM card.
6038
6712
  # Corresponds to the JSON property `carrierName`
6039
6713
  # @return [String]
6040
6714
  attr_accessor :carrier_name
6041
6715
 
6716
+ # Output only. The configuration mode of the SIM card on the device. This is
6717
+ # applicable for eSIMs only. This is supported on all devices for API level 35
6718
+ # and above. This is always CONFIG_MODE_UNSPECIFIED for physical SIMs and for
6719
+ # devices below API level 35.
6720
+ # Corresponds to the JSON property `configMode`
6721
+ # @return [String]
6722
+ attr_accessor :config_mode
6723
+
6042
6724
  # Output only. The ICCID associated with this SIM card.
6043
6725
  # Corresponds to the JSON property `iccId`
6044
6726
  # @return [String]
@@ -6055,7 +6737,9 @@ module Google
6055
6737
 
6056
6738
  # Update properties of this object
6057
6739
  def update!(**args)
6740
+ @activation_state = args[:activation_state] if args.key?(:activation_state)
6058
6741
  @carrier_name = args[:carrier_name] if args.key?(:carrier_name)
6742
+ @config_mode = args[:config_mode] if args.key?(:config_mode)
6059
6743
  @icc_id = args[:icc_id] if args.key?(:icc_id)
6060
6744
  @phone_number = args[:phone_number] if args.key?(:phone_number)
6061
6745
  end
@@ -6138,6 +6822,11 @@ module Google
6138
6822
  # @return [Google::Apis::AndroidmanagementV1::AppProcessStartEvent]
6139
6823
  attr_accessor :app_process_start_event
6140
6824
 
6825
+ # An admin has enabled or disabled backup service.
6826
+ # Corresponds to the JSON property `backupServiceToggledEvent`
6827
+ # @return [Google::Apis::AndroidmanagementV1::BackupServiceToggledEvent]
6828
+ attr_accessor :backup_service_toggled_event
6829
+
6141
6830
  # A new root certificate was installed into the system's trusted credential
6142
6831
  # storage. This is available device-wide on fully managed devices and within the
6143
6832
  # work profile on organization-owned devices with a work profile.
@@ -6332,6 +7021,7 @@ module Google
6332
7021
  @adb_shell_command_event = args[:adb_shell_command_event] if args.key?(:adb_shell_command_event)
6333
7022
  @adb_shell_interactive_event = args[:adb_shell_interactive_event] if args.key?(:adb_shell_interactive_event)
6334
7023
  @app_process_start_event = args[:app_process_start_event] if args.key?(:app_process_start_event)
7024
+ @backup_service_toggled_event = args[:backup_service_toggled_event] if args.key?(:backup_service_toggled_event)
6335
7025
  @cert_authority_installed_event = args[:cert_authority_installed_event] if args.key?(:cert_authority_installed_event)
6336
7026
  @cert_authority_removed_event = args[:cert_authority_removed_event] if args.key?(:cert_authority_removed_event)
6337
7027
  @cert_validation_failure_event = args[:cert_validation_failure_event] if args.key?(:cert_validation_failure_event)
@@ -6687,6 +7377,36 @@ module Google
6687
7377
  def update!(**args)
6688
7378
  end
6689
7379
  end
7380
+
7381
+ # Controls the work account setup configuration, such as details of whether a
7382
+ # Google authenticated account is required.
7383
+ class WorkAccountSetupConfig
7384
+ include Google::Apis::Core::Hashable
7385
+
7386
+ # Optional. The authentication type of the user on the device.
7387
+ # Corresponds to the JSON property `authenticationType`
7388
+ # @return [String]
7389
+ attr_accessor :authentication_type
7390
+
7391
+ # Optional. The specific google work account email address to be added. This
7392
+ # field is only relevant if authenticationType is GOOGLE_AUTHENTICATED. This
7393
+ # must be an enterprise account and not a consumer account. Once set and a
7394
+ # Google authenticated account is added to the device, changing this field will
7395
+ # have no effect, and thus recommended to be set only once.
7396
+ # Corresponds to the JSON property `requiredAccountEmail`
7397
+ # @return [String]
7398
+ attr_accessor :required_account_email
7399
+
7400
+ def initialize(**args)
7401
+ update!(**args)
7402
+ end
7403
+
7404
+ # Update properties of this object
7405
+ def update!(**args)
7406
+ @authentication_type = args[:authentication_type] if args.key?(:authentication_type)
7407
+ @required_account_email = args[:required_account_email] if args.key?(:required_account_email)
7408
+ end
7409
+ end
6690
7410
  end
6691
7411
  end
6692
7412
  end