1// Copyright 2021 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package androidmanagement provides access to the Android Management API.
8//
9// For product documentation, see: https://developers.google.com/android/management
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/androidmanagement/v1"
16//   ...
17//   ctx := context.Background()
18//   androidmanagementService, err := androidmanagement.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
27//
28//   androidmanagementService, err := androidmanagement.NewService(ctx, option.WithAPIKey("AIza..."))
29//
30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
31//
32//   config := &oauth2.Config{...}
33//   // ...
34//   token, err := config.Exchange(ctx, ...)
35//   androidmanagementService, err := androidmanagement.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package androidmanagement // import "google.golang.org/api/androidmanagement/v1"
39
40import (
41	"bytes"
42	"context"
43	"encoding/json"
44	"errors"
45	"fmt"
46	"io"
47	"net/http"
48	"net/url"
49	"strconv"
50	"strings"
51
52	googleapi "google.golang.org/api/googleapi"
53	gensupport "google.golang.org/api/internal/gensupport"
54	option "google.golang.org/api/option"
55	internaloption "google.golang.org/api/option/internaloption"
56	htransport "google.golang.org/api/transport/http"
57)
58
59// Always reference these packages, just in case the auto-generated code
60// below doesn't.
61var _ = bytes.NewBuffer
62var _ = strconv.Itoa
63var _ = fmt.Sprintf
64var _ = json.NewDecoder
65var _ = io.Copy
66var _ = url.Parse
67var _ = gensupport.MarshalJSON
68var _ = googleapi.Version
69var _ = errors.New
70var _ = strings.Replace
71var _ = context.Canceled
72var _ = internaloption.WithDefaultEndpoint
73
74const apiId = "androidmanagement:v1"
75const apiName = "androidmanagement"
76const apiVersion = "v1"
77const basePath = "https://androidmanagement.googleapis.com/"
78const mtlsBasePath = "https://androidmanagement.mtls.googleapis.com/"
79
80// OAuth2 scopes used by this API.
81const (
82	// Manage Android devices and apps for your customers
83	AndroidmanagementScope = "https://www.googleapis.com/auth/androidmanagement"
84)
85
86// NewService creates a new Service.
87func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
88	scopesOption := option.WithScopes(
89		"https://www.googleapis.com/auth/androidmanagement",
90	)
91	// NOTE: prepend, so we don't override user-specified scopes.
92	opts = append([]option.ClientOption{scopesOption}, opts...)
93	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
94	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
95	client, endpoint, err := htransport.NewClient(ctx, opts...)
96	if err != nil {
97		return nil, err
98	}
99	s, err := New(client)
100	if err != nil {
101		return nil, err
102	}
103	if endpoint != "" {
104		s.BasePath = endpoint
105	}
106	return s, nil
107}
108
109// New creates a new Service. It uses the provided http.Client for requests.
110//
111// Deprecated: please use NewService instead.
112// To provide a custom HTTP client, use option.WithHTTPClient.
113// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
114func New(client *http.Client) (*Service, error) {
115	if client == nil {
116		return nil, errors.New("client is nil")
117	}
118	s := &Service{client: client, BasePath: basePath}
119	s.Enterprises = NewEnterprisesService(s)
120	s.SignupUrls = NewSignupUrlsService(s)
121	return s, nil
122}
123
124type Service struct {
125	client    *http.Client
126	BasePath  string // API endpoint base URL
127	UserAgent string // optional additional User-Agent fragment
128
129	Enterprises *EnterprisesService
130
131	SignupUrls *SignupUrlsService
132}
133
134func (s *Service) userAgent() string {
135	if s.UserAgent == "" {
136		return googleapi.UserAgent
137	}
138	return googleapi.UserAgent + " " + s.UserAgent
139}
140
141func NewEnterprisesService(s *Service) *EnterprisesService {
142	rs := &EnterprisesService{s: s}
143	rs.Applications = NewEnterprisesApplicationsService(s)
144	rs.Devices = NewEnterprisesDevicesService(s)
145	rs.EnrollmentTokens = NewEnterprisesEnrollmentTokensService(s)
146	rs.Policies = NewEnterprisesPoliciesService(s)
147	rs.WebApps = NewEnterprisesWebAppsService(s)
148	rs.WebTokens = NewEnterprisesWebTokensService(s)
149	return rs
150}
151
152type EnterprisesService struct {
153	s *Service
154
155	Applications *EnterprisesApplicationsService
156
157	Devices *EnterprisesDevicesService
158
159	EnrollmentTokens *EnterprisesEnrollmentTokensService
160
161	Policies *EnterprisesPoliciesService
162
163	WebApps *EnterprisesWebAppsService
164
165	WebTokens *EnterprisesWebTokensService
166}
167
168func NewEnterprisesApplicationsService(s *Service) *EnterprisesApplicationsService {
169	rs := &EnterprisesApplicationsService{s: s}
170	return rs
171}
172
173type EnterprisesApplicationsService struct {
174	s *Service
175}
176
177func NewEnterprisesDevicesService(s *Service) *EnterprisesDevicesService {
178	rs := &EnterprisesDevicesService{s: s}
179	rs.Operations = NewEnterprisesDevicesOperationsService(s)
180	return rs
181}
182
183type EnterprisesDevicesService struct {
184	s *Service
185
186	Operations *EnterprisesDevicesOperationsService
187}
188
189func NewEnterprisesDevicesOperationsService(s *Service) *EnterprisesDevicesOperationsService {
190	rs := &EnterprisesDevicesOperationsService{s: s}
191	return rs
192}
193
194type EnterprisesDevicesOperationsService struct {
195	s *Service
196}
197
198func NewEnterprisesEnrollmentTokensService(s *Service) *EnterprisesEnrollmentTokensService {
199	rs := &EnterprisesEnrollmentTokensService{s: s}
200	return rs
201}
202
203type EnterprisesEnrollmentTokensService struct {
204	s *Service
205}
206
207func NewEnterprisesPoliciesService(s *Service) *EnterprisesPoliciesService {
208	rs := &EnterprisesPoliciesService{s: s}
209	return rs
210}
211
212type EnterprisesPoliciesService struct {
213	s *Service
214}
215
216func NewEnterprisesWebAppsService(s *Service) *EnterprisesWebAppsService {
217	rs := &EnterprisesWebAppsService{s: s}
218	return rs
219}
220
221type EnterprisesWebAppsService struct {
222	s *Service
223}
224
225func NewEnterprisesWebTokensService(s *Service) *EnterprisesWebTokensService {
226	rs := &EnterprisesWebTokensService{s: s}
227	return rs
228}
229
230type EnterprisesWebTokensService struct {
231	s *Service
232}
233
234func NewSignupUrlsService(s *Service) *SignupUrlsService {
235	rs := &SignupUrlsService{s: s}
236	return rs
237}
238
239type SignupUrlsService struct {
240	s *Service
241}
242
243// AdvancedSecurityOverrides: Security policies set to the most secure
244// values by default. To maintain the security posture of a device, we
245// don't recommend overriding any of the default values.
246type AdvancedSecurityOverrides struct {
247	// CommonCriteriaMode: Controls Common Criteria Mode—security
248	// standards defined in the Common Criteria for Information Technology
249	// Security Evaluation (https://www.commoncriteriaportal.org/) (CC).
250	// Enabling Common Criteria Mode increases certain security components
251	// on a device, including AES-GCM encryption of Bluetooth Long Term
252	// Keys, and Wi-Fi configuration stores.Warning: Common Criteria Mode
253	// enforces a strict security model typically only required for IT
254	// products used in national security systems and other highly sensitive
255	// organizations. Standard device use may be affected. Only enabled if
256	// required.
257	//
258	// Possible values:
259	//   "COMMON_CRITERIA_MODE_UNSPECIFIED" - Unspecified. Defaults to
260	// COMMON_CRITERIA_MODE_DISABLED.
261	//   "COMMON_CRITERIA_MODE_DISABLED" - Default. Disables Common Criteria
262	// Mode.
263	//   "COMMON_CRITERIA_MODE_ENABLED" - Enables Common Criteria Mode.
264	CommonCriteriaMode string `json:"commonCriteriaMode,omitempty"`
265
266	// DeveloperSettings: Controls access to developer settings: developer
267	// options and safe boot. Replaces safeBootDisabled (deprecated) and
268	// debuggingFeaturesAllowed (deprecated).
269	//
270	// Possible values:
271	//   "DEVELOPER_SETTINGS_UNSPECIFIED" - Unspecified. Defaults to
272	// DEVELOPER_SETTINGS_DISABLED.
273	//   "DEVELOPER_SETTINGS_DISABLED" - Default. Disables all developer
274	// settings and prevents the user from accessing them.
275	//   "DEVELOPER_SETTINGS_ALLOWED" - Allows all developer settings. The
276	// user can access and optionally configure the settings.
277	DeveloperSettings string `json:"developerSettings,omitempty"`
278
279	// GooglePlayProtectVerifyApps: Whether Google Play Protect verification
280	// (https://support.google.com/accounts/answer/2812853) is enforced.
281	// Replaces ensureVerifyAppsEnabled (deprecated).
282	//
283	// Possible values:
284	//   "GOOGLE_PLAY_PROTECT_VERIFY_APPS_UNSPECIFIED" - Unspecified.
285	// Defaults to VERIFY_APPS_ENFORCED.
286	//   "VERIFY_APPS_ENFORCED" - Default. Force-enables app verification.
287	//   "VERIFY_APPS_USER_CHOICE" - Allows the user to choose whether to
288	// enable app verification.
289	GooglePlayProtectVerifyApps string `json:"googlePlayProtectVerifyApps,omitempty"`
290
291	// UntrustedAppsPolicy: The policy for untrusted apps (apps from unknown
292	// sources) enforced on the device. Replaces
293	// install_unknown_sources_allowed (deprecated).
294	//
295	// Possible values:
296	//   "UNTRUSTED_APPS_POLICY_UNSPECIFIED" - Unspecified. Defaults to
297	// DISALLOW_INSTALL.
298	//   "DISALLOW_INSTALL" - Default. Disallow untrusted app installs on
299	// entire device.
300	//   "ALLOW_INSTALL_IN_PERSONAL_PROFILE_ONLY" - For devices with work
301	// profiles, allow untrusted app installs in the device's personal
302	// profile only.
303	//   "ALLOW_INSTALL_DEVICE_WIDE" - Allow untrusted app installs on
304	// entire device.
305	UntrustedAppsPolicy string `json:"untrustedAppsPolicy,omitempty"`
306
307	// ForceSendFields is a list of field names (e.g. "CommonCriteriaMode")
308	// to unconditionally include in API requests. By default, fields with
309	// empty or default values are omitted from API requests. However, any
310	// non-pointer, non-interface field appearing in ForceSendFields will be
311	// sent to the server regardless of whether the field is empty or not.
312	// This may be used to include empty fields in Patch requests.
313	ForceSendFields []string `json:"-"`
314
315	// NullFields is a list of field names (e.g. "CommonCriteriaMode") to
316	// include in API requests with the JSON null value. By default, fields
317	// with empty values are omitted from API requests. However, any field
318	// with an empty value appearing in NullFields will be sent to the
319	// server as null. It is an error if a field in this list has a
320	// non-empty value. This may be used to include null fields in Patch
321	// requests.
322	NullFields []string `json:"-"`
323}
324
325func (s *AdvancedSecurityOverrides) MarshalJSON() ([]byte, error) {
326	type NoMethod AdvancedSecurityOverrides
327	raw := NoMethod(*s)
328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
329}
330
331// AlwaysOnVpnPackage: Configuration for an always-on VPN connection.
332type AlwaysOnVpnPackage struct {
333	// LockdownEnabled: Disallows networking when the VPN is not connected.
334	LockdownEnabled bool `json:"lockdownEnabled,omitempty"`
335
336	// PackageName: The package name of the VPN app.
337	PackageName string `json:"packageName,omitempty"`
338
339	// ForceSendFields is a list of field names (e.g. "LockdownEnabled") to
340	// unconditionally include in API requests. By default, fields with
341	// empty or default values are omitted from API requests. However, any
342	// non-pointer, non-interface field appearing in ForceSendFields will be
343	// sent to the server regardless of whether the field is empty or not.
344	// This may be used to include empty fields in Patch requests.
345	ForceSendFields []string `json:"-"`
346
347	// NullFields is a list of field names (e.g. "LockdownEnabled") to
348	// include in API requests with the JSON null value. By default, fields
349	// with empty values are omitted from API requests. However, any field
350	// with an empty value appearing in NullFields will be sent to the
351	// server as null. It is an error if a field in this list has a
352	// non-empty value. This may be used to include null fields in Patch
353	// requests.
354	NullFields []string `json:"-"`
355}
356
357func (s *AlwaysOnVpnPackage) MarshalJSON() ([]byte, error) {
358	type NoMethod AlwaysOnVpnPackage
359	raw := NoMethod(*s)
360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
361}
362
363// ApiLevelCondition: A compliance rule condition which is satisfied if
364// the Android Framework API level on the device doesn't meet a minimum
365// requirement. There can only be one rule with this type of condition
366// per policy.
367type ApiLevelCondition struct {
368	// MinApiLevel: The minimum desired Android Framework API level. If the
369	// device doesn't meet the minimum requirement, this condition is
370	// satisfied. Must be greater than zero.
371	MinApiLevel int64 `json:"minApiLevel,omitempty"`
372
373	// ForceSendFields is a list of field names (e.g. "MinApiLevel") to
374	// unconditionally include in API requests. By default, fields with
375	// empty or default values are omitted from API requests. However, any
376	// non-pointer, non-interface field appearing in ForceSendFields will be
377	// sent to the server regardless of whether the field is empty or not.
378	// This may be used to include empty fields in Patch requests.
379	ForceSendFields []string `json:"-"`
380
381	// NullFields is a list of field names (e.g. "MinApiLevel") to include
382	// in API requests with the JSON null value. By default, fields with
383	// empty values are omitted from API requests. However, any field with
384	// an empty value appearing in NullFields will be sent to the server as
385	// null. It is an error if a field in this list has a non-empty value.
386	// This may be used to include null fields in Patch requests.
387	NullFields []string `json:"-"`
388}
389
390func (s *ApiLevelCondition) MarshalJSON() ([]byte, error) {
391	type NoMethod ApiLevelCondition
392	raw := NoMethod(*s)
393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
394}
395
396// AppTrackInfo: Id to name association of a app track.
397type AppTrackInfo struct {
398	// TrackAlias: The track name associated with the trackId, set in the
399	// Play Console. The name is modifiable from Play Console.
400	TrackAlias string `json:"trackAlias,omitempty"`
401
402	// TrackId: The unmodifiable unique track identifier, taken from the
403	// releaseTrackId in the URL of the Play Console page that displays the
404	// app’s track information.
405	TrackId string `json:"trackId,omitempty"`
406
407	// ForceSendFields is a list of field names (e.g. "TrackAlias") to
408	// unconditionally include in API requests. By default, fields with
409	// empty or default values are omitted from API requests. However, any
410	// non-pointer, non-interface field appearing in ForceSendFields will be
411	// sent to the server regardless of whether the field is empty or not.
412	// This may be used to include empty fields in Patch requests.
413	ForceSendFields []string `json:"-"`
414
415	// NullFields is a list of field names (e.g. "TrackAlias") to include in
416	// API requests with the JSON null value. By default, fields with empty
417	// values are omitted from API requests. However, any field with an
418	// empty value appearing in NullFields will be sent to the server as
419	// null. It is an error if a field in this list has a non-empty value.
420	// This may be used to include null fields in Patch requests.
421	NullFields []string `json:"-"`
422}
423
424func (s *AppTrackInfo) MarshalJSON() ([]byte, error) {
425	type NoMethod AppTrackInfo
426	raw := NoMethod(*s)
427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
428}
429
430// Application: Information about an app.
431type Application struct {
432	// AppTracks: Application tracks visible to the enterprise.
433	AppTracks []*AppTrackInfo `json:"appTracks,omitempty"`
434
435	// ManagedProperties: The set of managed properties available to be
436	// pre-configured for the app.
437	ManagedProperties []*ManagedProperty `json:"managedProperties,omitempty"`
438
439	// Name: The name of the app in the form
440	// enterprises/{enterpriseId}/applications/{package_name}.
441	Name string `json:"name,omitempty"`
442
443	// Permissions: The permissions required by the app.
444	Permissions []*ApplicationPermission `json:"permissions,omitempty"`
445
446	// Title: The title of the app. Localized.
447	Title string `json:"title,omitempty"`
448
449	// ServerResponse contains the HTTP response code and headers from the
450	// server.
451	googleapi.ServerResponse `json:"-"`
452
453	// ForceSendFields is a list of field names (e.g. "AppTracks") to
454	// unconditionally include in API requests. By default, fields with
455	// empty or default values are omitted from API requests. However, any
456	// non-pointer, non-interface field appearing in ForceSendFields will be
457	// sent to the server regardless of whether the field is empty or not.
458	// This may be used to include empty fields in Patch requests.
459	ForceSendFields []string `json:"-"`
460
461	// NullFields is a list of field names (e.g. "AppTracks") to include in
462	// API requests with the JSON null value. By default, fields with empty
463	// values are omitted from API requests. However, any field with an
464	// empty value appearing in NullFields will be sent to the server as
465	// null. It is an error if a field in this list has a non-empty value.
466	// This may be used to include null fields in Patch requests.
467	NullFields []string `json:"-"`
468}
469
470func (s *Application) MarshalJSON() ([]byte, error) {
471	type NoMethod Application
472	raw := NoMethod(*s)
473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
474}
475
476// ApplicationEvent: An app-related event.
477type ApplicationEvent struct {
478	// CreateTime: The creation time of the event.
479	CreateTime string `json:"createTime,omitempty"`
480
481	// EventType: App event type.
482	//
483	// Possible values:
484	//   "APPLICATION_EVENT_TYPE_UNSPECIFIED" - This value is disallowed.
485	//   "INSTALLED" - The app was installed.
486	//   "CHANGED" - The app was changed, for example, a component was
487	// enabled or disabled.
488	//   "DATA_CLEARED" - The app data was cleared.
489	//   "REMOVED" - The app was removed.
490	//   "REPLACED" - A new version of the app has been installed, replacing
491	// the old version.
492	//   "RESTARTED" - The app was restarted.
493	//   "PINNED" - The app was pinned to the foreground.
494	//   "UNPINNED" - The app was unpinned.
495	EventType string `json:"eventType,omitempty"`
496
497	// ForceSendFields is a list of field names (e.g. "CreateTime") to
498	// unconditionally include in API requests. By default, fields with
499	// empty or default values are omitted from API requests. However, any
500	// non-pointer, non-interface field appearing in ForceSendFields will be
501	// sent to the server regardless of whether the field is empty or not.
502	// This may be used to include empty fields in Patch requests.
503	ForceSendFields []string `json:"-"`
504
505	// NullFields is a list of field names (e.g. "CreateTime") to include in
506	// API requests with the JSON null value. By default, fields with empty
507	// values are omitted from API requests. However, any field with an
508	// empty value appearing in NullFields will be sent to the server as
509	// null. It is an error if a field in this list has a non-empty value.
510	// This may be used to include null fields in Patch requests.
511	NullFields []string `json:"-"`
512}
513
514func (s *ApplicationEvent) MarshalJSON() ([]byte, error) {
515	type NoMethod ApplicationEvent
516	raw := NoMethod(*s)
517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
518}
519
520// ApplicationPermission: A permission required by the app.
521type ApplicationPermission struct {
522	// Description: A longer description of the permission, providing more
523	// detail on what it affects. Localized.
524	Description string `json:"description,omitempty"`
525
526	// Name: The name of the permission. Localized.
527	Name string `json:"name,omitempty"`
528
529	// PermissionId: An opaque string uniquely identifying the permission.
530	// Not localized.
531	PermissionId string `json:"permissionId,omitempty"`
532
533	// ForceSendFields is a list of field names (e.g. "Description") to
534	// unconditionally include in API requests. By default, fields with
535	// empty or default values are omitted from API requests. However, any
536	// non-pointer, non-interface field appearing in ForceSendFields will be
537	// sent to the server regardless of whether the field is empty or not.
538	// This may be used to include empty fields in Patch requests.
539	ForceSendFields []string `json:"-"`
540
541	// NullFields is a list of field names (e.g. "Description") to include
542	// in API requests with the JSON null value. By default, fields with
543	// empty values are omitted from API requests. However, any field with
544	// an empty value appearing in NullFields will be sent to the server as
545	// null. It is an error if a field in this list has a non-empty value.
546	// This may be used to include null fields in Patch requests.
547	NullFields []string `json:"-"`
548}
549
550func (s *ApplicationPermission) MarshalJSON() ([]byte, error) {
551	type NoMethod ApplicationPermission
552	raw := NoMethod(*s)
553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
554}
555
556// ApplicationPolicy: Policy for an individual app.
557type ApplicationPolicy struct {
558	// AccessibleTrackIds: List of the app’s track IDs that a device
559	// belonging to the enterprise can access. If the list contains multiple
560	// track IDs, devices receive the latest version among all accessible
561	// tracks. If the list contains no track IDs, devices only have access
562	// to the app’s production track. More details about each track are
563	// available in AppTrackInfo.
564	AccessibleTrackIds []string `json:"accessibleTrackIds,omitempty"`
565
566	// AutoUpdateMode: Controls the auto-update mode for the app.
567	//
568	// Possible values:
569	//   "AUTO_UPDATE_MODE_UNSPECIFIED" - Unspecified. Defaults to
570	// AUTO_UPDATE_DEFAULT.
571	//   "AUTO_UPDATE_DEFAULT" - The app is automatically updated with low
572	// priority to minimize the impact on the user.The app is updated when
573	// all of the following constraints are met: The device is not actively
574	// used. The device is connected to an unmetered network. The device is
575	// charging.The device is notified about a new update within 24 hours
576	// after it is published by the developer, after which the app is
577	// updated the next time the constraints above are met.
578	//   "AUTO_UPDATE_POSTPONED" - The app is not automatically updated for
579	// a maximum of 90 days after the app becomes out of date.90 days after
580	// the app becomes out of date, the latest available version is
581	// installed automatically with low priority (see AUTO_UPDATE_DEFAULT).
582	// After the app is updated it is not automatically updated again until
583	// 90 days after it becomes out of date again.The user can still
584	// manually update the app from the Play Store at any time.
585	//   "AUTO_UPDATE_HIGH_PRIORITY" - The app is updated as soon as
586	// possible. No constraints are applied.The device is notified
587	// immediately about a new update after it becomes available.
588	AutoUpdateMode string `json:"autoUpdateMode,omitempty"`
589
590	// ConnectedWorkAndPersonalApp: Controls whether the app can communicate
591	// with itself across a device’s work and personal profiles, subject
592	// to user consent.
593	//
594	// Possible values:
595	//   "CONNECTED_WORK_AND_PERSONAL_APP_UNSPECIFIED" - Unspecified.
596	// Defaults to CONNECTED_WORK_AND_PERSONAL_APPS_DISALLOWED.
597	//   "CONNECTED_WORK_AND_PERSONAL_APP_DISALLOWED" - Default. Prevents
598	// the app from communicating cross-profile.
599	//   "CONNECTED_WORK_AND_PERSONAL_APP_ALLOWED" - Allows the app to
600	// communicate across profiles after receiving user consent.
601	ConnectedWorkAndPersonalApp string `json:"connectedWorkAndPersonalApp,omitempty"`
602
603	// DefaultPermissionPolicy: The default policy for all permissions
604	// requested by the app. If specified, this overrides the policy-level
605	// default_permission_policy which applies to all apps. It does not
606	// override the permission_grants which applies to all apps.
607	//
608	// Possible values:
609	//   "PERMISSION_POLICY_UNSPECIFIED" - Policy not specified. If no
610	// policy is specified for a permission at any level, then the PROMPT
611	// behavior is used by default.
612	//   "PROMPT" - Prompt the user to grant a permission.
613	//   "GRANT" - Automatically grant a permission.
614	//   "DENY" - Automatically deny a permission.
615	DefaultPermissionPolicy string `json:"defaultPermissionPolicy,omitempty"`
616
617	// DelegatedScopes: The scopes delegated to the app from Android Device
618	// Policy.
619	//
620	// Possible values:
621	//   "DELEGATED_SCOPE_UNSPECIFIED" - No delegation scope specified.
622	//   "CERT_INSTALL" - Grants access to certificate installation and
623	// management.
624	//   "MANAGED_CONFIGURATIONS" - Grants access to managed configurations
625	// management.
626	//   "BLOCK_UNINSTALL" - Grants access to blocking uninstallation.
627	//   "PERMISSION_GRANT" - Grants access to permission policy and
628	// permission grant state.
629	//   "PACKAGE_ACCESS" - Grants access to package access state.
630	//   "ENABLE_SYSTEM_APP" - Grants access for enabling system apps.
631	DelegatedScopes []string `json:"delegatedScopes,omitempty"`
632
633	// Disabled: Whether the app is disabled. When disabled, the app data is
634	// still preserved.
635	Disabled bool `json:"disabled,omitempty"`
636
637	// InstallType: The type of installation to perform.
638	//
639	// Possible values:
640	//   "INSTALL_TYPE_UNSPECIFIED" - Unspecified. Defaults to AVAILABLE.
641	//   "PREINSTALLED" - The app is automatically installed and can be
642	// removed by the user.
643	//   "FORCE_INSTALLED" - The app is automatically installed and can't be
644	// removed by the user.
645	//   "BLOCKED" - The app is blocked and can't be installed. If the app
646	// was installed under a previous policy, it will be uninstalled.
647	//   "AVAILABLE" - The app is available to install.
648	//   "REQUIRED_FOR_SETUP" - The app is automatically installed and can't
649	// be removed by the user and will prevent setup from completion until
650	// installation is complete.
651	//   "KIOSK" - The app is automatically installed in kiosk mode: it's
652	// set as the preferred home intent and whitelisted for lock task mode.
653	// Device setup won't complete until the app is installed. After
654	// installation, users won't be able to remove the app. You can only set
655	// this installType for one app per policy. When this is present in the
656	// policy, status bar will be automatically disabled.
657	InstallType string `json:"installType,omitempty"`
658
659	// LockTaskAllowed: Whether the app is allowed to lock itself in
660	// full-screen mode. DEPRECATED. Use InstallType KIOSK or
661	// kioskCustomLauncherEnabled to to configure a dedicated device.
662	LockTaskAllowed bool `json:"lockTaskAllowed,omitempty"`
663
664	// ManagedConfiguration: Managed configuration applied to the app. The
665	// format for the configuration is dictated by the ManagedProperty
666	// values supported by the app. Each field name in the managed
667	// configuration must match the key field of the ManagedProperty. The
668	// field value must be compatible with the type of the ManagedProperty:
669	// *type* *JSON value* BOOL true or false STRING string INTEGER number
670	// CHOICE string MULTISELECT array of strings HIDDEN string BUNDLE_ARRAY
671	// array of objects
672	ManagedConfiguration googleapi.RawMessage `json:"managedConfiguration,omitempty"`
673
674	// ManagedConfigurationTemplate: The managed configurations template for
675	// the app, saved from the managed configurations iframe. This field is
676	// ignored if managed_configuration is set.
677	ManagedConfigurationTemplate *ManagedConfigurationTemplate `json:"managedConfigurationTemplate,omitempty"`
678
679	// MinimumVersionCode: The minimum version of the app that runs on the
680	// device. If set, the device attempts to update the app to at least
681	// this version code. If the app is not up-to-date, the device will
682	// contain a NonComplianceDetail with non_compliance_reason set to
683	// APP_NOT_UPDATED. The app must already be published to Google Play
684	// with a version code greater than or equal to this value. At most 20
685	// apps may specify a minimum version code per policy.
686	MinimumVersionCode int64 `json:"minimumVersionCode,omitempty"`
687
688	// PackageName: The package name of the app. For example,
689	// com.google.android.youtube for the YouTube app.
690	PackageName string `json:"packageName,omitempty"`
691
692	// PermissionGrants: Explicit permission grants or denials for the app.
693	// These values override the default_permission_policy and
694	// permission_grants which apply to all apps.
695	PermissionGrants []*PermissionGrant `json:"permissionGrants,omitempty"`
696
697	// ForceSendFields is a list of field names (e.g. "AccessibleTrackIds")
698	// to unconditionally include in API requests. By default, fields with
699	// empty or default values are omitted from API requests. However, any
700	// non-pointer, non-interface field appearing in ForceSendFields will be
701	// sent to the server regardless of whether the field is empty or not.
702	// This may be used to include empty fields in Patch requests.
703	ForceSendFields []string `json:"-"`
704
705	// NullFields is a list of field names (e.g. "AccessibleTrackIds") to
706	// include in API requests with the JSON null value. By default, fields
707	// with empty values are omitted from API requests. However, any field
708	// with an empty value appearing in NullFields will be sent to the
709	// server as null. It is an error if a field in this list has a
710	// non-empty value. This may be used to include null fields in Patch
711	// requests.
712	NullFields []string `json:"-"`
713}
714
715func (s *ApplicationPolicy) MarshalJSON() ([]byte, error) {
716	type NoMethod ApplicationPolicy
717	raw := NoMethod(*s)
718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
719}
720
721// ApplicationReport: Information reported about an installed app.
722type ApplicationReport struct {
723	// ApplicationSource: The source of the package.
724	//
725	// Possible values:
726	//   "APPLICATION_SOURCE_UNSPECIFIED" - The app was sideloaded from an
727	// unspecified source.
728	//   "SYSTEM_APP_FACTORY_VERSION" - This is a system app from the
729	// device's factory image.
730	//   "SYSTEM_APP_UPDATED_VERSION" - This is an updated system app.
731	//   "INSTALLED_FROM_PLAY_STORE" - The app was installed from the Google
732	// Play Store.
733	ApplicationSource string `json:"applicationSource,omitempty"`
734
735	// DisplayName: The display name of the app.
736	DisplayName string `json:"displayName,omitempty"`
737
738	// Events: List of app events. The most recent 20 events are stored in
739	// the list.
740	Events []*ApplicationEvent `json:"events,omitempty"`
741
742	// InstallerPackageName: The package name of the app that installed this
743	// app.
744	InstallerPackageName string `json:"installerPackageName,omitempty"`
745
746	// KeyedAppStates: List of keyed app states reported by the app.
747	KeyedAppStates []*KeyedAppState `json:"keyedAppStates,omitempty"`
748
749	// PackageName: Package name of the app.
750	PackageName string `json:"packageName,omitempty"`
751
752	// PackageSha256Hash: The SHA-256 hash of the app's APK file, which can
753	// be used to verify the app hasn't been modified. Each byte of the hash
754	// value is represented as a two-digit hexadecimal number.
755	PackageSha256Hash string `json:"packageSha256Hash,omitempty"`
756
757	// SigningKeyCertFingerprints: The SHA-1 hash of each
758	// android.content.pm.Signature
759	// (https://developer.android.com/reference/android/content/pm/Signature.html)
760	// associated with the app package. Each byte of each hash value is
761	// represented as a two-digit hexadecimal number.
762	SigningKeyCertFingerprints []string `json:"signingKeyCertFingerprints,omitempty"`
763
764	// State: Application state.
765	//
766	// Possible values:
767	//   "APPLICATION_STATE_UNSPECIFIED" - App state is unspecified
768	//   "REMOVED" - App was removed from the device
769	//   "INSTALLED" - App is installed on the device
770	State string `json:"state,omitempty"`
771
772	// VersionCode: The app version code, which can be used to determine
773	// whether one version is more recent than another.
774	VersionCode int64 `json:"versionCode,omitempty"`
775
776	// VersionName: The app version as displayed to the user.
777	VersionName string `json:"versionName,omitempty"`
778
779	// ForceSendFields is a list of field names (e.g. "ApplicationSource")
780	// to unconditionally include in API requests. By default, fields with
781	// empty or default values are omitted from API requests. However, any
782	// non-pointer, non-interface field appearing in ForceSendFields will be
783	// sent to the server regardless of whether the field is empty or not.
784	// This may be used to include empty fields in Patch requests.
785	ForceSendFields []string `json:"-"`
786
787	// NullFields is a list of field names (e.g. "ApplicationSource") to
788	// include in API requests with the JSON null value. By default, fields
789	// with empty values are omitted from API requests. However, any field
790	// with an empty value appearing in NullFields will be sent to the
791	// server as null. It is an error if a field in this list has a
792	// non-empty value. This may be used to include null fields in Patch
793	// requests.
794	NullFields []string `json:"-"`
795}
796
797func (s *ApplicationReport) MarshalJSON() ([]byte, error) {
798	type NoMethod ApplicationReport
799	raw := NoMethod(*s)
800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
801}
802
803// ApplicationReportingSettings: Settings controlling the behavior of
804// application reports.
805type ApplicationReportingSettings struct {
806	// IncludeRemovedApps: Whether removed apps are included in application
807	// reports.
808	IncludeRemovedApps bool `json:"includeRemovedApps,omitempty"`
809
810	// ForceSendFields is a list of field names (e.g. "IncludeRemovedApps")
811	// to unconditionally include in API requests. By default, fields with
812	// empty or default values are omitted from API requests. However, any
813	// non-pointer, non-interface field appearing in ForceSendFields will be
814	// sent to the server regardless of whether the field is empty or not.
815	// This may be used to include empty fields in Patch requests.
816	ForceSendFields []string `json:"-"`
817
818	// NullFields is a list of field names (e.g. "IncludeRemovedApps") to
819	// include in API requests with the JSON null value. By default, fields
820	// with empty values are omitted from API requests. However, any field
821	// with an empty value appearing in NullFields will be sent to the
822	// server as null. It is an error if a field in this list has a
823	// non-empty value. This may be used to include null fields in Patch
824	// requests.
825	NullFields []string `json:"-"`
826}
827
828func (s *ApplicationReportingSettings) MarshalJSON() ([]byte, error) {
829	type NoMethod ApplicationReportingSettings
830	raw := NoMethod(*s)
831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
832}
833
834// BlockAction: An action to block access to apps and data on a fully
835// managed device or in a work profile. This action also triggers a
836// device or work profile to displays a user-facing notification with
837// information (where possible) on how to correct the compliance issue.
838// Note: wipeAction must also be specified.
839type BlockAction struct {
840	// BlockAfterDays: Number of days the policy is non-compliant before the
841	// device or work profile is blocked. To block access immediately, set
842	// to 0. blockAfterDays must be less than wipeAfterDays.
843	BlockAfterDays int64 `json:"blockAfterDays,omitempty"`
844
845	// BlockScope: Specifies the scope of this BlockAction. Only applicable
846	// to devices that are company-owned.
847	//
848	// Possible values:
849	//   "BLOCK_SCOPE_UNSPECIFIED" - Unspecified. Defaults to
850	// BLOCK_SCOPE_WORK_PROFILE.
851	//   "BLOCK_SCOPE_WORK_PROFILE" - Block action is only applied to apps
852	// in the work profile. Apps in the personal profile are unaffected.
853	//   "BLOCK_SCOPE_DEVICE" - Block action is applied to the entire
854	// device, including apps in the personal profile.
855	BlockScope string `json:"blockScope,omitempty"`
856
857	// ForceSendFields is a list of field names (e.g. "BlockAfterDays") to
858	// unconditionally include in API requests. By default, fields with
859	// empty or default values are omitted from API requests. However, any
860	// non-pointer, non-interface field appearing in ForceSendFields will be
861	// sent to the server regardless of whether the field is empty or not.
862	// This may be used to include empty fields in Patch requests.
863	ForceSendFields []string `json:"-"`
864
865	// NullFields is a list of field names (e.g. "BlockAfterDays") to
866	// include in API requests with the JSON null value. By default, fields
867	// with empty values are omitted from API requests. However, any field
868	// with an empty value appearing in NullFields will be sent to the
869	// server as null. It is an error if a field in this list has a
870	// non-empty value. This may be used to include null fields in Patch
871	// requests.
872	NullFields []string `json:"-"`
873}
874
875func (s *BlockAction) MarshalJSON() ([]byte, error) {
876	type NoMethod BlockAction
877	raw := NoMethod(*s)
878	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
879}
880
881// ChoosePrivateKeyRule: Controls apps' access to private keys. The rule
882// determines which private key, if any, Android Device Policy grants to
883// the specified app. Access is granted either when the app calls
884// KeyChain.choosePrivateKeyAlias
885// (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29)
886// (or any overloads) to request a private key alias for a given URL, or
887// for rules that are not URL-specific (that is, if urlPattern is not
888// set, or set to the empty string or .*) on Android 11 and above,
889// directly so that the app can call KeyChain.getPrivateKey
890// (https://developer.android.com/reference/android/security/KeyChain#getPrivateKey%28android.content.Context,%20java.lang.String%29),
891// without first having to call KeyChain.choosePrivateKeyAlias.When an
892// app calls KeyChain.choosePrivateKeyAlias if more than one
893// choosePrivateKeyRules matches, the last matching rule defines which
894// key alias to return.
895type ChoosePrivateKeyRule struct {
896	// PackageNames: The package names to which this rule applies. The hash
897	// of the signing certificate for each app is verified against the hash
898	// provided by Play. If no package names are specified, then the alias
899	// is provided to all apps that call KeyChain.choosePrivateKeyAlias
900	// (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29)
901	// or any overloads (but not without calling
902	// KeyChain.choosePrivateKeyAlias, even on Android 11 and above). Any
903	// app with the same Android UID as a package specified here will have
904	// access when they call KeyChain.choosePrivateKeyAlias.
905	PackageNames []string `json:"packageNames,omitempty"`
906
907	// PrivateKeyAlias: The alias of the private key to be used.
908	PrivateKeyAlias string `json:"privateKeyAlias,omitempty"`
909
910	// UrlPattern: The URL pattern to match against the URL of the request.
911	// If not set or empty, it matches all URLs. This uses the regular
912	// expression syntax of java.util.regex.Pattern.
913	UrlPattern string `json:"urlPattern,omitempty"`
914
915	// ForceSendFields is a list of field names (e.g. "PackageNames") to
916	// unconditionally include in API requests. By default, fields with
917	// empty or default values are omitted from API requests. However, any
918	// non-pointer, non-interface field appearing in ForceSendFields will be
919	// sent to the server regardless of whether the field is empty or not.
920	// This may be used to include empty fields in Patch requests.
921	ForceSendFields []string `json:"-"`
922
923	// NullFields is a list of field names (e.g. "PackageNames") to include
924	// in API requests with the JSON null value. By default, fields with
925	// empty values are omitted from API requests. However, any field with
926	// an empty value appearing in NullFields will be sent to the server as
927	// null. It is an error if a field in this list has a non-empty value.
928	// This may be used to include null fields in Patch requests.
929	NullFields []string `json:"-"`
930}
931
932func (s *ChoosePrivateKeyRule) MarshalJSON() ([]byte, error) {
933	type NoMethod ChoosePrivateKeyRule
934	raw := NoMethod(*s)
935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
936}
937
938// Command: A command.
939type Command struct {
940	// CreateTime: The timestamp at which the command was created. The
941	// timestamp is automatically generated by the server.
942	CreateTime string `json:"createTime,omitempty"`
943
944	// Duration: The duration for which the command is valid. The command
945	// will expire if not executed by the device during this time. The
946	// default duration if unspecified is ten minutes. There is no maximum
947	// duration.
948	Duration string `json:"duration,omitempty"`
949
950	// ErrorCode: If the command failed, an error code explaining the
951	// failure. This is not set when the command is cancelled by the caller.
952	//
953	// Possible values:
954	//   "COMMAND_ERROR_CODE_UNSPECIFIED" - There was no error.
955	//   "UNKNOWN" - An unknown error occurred.
956	//   "API_LEVEL" - The API level of the device does not support this
957	// command.
958	//   "MANAGEMENT_MODE" - The management mode (profile owner, device
959	// owner, etc.) does not support the command.
960	//   "INVALID_VALUE" - The command has an invalid parameter value.
961	//   "UNSUPPORTED" - The device doesn't support the command. Updating
962	// Android Device Policy to the latest version may resolve the issue.
963	ErrorCode string `json:"errorCode,omitempty"`
964
965	// NewPassword: For commands of type RESET_PASSWORD, optionally
966	// specifies the new password.
967	NewPassword string `json:"newPassword,omitempty"`
968
969	// ResetPasswordFlags: For commands of type RESET_PASSWORD, optionally
970	// specifies flags.
971	//
972	// Possible values:
973	//   "RESET_PASSWORD_FLAG_UNSPECIFIED" - This value is ignored.
974	//   "REQUIRE_ENTRY" - Don't allow other admins to change the password
975	// again until the user has entered it.
976	//   "DO_NOT_ASK_CREDENTIALS_ON_BOOT" - Don't ask for user credentials
977	// on device boot.
978	//   "LOCK_NOW" - Lock the device after password reset.
979	ResetPasswordFlags []string `json:"resetPasswordFlags,omitempty"`
980
981	// Type: The type of the command.
982	//
983	// Possible values:
984	//   "COMMAND_TYPE_UNSPECIFIED" - This value is disallowed.
985	//   "LOCK" - Lock the device, as if the lock screen timeout had
986	// expired.
987	//   "RESET_PASSWORD" - Reset the user's password.
988	//   "REBOOT" - Reboot the device. Only supported on fully managed
989	// devices running Android 7.0 (API level 24) or higher.
990	//   "RELINQUISH_OWNERSHIP" - Removes the work profile and all policies
991	// from a company-owned Android 8.0+ device, relinquishing the device
992	// for personal use. Apps and data associated with the personal
993	// profile(s) are preserved. The device will be deleted from the server
994	// after it acknowledges the command.
995	Type string `json:"type,omitempty"`
996
997	// UserName: The resource name of the user that owns the device in the
998	// form enterprises/{enterpriseId}/users/{userId}. This is automatically
999	// generated by the server based on the device the command is sent to.
1000	UserName string `json:"userName,omitempty"`
1001
1002	// ForceSendFields is a list of field names (e.g. "CreateTime") to
1003	// unconditionally include in API requests. By default, fields with
1004	// empty or default values are omitted from API requests. However, any
1005	// non-pointer, non-interface field appearing in ForceSendFields will be
1006	// sent to the server regardless of whether the field is empty or not.
1007	// This may be used to include empty fields in Patch requests.
1008	ForceSendFields []string `json:"-"`
1009
1010	// NullFields is a list of field names (e.g. "CreateTime") to include in
1011	// API requests with the JSON null value. By default, fields with empty
1012	// values are omitted from API requests. However, any field with an
1013	// empty value appearing in NullFields will be sent to the server as
1014	// null. It is an error if a field in this list has a non-empty value.
1015	// This may be used to include null fields in Patch requests.
1016	NullFields []string `json:"-"`
1017}
1018
1019func (s *Command) MarshalJSON() ([]byte, error) {
1020	type NoMethod Command
1021	raw := NoMethod(*s)
1022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1023}
1024
1025// CommonCriteriaModeInfo: Information about Common Criteria
1026// Mode—security standards defined in the Common Criteria for
1027// Information Technology Security Evaluation
1028// (https://www.commoncriteriaportal.org/) (CC).This information is only
1029// available if statusReportingSettings.commonCriteriaModeEnabled is
1030// true in the device's policy.
1031type CommonCriteriaModeInfo struct {
1032	// CommonCriteriaModeStatus: Whether Common Criteria Mode is enabled.
1033	//
1034	// Possible values:
1035	//   "COMMON_CRITERIA_MODE_STATUS_UNKNOWN" - Unknown status.
1036	//   "COMMON_CRITERIA_MODE_DISABLED" - Common Criteria Mode is currently
1037	// disabled.
1038	//   "COMMON_CRITERIA_MODE_ENABLED" - Common Criteria Mode is currently
1039	// enabled.
1040	CommonCriteriaModeStatus string `json:"commonCriteriaModeStatus,omitempty"`
1041
1042	// ForceSendFields is a list of field names (e.g.
1043	// "CommonCriteriaModeStatus") to unconditionally include in API
1044	// requests. By default, fields with empty or default values are omitted
1045	// from API requests. However, any non-pointer, non-interface field
1046	// appearing in ForceSendFields will be sent to the server regardless of
1047	// whether the field is empty or not. This may be used to include empty
1048	// fields in Patch requests.
1049	ForceSendFields []string `json:"-"`
1050
1051	// NullFields is a list of field names (e.g. "CommonCriteriaModeStatus")
1052	// to include in API requests with the JSON null value. By default,
1053	// fields with empty values are omitted from API requests. However, any
1054	// field with an empty value appearing in NullFields will be sent to the
1055	// server as null. It is an error if a field in this list has a
1056	// non-empty value. This may be used to include null fields in Patch
1057	// requests.
1058	NullFields []string `json:"-"`
1059}
1060
1061func (s *CommonCriteriaModeInfo) MarshalJSON() ([]byte, error) {
1062	type NoMethod CommonCriteriaModeInfo
1063	raw := NoMethod(*s)
1064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1065}
1066
1067// ComplianceRule: A rule declaring which mitigating actions to take
1068// when a device is not compliant with its policy. For every rule, there
1069// is always an implicit mitigating action to set policy_compliant to
1070// false for the Device resource, and display a message on the device
1071// indicating that the device is not compliant with its policy. Other
1072// mitigating actions may optionally be taken as well, depending on the
1073// field values in the rule.
1074type ComplianceRule struct {
1075	// ApiLevelCondition: A condition which is satisfied if the Android
1076	// Framework API level on the device doesn't meet a minimum requirement.
1077	ApiLevelCondition *ApiLevelCondition `json:"apiLevelCondition,omitempty"`
1078
1079	// DisableApps: If set to true, the rule includes a mitigating action to
1080	// disable apps so that the device is effectively disabled, but app data
1081	// is preserved. If the device is running an app in locked task mode,
1082	// the app will be closed and a UI showing the reason for non-compliance
1083	// will be displayed.
1084	DisableApps bool `json:"disableApps,omitempty"`
1085
1086	// NonComplianceDetailCondition: A condition which is satisfied if there
1087	// exists any matching NonComplianceDetail for the device.
1088	NonComplianceDetailCondition *NonComplianceDetailCondition `json:"nonComplianceDetailCondition,omitempty"`
1089
1090	// PackageNamesToDisable: If set, the rule includes a mitigating action
1091	// to disable apps specified in the list, but app data is preserved.
1092	PackageNamesToDisable []string `json:"packageNamesToDisable,omitempty"`
1093
1094	// ForceSendFields is a list of field names (e.g. "ApiLevelCondition")
1095	// to unconditionally include in API requests. By default, fields with
1096	// empty or default values are omitted from API requests. However, any
1097	// non-pointer, non-interface field appearing in ForceSendFields will be
1098	// sent to the server regardless of whether the field is empty or not.
1099	// This may be used to include empty fields in Patch requests.
1100	ForceSendFields []string `json:"-"`
1101
1102	// NullFields is a list of field names (e.g. "ApiLevelCondition") to
1103	// include in API requests with the JSON null value. By default, fields
1104	// with empty values are omitted from API requests. However, any field
1105	// with an empty value appearing in NullFields will be sent to the
1106	// server as null. It is an error if a field in this list has a
1107	// non-empty value. This may be used to include null fields in Patch
1108	// requests.
1109	NullFields []string `json:"-"`
1110}
1111
1112func (s *ComplianceRule) MarshalJSON() ([]byte, error) {
1113	type NoMethod ComplianceRule
1114	raw := NoMethod(*s)
1115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1116}
1117
1118// ContactInfo: Contact details for LaForge enterprises.
1119type ContactInfo struct {
1120	// ContactEmail: Email address for a point of contact, which will be
1121	// used to send important announcements related to managed Google Play.
1122	ContactEmail string `json:"contactEmail,omitempty"`
1123
1124	// DataProtectionOfficerEmail: The email of the data protection officer.
1125	// The email is validated but not verified.
1126	DataProtectionOfficerEmail string `json:"dataProtectionOfficerEmail,omitempty"`
1127
1128	// DataProtectionOfficerName: The name of the data protection officer.
1129	DataProtectionOfficerName string `json:"dataProtectionOfficerName,omitempty"`
1130
1131	// DataProtectionOfficerPhone: The phone number of the data protection
1132	// officer The phone number is validated but not verified.
1133	DataProtectionOfficerPhone string `json:"dataProtectionOfficerPhone,omitempty"`
1134
1135	// EuRepresentativeEmail: The email of the EU representative. The email
1136	// is validated but not verified.
1137	EuRepresentativeEmail string `json:"euRepresentativeEmail,omitempty"`
1138
1139	// EuRepresentativeName: The name of the EU representative.
1140	EuRepresentativeName string `json:"euRepresentativeName,omitempty"`
1141
1142	// EuRepresentativePhone: The phone number of the EU representative. The
1143	// phone number is validated but not verified.
1144	EuRepresentativePhone string `json:"euRepresentativePhone,omitempty"`
1145
1146	// ForceSendFields is a list of field names (e.g. "ContactEmail") to
1147	// unconditionally include in API requests. By default, fields with
1148	// empty or default values are omitted from API requests. However, any
1149	// non-pointer, non-interface field appearing in ForceSendFields will be
1150	// sent to the server regardless of whether the field is empty or not.
1151	// This may be used to include empty fields in Patch requests.
1152	ForceSendFields []string `json:"-"`
1153
1154	// NullFields is a list of field names (e.g. "ContactEmail") to include
1155	// in API requests with the JSON null value. By default, fields with
1156	// empty values are omitted from API requests. However, any field with
1157	// an empty value appearing in NullFields will be sent to the server as
1158	// null. It is an error if a field in this list has a non-empty value.
1159	// This may be used to include null fields in Patch requests.
1160	NullFields []string `json:"-"`
1161}
1162
1163func (s *ContactInfo) MarshalJSON() ([]byte, error) {
1164	type NoMethod ContactInfo
1165	raw := NoMethod(*s)
1166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1167}
1168
1169// ContentProviderEndpoint: This feature is not generally available.
1170type ContentProviderEndpoint struct {
1171	// PackageName: This feature is not generally available.
1172	PackageName string `json:"packageName,omitempty"`
1173
1174	// SigningCertsSha256: Required. This feature is not generally
1175	// available.
1176	SigningCertsSha256 []string `json:"signingCertsSha256,omitempty"`
1177
1178	// Uri: This feature is not generally available.
1179	Uri string `json:"uri,omitempty"`
1180
1181	// ForceSendFields is a list of field names (e.g. "PackageName") to
1182	// unconditionally include in API requests. By default, fields with
1183	// empty or default values are omitted from API requests. However, any
1184	// non-pointer, non-interface field appearing in ForceSendFields will be
1185	// sent to the server regardless of whether the field is empty or not.
1186	// This may be used to include empty fields in Patch requests.
1187	ForceSendFields []string `json:"-"`
1188
1189	// NullFields is a list of field names (e.g. "PackageName") to include
1190	// in API requests with the JSON null value. By default, fields with
1191	// empty values are omitted from API requests. However, any field with
1192	// an empty value appearing in NullFields will be sent to the server as
1193	// null. It is an error if a field in this list has a non-empty value.
1194	// This may be used to include null fields in Patch requests.
1195	NullFields []string `json:"-"`
1196}
1197
1198func (s *ContentProviderEndpoint) MarshalJSON() ([]byte, error) {
1199	type NoMethod ContentProviderEndpoint
1200	raw := NoMethod(*s)
1201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1202}
1203
1204// Date: Represents a whole or partial calendar date, such as a
1205// birthday. The time of day and time zone are either specified
1206// elsewhere or are insignificant. The date is relative to the Gregorian
1207// Calendar. This can represent one of the following: A full date, with
1208// non-zero year, month, and day values A month and day value, with a
1209// zero year, such as an anniversary A year on its own, with zero month
1210// and day values A year and month value, with a zero day, such as a
1211// credit card expiration dateRelated types are google.type.TimeOfDay
1212// and google.protobuf.Timestamp.
1213type Date struct {
1214	// Day: Day of a month. Must be from 1 to 31 and valid for the year and
1215	// month, or 0 to specify a year by itself or a year and month where the
1216	// day isn't significant.
1217	Day int64 `json:"day,omitempty"`
1218
1219	// Month: Month of a year. Must be from 1 to 12, or 0 to specify a year
1220	// without a month and day.
1221	Month int64 `json:"month,omitempty"`
1222
1223	// Year: Year of the date. Must be from 1 to 9999, or 0 to specify a
1224	// date without a year.
1225	Year int64 `json:"year,omitempty"`
1226
1227	// ForceSendFields is a list of field names (e.g. "Day") to
1228	// unconditionally include in API requests. By default, fields with
1229	// empty or default values are omitted from API requests. However, any
1230	// non-pointer, non-interface field appearing in ForceSendFields will be
1231	// sent to the server regardless of whether the field is empty or not.
1232	// This may be used to include empty fields in Patch requests.
1233	ForceSendFields []string `json:"-"`
1234
1235	// NullFields is a list of field names (e.g. "Day") to include in API
1236	// requests with the JSON null value. By default, fields with empty
1237	// values are omitted from API requests. However, any field with an
1238	// empty value appearing in NullFields will be sent to the server as
1239	// null. It is an error if a field in this list has a non-empty value.
1240	// This may be used to include null fields in Patch requests.
1241	NullFields []string `json:"-"`
1242}
1243
1244func (s *Date) MarshalJSON() ([]byte, error) {
1245	type NoMethod Date
1246	raw := NoMethod(*s)
1247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1248}
1249
1250// Device: A device owned by an enterprise. Unless otherwise noted, all
1251// fields are read-only and can't be modified by
1252// enterprises.devices.patch.
1253type Device struct {
1254	// ApiLevel: The API level of the Android platform version running on
1255	// the device.
1256	ApiLevel int64 `json:"apiLevel,omitempty"`
1257
1258	// ApplicationReports: Reports for apps installed on the device. This
1259	// information is only available when application_reports_enabled is
1260	// true in the device's policy.
1261	ApplicationReports []*ApplicationReport `json:"applicationReports,omitempty"`
1262
1263	// AppliedPasswordPolicies: The password requirements currently applied
1264	// to the device. The applied requirements may be slightly different
1265	// from those specified in passwordPolicies in some cases. fieldPath is
1266	// set based on passwordPolicies.
1267	AppliedPasswordPolicies []*PasswordRequirements `json:"appliedPasswordPolicies,omitempty"`
1268
1269	// AppliedPolicyName: The name of the policy currently applied to the
1270	// device.
1271	AppliedPolicyName string `json:"appliedPolicyName,omitempty"`
1272
1273	// AppliedPolicyVersion: The version of the policy currently applied to
1274	// the device.
1275	AppliedPolicyVersion int64 `json:"appliedPolicyVersion,omitempty,string"`
1276
1277	// AppliedState: The state currently applied to the device.
1278	//
1279	// Possible values:
1280	//   "DEVICE_STATE_UNSPECIFIED" - This value is disallowed.
1281	//   "ACTIVE" - The device is active.
1282	//   "DISABLED" - The device is disabled.
1283	//   "DELETED" - The device was deleted. This state will never be
1284	// returned by an API call, but is used in the final status report
1285	// published to Cloud Pub/Sub when the device acknowledges the deletion.
1286	//   "PROVISIONING" - The device is being provisioned. Newly enrolled
1287	// devices are in this state until they have a policy applied.
1288	AppliedState string `json:"appliedState,omitempty"`
1289
1290	// CommonCriteriaModeInfo: Information about Common Criteria
1291	// Mode—security standards defined in the Common Criteria for
1292	// Information Technology Security Evaluation
1293	// (https://www.commoncriteriaportal.org/) (CC).This information is only
1294	// available if statusReportingSettings.commonCriteriaModeEnabled is
1295	// true in the device's policy.
1296	CommonCriteriaModeInfo *CommonCriteriaModeInfo `json:"commonCriteriaModeInfo,omitempty"`
1297
1298	// DeviceSettings: Device settings information. This information is only
1299	// available if deviceSettingsEnabled is true in the device's policy.
1300	DeviceSettings *DeviceSettings `json:"deviceSettings,omitempty"`
1301
1302	// DisabledReason: If the device state is DISABLED, an optional message
1303	// that is displayed on the device indicating the reason the device is
1304	// disabled. This field can be modified by a patch request.
1305	DisabledReason *UserFacingMessage `json:"disabledReason,omitempty"`
1306
1307	// Displays: Detailed information about displays on the device. This
1308	// information is only available if displayInfoEnabled is true in the
1309	// device's policy.
1310	Displays []*Display `json:"displays,omitempty"`
1311
1312	// EnrollmentTime: The time of device enrollment.
1313	EnrollmentTime string `json:"enrollmentTime,omitempty"`
1314
1315	// EnrollmentTokenData: If the device was enrolled with an enrollment
1316	// token with additional data provided, this field contains that data.
1317	EnrollmentTokenData string `json:"enrollmentTokenData,omitempty"`
1318
1319	// EnrollmentTokenName: If the device was enrolled with an enrollment
1320	// token, this field contains the name of the token.
1321	EnrollmentTokenName string `json:"enrollmentTokenName,omitempty"`
1322
1323	// HardwareInfo: Detailed information about the device hardware.
1324	HardwareInfo *HardwareInfo `json:"hardwareInfo,omitempty"`
1325
1326	// HardwareStatusSamples: Hardware status samples in chronological
1327	// order. This information is only available if hardwareStatusEnabled is
1328	// true in the device's policy.
1329	HardwareStatusSamples []*HardwareStatus `json:"hardwareStatusSamples,omitempty"`
1330
1331	// LastPolicyComplianceReportTime: Deprecated.
1332	LastPolicyComplianceReportTime string `json:"lastPolicyComplianceReportTime,omitempty"`
1333
1334	// LastPolicySyncTime: The last time the device fetched its policy.
1335	LastPolicySyncTime string `json:"lastPolicySyncTime,omitempty"`
1336
1337	// LastStatusReportTime: The last time the device sent a status report.
1338	LastStatusReportTime string `json:"lastStatusReportTime,omitempty"`
1339
1340	// ManagementMode: The type of management mode Android Device Policy
1341	// takes on the device. This influences which policy settings are
1342	// supported.
1343	//
1344	// Possible values:
1345	//   "MANAGEMENT_MODE_UNSPECIFIED" - This value is disallowed.
1346	//   "DEVICE_OWNER" - Device owner. Android Device Policy has full
1347	// control over the device.
1348	//   "PROFILE_OWNER" - Profile owner. Android Device Policy has control
1349	// over a managed profile on the device.
1350	ManagementMode string `json:"managementMode,omitempty"`
1351
1352	// MemoryEvents: Events related to memory and storage measurements in
1353	// chronological order. This information is only available if
1354	// memoryInfoEnabled is true in the device's policy.
1355	MemoryEvents []*MemoryEvent `json:"memoryEvents,omitempty"`
1356
1357	// MemoryInfo: Memory information: contains information about device
1358	// memory and storage.
1359	MemoryInfo *MemoryInfo `json:"memoryInfo,omitempty"`
1360
1361	// Name: The name of the device in the form
1362	// enterprises/{enterpriseId}/devices/{deviceId}.
1363	Name string `json:"name,omitempty"`
1364
1365	// NetworkInfo: Device network information. This information is only
1366	// available if networkInfoEnabled is true in the device's policy.
1367	NetworkInfo *NetworkInfo `json:"networkInfo,omitempty"`
1368
1369	// NonComplianceDetails: Details about policy settings that the device
1370	// is not compliant with.
1371	NonComplianceDetails []*NonComplianceDetail `json:"nonComplianceDetails,omitempty"`
1372
1373	// Ownership: Ownership of the managed device.
1374	//
1375	// Possible values:
1376	//   "OWNERSHIP_UNSPECIFIED" - Ownership is unspecified.
1377	//   "COMPANY_OWNED" - Device is company-owned.
1378	//   "PERSONALLY_OWNED" - Device is personally-owned.
1379	Ownership string `json:"ownership,omitempty"`
1380
1381	// PolicyCompliant: Whether the device is compliant with its policy.
1382	PolicyCompliant bool `json:"policyCompliant,omitempty"`
1383
1384	// PolicyName: The name of the policy applied to the device, in the form
1385	// enterprises/{enterpriseId}/policies/{policyId}. If not specified, the
1386	// policy_name for the device's user is applied. This field can be
1387	// modified by a patch request. You can specify only the policyId when
1388	// calling enterprises.devices.patch, as long as the policyId doesn’t
1389	// contain any slashes. The rest of the policy name is inferred.
1390	PolicyName string `json:"policyName,omitempty"`
1391
1392	// PowerManagementEvents: Power management events on the device in
1393	// chronological order. This information is only available if
1394	// powerManagementEventsEnabled is true in the device's policy.
1395	PowerManagementEvents []*PowerManagementEvent `json:"powerManagementEvents,omitempty"`
1396
1397	// PreviousDeviceNames: If the same physical device has been enrolled
1398	// multiple times, this field contains its previous device names. The
1399	// serial number is used as the unique identifier to determine if the
1400	// same physical device has enrolled previously. The names are in
1401	// chronological order.
1402	PreviousDeviceNames []string `json:"previousDeviceNames,omitempty"`
1403
1404	// SecurityPosture: Device's security posture value that reflects how
1405	// secure the device is.
1406	SecurityPosture *SecurityPosture `json:"securityPosture,omitempty"`
1407
1408	// SoftwareInfo: Detailed information about the device software. This
1409	// information is only available if softwareInfoEnabled is true in the
1410	// device's policy.
1411	SoftwareInfo *SoftwareInfo `json:"softwareInfo,omitempty"`
1412
1413	// State: The state to be applied to the device. This field can be
1414	// modified by a patch request. Note that when calling
1415	// enterprises.devices.patch, ACTIVE and DISABLED are the only allowable
1416	// values. To enter the device into a DELETED state, call
1417	// enterprises.devices.delete.
1418	//
1419	// Possible values:
1420	//   "DEVICE_STATE_UNSPECIFIED" - This value is disallowed.
1421	//   "ACTIVE" - The device is active.
1422	//   "DISABLED" - The device is disabled.
1423	//   "DELETED" - The device was deleted. This state will never be
1424	// returned by an API call, but is used in the final status report
1425	// published to Cloud Pub/Sub when the device acknowledges the deletion.
1426	//   "PROVISIONING" - The device is being provisioned. Newly enrolled
1427	// devices are in this state until they have a policy applied.
1428	State string `json:"state,omitempty"`
1429
1430	// SystemProperties: Map of selected system properties name and value
1431	// related to the device. This information is only available if
1432	// systemPropertiesEnabled is true in the device's policy.
1433	SystemProperties map[string]string `json:"systemProperties,omitempty"`
1434
1435	// User: The user who owns the device.
1436	User *User `json:"user,omitempty"`
1437
1438	// UserName: The resource name of the user that owns this device in the
1439	// form enterprises/{enterpriseId}/users/{userId}.
1440	UserName string `json:"userName,omitempty"`
1441
1442	// ServerResponse contains the HTTP response code and headers from the
1443	// server.
1444	googleapi.ServerResponse `json:"-"`
1445
1446	// ForceSendFields is a list of field names (e.g. "ApiLevel") to
1447	// unconditionally include in API requests. By default, fields with
1448	// empty or default values are omitted from API requests. However, any
1449	// non-pointer, non-interface field appearing in ForceSendFields will be
1450	// sent to the server regardless of whether the field is empty or not.
1451	// This may be used to include empty fields in Patch requests.
1452	ForceSendFields []string `json:"-"`
1453
1454	// NullFields is a list of field names (e.g. "ApiLevel") to include in
1455	// API requests with the JSON null value. By default, fields with empty
1456	// values are omitted from API requests. However, any field with an
1457	// empty value appearing in NullFields will be sent to the server as
1458	// null. It is an error if a field in this list has a non-empty value.
1459	// This may be used to include null fields in Patch requests.
1460	NullFields []string `json:"-"`
1461}
1462
1463func (s *Device) MarshalJSON() ([]byte, error) {
1464	type NoMethod Device
1465	raw := NoMethod(*s)
1466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1467}
1468
1469// DeviceSettings: Information about security related device settings on
1470// device.
1471type DeviceSettings struct {
1472	// AdbEnabled: Whether ADB
1473	// (https://developer.android.com/studio/command-line/adb.html) is
1474	// enabled on the device.
1475	AdbEnabled bool `json:"adbEnabled,omitempty"`
1476
1477	// DevelopmentSettingsEnabled: Whether developer mode is enabled on the
1478	// device.
1479	DevelopmentSettingsEnabled bool `json:"developmentSettingsEnabled,omitempty"`
1480
1481	// EncryptionStatus: Encryption status from DevicePolicyManager.
1482	//
1483	// Possible values:
1484	//   "ENCRYPTION_STATUS_UNSPECIFIED" - Unspecified. No device should
1485	// have this type.
1486	//   "UNSUPPORTED" - Encryption is not supported by the device.
1487	//   "INACTIVE" - Encryption is supported by the device, but is not
1488	// currently active.
1489	//   "ACTIVATING" - Encryption is not currently active, but is currently
1490	// being activated.
1491	//   "ACTIVE" - Encryption is active.
1492	//   "ACTIVE_DEFAULT_KEY" - Encryption is active, but an encryption key
1493	// is not set by the user.
1494	//   "ACTIVE_PER_USER" - Encryption is active, and the encryption key is
1495	// tied to the user profile.
1496	EncryptionStatus string `json:"encryptionStatus,omitempty"`
1497
1498	// IsDeviceSecure: Whether the device is secured with PIN/password.
1499	IsDeviceSecure bool `json:"isDeviceSecure,omitempty"`
1500
1501	// IsEncrypted: Whether the storage encryption is enabled.
1502	IsEncrypted bool `json:"isEncrypted,omitempty"`
1503
1504	// UnknownSourcesEnabled: Whether installing apps from unknown sources
1505	// is enabled.
1506	UnknownSourcesEnabled bool `json:"unknownSourcesEnabled,omitempty"`
1507
1508	// VerifyAppsEnabled: Whether Google Play Protect verification
1509	// (https://support.google.com/accounts/answer/2812853) is enforced on
1510	// the device.
1511	VerifyAppsEnabled bool `json:"verifyAppsEnabled,omitempty"`
1512
1513	// ForceSendFields is a list of field names (e.g. "AdbEnabled") to
1514	// unconditionally include in API requests. By default, fields with
1515	// empty or default values are omitted from API requests. However, any
1516	// non-pointer, non-interface field appearing in ForceSendFields will be
1517	// sent to the server regardless of whether the field is empty or not.
1518	// This may be used to include empty fields in Patch requests.
1519	ForceSendFields []string `json:"-"`
1520
1521	// NullFields is a list of field names (e.g. "AdbEnabled") to include in
1522	// API requests with the JSON null value. By default, fields with empty
1523	// values are omitted from API requests. However, any field with an
1524	// empty value appearing in NullFields will be sent to the server as
1525	// null. It is an error if a field in this list has a non-empty value.
1526	// This may be used to include null fields in Patch requests.
1527	NullFields []string `json:"-"`
1528}
1529
1530func (s *DeviceSettings) MarshalJSON() ([]byte, error) {
1531	type NoMethod DeviceSettings
1532	raw := NoMethod(*s)
1533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1534}
1535
1536// Display: Device display information.
1537type Display struct {
1538	// Density: Display density expressed as dots-per-inch.
1539	Density int64 `json:"density,omitempty"`
1540
1541	// DisplayId: Unique display id.
1542	DisplayId int64 `json:"displayId,omitempty"`
1543
1544	// Height: Display height in pixels.
1545	Height int64 `json:"height,omitempty"`
1546
1547	// Name: Name of the display.
1548	Name string `json:"name,omitempty"`
1549
1550	// RefreshRate: Refresh rate of the display in frames per second.
1551	RefreshRate int64 `json:"refreshRate,omitempty"`
1552
1553	// State: State of the display.
1554	//
1555	// Possible values:
1556	//   "DISPLAY_STATE_UNSPECIFIED" - This value is disallowed.
1557	//   "OFF" - Display is off.
1558	//   "ON" - Display is on.
1559	//   "DOZE" - Display is dozing in a low power state
1560	//   "SUSPENDED" - Display is dozing in a suspended low power state.
1561	State string `json:"state,omitempty"`
1562
1563	// Width: Display width in pixels.
1564	Width int64 `json:"width,omitempty"`
1565
1566	// ForceSendFields is a list of field names (e.g. "Density") to
1567	// unconditionally include in API requests. By default, fields with
1568	// empty or default values are omitted from API requests. However, any
1569	// non-pointer, non-interface field appearing in ForceSendFields will be
1570	// sent to the server regardless of whether the field is empty or not.
1571	// This may be used to include empty fields in Patch requests.
1572	ForceSendFields []string `json:"-"`
1573
1574	// NullFields is a list of field names (e.g. "Density") to include in
1575	// API requests with the JSON null value. By default, fields with empty
1576	// values are omitted from API requests. However, any field with an
1577	// empty value appearing in NullFields will be sent to the server as
1578	// null. It is an error if a field in this list has a non-empty value.
1579	// This may be used to include null fields in Patch requests.
1580	NullFields []string `json:"-"`
1581}
1582
1583func (s *Display) MarshalJSON() ([]byte, error) {
1584	type NoMethod Display
1585	raw := NoMethod(*s)
1586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1587}
1588
1589// Empty: A generic empty message that you can re-use to avoid defining
1590// duplicated empty messages in your APIs. A typical example is to use
1591// it as the request or the response type of an API method. For
1592// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
1593// (google.protobuf.Empty); } The JSON representation for Empty is empty
1594// JSON object {}.
1595type Empty struct {
1596	// ServerResponse contains the HTTP response code and headers from the
1597	// server.
1598	googleapi.ServerResponse `json:"-"`
1599}
1600
1601// EnrollmentToken: An enrollment token.
1602type EnrollmentToken struct {
1603	// AdditionalData: Optional, arbitrary data associated with the
1604	// enrollment token. This could contain, for example, the ID of an org
1605	// unit the device is assigned to after enrollment. After a device
1606	// enrolls with the token, this data will be exposed in the
1607	// enrollment_token_data field of the Device resource. The data must be
1608	// 1024 characters or less; otherwise, the creation request will fail.
1609	AdditionalData string `json:"additionalData,omitempty"`
1610
1611	// AllowPersonalUsage: Controls whether personal usage is allowed on a
1612	// device provisioned with this enrollment token.For company-owned
1613	// devices: Enabling personal usage allows the user to set up a work
1614	// profile on the device. Disabling personal usage requires the user
1615	// provision the device as a fully managed device.For personally-owned
1616	// devices: Enabling personal usage allows the user to set up a work
1617	// profile on the device. Disabling personal usage will prevent the
1618	// device from provisioning. Personal usage cannot be disabled on
1619	// personally-owned device.
1620	//
1621	// Possible values:
1622	//   "ALLOW_PERSONAL_USAGE_UNSPECIFIED" - Personal usage restriction is
1623	// not specified
1624	//   "PERSONAL_USAGE_ALLOWED" - Personal usage is allowed
1625	//   "PERSONAL_USAGE_DISALLOWED" - Personal usage is disallowed
1626	AllowPersonalUsage string `json:"allowPersonalUsage,omitempty"`
1627
1628	// Duration: The length of time the enrollment token is valid, ranging
1629	// from 1 minute to 90 days. If not specified, the default duration is 1
1630	// hour.
1631	Duration string `json:"duration,omitempty"`
1632
1633	// ExpirationTimestamp: The expiration time of the token. This is a
1634	// read-only field generated by the server.
1635	ExpirationTimestamp string `json:"expirationTimestamp,omitempty"`
1636
1637	// Name: The name of the enrollment token, which is generated by the
1638	// server during creation, in the form
1639	// enterprises/{enterpriseId}/enrollmentTokens/{enrollmentTokenId}.
1640	Name string `json:"name,omitempty"`
1641
1642	// OneTimeOnly: Whether the enrollment token is for one time use only.
1643	// If the flag is set to true, only one device can use it for
1644	// registration.
1645	OneTimeOnly bool `json:"oneTimeOnly,omitempty"`
1646
1647	// PolicyName: The name of the policy initially applied to the enrolled
1648	// device, in the form enterprises/{enterpriseId}/policies/{policyId}.
1649	// If not specified, the policy_name for the device’s user is applied.
1650	// If user_name is also not specified,
1651	// enterprises/{enterpriseId}/policies/default is applied by default.
1652	// When updating this field, you can specify only the policyId as long
1653	// as the policyId doesn’t contain any slashes. The rest of the policy
1654	// name will be inferred.
1655	PolicyName string `json:"policyName,omitempty"`
1656
1657	// QrCode: A JSON string whose UTF-8 representation can be used to
1658	// generate a QR code to enroll a device with this enrollment token. To
1659	// enroll a device using NFC, the NFC record must contain a serialized
1660	// java.util.Properties representation of the properties in the JSON.
1661	QrCode string `json:"qrCode,omitempty"`
1662
1663	// User: The user associated with this enrollment token. If it's
1664	// specified when the enrollment token is created and the user does not
1665	// exist, the user will be created. This field must not contain
1666	// personally identifiable information. Only the account_identifier
1667	// field needs to be set.
1668	User *User `json:"user,omitempty"`
1669
1670	// Value: The token value that's passed to the device and authorizes the
1671	// device to enroll. This is a read-only field generated by the server.
1672	Value string `json:"value,omitempty"`
1673
1674	// ServerResponse contains the HTTP response code and headers from the
1675	// server.
1676	googleapi.ServerResponse `json:"-"`
1677
1678	// ForceSendFields is a list of field names (e.g. "AdditionalData") to
1679	// unconditionally include in API requests. By default, fields with
1680	// empty or default values are omitted from API requests. However, any
1681	// non-pointer, non-interface field appearing in ForceSendFields will be
1682	// sent to the server regardless of whether the field is empty or not.
1683	// This may be used to include empty fields in Patch requests.
1684	ForceSendFields []string `json:"-"`
1685
1686	// NullFields is a list of field names (e.g. "AdditionalData") to
1687	// include in API requests with the JSON null value. By default, fields
1688	// with empty values are omitted from API requests. However, any field
1689	// with an empty value appearing in NullFields will be sent to the
1690	// server as null. It is an error if a field in this list has a
1691	// non-empty value. This may be used to include null fields in Patch
1692	// requests.
1693	NullFields []string `json:"-"`
1694}
1695
1696func (s *EnrollmentToken) MarshalJSON() ([]byte, error) {
1697	type NoMethod EnrollmentToken
1698	raw := NoMethod(*s)
1699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1700}
1701
1702// Enterprise: The configuration applied to an enterprise.
1703type Enterprise struct {
1704	// AppAutoApprovalEnabled: Deprecated and unused.
1705	AppAutoApprovalEnabled bool `json:"appAutoApprovalEnabled,omitempty"`
1706
1707	// ContactInfo: The enterprise contact info of an EMM-managed
1708	// enterprise.
1709	ContactInfo *ContactInfo `json:"contactInfo,omitempty"`
1710
1711	// EnabledNotificationTypes: The types of Google Pub/Sub notifications
1712	// enabled for the enterprise.
1713	//
1714	// Possible values:
1715	//   "NOTIFICATION_TYPE_UNSPECIFIED" - This value is ignored.
1716	//   "ENROLLMENT" - A notification sent when a device enrolls.
1717	//   "COMPLIANCE_REPORT" - Deprecated.
1718	//   "STATUS_REPORT" - A notification sent when a device issues a status
1719	// report.
1720	//   "COMMAND" - A notification sent when a device command has
1721	// completed.
1722	EnabledNotificationTypes []string `json:"enabledNotificationTypes,omitempty"`
1723
1724	// EnterpriseDisplayName: The name of the enterprise displayed to users.
1725	EnterpriseDisplayName string `json:"enterpriseDisplayName,omitempty"`
1726
1727	// Logo: An image displayed as a logo during device provisioning.
1728	// Supported types are: image/bmp, image/gif, image/x-ico, image/jpeg,
1729	// image/png, image/webp, image/vnd.wap.wbmp, image/x-adobe-dng.
1730	Logo *ExternalData `json:"logo,omitempty"`
1731
1732	// Name: The name of the enterprise which is generated by the server
1733	// during creation, in the form enterprises/{enterpriseId}.
1734	Name string `json:"name,omitempty"`
1735
1736	// PrimaryColor: A color in RGB format that indicates the predominant
1737	// color to display in the device management app UI. The color
1738	// components are stored as follows: (red << 16) | (green << 8) | blue,
1739	// where the value of each component is between 0 and 255, inclusive.
1740	PrimaryColor int64 `json:"primaryColor,omitempty"`
1741
1742	// PubsubTopic: The topic that Cloud Pub/Sub notifications are published
1743	// to, in the form projects/{project}/topics/{topic}. This field is only
1744	// required if Pub/Sub notifications are enabled.
1745	PubsubTopic string `json:"pubsubTopic,omitempty"`
1746
1747	// SigninDetails: Sign-in details of the enterprise.
1748	SigninDetails []*SigninDetail `json:"signinDetails,omitempty"`
1749
1750	// TermsAndConditions: Terms and conditions that must be accepted when
1751	// provisioning a device for this enterprise. A page of terms is
1752	// generated for each value in this list.
1753	TermsAndConditions []*TermsAndConditions `json:"termsAndConditions,omitempty"`
1754
1755	// ServerResponse contains the HTTP response code and headers from the
1756	// server.
1757	googleapi.ServerResponse `json:"-"`
1758
1759	// ForceSendFields is a list of field names (e.g.
1760	// "AppAutoApprovalEnabled") to unconditionally include in API requests.
1761	// By default, fields with empty or default values are omitted from API
1762	// requests. However, any non-pointer, non-interface field appearing in
1763	// ForceSendFields will be sent to the server regardless of whether the
1764	// field is empty or not. This may be used to include empty fields in
1765	// Patch requests.
1766	ForceSendFields []string `json:"-"`
1767
1768	// NullFields is a list of field names (e.g. "AppAutoApprovalEnabled")
1769	// to include in API requests with the JSON null value. By default,
1770	// fields with empty values are omitted from API requests. However, any
1771	// field with an empty value appearing in NullFields will be sent to the
1772	// server as null. It is an error if a field in this list has a
1773	// non-empty value. This may be used to include null fields in Patch
1774	// requests.
1775	NullFields []string `json:"-"`
1776}
1777
1778func (s *Enterprise) MarshalJSON() ([]byte, error) {
1779	type NoMethod Enterprise
1780	raw := NoMethod(*s)
1781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1782}
1783
1784// ExternalData: Data hosted at an external location. The data is to be
1785// downloaded by Android Device Policy and verified against the hash.
1786type ExternalData struct {
1787	// Sha256Hash: The base-64 encoded SHA-256 hash of the content hosted at
1788	// url. If the content doesn't match this hash, Android Device Policy
1789	// won't use the data.
1790	Sha256Hash string `json:"sha256Hash,omitempty"`
1791
1792	// Url: The absolute URL to the data, which must use either the http or
1793	// https scheme. Android Device Policy doesn't provide any credentials
1794	// in the GET request, so the URL must be publicly accessible. Including
1795	// a long, random component in the URL may be used to prevent attackers
1796	// from discovering the URL.
1797	Url string `json:"url,omitempty"`
1798
1799	// ForceSendFields is a list of field names (e.g. "Sha256Hash") to
1800	// unconditionally include in API requests. By default, fields with
1801	// empty or default values are omitted from API requests. However, any
1802	// non-pointer, non-interface field appearing in ForceSendFields will be
1803	// sent to the server regardless of whether the field is empty or not.
1804	// This may be used to include empty fields in Patch requests.
1805	ForceSendFields []string `json:"-"`
1806
1807	// NullFields is a list of field names (e.g. "Sha256Hash") to include in
1808	// API requests with the JSON null value. By default, fields with empty
1809	// values are omitted from API requests. However, any field with an
1810	// empty value appearing in NullFields will be sent to the server as
1811	// null. It is an error if a field in this list has a non-empty value.
1812	// This may be used to include null fields in Patch requests.
1813	NullFields []string `json:"-"`
1814}
1815
1816func (s *ExternalData) MarshalJSON() ([]byte, error) {
1817	type NoMethod ExternalData
1818	raw := NoMethod(*s)
1819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1820}
1821
1822// FreezePeriod: A system freeze period. When a device’s clock is
1823// within the freeze period, all incoming system updates (including
1824// security patches) are blocked and won’t be installed. When a device
1825// is outside the freeze period, normal update behavior applies. Leap
1826// years are ignored in freeze period calculations, in particular: * If
1827// Feb. 29th is set as the start or end date of a freeze period, the
1828// freeze period will start or end on Feb. 28th instead. * When a
1829// device’s system clock reads Feb. 29th, it’s treated as Feb. 28th.
1830// * When calculating the number of days in a freeze period or the time
1831// between two freeze periods, Feb. 29th is ignored and not counted as a
1832// day.
1833type FreezePeriod struct {
1834	// EndDate: The end date (inclusive) of the freeze period. Must be no
1835	// later than 90 days from the start date. If the end date is earlier
1836	// than the start date, the freeze period is considered wrapping
1837	// year-end. Note: year must not be set. For example, {"month":
1838	// 1,"date": 30}.
1839	EndDate *Date `json:"endDate,omitempty"`
1840
1841	// StartDate: The start date (inclusive) of the freeze period. Note:
1842	// year must not be set. For example, {"month": 1,"date": 30}.
1843	StartDate *Date `json:"startDate,omitempty"`
1844
1845	// ForceSendFields is a list of field names (e.g. "EndDate") to
1846	// unconditionally include in API requests. By default, fields with
1847	// empty or default values are omitted from API requests. However, any
1848	// non-pointer, non-interface field appearing in ForceSendFields will be
1849	// sent to the server regardless of whether the field is empty or not.
1850	// This may be used to include empty fields in Patch requests.
1851	ForceSendFields []string `json:"-"`
1852
1853	// NullFields is a list of field names (e.g. "EndDate") to include in
1854	// API requests with the JSON null value. By default, fields with empty
1855	// values are omitted from API requests. However, any field with an
1856	// empty value appearing in NullFields will be sent to the server as
1857	// null. It is an error if a field in this list has a non-empty value.
1858	// This may be used to include null fields in Patch requests.
1859	NullFields []string `json:"-"`
1860}
1861
1862func (s *FreezePeriod) MarshalJSON() ([]byte, error) {
1863	type NoMethod FreezePeriod
1864	raw := NoMethod(*s)
1865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1866}
1867
1868// HardwareInfo: Information about device hardware. The fields related
1869// to temperature thresholds are only available if hardwareStatusEnabled
1870// is true in the device's policy.
1871type HardwareInfo struct {
1872	// BatteryShutdownTemperatures: Battery shutdown temperature thresholds
1873	// in Celsius for each battery on the device.
1874	BatteryShutdownTemperatures []float64 `json:"batteryShutdownTemperatures,omitempty"`
1875
1876	// BatteryThrottlingTemperatures: Battery throttling temperature
1877	// thresholds in Celsius for each battery on the device.
1878	BatteryThrottlingTemperatures []float64 `json:"batteryThrottlingTemperatures,omitempty"`
1879
1880	// Brand: Brand of the device. For example, Google.
1881	Brand string `json:"brand,omitempty"`
1882
1883	// CpuShutdownTemperatures: CPU shutdown temperature thresholds in
1884	// Celsius for each CPU on the device.
1885	CpuShutdownTemperatures []float64 `json:"cpuShutdownTemperatures,omitempty"`
1886
1887	// CpuThrottlingTemperatures: CPU throttling temperature thresholds in
1888	// Celsius for each CPU on the device.
1889	CpuThrottlingTemperatures []float64 `json:"cpuThrottlingTemperatures,omitempty"`
1890
1891	// DeviceBasebandVersion: Baseband version. For example,
1892	// MDM9625_104662.22.05.34p.
1893	DeviceBasebandVersion string `json:"deviceBasebandVersion,omitempty"`
1894
1895	// GpuShutdownTemperatures: GPU shutdown temperature thresholds in
1896	// Celsius for each GPU on the device.
1897	GpuShutdownTemperatures []float64 `json:"gpuShutdownTemperatures,omitempty"`
1898
1899	// GpuThrottlingTemperatures: GPU throttling temperature thresholds in
1900	// Celsius for each GPU on the device.
1901	GpuThrottlingTemperatures []float64 `json:"gpuThrottlingTemperatures,omitempty"`
1902
1903	// Hardware: Name of the hardware. For example, Angler.
1904	Hardware string `json:"hardware,omitempty"`
1905
1906	// Manufacturer: Manufacturer. For example, Motorola.
1907	Manufacturer string `json:"manufacturer,omitempty"`
1908
1909	// Model: The model of the device. For example, Asus Nexus 7.
1910	Model string `json:"model,omitempty"`
1911
1912	// SerialNumber: The device serial number.
1913	SerialNumber string `json:"serialNumber,omitempty"`
1914
1915	// SkinShutdownTemperatures: Device skin shutdown temperature thresholds
1916	// in Celsius.
1917	SkinShutdownTemperatures []float64 `json:"skinShutdownTemperatures,omitempty"`
1918
1919	// SkinThrottlingTemperatures: Device skin throttling temperature
1920	// thresholds in Celsius.
1921	SkinThrottlingTemperatures []float64 `json:"skinThrottlingTemperatures,omitempty"`
1922
1923	// ForceSendFields is a list of field names (e.g.
1924	// "BatteryShutdownTemperatures") to unconditionally include in API
1925	// requests. By default, fields with empty or default values are omitted
1926	// from API requests. However, any non-pointer, non-interface field
1927	// appearing in ForceSendFields will be sent to the server regardless of
1928	// whether the field is empty or not. This may be used to include empty
1929	// fields in Patch requests.
1930	ForceSendFields []string `json:"-"`
1931
1932	// NullFields is a list of field names (e.g.
1933	// "BatteryShutdownTemperatures") to include in API requests with the
1934	// JSON null value. By default, fields with empty values are omitted
1935	// from API requests. However, any field with an empty value appearing
1936	// in NullFields will be sent to the server as null. It is an error if a
1937	// field in this list has a non-empty value. This may be used to include
1938	// null fields in Patch requests.
1939	NullFields []string `json:"-"`
1940}
1941
1942func (s *HardwareInfo) MarshalJSON() ([]byte, error) {
1943	type NoMethod HardwareInfo
1944	raw := NoMethod(*s)
1945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1946}
1947
1948// HardwareStatus: Hardware status. Temperatures may be compared to the
1949// temperature thresholds available in hardwareInfo to determine
1950// hardware health.
1951type HardwareStatus struct {
1952	// BatteryTemperatures: Current battery temperatures in Celsius for each
1953	// battery on the device.
1954	BatteryTemperatures []float64 `json:"batteryTemperatures,omitempty"`
1955
1956	// CpuTemperatures: Current CPU temperatures in Celsius for each CPU on
1957	// the device.
1958	CpuTemperatures []float64 `json:"cpuTemperatures,omitempty"`
1959
1960	// CpuUsages: CPU usages in percentage for each core available on the
1961	// device. Usage is 0 for each unplugged core. Empty array implies that
1962	// CPU usage is not supported in the system.
1963	CpuUsages []float64 `json:"cpuUsages,omitempty"`
1964
1965	// CreateTime: The time the measurements were taken.
1966	CreateTime string `json:"createTime,omitempty"`
1967
1968	// FanSpeeds: Fan speeds in RPM for each fan on the device. Empty array
1969	// means that there are no fans or fan speed is not supported on the
1970	// system.
1971	FanSpeeds []float64 `json:"fanSpeeds,omitempty"`
1972
1973	// GpuTemperatures: Current GPU temperatures in Celsius for each GPU on
1974	// the device.
1975	GpuTemperatures []float64 `json:"gpuTemperatures,omitempty"`
1976
1977	// SkinTemperatures: Current device skin temperatures in Celsius.
1978	SkinTemperatures []float64 `json:"skinTemperatures,omitempty"`
1979
1980	// ForceSendFields is a list of field names (e.g. "BatteryTemperatures")
1981	// to unconditionally include in API requests. By default, fields with
1982	// empty or default values are omitted from API requests. However, any
1983	// non-pointer, non-interface field appearing in ForceSendFields will be
1984	// sent to the server regardless of whether the field is empty or not.
1985	// This may be used to include empty fields in Patch requests.
1986	ForceSendFields []string `json:"-"`
1987
1988	// NullFields is a list of field names (e.g. "BatteryTemperatures") to
1989	// include in API requests with the JSON null value. By default, fields
1990	// with empty values are omitted from API requests. However, any field
1991	// with an empty value appearing in NullFields will be sent to the
1992	// server as null. It is an error if a field in this list has a
1993	// non-empty value. This may be used to include null fields in Patch
1994	// requests.
1995	NullFields []string `json:"-"`
1996}
1997
1998func (s *HardwareStatus) MarshalJSON() ([]byte, error) {
1999	type NoMethod HardwareStatus
2000	raw := NoMethod(*s)
2001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2002}
2003
2004// IssueCommandResponse: Response on issuing a command. This is
2005// currently empty as a placeholder.
2006type IssueCommandResponse struct {
2007}
2008
2009// KeyedAppState: Keyed app state reported by the app.
2010type KeyedAppState struct {
2011	// CreateTime: The creation time of the app state on the device.
2012	CreateTime string `json:"createTime,omitempty"`
2013
2014	// Data: Optionally, a machine-readable value to be read by the EMM. For
2015	// example, setting values that the admin can choose to query against in
2016	// the EMM console (e.g. “notify me if the battery_warning data <
2017	// 10”).
2018	Data string `json:"data,omitempty"`
2019
2020	// Key: The key for the app state. Acts as a point of reference for what
2021	// the app is providing state for. For example, when providing managed
2022	// configuration feedback, this key could be the managed configuration
2023	// key.
2024	Key string `json:"key,omitempty"`
2025
2026	// LastUpdateTime: The time the app state was most recently updated.
2027	LastUpdateTime string `json:"lastUpdateTime,omitempty"`
2028
2029	// Message: Optionally, a free-form message string to explain the app
2030	// state. If the state was triggered by a particular value (e.g. a
2031	// managed configuration value), it should be included in the message.
2032	Message string `json:"message,omitempty"`
2033
2034	// Severity: The severity of the app state.
2035	//
2036	// Possible values:
2037	//   "SEVERITY_UNSPECIFIED" - Unspecified severity level.
2038	//   "INFO" - Information severity level.
2039	//   "ERROR" - Error severity level. This should only be set for genuine
2040	// error conditions that a management organization needs to take action
2041	// to fix.
2042	Severity string `json:"severity,omitempty"`
2043
2044	// ForceSendFields is a list of field names (e.g. "CreateTime") to
2045	// unconditionally include in API requests. By default, fields with
2046	// empty or default values are omitted from API requests. However, any
2047	// non-pointer, non-interface field appearing in ForceSendFields will be
2048	// sent to the server regardless of whether the field is empty or not.
2049	// This may be used to include empty fields in Patch requests.
2050	ForceSendFields []string `json:"-"`
2051
2052	// NullFields is a list of field names (e.g. "CreateTime") to include in
2053	// API requests with the JSON null value. By default, fields with empty
2054	// values are omitted from API requests. However, any field with an
2055	// empty value appearing in NullFields will be sent to the server as
2056	// null. It is an error if a field in this list has a non-empty value.
2057	// This may be used to include null fields in Patch requests.
2058	NullFields []string `json:"-"`
2059}
2060
2061func (s *KeyedAppState) MarshalJSON() ([]byte, error) {
2062	type NoMethod KeyedAppState
2063	raw := NoMethod(*s)
2064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2065}
2066
2067// KioskCustomization: Settings controlling the behavior of a device in
2068// kiosk mode. To enable kiosk mode, set kioskCustomLauncherEnabled to
2069// true or specify an app in the policy with installType KIOSK.
2070type KioskCustomization struct {
2071	// DeviceSettings: Specifies whether the Settings app is allowed in
2072	// kiosk mode.
2073	//
2074	// Possible values:
2075	//   "DEVICE_SETTINGS_UNSPECIFIED" - Unspecified, defaults to
2076	// SETTINGS_ACCESS_ALLOWED.
2077	//   "SETTINGS_ACCESS_ALLOWED" - Access to the Settings app is allowed
2078	// in kiosk mode.
2079	//   "SETTINGS_ACCESS_BLOCKED" - Access to the Settings app is not
2080	// allowed in kiosk mode.
2081	DeviceSettings string `json:"deviceSettings,omitempty"`
2082
2083	// PowerButtonActions: Sets the behavior of a device in kiosk mode when
2084	// a user presses and holds (long-presses) the Power button.
2085	//
2086	// Possible values:
2087	//   "POWER_BUTTON_ACTIONS_UNSPECIFIED" - Unspecified, defaults to
2088	// POWER_BUTTON_AVAILABLE.
2089	//   "POWER_BUTTON_AVAILABLE" - The power menu (e.g. Power off, Restart)
2090	// is shown when a user long-presses the Power button of a device in
2091	// kiosk mode.
2092	//   "POWER_BUTTON_BLOCKED" - The power menu (e.g. Power off, Restart)
2093	// is not shown when a user long-presses the Power button of a device in
2094	// kiosk mode. Note: this may prevent users from turning off the device.
2095	PowerButtonActions string `json:"powerButtonActions,omitempty"`
2096
2097	// StatusBar: Specifies whether system info and notifications are
2098	// disabled in kiosk mode.
2099	//
2100	// Possible values:
2101	//   "STATUS_BAR_UNSPECIFIED" - Unspecified, defaults to
2102	// INFO_AND_NOTIFICATIONS_DISABLED.
2103	//   "NOTIFICATIONS_AND_SYSTEM_INFO_ENABLED" - System info and
2104	// notifications are shown on the status bar in kiosk mode.Note: For
2105	// this policy to take effect, the device's home button must be enabled
2106	// using kioskCustomization.systemNavigation.
2107	//   "NOTIFICATIONS_AND_SYSTEM_INFO_DISABLED" - System info and
2108	// notifications are disabled in kiosk mode.
2109	//   "SYSTEM_INFO_ONLY" - Only system info is shown on the status bar.
2110	StatusBar string `json:"statusBar,omitempty"`
2111
2112	// SystemErrorWarnings: Specifies whether system error dialogs for
2113	// crashed or unresponsive apps are blocked in kiosk mode. When blocked,
2114	// the system will force-stop the app as if the user chooses the "close
2115	// app" option on the UI.
2116	//
2117	// Possible values:
2118	//   "SYSTEM_ERROR_WARNINGS_UNSPECIFIED" - Unspecified, defaults to
2119	// ERROR_AND_WARNINGS_MUTED.
2120	//   "ERROR_AND_WARNINGS_ENABLED" - All system error dialogs such as
2121	// crash and app not responding (ANR) are displayed.
2122	//   "ERROR_AND_WARNINGS_MUTED" - All system error dialogs, such as
2123	// crash and app not responding (ANR) are blocked. When blocked, the
2124	// system force-stops the app as if the user closes the app from the UI.
2125	SystemErrorWarnings string `json:"systemErrorWarnings,omitempty"`
2126
2127	// SystemNavigation: Specifies which navigation features are enabled
2128	// (e.g. Home, Overview buttons) in kiosk mode.
2129	//
2130	// Possible values:
2131	//   "SYSTEM_NAVIGATION_UNSPECIFIED" - Unspecified, defaults to
2132	// NAVIGATION_DISABLED.
2133	//   "NAVIGATION_ENABLED" - Home and overview buttons are enabled.
2134	//   "NAVIGATION_DISABLED" - The home and Overview buttons are not
2135	// accessible.
2136	//   "HOME_BUTTON_ONLY" - Only the home button is enabled.
2137	SystemNavigation string `json:"systemNavigation,omitempty"`
2138
2139	// ForceSendFields is a list of field names (e.g. "DeviceSettings") to
2140	// unconditionally include in API requests. By default, fields with
2141	// empty or default values are omitted from API requests. However, any
2142	// non-pointer, non-interface field appearing in ForceSendFields will be
2143	// sent to the server regardless of whether the field is empty or not.
2144	// This may be used to include empty fields in Patch requests.
2145	ForceSendFields []string `json:"-"`
2146
2147	// NullFields is a list of field names (e.g. "DeviceSettings") to
2148	// include in API requests with the JSON null value. By default, fields
2149	// with empty values are omitted from API requests. However, any field
2150	// with an empty value appearing in NullFields will be sent to the
2151	// server as null. It is an error if a field in this list has a
2152	// non-empty value. This may be used to include null fields in Patch
2153	// requests.
2154	NullFields []string `json:"-"`
2155}
2156
2157func (s *KioskCustomization) MarshalJSON() ([]byte, error) {
2158	type NoMethod KioskCustomization
2159	raw := NoMethod(*s)
2160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2161}
2162
2163// LaunchAppAction: An action to launch an app.
2164type LaunchAppAction struct {
2165	// PackageName: Package name of app to be launched
2166	PackageName string `json:"packageName,omitempty"`
2167
2168	// ForceSendFields is a list of field names (e.g. "PackageName") to
2169	// unconditionally include in API requests. By default, fields with
2170	// empty or default values are omitted from API requests. However, any
2171	// non-pointer, non-interface field appearing in ForceSendFields will be
2172	// sent to the server regardless of whether the field is empty or not.
2173	// This may be used to include empty fields in Patch requests.
2174	ForceSendFields []string `json:"-"`
2175
2176	// NullFields is a list of field names (e.g. "PackageName") to include
2177	// in API requests with the JSON null value. By default, fields with
2178	// empty values are omitted from API requests. However, any field with
2179	// an empty value appearing in NullFields will be sent to the server as
2180	// null. It is an error if a field in this list has a non-empty value.
2181	// This may be used to include null fields in Patch requests.
2182	NullFields []string `json:"-"`
2183}
2184
2185func (s *LaunchAppAction) MarshalJSON() ([]byte, error) {
2186	type NoMethod LaunchAppAction
2187	raw := NoMethod(*s)
2188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2189}
2190
2191// ListDevicesResponse: Response to a request to list devices for a
2192// given enterprise.
2193type ListDevicesResponse struct {
2194	// Devices: The list of devices.
2195	Devices []*Device `json:"devices,omitempty"`
2196
2197	// NextPageToken: If there are more results, a token to retrieve next
2198	// page of results.
2199	NextPageToken string `json:"nextPageToken,omitempty"`
2200
2201	// ServerResponse contains the HTTP response code and headers from the
2202	// server.
2203	googleapi.ServerResponse `json:"-"`
2204
2205	// ForceSendFields is a list of field names (e.g. "Devices") to
2206	// unconditionally include in API requests. By default, fields with
2207	// empty or default values are omitted from API requests. However, any
2208	// non-pointer, non-interface field appearing in ForceSendFields will be
2209	// sent to the server regardless of whether the field is empty or not.
2210	// This may be used to include empty fields in Patch requests.
2211	ForceSendFields []string `json:"-"`
2212
2213	// NullFields is a list of field names (e.g. "Devices") to include in
2214	// API requests with the JSON null value. By default, fields with empty
2215	// values are omitted from API requests. However, any field with an
2216	// empty value appearing in NullFields will be sent to the server as
2217	// null. It is an error if a field in this list has a non-empty value.
2218	// This may be used to include null fields in Patch requests.
2219	NullFields []string `json:"-"`
2220}
2221
2222func (s *ListDevicesResponse) MarshalJSON() ([]byte, error) {
2223	type NoMethod ListDevicesResponse
2224	raw := NoMethod(*s)
2225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2226}
2227
2228// ListEnterprisesResponse: Response to a request to list enterprises.
2229type ListEnterprisesResponse struct {
2230	// Enterprises: The list of enterprises.
2231	Enterprises []*Enterprise `json:"enterprises,omitempty"`
2232
2233	// NextPageToken: If there are more results, a token to retrieve next
2234	// page of results.
2235	NextPageToken string `json:"nextPageToken,omitempty"`
2236
2237	// ServerResponse contains the HTTP response code and headers from the
2238	// server.
2239	googleapi.ServerResponse `json:"-"`
2240
2241	// ForceSendFields is a list of field names (e.g. "Enterprises") to
2242	// unconditionally include in API requests. By default, fields with
2243	// empty or default values are omitted from API requests. However, any
2244	// non-pointer, non-interface field appearing in ForceSendFields will be
2245	// sent to the server regardless of whether the field is empty or not.
2246	// This may be used to include empty fields in Patch requests.
2247	ForceSendFields []string `json:"-"`
2248
2249	// NullFields is a list of field names (e.g. "Enterprises") to include
2250	// in API requests with the JSON null value. By default, fields with
2251	// empty values are omitted from API requests. However, any field with
2252	// an empty value appearing in NullFields will be sent to the server as
2253	// null. It is an error if a field in this list has a non-empty value.
2254	// This may be used to include null fields in Patch requests.
2255	NullFields []string `json:"-"`
2256}
2257
2258func (s *ListEnterprisesResponse) MarshalJSON() ([]byte, error) {
2259	type NoMethod ListEnterprisesResponse
2260	raw := NoMethod(*s)
2261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2262}
2263
2264// ListOperationsResponse: The response message for
2265// Operations.ListOperations.
2266type ListOperationsResponse struct {
2267	// NextPageToken: The standard List next-page token.
2268	NextPageToken string `json:"nextPageToken,omitempty"`
2269
2270	// Operations: A list of operations that matches the specified filter in
2271	// the request.
2272	Operations []*Operation `json:"operations,omitempty"`
2273
2274	// ServerResponse contains the HTTP response code and headers from the
2275	// server.
2276	googleapi.ServerResponse `json:"-"`
2277
2278	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2279	// unconditionally include in API requests. By default, fields with
2280	// empty or default values are omitted from API requests. However, any
2281	// non-pointer, non-interface field appearing in ForceSendFields will be
2282	// sent to the server regardless of whether the field is empty or not.
2283	// This may be used to include empty fields in Patch requests.
2284	ForceSendFields []string `json:"-"`
2285
2286	// NullFields is a list of field names (e.g. "NextPageToken") to include
2287	// in API requests with the JSON null value. By default, fields with
2288	// empty values are omitted from API requests. However, any field with
2289	// an empty value appearing in NullFields will be sent to the server as
2290	// null. It is an error if a field in this list has a non-empty value.
2291	// This may be used to include null fields in Patch requests.
2292	NullFields []string `json:"-"`
2293}
2294
2295func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
2296	type NoMethod ListOperationsResponse
2297	raw := NoMethod(*s)
2298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2299}
2300
2301// ListPoliciesResponse: Response to a request to list policies for a
2302// given enterprise.
2303type ListPoliciesResponse struct {
2304	// NextPageToken: If there are more results, a token to retrieve next
2305	// page of results.
2306	NextPageToken string `json:"nextPageToken,omitempty"`
2307
2308	// Policies: The list of policies.
2309	Policies []*Policy `json:"policies,omitempty"`
2310
2311	// ServerResponse contains the HTTP response code and headers from the
2312	// server.
2313	googleapi.ServerResponse `json:"-"`
2314
2315	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2316	// unconditionally include in API requests. By default, fields with
2317	// empty or default values are omitted from API requests. However, any
2318	// non-pointer, non-interface field appearing in ForceSendFields will be
2319	// sent to the server regardless of whether the field is empty or not.
2320	// This may be used to include empty fields in Patch requests.
2321	ForceSendFields []string `json:"-"`
2322
2323	// NullFields is a list of field names (e.g. "NextPageToken") to include
2324	// in API requests with the JSON null value. By default, fields with
2325	// empty values are omitted from API requests. However, any field with
2326	// an empty value appearing in NullFields will be sent to the server as
2327	// null. It is an error if a field in this list has a non-empty value.
2328	// This may be used to include null fields in Patch requests.
2329	NullFields []string `json:"-"`
2330}
2331
2332func (s *ListPoliciesResponse) MarshalJSON() ([]byte, error) {
2333	type NoMethod ListPoliciesResponse
2334	raw := NoMethod(*s)
2335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2336}
2337
2338// ListWebAppsResponse: Response to a request to list web apps for a
2339// given enterprise.
2340type ListWebAppsResponse struct {
2341	// NextPageToken: If there are more results, a token to retrieve next
2342	// page of results.
2343	NextPageToken string `json:"nextPageToken,omitempty"`
2344
2345	// WebApps: The list of web apps.
2346	WebApps []*WebApp `json:"webApps,omitempty"`
2347
2348	// ServerResponse contains the HTTP response code and headers from the
2349	// server.
2350	googleapi.ServerResponse `json:"-"`
2351
2352	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2353	// unconditionally include in API requests. By default, fields with
2354	// empty or default values are omitted from API requests. However, any
2355	// non-pointer, non-interface field appearing in ForceSendFields will be
2356	// sent to the server regardless of whether the field is empty or not.
2357	// This may be used to include empty fields in Patch requests.
2358	ForceSendFields []string `json:"-"`
2359
2360	// NullFields is a list of field names (e.g. "NextPageToken") to include
2361	// in API requests with the JSON null value. By default, fields with
2362	// empty values are omitted from API requests. However, any field with
2363	// an empty value appearing in NullFields will be sent to the server as
2364	// null. It is an error if a field in this list has a non-empty value.
2365	// This may be used to include null fields in Patch requests.
2366	NullFields []string `json:"-"`
2367}
2368
2369func (s *ListWebAppsResponse) MarshalJSON() ([]byte, error) {
2370	type NoMethod ListWebAppsResponse
2371	raw := NoMethod(*s)
2372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2373}
2374
2375// ManagedConfigurationTemplate: The managed configurations template for
2376// the app, saved from the managed configurations iframe.
2377type ManagedConfigurationTemplate struct {
2378	// ConfigurationVariables: Optional, a map containing configuration
2379	// variables defined for the configuration.
2380	ConfigurationVariables map[string]string `json:"configurationVariables,omitempty"`
2381
2382	// TemplateId: The ID of the managed configurations template.
2383	TemplateId string `json:"templateId,omitempty"`
2384
2385	// ForceSendFields is a list of field names (e.g.
2386	// "ConfigurationVariables") to unconditionally include in API requests.
2387	// By default, fields with empty or default values are omitted from API
2388	// requests. However, any non-pointer, non-interface field appearing in
2389	// ForceSendFields will be sent to the server regardless of whether the
2390	// field is empty or not. This may be used to include empty fields in
2391	// Patch requests.
2392	ForceSendFields []string `json:"-"`
2393
2394	// NullFields is a list of field names (e.g. "ConfigurationVariables")
2395	// to include in API requests with the JSON null value. By default,
2396	// fields with empty values are omitted from API requests. However, any
2397	// field with an empty value appearing in NullFields will be sent to the
2398	// server as null. It is an error if a field in this list has a
2399	// non-empty value. This may be used to include null fields in Patch
2400	// requests.
2401	NullFields []string `json:"-"`
2402}
2403
2404func (s *ManagedConfigurationTemplate) MarshalJSON() ([]byte, error) {
2405	type NoMethod ManagedConfigurationTemplate
2406	raw := NoMethod(*s)
2407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2408}
2409
2410// ManagedProperty: Managed property.
2411type ManagedProperty struct {
2412	// DefaultValue: The default value of the property. BUNDLE_ARRAY
2413	// properties don't have a default value.
2414	DefaultValue interface{} `json:"defaultValue,omitempty"`
2415
2416	// Description: A longer description of the property, providing more
2417	// detail of what it affects. Localized.
2418	Description string `json:"description,omitempty"`
2419
2420	// Entries: For CHOICE or MULTISELECT properties, the list of possible
2421	// entries.
2422	Entries []*ManagedPropertyEntry `json:"entries,omitempty"`
2423
2424	// Key: The unique key that the app uses to identify the property, e.g.
2425	// "com.google.android.gm.fieldname".
2426	Key string `json:"key,omitempty"`
2427
2428	// NestedProperties: For BUNDLE_ARRAY properties, the list of nested
2429	// properties. A BUNDLE_ARRAY property is at most two levels deep.
2430	NestedProperties []*ManagedProperty `json:"nestedProperties,omitempty"`
2431
2432	// Title: The name of the property. Localized.
2433	Title string `json:"title,omitempty"`
2434
2435	// Type: The type of the property.
2436	//
2437	// Possible values:
2438	//   "MANAGED_PROPERTY_TYPE_UNSPECIFIED" - Not used.
2439	//   "BOOL" - A property of boolean type.
2440	//   "STRING" - A property of string type.
2441	//   "INTEGER" - A property of integer type.
2442	//   "CHOICE" - A choice of one item from a set.
2443	//   "MULTISELECT" - A choice of multiple items from a set.
2444	//   "HIDDEN" - A hidden restriction of string type (the default value
2445	// can be used to pass along information that can't be modified, such as
2446	// a version code).
2447	//   "BUNDLE" - A bundle of properties
2448	//   "BUNDLE_ARRAY" - An array of property bundles.
2449	Type string `json:"type,omitempty"`
2450
2451	// ForceSendFields is a list of field names (e.g. "DefaultValue") to
2452	// unconditionally include in API requests. By default, fields with
2453	// empty or default values are omitted from API requests. However, any
2454	// non-pointer, non-interface field appearing in ForceSendFields will be
2455	// sent to the server regardless of whether the field is empty or not.
2456	// This may be used to include empty fields in Patch requests.
2457	ForceSendFields []string `json:"-"`
2458
2459	// NullFields is a list of field names (e.g. "DefaultValue") to include
2460	// in API requests with the JSON null value. By default, fields with
2461	// empty values are omitted from API requests. However, any field with
2462	// an empty value appearing in NullFields will be sent to the server as
2463	// null. It is an error if a field in this list has a non-empty value.
2464	// This may be used to include null fields in Patch requests.
2465	NullFields []string `json:"-"`
2466}
2467
2468func (s *ManagedProperty) MarshalJSON() ([]byte, error) {
2469	type NoMethod ManagedProperty
2470	raw := NoMethod(*s)
2471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2472}
2473
2474// ManagedPropertyEntry: An entry of a managed property.
2475type ManagedPropertyEntry struct {
2476	// Name: The human-readable name of the value. Localized.
2477	Name string `json:"name,omitempty"`
2478
2479	// Value: The machine-readable value of the entry, which should be used
2480	// in the configuration. Not localized.
2481	Value string `json:"value,omitempty"`
2482
2483	// ForceSendFields is a list of field names (e.g. "Name") to
2484	// unconditionally include in API requests. By default, fields with
2485	// empty or default values are omitted from API requests. However, any
2486	// non-pointer, non-interface field appearing in ForceSendFields will be
2487	// sent to the server regardless of whether the field is empty or not.
2488	// This may be used to include empty fields in Patch requests.
2489	ForceSendFields []string `json:"-"`
2490
2491	// NullFields is a list of field names (e.g. "Name") to include in API
2492	// requests with the JSON null value. By default, fields with empty
2493	// values are omitted from API requests. However, any field with an
2494	// empty value appearing in NullFields will be sent to the server as
2495	// null. It is an error if a field in this list has a non-empty value.
2496	// This may be used to include null fields in Patch requests.
2497	NullFields []string `json:"-"`
2498}
2499
2500func (s *ManagedPropertyEntry) MarshalJSON() ([]byte, error) {
2501	type NoMethod ManagedPropertyEntry
2502	raw := NoMethod(*s)
2503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2504}
2505
2506// MemoryEvent: An event related to memory and storage measurements.
2507type MemoryEvent struct {
2508	// ByteCount: The number of free bytes in the medium, or for
2509	// EXTERNAL_STORAGE_DETECTED, the total capacity in bytes of the storage
2510	// medium.
2511	ByteCount int64 `json:"byteCount,omitempty,string"`
2512
2513	// CreateTime: The creation time of the event.
2514	CreateTime string `json:"createTime,omitempty"`
2515
2516	// EventType: Event type.
2517	//
2518	// Possible values:
2519	//   "MEMORY_EVENT_TYPE_UNSPECIFIED" - Unspecified. No events have this
2520	// type.
2521	//   "RAM_MEASURED" - Free space in RAM was measured.
2522	//   "INTERNAL_STORAGE_MEASURED" - Free space in internal storage was
2523	// measured.
2524	//   "EXTERNAL_STORAGE_DETECTED" - A new external storage medium was
2525	// detected. The reported byte count is the total capacity of the
2526	// storage medium.
2527	//   "EXTERNAL_STORAGE_REMOVED" - An external storage medium was
2528	// removed. The reported byte count is zero.
2529	//   "EXTERNAL_STORAGE_MEASURED" - Free space in an external storage
2530	// medium was measured.
2531	EventType string `json:"eventType,omitempty"`
2532
2533	// ForceSendFields is a list of field names (e.g. "ByteCount") to
2534	// unconditionally include in API requests. By default, fields with
2535	// empty or default values are omitted from API requests. However, any
2536	// non-pointer, non-interface field appearing in ForceSendFields will be
2537	// sent to the server regardless of whether the field is empty or not.
2538	// This may be used to include empty fields in Patch requests.
2539	ForceSendFields []string `json:"-"`
2540
2541	// NullFields is a list of field names (e.g. "ByteCount") to include in
2542	// API requests with the JSON null value. By default, fields with empty
2543	// values are omitted from API requests. However, any field with an
2544	// empty value appearing in NullFields will be sent to the server as
2545	// null. It is an error if a field in this list has a non-empty value.
2546	// This may be used to include null fields in Patch requests.
2547	NullFields []string `json:"-"`
2548}
2549
2550func (s *MemoryEvent) MarshalJSON() ([]byte, error) {
2551	type NoMethod MemoryEvent
2552	raw := NoMethod(*s)
2553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2554}
2555
2556// MemoryInfo: Information about device memory and storage.
2557type MemoryInfo struct {
2558	// TotalInternalStorage: Total internal storage on device in bytes.
2559	TotalInternalStorage int64 `json:"totalInternalStorage,omitempty,string"`
2560
2561	// TotalRam: Total RAM on device in bytes.
2562	TotalRam int64 `json:"totalRam,omitempty,string"`
2563
2564	// ForceSendFields is a list of field names (e.g.
2565	// "TotalInternalStorage") to unconditionally include in API requests.
2566	// By default, fields with empty or default values are omitted from API
2567	// requests. However, any non-pointer, non-interface field appearing in
2568	// ForceSendFields will be sent to the server regardless of whether the
2569	// field is empty or not. This may be used to include empty fields in
2570	// Patch requests.
2571	ForceSendFields []string `json:"-"`
2572
2573	// NullFields is a list of field names (e.g. "TotalInternalStorage") to
2574	// include in API requests with the JSON null value. By default, fields
2575	// with empty values are omitted from API requests. However, any field
2576	// with an empty value appearing in NullFields will be sent to the
2577	// server as null. It is an error if a field in this list has a
2578	// non-empty value. This may be used to include null fields in Patch
2579	// requests.
2580	NullFields []string `json:"-"`
2581}
2582
2583func (s *MemoryInfo) MarshalJSON() ([]byte, error) {
2584	type NoMethod MemoryInfo
2585	raw := NoMethod(*s)
2586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2587}
2588
2589// NetworkInfo: Device network info.
2590type NetworkInfo struct {
2591	// Imei: IMEI number of the GSM device. For example, A1000031212.
2592	Imei string `json:"imei,omitempty"`
2593
2594	// Meid: MEID number of the CDMA device. For example, A00000292788E1.
2595	Meid string `json:"meid,omitempty"`
2596
2597	// NetworkOperatorName: Alphabetic name of current registered operator.
2598	// For example, Vodafone.
2599	NetworkOperatorName string `json:"networkOperatorName,omitempty"`
2600
2601	// TelephonyInfos: Provides telephony information associated with each
2602	// SIM card on the device. Only supported on fully managed devices
2603	// starting from Android API level 23.
2604	TelephonyInfos []*TelephonyInfo `json:"telephonyInfos,omitempty"`
2605
2606	// WifiMacAddress: Wi-Fi MAC address of the device. For example,
2607	// 7c:11:11:11:11:11.
2608	WifiMacAddress string `json:"wifiMacAddress,omitempty"`
2609
2610	// ForceSendFields is a list of field names (e.g. "Imei") to
2611	// unconditionally include in API requests. By default, fields with
2612	// empty or default values are omitted from API requests. However, any
2613	// non-pointer, non-interface field appearing in ForceSendFields will be
2614	// sent to the server regardless of whether the field is empty or not.
2615	// This may be used to include empty fields in Patch requests.
2616	ForceSendFields []string `json:"-"`
2617
2618	// NullFields is a list of field names (e.g. "Imei") to include in API
2619	// requests with the JSON null value. By default, fields with empty
2620	// values are omitted from API requests. However, any field with an
2621	// empty value appearing in NullFields will be sent to the server as
2622	// null. It is an error if a field in this list has a non-empty value.
2623	// This may be used to include null fields in Patch requests.
2624	NullFields []string `json:"-"`
2625}
2626
2627func (s *NetworkInfo) MarshalJSON() ([]byte, error) {
2628	type NoMethod NetworkInfo
2629	raw := NoMethod(*s)
2630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2631}
2632
2633// NonComplianceDetail: Provides detail about non-compliance with a
2634// policy setting.
2635type NonComplianceDetail struct {
2636	// CurrentValue: If the policy setting could not be applied, the current
2637	// value of the setting on the device.
2638	CurrentValue interface{} `json:"currentValue,omitempty"`
2639
2640	// FieldPath: For settings with nested fields, if a particular nested
2641	// field is out of compliance, this specifies the full path to the
2642	// offending field. The path is formatted in the same way the policy
2643	// JSON field would be referenced in JavaScript, that is: 1) For
2644	// object-typed fields, the field name is followed by a dot then by a
2645	// subfield name. 2) For array-typed fields, the field name is followed
2646	// by the array index enclosed in brackets. For example, to indicate a
2647	// problem with the url field in the externalData field in the 3rd
2648	// application, the path would be applications[2].externalData.url
2649	FieldPath string `json:"fieldPath,omitempty"`
2650
2651	// InstallationFailureReason: If package_name is set and the
2652	// non-compliance reason is APP_NOT_INSTALLED or APP_NOT_UPDATED, the
2653	// detailed reason the app can't be installed or updated.
2654	//
2655	// Possible values:
2656	//   "INSTALLATION_FAILURE_REASON_UNSPECIFIED" - This value is
2657	// disallowed.
2658	//   "INSTALLATION_FAILURE_REASON_UNKNOWN" - An unknown condition is
2659	// preventing the app from being installed. Some potential reasons are
2660	// that the device doesn't have enough storage, the device network
2661	// connection is unreliable, or the installation is taking longer than
2662	// expected. The installation will be retried automatically.
2663	//   "IN_PROGRESS" - The installation is still in progress.
2664	//   "NOT_FOUND" - The app was not found in Play.
2665	//   "NOT_COMPATIBLE_WITH_DEVICE" - The app is incompatible with the
2666	// device.
2667	//   "NOT_APPROVED" - The app has not been approved by the admin.
2668	//   "PERMISSIONS_NOT_ACCEPTED" - The app has new permissions that have
2669	// not been accepted by the admin.
2670	//   "NOT_AVAILABLE_IN_COUNTRY" - The app is not available in the user's
2671	// country.
2672	//   "NO_LICENSES_REMAINING" - There are no licenses available to assign
2673	// to the user.
2674	//   "NOT_ENROLLED" - The enterprise is no longer enrolled with Managed
2675	// Google Play or the admin has not accepted the latest Managed Google
2676	// Play Terms of Service.
2677	//   "USER_INVALID" - The user is no longer valid. The user may have
2678	// been deleted or disabled.
2679	InstallationFailureReason string `json:"installationFailureReason,omitempty"`
2680
2681	// NonComplianceReason: The reason the device is not in compliance with
2682	// the setting.
2683	//
2684	// Possible values:
2685	//   "NON_COMPLIANCE_REASON_UNSPECIFIED" - This value is disallowed.
2686	//   "API_LEVEL" - The setting is not supported in the API level of the
2687	// Android version running on the device.
2688	//   "MANAGEMENT_MODE" - The management mode (profile owner, device
2689	// owner, etc.) doesn't support the setting.
2690	//   "USER_ACTION" - The user has not taken required action to comply
2691	// with the setting.
2692	//   "INVALID_VALUE" - The setting has an invalid value.
2693	//   "APP_NOT_INSTALLED" - The app required to implement the policy is
2694	// not installed.
2695	//   "UNSUPPORTED" - The policy is not supported by the version of
2696	// Android Device Policy on the device.
2697	//   "APP_INSTALLED" - A blocked app is installed.
2698	//   "PENDING" - The setting hasn't been applied at the time of the
2699	// report, but is expected to be applied shortly.
2700	//   "APP_INCOMPATIBLE" - The setting can't be applied to the app
2701	// because the app doesn't support it, for example because its target
2702	// SDK version is not high enough.
2703	//   "APP_NOT_UPDATED" - The app is installed, but it hasn't been
2704	// updated to the minimum version code specified by policy.
2705	NonComplianceReason string `json:"nonComplianceReason,omitempty"`
2706
2707	// PackageName: The package name indicating which app is out of
2708	// compliance, if applicable.
2709	PackageName string `json:"packageName,omitempty"`
2710
2711	// SettingName: The name of the policy setting. This is the JSON field
2712	// name of a top-level Policy field.
2713	SettingName string `json:"settingName,omitempty"`
2714
2715	// ForceSendFields is a list of field names (e.g. "CurrentValue") to
2716	// unconditionally include in API requests. By default, fields with
2717	// empty or default values are omitted from API requests. However, any
2718	// non-pointer, non-interface field appearing in ForceSendFields will be
2719	// sent to the server regardless of whether the field is empty or not.
2720	// This may be used to include empty fields in Patch requests.
2721	ForceSendFields []string `json:"-"`
2722
2723	// NullFields is a list of field names (e.g. "CurrentValue") to include
2724	// in API requests with the JSON null value. By default, fields with
2725	// empty values are omitted from API requests. However, any field with
2726	// an empty value appearing in NullFields will be sent to the server as
2727	// null. It is an error if a field in this list has a non-empty value.
2728	// This may be used to include null fields in Patch requests.
2729	NullFields []string `json:"-"`
2730}
2731
2732func (s *NonComplianceDetail) MarshalJSON() ([]byte, error) {
2733	type NoMethod NonComplianceDetail
2734	raw := NoMethod(*s)
2735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2736}
2737
2738// NonComplianceDetailCondition: A compliance rule condition which is
2739// satisfied if there exists any matching NonComplianceDetail for the
2740// device. A NonComplianceDetail matches a NonComplianceDetailCondition
2741// if all the fields which are set within the
2742// NonComplianceDetailCondition match the corresponding
2743// NonComplianceDetail fields.
2744type NonComplianceDetailCondition struct {
2745	// NonComplianceReason: The reason the device is not in compliance with
2746	// the setting. If not set, then this condition matches any reason.
2747	//
2748	// Possible values:
2749	//   "NON_COMPLIANCE_REASON_UNSPECIFIED" - This value is disallowed.
2750	//   "API_LEVEL" - The setting is not supported in the API level of the
2751	// Android version running on the device.
2752	//   "MANAGEMENT_MODE" - The management mode (profile owner, device
2753	// owner, etc.) doesn't support the setting.
2754	//   "USER_ACTION" - The user has not taken required action to comply
2755	// with the setting.
2756	//   "INVALID_VALUE" - The setting has an invalid value.
2757	//   "APP_NOT_INSTALLED" - The app required to implement the policy is
2758	// not installed.
2759	//   "UNSUPPORTED" - The policy is not supported by the version of
2760	// Android Device Policy on the device.
2761	//   "APP_INSTALLED" - A blocked app is installed.
2762	//   "PENDING" - The setting hasn't been applied at the time of the
2763	// report, but is expected to be applied shortly.
2764	//   "APP_INCOMPATIBLE" - The setting can't be applied to the app
2765	// because the app doesn't support it, for example because its target
2766	// SDK version is not high enough.
2767	//   "APP_NOT_UPDATED" - The app is installed, but it hasn't been
2768	// updated to the minimum version code specified by policy.
2769	NonComplianceReason string `json:"nonComplianceReason,omitempty"`
2770
2771	// PackageName: The package name of the app that's out of compliance. If
2772	// not set, then this condition matches any package name.
2773	PackageName string `json:"packageName,omitempty"`
2774
2775	// SettingName: The name of the policy setting. This is the JSON field
2776	// name of a top-level Policy field. If not set, then this condition
2777	// matches any setting name.
2778	SettingName string `json:"settingName,omitempty"`
2779
2780	// ForceSendFields is a list of field names (e.g. "NonComplianceReason")
2781	// to unconditionally include in API requests. By default, fields with
2782	// empty or default values are omitted from API requests. However, any
2783	// non-pointer, non-interface field appearing in ForceSendFields will be
2784	// sent to the server regardless of whether the field is empty or not.
2785	// This may be used to include empty fields in Patch requests.
2786	ForceSendFields []string `json:"-"`
2787
2788	// NullFields is a list of field names (e.g. "NonComplianceReason") to
2789	// include in API requests with the JSON null value. By default, fields
2790	// with empty values are omitted from API requests. However, any field
2791	// with an empty value appearing in NullFields will be sent to the
2792	// server as null. It is an error if a field in this list has a
2793	// non-empty value. This may be used to include null fields in Patch
2794	// requests.
2795	NullFields []string `json:"-"`
2796}
2797
2798func (s *NonComplianceDetailCondition) MarshalJSON() ([]byte, error) {
2799	type NoMethod NonComplianceDetailCondition
2800	raw := NoMethod(*s)
2801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2802}
2803
2804// OncCertificateProvider: This feature is not generally available.
2805type OncCertificateProvider struct {
2806	// CertificateReferences: This feature is not generally available.
2807	CertificateReferences []string `json:"certificateReferences,omitempty"`
2808
2809	// ContentProviderEndpoint: This feature is not generally available.
2810	ContentProviderEndpoint *ContentProviderEndpoint `json:"contentProviderEndpoint,omitempty"`
2811
2812	// ForceSendFields is a list of field names (e.g.
2813	// "CertificateReferences") to unconditionally include in API requests.
2814	// By default, fields with empty or default values are omitted from API
2815	// requests. However, any non-pointer, non-interface field appearing in
2816	// ForceSendFields will be sent to the server regardless of whether the
2817	// field is empty or not. This may be used to include empty fields in
2818	// Patch requests.
2819	ForceSendFields []string `json:"-"`
2820
2821	// NullFields is a list of field names (e.g. "CertificateReferences") to
2822	// include in API requests with the JSON null value. By default, fields
2823	// with empty values are omitted from API requests. However, any field
2824	// with an empty value appearing in NullFields will be sent to the
2825	// server as null. It is an error if a field in this list has a
2826	// non-empty value. This may be used to include null fields in Patch
2827	// requests.
2828	NullFields []string `json:"-"`
2829}
2830
2831func (s *OncCertificateProvider) MarshalJSON() ([]byte, error) {
2832	type NoMethod OncCertificateProvider
2833	raw := NoMethod(*s)
2834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2835}
2836
2837// Operation: This resource represents a long-running operation that is
2838// the result of a network API call.
2839type Operation struct {
2840	// Done: If the value is false, it means the operation is still in
2841	// progress. If true, the operation is completed, and either error or
2842	// response is available.
2843	Done bool `json:"done,omitempty"`
2844
2845	// Error: The error result of the operation in case of failure or
2846	// cancellation.
2847	Error *Status `json:"error,omitempty"`
2848
2849	// Metadata: Service-specific metadata associated with the operation. It
2850	// typically contains progress information and common metadata such as
2851	// create time. Some services might not provide such metadata. Any
2852	// method that returns a long-running operation should document the
2853	// metadata type, if any.
2854	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
2855
2856	// Name: The server-assigned name, which is only unique within the same
2857	// service that originally returns it. If you use the default HTTP
2858	// mapping, the name should be a resource name ending with
2859	// operations/{unique_id}.
2860	Name string `json:"name,omitempty"`
2861
2862	// Response: The normal response of the operation in case of success. If
2863	// the original method returns no data on success, such as Delete, the
2864	// response is google.protobuf.Empty. If the original method is standard
2865	// Get/Create/Update, the response should be the resource. For other
2866	// methods, the response should have the type XxxResponse, where Xxx is
2867	// the original method name. For example, if the original method name is
2868	// TakeSnapshot(), the inferred response type is TakeSnapshotResponse.
2869	Response googleapi.RawMessage `json:"response,omitempty"`
2870
2871	// ServerResponse contains the HTTP response code and headers from the
2872	// server.
2873	googleapi.ServerResponse `json:"-"`
2874
2875	// ForceSendFields is a list of field names (e.g. "Done") to
2876	// unconditionally include in API requests. By default, fields with
2877	// empty or default values are omitted from API requests. However, any
2878	// non-pointer, non-interface field appearing in ForceSendFields will be
2879	// sent to the server regardless of whether the field is empty or not.
2880	// This may be used to include empty fields in Patch requests.
2881	ForceSendFields []string `json:"-"`
2882
2883	// NullFields is a list of field names (e.g. "Done") to include in API
2884	// requests with the JSON null value. By default, fields with empty
2885	// values are omitted from API requests. However, any field with an
2886	// empty value appearing in NullFields will be sent to the server as
2887	// null. It is an error if a field in this list has a non-empty value.
2888	// This may be used to include null fields in Patch requests.
2889	NullFields []string `json:"-"`
2890}
2891
2892func (s *Operation) MarshalJSON() ([]byte, error) {
2893	type NoMethod Operation
2894	raw := NoMethod(*s)
2895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2896}
2897
2898// PackageNameList: A list of package names.
2899type PackageNameList struct {
2900	// PackageNames: A list of package names.
2901	PackageNames []string `json:"packageNames,omitempty"`
2902
2903	// ForceSendFields is a list of field names (e.g. "PackageNames") to
2904	// unconditionally include in API requests. By default, fields with
2905	// empty or default values are omitted from API requests. However, any
2906	// non-pointer, non-interface field appearing in ForceSendFields will be
2907	// sent to the server regardless of whether the field is empty or not.
2908	// This may be used to include empty fields in Patch requests.
2909	ForceSendFields []string `json:"-"`
2910
2911	// NullFields is a list of field names (e.g. "PackageNames") to include
2912	// in API requests with the JSON null value. By default, fields with
2913	// empty values are omitted from API requests. However, any field with
2914	// an empty value appearing in NullFields will be sent to the server as
2915	// null. It is an error if a field in this list has a non-empty value.
2916	// This may be used to include null fields in Patch requests.
2917	NullFields []string `json:"-"`
2918}
2919
2920func (s *PackageNameList) MarshalJSON() ([]byte, error) {
2921	type NoMethod PackageNameList
2922	raw := NoMethod(*s)
2923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2924}
2925
2926// PasswordRequirements: Requirements for the password used to unlock a
2927// device.
2928type PasswordRequirements struct {
2929	// MaximumFailedPasswordsForWipe: Number of incorrect device-unlock
2930	// passwords that can be entered before a device is wiped. A value of 0
2931	// means there is no restriction.
2932	MaximumFailedPasswordsForWipe int64 `json:"maximumFailedPasswordsForWipe,omitempty"`
2933
2934	// PasswordExpirationTimeout: Password expiration timeout.
2935	PasswordExpirationTimeout string `json:"passwordExpirationTimeout,omitempty"`
2936
2937	// PasswordHistoryLength: The length of the password history. After
2938	// setting this field, the user won't be able to enter a new password
2939	// that is the same as any password in the history. A value of 0 means
2940	// there is no restriction.
2941	PasswordHistoryLength int64 `json:"passwordHistoryLength,omitempty"`
2942
2943	// PasswordMinimumLength: The minimum allowed password length. A value
2944	// of 0 means there is no restriction. Only enforced when
2945	// password_quality is NUMERIC, NUMERIC_COMPLEX, ALPHABETIC,
2946	// ALPHANUMERIC, or COMPLEX.
2947	PasswordMinimumLength int64 `json:"passwordMinimumLength,omitempty"`
2948
2949	// PasswordMinimumLetters: Minimum number of letters required in the
2950	// password. Only enforced when password_quality is COMPLEX.
2951	PasswordMinimumLetters int64 `json:"passwordMinimumLetters,omitempty"`
2952
2953	// PasswordMinimumLowerCase: Minimum number of lower case letters
2954	// required in the password. Only enforced when password_quality is
2955	// COMPLEX.
2956	PasswordMinimumLowerCase int64 `json:"passwordMinimumLowerCase,omitempty"`
2957
2958	// PasswordMinimumNonLetter: Minimum number of non-letter characters
2959	// (numerical digits or symbols) required in the password. Only enforced
2960	// when password_quality is COMPLEX.
2961	PasswordMinimumNonLetter int64 `json:"passwordMinimumNonLetter,omitempty"`
2962
2963	// PasswordMinimumNumeric: Minimum number of numerical digits required
2964	// in the password. Only enforced when password_quality is COMPLEX.
2965	PasswordMinimumNumeric int64 `json:"passwordMinimumNumeric,omitempty"`
2966
2967	// PasswordMinimumSymbols: Minimum number of symbols required in the
2968	// password. Only enforced when password_quality is COMPLEX.
2969	PasswordMinimumSymbols int64 `json:"passwordMinimumSymbols,omitempty"`
2970
2971	// PasswordMinimumUpperCase: Minimum number of upper case letters
2972	// required in the password. Only enforced when password_quality is
2973	// COMPLEX.
2974	PasswordMinimumUpperCase int64 `json:"passwordMinimumUpperCase,omitempty"`
2975
2976	// PasswordQuality: The required password quality.
2977	//
2978	// Possible values:
2979	//   "PASSWORD_QUALITY_UNSPECIFIED" - There are no password
2980	// requirements.
2981	//   "BIOMETRIC_WEAK" - The device must be secured with a low-security
2982	// biometric recognition technology, at minimum. This includes
2983	// technologies that can recognize the identity of an individual that
2984	// are roughly equivalent to a 3-digit PIN (false detection is less than
2985	// 1 in 1,000).This, when applied on personally owned work profile
2986	// devices on Android 12 device-scoped, will be treated as
2987	// COMPLEXITY_LOW for application. See PasswordQuality for details.
2988	//   "SOMETHING" - A password is required, but there are no restrictions
2989	// on what the password must contain.This, when applied on personally
2990	// owned work profile devices on Android 12 device-scoped, will be
2991	// treated as COMPLEXITY_LOW for application. See PasswordQuality for
2992	// details.
2993	//   "NUMERIC" - The password must contain numeric characters.This, when
2994	// applied on personally owned work profile devices on Android 12
2995	// device-scoped, will be treated as COMPLEXITY_MEDIUM for application.
2996	// See PasswordQuality for details.
2997	//   "NUMERIC_COMPLEX" - The password must contain numeric characters
2998	// with no repeating (4444) or ordered (1234, 4321, 2468)
2999	// sequences.This, when applied on personally owned work profile devices
3000	// on Android 12 device-scoped, will be treated as COMPLEXITY_MEDIUM for
3001	// application. See PasswordQuality for details.
3002	//   "ALPHABETIC" - The password must contain alphabetic (or symbol)
3003	// characters.This, when applied on personally owned work profile
3004	// devices on Android 12 device-scoped, will be treated as
3005	// COMPLEXITY_HIGH for application. See PasswordQuality for details.
3006	//   "ALPHANUMERIC" - The password must contain both numeric and
3007	// alphabetic (or symbol) characters.This, when applied on personally
3008	// owned work profile devices on Android 12 device-scoped, will be
3009	// treated as COMPLEXITY_HIGH for application. See PasswordQuality for
3010	// details.
3011	//   "COMPLEX" - The password must meet the minimum requirements
3012	// specified in passwordMinimumLength, passwordMinimumLetters,
3013	// passwordMinimumSymbols, etc. For example, if passwordMinimumSymbols
3014	// is 2, the password must contain at least two symbols.This, when
3015	// applied on personally owned work profile devices on Android 12
3016	// device-scoped, will be treated as COMPLEXITY_HIGH for application. In
3017	// this case, the requirements in passwordMinimumLength,
3018	// passwordMinimumLetters, passwordMinimumSymbols, etc are not applied.
3019	// See PasswordQuality for details.
3020	//   "COMPLEXITY_LOW" - Define the low password complexity band as:
3021	// pattern PIN with repeating (4444) or ordered (1234, 4321, 2468)
3022	// sequencesThis sets the minimum complexity band which the password
3023	// must meet.Enforcement varies among different Android versions,
3024	// management modes and password scopes. See PasswordQuality for
3025	// details.
3026	//   "COMPLEXITY_MEDIUM" - Define the medium password complexity band
3027	// as: PIN with no repeating (4444) or ordered (1234, 4321, 2468)
3028	// sequences, length at least 4 alphabetic, length at least 4
3029	// alphanumeric, length at least 4This sets the minimum complexity band
3030	// which the password must meet.Enforcement varies among different
3031	// Android versions, management modes and password scopes. See
3032	// PasswordQuality for details.
3033	//   "COMPLEXITY_HIGH" - Define the high password complexity band as:On
3034	// Android 12 and above: PIN with no repeating (4444) or ordered (1234,
3035	// 4321, 2468) sequences, length at least 8 alphabetic, length at least
3036	// 6 alphanumeric, length at least 6This sets the minimum complexity
3037	// band which the password must meet.Enforcement varies among different
3038	// Android versions, management modes and password scopes. See
3039	// PasswordQuality for details.
3040	PasswordQuality string `json:"passwordQuality,omitempty"`
3041
3042	// PasswordScope: The scope that the password requirement applies to.
3043	//
3044	// Possible values:
3045	//   "SCOPE_UNSPECIFIED" - The scope is unspecified. The password
3046	// requirements are applied to the work profile for work profile devices
3047	// and the whole device for fully managed or dedicated devices.
3048	//   "SCOPE_DEVICE" - The password requirements are only applied to the
3049	// device.
3050	//   "SCOPE_PROFILE" - The password requirements are only applied to the
3051	// work profile.
3052	PasswordScope string `json:"passwordScope,omitempty"`
3053
3054	// RequirePasswordUnlock: The length of time after a device or work
3055	// profile is unlocked using a strong form of authentication (password,
3056	// PIN, pattern) that it can be unlocked using any other authentication
3057	// method (e.g. fingerprint, trust agents, face). After the specified
3058	// time period elapses, only strong forms of authentication can be used
3059	// to unlock the device or work profile.
3060	//
3061	// Possible values:
3062	//   "REQUIRE_PASSWORD_UNLOCK_UNSPECIFIED" - Unspecified. Defaults to
3063	// USE_DEFAULT_DEVICE_TIMEOUT.
3064	//   "USE_DEFAULT_DEVICE_TIMEOUT" - The timeout period is set to the
3065	// device’s default.
3066	//   "REQUIRE_EVERY_DAY" - The timeout period is set to 24 hours.
3067	RequirePasswordUnlock string `json:"requirePasswordUnlock,omitempty"`
3068
3069	// ForceSendFields is a list of field names (e.g.
3070	// "MaximumFailedPasswordsForWipe") to unconditionally include in API
3071	// requests. By default, fields with empty or default values are omitted
3072	// from API requests. However, any non-pointer, non-interface field
3073	// appearing in ForceSendFields will be sent to the server regardless of
3074	// whether the field is empty or not. This may be used to include empty
3075	// fields in Patch requests.
3076	ForceSendFields []string `json:"-"`
3077
3078	// NullFields is a list of field names (e.g.
3079	// "MaximumFailedPasswordsForWipe") to include in API requests with the
3080	// JSON null value. By default, fields with empty values are omitted
3081	// from API requests. However, any field with an empty value appearing
3082	// in NullFields will be sent to the server as null. It is an error if a
3083	// field in this list has a non-empty value. This may be used to include
3084	// null fields in Patch requests.
3085	NullFields []string `json:"-"`
3086}
3087
3088func (s *PasswordRequirements) MarshalJSON() ([]byte, error) {
3089	type NoMethod PasswordRequirements
3090	raw := NoMethod(*s)
3091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3092}
3093
3094// PermissionGrant: Configuration for an Android permission and its
3095// grant state.
3096type PermissionGrant struct {
3097	// Permission: The Android permission or group, e.g.
3098	// android.permission.READ_CALENDAR or
3099	// android.permission_group.CALENDAR.
3100	Permission string `json:"permission,omitempty"`
3101
3102	// Policy: The policy for granting the permission.
3103	//
3104	// Possible values:
3105	//   "PERMISSION_POLICY_UNSPECIFIED" - Policy not specified. If no
3106	// policy is specified for a permission at any level, then the PROMPT
3107	// behavior is used by default.
3108	//   "PROMPT" - Prompt the user to grant a permission.
3109	//   "GRANT" - Automatically grant a permission.
3110	//   "DENY" - Automatically deny a permission.
3111	Policy string `json:"policy,omitempty"`
3112
3113	// ForceSendFields is a list of field names (e.g. "Permission") to
3114	// unconditionally include in API requests. By default, fields with
3115	// empty or default values are omitted from API requests. However, any
3116	// non-pointer, non-interface field appearing in ForceSendFields will be
3117	// sent to the server regardless of whether the field is empty or not.
3118	// This may be used to include empty fields in Patch requests.
3119	ForceSendFields []string `json:"-"`
3120
3121	// NullFields is a list of field names (e.g. "Permission") to include in
3122	// API requests with the JSON null value. By default, fields with empty
3123	// values are omitted from API requests. However, any field with an
3124	// empty value appearing in NullFields will be sent to the server as
3125	// null. It is an error if a field in this list has a non-empty value.
3126	// This may be used to include null fields in Patch requests.
3127	NullFields []string `json:"-"`
3128}
3129
3130func (s *PermissionGrant) MarshalJSON() ([]byte, error) {
3131	type NoMethod PermissionGrant
3132	raw := NoMethod(*s)
3133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3134}
3135
3136// PersistentPreferredActivity: A default activity for handling intents
3137// that match a particular intent filter. Note: To set up a kiosk, use
3138// InstallType to KIOSK rather than use persistent preferred activities.
3139type PersistentPreferredActivity struct {
3140	// Actions: The intent actions to match in the filter. If any actions
3141	// are included in the filter, then an intent's action must be one of
3142	// those values for it to match. If no actions are included, the intent
3143	// action is ignored.
3144	Actions []string `json:"actions,omitempty"`
3145
3146	// Categories: The intent categories to match in the filter. An intent
3147	// includes the categories that it requires, all of which must be
3148	// included in the filter in order to match. In other words, adding a
3149	// category to the filter has no impact on matching unless that category
3150	// is specified in the intent.
3151	Categories []string `json:"categories,omitempty"`
3152
3153	// ReceiverActivity: The activity that should be the default intent
3154	// handler. This should be an Android component name, e.g.
3155	// com.android.enterprise.app/.MainActivity. Alternatively, the value
3156	// may be the package name of an app, which causes Android Device Policy
3157	// to choose an appropriate activity from the app to handle the intent.
3158	ReceiverActivity string `json:"receiverActivity,omitempty"`
3159
3160	// ForceSendFields is a list of field names (e.g. "Actions") to
3161	// unconditionally include in API requests. By default, fields with
3162	// empty or default values are omitted from API requests. However, any
3163	// non-pointer, non-interface field appearing in ForceSendFields will be
3164	// sent to the server regardless of whether the field is empty or not.
3165	// This may be used to include empty fields in Patch requests.
3166	ForceSendFields []string `json:"-"`
3167
3168	// NullFields is a list of field names (e.g. "Actions") to include in
3169	// API requests with the JSON null value. By default, fields with empty
3170	// values are omitted from API requests. However, any field with an
3171	// empty value appearing in NullFields will be sent to the server as
3172	// null. It is an error if a field in this list has a non-empty value.
3173	// This may be used to include null fields in Patch requests.
3174	NullFields []string `json:"-"`
3175}
3176
3177func (s *PersistentPreferredActivity) MarshalJSON() ([]byte, error) {
3178	type NoMethod PersistentPreferredActivity
3179	raw := NoMethod(*s)
3180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3181}
3182
3183// PersonalApplicationPolicy: Policies for apps in the personal profile
3184// of a company-owned device with a work profile.
3185type PersonalApplicationPolicy struct {
3186	// InstallType: The type of installation to perform.
3187	//
3188	// Possible values:
3189	//   "INSTALL_TYPE_UNSPECIFIED" - Unspecified. Defaults to AVAILABLE.
3190	//   "BLOCKED" - The app is blocked and can't be installed in the
3191	// personal profile.
3192	//   "AVAILABLE" - The app is available to install in the personal
3193	// profile.
3194	InstallType string `json:"installType,omitempty"`
3195
3196	// PackageName: The package name of the application.
3197	PackageName string `json:"packageName,omitempty"`
3198
3199	// ForceSendFields is a list of field names (e.g. "InstallType") to
3200	// unconditionally include in API requests. By default, fields with
3201	// empty or default values are omitted from API requests. However, any
3202	// non-pointer, non-interface field appearing in ForceSendFields will be
3203	// sent to the server regardless of whether the field is empty or not.
3204	// This may be used to include empty fields in Patch requests.
3205	ForceSendFields []string `json:"-"`
3206
3207	// NullFields is a list of field names (e.g. "InstallType") to include
3208	// in API requests with the JSON null value. By default, fields with
3209	// empty values are omitted from API requests. However, any field with
3210	// an empty value appearing in NullFields will be sent to the server as
3211	// null. It is an error if a field in this list has a non-empty value.
3212	// This may be used to include null fields in Patch requests.
3213	NullFields []string `json:"-"`
3214}
3215
3216func (s *PersonalApplicationPolicy) MarshalJSON() ([]byte, error) {
3217	type NoMethod PersonalApplicationPolicy
3218	raw := NoMethod(*s)
3219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3220}
3221
3222// PersonalUsagePolicies: Policies controlling personal usage on a
3223// company-owned device with a work profile.
3224type PersonalUsagePolicies struct {
3225	// AccountTypesWithManagementDisabled: Account types that can't be
3226	// managed by the user.
3227	AccountTypesWithManagementDisabled []string `json:"accountTypesWithManagementDisabled,omitempty"`
3228
3229	// CameraDisabled: Whether camera is disabled.
3230	CameraDisabled bool `json:"cameraDisabled,omitempty"`
3231
3232	// MaxDaysWithWorkOff: Controls how long the work profile can stay off.
3233	// The duration must be at least 3 days.
3234	MaxDaysWithWorkOff int64 `json:"maxDaysWithWorkOff,omitempty"`
3235
3236	// PersonalApplications: Policy applied to applications in the personal
3237	// profile.
3238	PersonalApplications []*PersonalApplicationPolicy `json:"personalApplications,omitempty"`
3239
3240	// PersonalPlayStoreMode: Used together with personalApplications to
3241	// control how apps in the personal profile are allowed or blocked.
3242	//
3243	// Possible values:
3244	//   "PLAY_STORE_MODE_UNSPECIFIED" - Unspecified. Defaults to BLOCKLIST.
3245	//   "BLACKLIST" - All Play Store apps are available for installation in
3246	// the personal profile, except those whose installType is BLOCKED in
3247	// personalApplications.
3248	//   "BLOCKLIST" - All Play Store apps are available for installation in
3249	// the personal profile, except those whose installType is BLOCKED in
3250	// personalApplications.
3251	//   "ALLOWLIST" - Only apps explicitly specified in
3252	// personalApplications with installType set to AVAILABLE are allowed to
3253	// be installed in the personal profile.
3254	PersonalPlayStoreMode string `json:"personalPlayStoreMode,omitempty"`
3255
3256	// ScreenCaptureDisabled: Whether screen capture is disabled.
3257	ScreenCaptureDisabled bool `json:"screenCaptureDisabled,omitempty"`
3258
3259	// ForceSendFields is a list of field names (e.g.
3260	// "AccountTypesWithManagementDisabled") to unconditionally include in
3261	// API requests. By default, fields with empty or default values are
3262	// omitted from API requests. However, any non-pointer, non-interface
3263	// field appearing in ForceSendFields will be sent to the server
3264	// regardless of whether the field is empty or not. This may be used to
3265	// include empty fields in Patch requests.
3266	ForceSendFields []string `json:"-"`
3267
3268	// NullFields is a list of field names (e.g.
3269	// "AccountTypesWithManagementDisabled") to include in API requests with
3270	// the JSON null value. By default, fields with empty values are omitted
3271	// from API requests. However, any field with an empty value appearing
3272	// in NullFields will be sent to the server as null. It is an error if a
3273	// field in this list has a non-empty value. This may be used to include
3274	// null fields in Patch requests.
3275	NullFields []string `json:"-"`
3276}
3277
3278func (s *PersonalUsagePolicies) MarshalJSON() ([]byte, error) {
3279	type NoMethod PersonalUsagePolicies
3280	raw := NoMethod(*s)
3281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3282}
3283
3284// Policy: A policy resource represents a group of settings that govern
3285// the behavior of a managed device and the apps installed on it.
3286type Policy struct {
3287	// AccountTypesWithManagementDisabled: Account types that can't be
3288	// managed by the user.
3289	AccountTypesWithManagementDisabled []string `json:"accountTypesWithManagementDisabled,omitempty"`
3290
3291	// AddUserDisabled: Whether adding new users and profiles is disabled.
3292	AddUserDisabled bool `json:"addUserDisabled,omitempty"`
3293
3294	// AdjustVolumeDisabled: Whether adjusting the master volume is
3295	// disabled. Also mutes the device.
3296	AdjustVolumeDisabled bool `json:"adjustVolumeDisabled,omitempty"`
3297
3298	// AdvancedSecurityOverrides: Security policies set to the most secure
3299	// values by default. To maintain the security posture of a device, we
3300	// don't recommend overriding any of the default values.
3301	AdvancedSecurityOverrides *AdvancedSecurityOverrides `json:"advancedSecurityOverrides,omitempty"`
3302
3303	// AlwaysOnVpnPackage: Configuration for an always-on VPN connection.
3304	// Use with vpn_config_disabled to prevent modification of this setting.
3305	AlwaysOnVpnPackage *AlwaysOnVpnPackage `json:"alwaysOnVpnPackage,omitempty"`
3306
3307	// AndroidDevicePolicyTracks: The app tracks for Android Device Policy
3308	// the device can access. The device receives the latest version among
3309	// all accessible tracks. If no tracks are specified, then the device
3310	// only uses the production track.
3311	//
3312	// Possible values:
3313	//   "APP_TRACK_UNSPECIFIED" - This value is ignored.
3314	//   "PRODUCTION" - The production track, which provides the latest
3315	// stable release.
3316	//   "BETA" - The beta track, which provides the latest beta release.
3317	AndroidDevicePolicyTracks []string `json:"androidDevicePolicyTracks,omitempty"`
3318
3319	// AppAutoUpdatePolicy: Deprecated. Use autoUpdateMode instead.When
3320	// autoUpdateMode is set to AUTO_UPDATE_POSTPONED or
3321	// AUTO_UPDATE_HIGH_PRIORITY, this field has no effect.The app auto
3322	// update policy, which controls when automatic app updates can be
3323	// applied.
3324	//
3325	// Possible values:
3326	//   "APP_AUTO_UPDATE_POLICY_UNSPECIFIED" - The auto-update policy is
3327	// not set. Equivalent to CHOICE_TO_THE_USER.
3328	//   "CHOICE_TO_THE_USER" - The user can control auto-updates.
3329	//   "NEVER" - Apps are never auto-updated.
3330	//   "WIFI_ONLY" - Apps are auto-updated over Wi-Fi only.
3331	//   "ALWAYS" - Apps are auto-updated at any time. Data charges may
3332	// apply.
3333	AppAutoUpdatePolicy string `json:"appAutoUpdatePolicy,omitempty"`
3334
3335	// Applications: Policy applied to apps.
3336	Applications []*ApplicationPolicy `json:"applications,omitempty"`
3337
3338	// AutoDateAndTimeZone: Whether auto date, time, and time zone are
3339	// enabled on a company-owned device. If this is set, then
3340	// autoTimeRequired is ignored.
3341	//
3342	// Possible values:
3343	//   "AUTO_DATE_AND_TIME_ZONE_UNSPECIFIED" - Unspecified. Defaults to
3344	// AUTO_DATE_AND_TIME_ZONE_USER_CHOICE.
3345	//   "AUTO_DATE_AND_TIME_ZONE_USER_CHOICE" - Auto date, time, and time
3346	// zone are left to user's choice.
3347	//   "AUTO_DATE_AND_TIME_ZONE_ENFORCED" - Enforce auto date, time, and
3348	// time zone on the device.
3349	AutoDateAndTimeZone string `json:"autoDateAndTimeZone,omitempty"`
3350
3351	// AutoTimeRequired: Whether auto time is required, which prevents the
3352	// user from manually setting the date and time. If autoDateAndTimeZone
3353	// is set, this field is ignored.
3354	AutoTimeRequired bool `json:"autoTimeRequired,omitempty"`
3355
3356	// BlockApplicationsEnabled: Whether applications other than the ones
3357	// configured in applications are blocked from being installed. When
3358	// set, applications that were installed under a previous policy but no
3359	// longer appear in the policy are automatically uninstalled.
3360	BlockApplicationsEnabled bool `json:"blockApplicationsEnabled,omitempty"`
3361
3362	// BluetoothConfigDisabled: Whether configuring bluetooth is disabled.
3363	BluetoothConfigDisabled bool `json:"bluetoothConfigDisabled,omitempty"`
3364
3365	// BluetoothContactSharingDisabled: Whether bluetooth contact sharing is
3366	// disabled.
3367	BluetoothContactSharingDisabled bool `json:"bluetoothContactSharingDisabled,omitempty"`
3368
3369	// BluetoothDisabled: Whether bluetooth is disabled. Prefer this setting
3370	// over bluetooth_config_disabled because bluetooth_config_disabled can
3371	// be bypassed by the user.
3372	BluetoothDisabled bool `json:"bluetoothDisabled,omitempty"`
3373
3374	// CameraDisabled: Whether all cameras on the device are disabled.
3375	CameraDisabled bool `json:"cameraDisabled,omitempty"`
3376
3377	// CellBroadcastsConfigDisabled: Whether configuring cell broadcast is
3378	// disabled.
3379	CellBroadcastsConfigDisabled bool `json:"cellBroadcastsConfigDisabled,omitempty"`
3380
3381	// ChoosePrivateKeyRules: Rules for determining apps' access to private
3382	// keys. See ChoosePrivateKeyRule for details.
3383	ChoosePrivateKeyRules []*ChoosePrivateKeyRule `json:"choosePrivateKeyRules,omitempty"`
3384
3385	// ComplianceRules: Rules declaring which mitigating actions to take
3386	// when a device is not compliant with its policy. When the conditions
3387	// for multiple rules are satisfied, all of the mitigating actions for
3388	// the rules are taken. There is a maximum limit of 100 rules. Use
3389	// policy enforcement rules instead.
3390	ComplianceRules []*ComplianceRule `json:"complianceRules,omitempty"`
3391
3392	// CreateWindowsDisabled: Whether creating windows besides app windows
3393	// is disabled.
3394	CreateWindowsDisabled bool `json:"createWindowsDisabled,omitempty"`
3395
3396	// CredentialsConfigDisabled: Whether configuring user credentials is
3397	// disabled.
3398	CredentialsConfigDisabled bool `json:"credentialsConfigDisabled,omitempty"`
3399
3400	// DataRoamingDisabled: Whether roaming data services are disabled.
3401	DataRoamingDisabled bool `json:"dataRoamingDisabled,omitempty"`
3402
3403	// DebuggingFeaturesAllowed: Whether the user is allowed to enable
3404	// debugging features.
3405	DebuggingFeaturesAllowed bool `json:"debuggingFeaturesAllowed,omitempty"`
3406
3407	// DefaultPermissionPolicy: The default permission policy for runtime
3408	// permission requests.
3409	//
3410	// Possible values:
3411	//   "PERMISSION_POLICY_UNSPECIFIED" - Policy not specified. If no
3412	// policy is specified for a permission at any level, then the PROMPT
3413	// behavior is used by default.
3414	//   "PROMPT" - Prompt the user to grant a permission.
3415	//   "GRANT" - Automatically grant a permission.
3416	//   "DENY" - Automatically deny a permission.
3417	DefaultPermissionPolicy string `json:"defaultPermissionPolicy,omitempty"`
3418
3419	// DeviceOwnerLockScreenInfo: The device owner information to be shown
3420	// on the lock screen.
3421	DeviceOwnerLockScreenInfo *UserFacingMessage `json:"deviceOwnerLockScreenInfo,omitempty"`
3422
3423	// EncryptionPolicy: Whether encryption is enabled
3424	//
3425	// Possible values:
3426	//   "ENCRYPTION_POLICY_UNSPECIFIED" - This value is ignored, i.e. no
3427	// encryption required
3428	//   "ENABLED_WITHOUT_PASSWORD" - Encryption required but no password
3429	// required to boot
3430	//   "ENABLED_WITH_PASSWORD" - Encryption required with password
3431	// required to boot
3432	EncryptionPolicy string `json:"encryptionPolicy,omitempty"`
3433
3434	// EnsureVerifyAppsEnabled: Whether app verification is force-enabled.
3435	EnsureVerifyAppsEnabled bool `json:"ensureVerifyAppsEnabled,omitempty"`
3436
3437	// FactoryResetDisabled: Whether factory resetting from settings is
3438	// disabled.
3439	FactoryResetDisabled bool `json:"factoryResetDisabled,omitempty"`
3440
3441	// FrpAdminEmails: Email addresses of device administrators for factory
3442	// reset protection. When the device is factory reset, it will require
3443	// one of these admins to log in with the Google account email and
3444	// password to unlock the device. If no admins are specified, the device
3445	// won't provide factory reset protection.
3446	FrpAdminEmails []string `json:"frpAdminEmails,omitempty"`
3447
3448	// FunDisabled: Whether the user is allowed to have fun. Controls
3449	// whether the Easter egg game in Settings is disabled.
3450	FunDisabled bool `json:"funDisabled,omitempty"`
3451
3452	// InstallAppsDisabled: Whether user installation of apps is disabled.
3453	InstallAppsDisabled bool `json:"installAppsDisabled,omitempty"`
3454
3455	// InstallUnknownSourcesAllowed: This field has no effect.
3456	InstallUnknownSourcesAllowed bool `json:"installUnknownSourcesAllowed,omitempty"`
3457
3458	// KeyguardDisabled: Whether the keyguard is disabled.
3459	KeyguardDisabled bool `json:"keyguardDisabled,omitempty"`
3460
3461	// KeyguardDisabledFeatures: Disabled keyguard customizations, such as
3462	// widgets.
3463	//
3464	// Possible values:
3465	//   "KEYGUARD_DISABLED_FEATURE_UNSPECIFIED" - This value is ignored.
3466	//   "CAMERA" - Disable the camera on secure keyguard screens (e.g.
3467	// PIN).
3468	//   "NOTIFICATIONS" - Disable showing all notifications on secure
3469	// keyguard screens.
3470	//   "UNREDACTED_NOTIFICATIONS" - Disable unredacted notifications on
3471	// secure keyguard screens.
3472	//   "TRUST_AGENTS" - Ignore trust agent state on secure keyguard
3473	// screens.
3474	//   "DISABLE_FINGERPRINT" - Disable fingerprint sensor on secure
3475	// keyguard screens.
3476	//   "DISABLE_REMOTE_INPUT" - Disable text entry into notifications on
3477	// secure keyguard screens.
3478	//   "FACE" - Disable face authentication on secure keyguard screens.
3479	//   "IRIS" - Disable iris authentication on secure keyguard screens.
3480	//   "BIOMETRICS" - Disable all biometric authentication on secure
3481	// keyguard screens.
3482	//   "ALL_FEATURES" - Disable all current and future keyguard
3483	// customizations.
3484	KeyguardDisabledFeatures []string `json:"keyguardDisabledFeatures,omitempty"`
3485
3486	// KioskCustomLauncherEnabled: Whether the kiosk custom launcher is
3487	// enabled. This replaces the home screen with a launcher that locks
3488	// down the device to the apps installed via the applications setting.
3489	// Apps appear on a single page in alphabetical order. Use
3490	// kioskCustomization to further configure the kiosk device behavior.
3491	KioskCustomLauncherEnabled bool `json:"kioskCustomLauncherEnabled,omitempty"`
3492
3493	// KioskCustomization: Settings controlling the behavior of a device in
3494	// kiosk mode. To enable kiosk mode, set kioskCustomLauncherEnabled to
3495	// true or specify an app in the policy with installType KIOSK.
3496	KioskCustomization *KioskCustomization `json:"kioskCustomization,omitempty"`
3497
3498	// LocationMode: The degree of location detection enabled.
3499	//
3500	// Possible values:
3501	//   "LOCATION_MODE_UNSPECIFIED" - Defaults to LOCATION_USER_CHOICE.
3502	//   "HIGH_ACCURACY" - On Android 8 and below, all location detection
3503	// methods are enabled, including GPS, networks, and other sensors. On
3504	// Android 9 and above, this is equivalent to LOCATION_ENFORCED.
3505	//   "SENSORS_ONLY" - On Android 8 and below, only GPS and other sensors
3506	// are enabled. On Android 9 and above, this is equivalent to
3507	// LOCATION_ENFORCED.
3508	//   "BATTERY_SAVING" - On Android 8 and below, only the network
3509	// location provider is enabled. On Android 9 and above, this is
3510	// equivalent to LOCATION_ENFORCED.
3511	//   "OFF" - On Android 8 and below, location setting and accuracy are
3512	// disabled. On Android 9 and above, this is equivalent to
3513	// LOCATION_DISABLED.
3514	//   "LOCATION_USER_CHOICE" - Location setting is not restricted on the
3515	// device. No specific behavior is set or enforced.
3516	//   "LOCATION_ENFORCED" - Enable location setting on the device.
3517	//   "LOCATION_DISABLED" - Disable location setting on the device.
3518	LocationMode string `json:"locationMode,omitempty"`
3519
3520	// LongSupportMessage: A message displayed to the user in the device
3521	// administators settings screen.
3522	LongSupportMessage *UserFacingMessage `json:"longSupportMessage,omitempty"`
3523
3524	// MaximumTimeToLock: Maximum time in milliseconds for user activity
3525	// until the device locks. A value of 0 means there is no restriction.
3526	MaximumTimeToLock int64 `json:"maximumTimeToLock,omitempty,string"`
3527
3528	// MinimumApiLevel: The minimum allowed Android API level.
3529	MinimumApiLevel int64 `json:"minimumApiLevel,omitempty"`
3530
3531	// MobileNetworksConfigDisabled: Whether configuring mobile networks is
3532	// disabled.
3533	MobileNetworksConfigDisabled bool `json:"mobileNetworksConfigDisabled,omitempty"`
3534
3535	// ModifyAccountsDisabled: Whether adding or removing accounts is
3536	// disabled.
3537	ModifyAccountsDisabled bool `json:"modifyAccountsDisabled,omitempty"`
3538
3539	// MountPhysicalMediaDisabled: Whether the user mounting physical
3540	// external media is disabled.
3541	MountPhysicalMediaDisabled bool `json:"mountPhysicalMediaDisabled,omitempty"`
3542
3543	// Name: The name of the policy in the form
3544	// enterprises/{enterpriseId}/policies/{policyId}.
3545	Name string `json:"name,omitempty"`
3546
3547	// NetworkEscapeHatchEnabled: Whether the network escape hatch is
3548	// enabled. If a network connection can't be made at boot time, the
3549	// escape hatch prompts the user to temporarily connect to a network in
3550	// order to refresh the device policy. After applying policy, the
3551	// temporary network will be forgotten and the device will continue
3552	// booting. This prevents being unable to connect to a network if there
3553	// is no suitable network in the last policy and the device boots into
3554	// an app in lock task mode, or the user is otherwise unable to reach
3555	// device settings.Note: Setting wifiConfigDisabled to true will
3556	// override this setting under specific circumstances. Please see
3557	// wifiConfigDisabled for further details.
3558	NetworkEscapeHatchEnabled bool `json:"networkEscapeHatchEnabled,omitempty"`
3559
3560	// NetworkResetDisabled: Whether resetting network settings is disabled.
3561	NetworkResetDisabled bool `json:"networkResetDisabled,omitempty"`
3562
3563	// OncCertificateProviders: This feature is not generally available.
3564	OncCertificateProviders []*OncCertificateProvider `json:"oncCertificateProviders,omitempty"`
3565
3566	// OpenNetworkConfiguration: Network configuration for the device. See
3567	// configure networks for more information.
3568	OpenNetworkConfiguration googleapi.RawMessage `json:"openNetworkConfiguration,omitempty"`
3569
3570	// OutgoingBeamDisabled: Whether using NFC to beam data from apps is
3571	// disabled.
3572	OutgoingBeamDisabled bool `json:"outgoingBeamDisabled,omitempty"`
3573
3574	// OutgoingCallsDisabled: Whether outgoing calls are disabled.
3575	OutgoingCallsDisabled bool `json:"outgoingCallsDisabled,omitempty"`
3576
3577	// PasswordPolicies: Password requirement policies. Different policies
3578	// can be set for work profile or fully managed devices by setting the
3579	// password_scope field in the policy.
3580	PasswordPolicies []*PasswordRequirements `json:"passwordPolicies,omitempty"`
3581
3582	// PasswordRequirements: Password requirements. The field
3583	// password_requirements.require_password_unlock must not be set.
3584	// DEPRECATED - Use password_policies.Note:Complexity-based values of
3585	// PasswordQuality, that is, COMPLEXITY_LOW, COMPLEXITY_MEDIUM, and
3586	// COMPLEXITY_HIGH, cannot be used here.
3587	PasswordRequirements *PasswordRequirements `json:"passwordRequirements,omitempty"`
3588
3589	// PermissionGrants: Explicit permission or group grants or denials for
3590	// all apps. These values override the default_permission_policy.
3591	PermissionGrants []*PermissionGrant `json:"permissionGrants,omitempty"`
3592
3593	// PermittedAccessibilityServices: Specifies permitted accessibility
3594	// services. If the field is not set, any accessibility service can be
3595	// used. If the field is set, only the accessibility services in this
3596	// list and the system's built-in accessibility service can be used. In
3597	// particular, if the field is set to empty, only the system's built-in
3598	// accessibility servicess can be used.
3599	PermittedAccessibilityServices *PackageNameList `json:"permittedAccessibilityServices,omitempty"`
3600
3601	// PermittedInputMethods: If present, only the input methods provided by
3602	// packages in this list are permitted. If this field is present, but
3603	// the list is empty, then only system input methods are permitted.
3604	PermittedInputMethods *PackageNameList `json:"permittedInputMethods,omitempty"`
3605
3606	// PersistentPreferredActivities: Default intent handler activities.
3607	PersistentPreferredActivities []*PersistentPreferredActivity `json:"persistentPreferredActivities,omitempty"`
3608
3609	// PersonalUsagePolicies: Policies managing personal usage on a
3610	// company-owned device.
3611	PersonalUsagePolicies *PersonalUsagePolicies `json:"personalUsagePolicies,omitempty"`
3612
3613	// PlayStoreMode: This mode controls which apps are available to the
3614	// user in the Play Store and the behavior on the device when apps are
3615	// removed from the policy.
3616	//
3617	// Possible values:
3618	//   "PLAY_STORE_MODE_UNSPECIFIED" - Unspecified. Defaults to WHITELIST.
3619	//   "WHITELIST" - Only apps that are in the policy are available and
3620	// any app not in the policy will be automatically uninstalled from the
3621	// device.
3622	//   "BLACKLIST" - All apps are available and any app that should not be
3623	// on the device should be explicitly marked as 'BLOCKED' in the
3624	// applications policy.
3625	PlayStoreMode string `json:"playStoreMode,omitempty"`
3626
3627	// PolicyEnforcementRules: Rules that define the behavior when a
3628	// particular policy can not be applied on device
3629	PolicyEnforcementRules []*PolicyEnforcementRule `json:"policyEnforcementRules,omitempty"`
3630
3631	// PrivateKeySelectionEnabled: Allows showing UI on a device for a user
3632	// to choose a private key alias if there are no matching rules in
3633	// ChoosePrivateKeyRules. For devices below Android P, setting this may
3634	// leave enterprise keys vulnerable.
3635	PrivateKeySelectionEnabled bool `json:"privateKeySelectionEnabled,omitempty"`
3636
3637	// RecommendedGlobalProxy: The network-independent global HTTP proxy.
3638	// Typically proxies should be configured per-network in
3639	// open_network_configuration. However for unusual configurations like
3640	// general internal filtering a global HTTP proxy may be useful. If the
3641	// proxy is not accessible, network access may break. The global proxy
3642	// is only a recommendation and some apps may ignore it.
3643	RecommendedGlobalProxy *ProxyInfo `json:"recommendedGlobalProxy,omitempty"`
3644
3645	// RemoveUserDisabled: Whether removing other users is disabled.
3646	RemoveUserDisabled bool `json:"removeUserDisabled,omitempty"`
3647
3648	// SafeBootDisabled: Whether rebooting the device into safe boot is
3649	// disabled.
3650	SafeBootDisabled bool `json:"safeBootDisabled,omitempty"`
3651
3652	// ScreenCaptureDisabled: Whether screen capture is disabled.
3653	ScreenCaptureDisabled bool `json:"screenCaptureDisabled,omitempty"`
3654
3655	// SetUserIconDisabled: Whether changing the user icon is disabled.
3656	SetUserIconDisabled bool `json:"setUserIconDisabled,omitempty"`
3657
3658	// SetWallpaperDisabled: Whether changing the wallpaper is disabled.
3659	SetWallpaperDisabled bool `json:"setWallpaperDisabled,omitempty"`
3660
3661	// SetupActions: Actions to take during the setup process.
3662	SetupActions []*SetupAction `json:"setupActions,omitempty"`
3663
3664	// ShareLocationDisabled: Whether location sharing is disabled.
3665	ShareLocationDisabled bool `json:"shareLocationDisabled,omitempty"`
3666
3667	// ShortSupportMessage: A message displayed to the user in the settings
3668	// screen wherever functionality has been disabled by the admin. If the
3669	// message is longer than 200 characters it may be truncated.
3670	ShortSupportMessage *UserFacingMessage `json:"shortSupportMessage,omitempty"`
3671
3672	// SkipFirstUseHintsEnabled: Flag to skip hints on the first use.
3673	// Enterprise admin can enable the system recommendation for apps to
3674	// skip their user tutorial and other introductory hints on first
3675	// start-up.
3676	SkipFirstUseHintsEnabled bool `json:"skipFirstUseHintsEnabled,omitempty"`
3677
3678	// SmsDisabled: Whether sending and receiving SMS messages is disabled.
3679	SmsDisabled bool `json:"smsDisabled,omitempty"`
3680
3681	// StatusBarDisabled: Whether the status bar is disabled. This disables
3682	// notifications, quick settings, and other screen overlays that allow
3683	// escape from full-screen mode. DEPRECATED. To disable the status bar
3684	// on a kiosk device, use InstallType KIOSK or
3685	// kioskCustomLauncherEnabled.
3686	StatusBarDisabled bool `json:"statusBarDisabled,omitempty"`
3687
3688	// StatusReportingSettings: Status reporting settings
3689	StatusReportingSettings *StatusReportingSettings `json:"statusReportingSettings,omitempty"`
3690
3691	// StayOnPluggedModes: The battery plugged in modes for which the device
3692	// stays on. When using this setting, it is recommended to clear
3693	// maximum_time_to_lock so that the device doesn't lock itself while it
3694	// stays on.
3695	//
3696	// Possible values:
3697	//   "BATTERY_PLUGGED_MODE_UNSPECIFIED" - This value is ignored.
3698	//   "AC" - Power source is an AC charger.
3699	//   "USB" - Power source is a USB port.
3700	//   "WIRELESS" - Power source is wireless.
3701	StayOnPluggedModes []string `json:"stayOnPluggedModes,omitempty"`
3702
3703	// SystemUpdate: The system update policy, which controls how OS updates
3704	// are applied. If the update type is WINDOWED, the update window will
3705	// automatically apply to Play app updates as well.
3706	SystemUpdate *SystemUpdate `json:"systemUpdate,omitempty"`
3707
3708	// TetheringConfigDisabled: Whether configuring tethering and portable
3709	// hotspots is disabled.
3710	TetheringConfigDisabled bool `json:"tetheringConfigDisabled,omitempty"`
3711
3712	// UninstallAppsDisabled: Whether user uninstallation of applications is
3713	// disabled.
3714	UninstallAppsDisabled bool `json:"uninstallAppsDisabled,omitempty"`
3715
3716	// UnmuteMicrophoneDisabled: Whether the microphone is muted and
3717	// adjusting microphone volume is disabled.
3718	UnmuteMicrophoneDisabled bool `json:"unmuteMicrophoneDisabled,omitempty"`
3719
3720	// UsbFileTransferDisabled: Whether transferring files over USB is
3721	// disabled.
3722	UsbFileTransferDisabled bool `json:"usbFileTransferDisabled,omitempty"`
3723
3724	// UsbMassStorageEnabled: Whether USB storage is enabled. Deprecated.
3725	UsbMassStorageEnabled bool `json:"usbMassStorageEnabled,omitempty"`
3726
3727	// Version: The version of the policy. This is a read-only field. The
3728	// version is incremented each time the policy is updated.
3729	Version int64 `json:"version,omitempty,string"`
3730
3731	// VpnConfigDisabled: Whether configuring VPN is disabled.
3732	VpnConfigDisabled bool `json:"vpnConfigDisabled,omitempty"`
3733
3734	// WifiConfigDisabled: Whether configuring Wi-Fi access points is
3735	// disabled.Note: If a network connection can't be made at boot time and
3736	// configuring Wi-Fi is disabled then network escape hatch will be shown
3737	// in order to refresh the device policy (see
3738	// networkEscapeHatchEnabled).
3739	WifiConfigDisabled bool `json:"wifiConfigDisabled,omitempty"`
3740
3741	// WifiConfigsLockdownEnabled: DEPRECATED - Use wifi_config_disabled.
3742	WifiConfigsLockdownEnabled bool `json:"wifiConfigsLockdownEnabled,omitempty"`
3743
3744	// ServerResponse contains the HTTP response code and headers from the
3745	// server.
3746	googleapi.ServerResponse `json:"-"`
3747
3748	// ForceSendFields is a list of field names (e.g.
3749	// "AccountTypesWithManagementDisabled") to unconditionally include in
3750	// API requests. By default, fields with empty or default values are
3751	// omitted from API requests. However, any non-pointer, non-interface
3752	// field appearing in ForceSendFields will be sent to the server
3753	// regardless of whether the field is empty or not. This may be used to
3754	// include empty fields in Patch requests.
3755	ForceSendFields []string `json:"-"`
3756
3757	// NullFields is a list of field names (e.g.
3758	// "AccountTypesWithManagementDisabled") to include in API requests with
3759	// the JSON null value. By default, fields with empty values are omitted
3760	// from API requests. However, any field with an empty value appearing
3761	// in NullFields will be sent to the server as null. It is an error if a
3762	// field in this list has a non-empty value. This may be used to include
3763	// null fields in Patch requests.
3764	NullFields []string `json:"-"`
3765}
3766
3767func (s *Policy) MarshalJSON() ([]byte, error) {
3768	type NoMethod Policy
3769	raw := NoMethod(*s)
3770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3771}
3772
3773// PolicyEnforcementRule: A rule that defines the actions to take if a
3774// device or work profile is not compliant with the policy specified in
3775// settingName.
3776type PolicyEnforcementRule struct {
3777	// BlockAction: An action to block access to apps and data on a fully
3778	// managed device or in a work profile. This action also triggers a
3779	// user-facing notification with information (where possible) on how to
3780	// correct the compliance issue. Note: wipeAction must also be
3781	// specified.
3782	BlockAction *BlockAction `json:"blockAction,omitempty"`
3783
3784	// SettingName: The top-level policy to enforce. For example,
3785	// applications or passwordPolicies.
3786	SettingName string `json:"settingName,omitempty"`
3787
3788	// WipeAction: An action to reset a fully managed device or delete a
3789	// work profile. Note: blockAction must also be specified.
3790	WipeAction *WipeAction `json:"wipeAction,omitempty"`
3791
3792	// ForceSendFields is a list of field names (e.g. "BlockAction") to
3793	// unconditionally include in API requests. By default, fields with
3794	// empty or default values are omitted from API requests. However, any
3795	// non-pointer, non-interface field appearing in ForceSendFields will be
3796	// sent to the server regardless of whether the field is empty or not.
3797	// This may be used to include empty fields in Patch requests.
3798	ForceSendFields []string `json:"-"`
3799
3800	// NullFields is a list of field names (e.g. "BlockAction") to include
3801	// in API requests with the JSON null value. By default, fields with
3802	// empty values are omitted from API requests. However, any field with
3803	// an empty value appearing in NullFields will be sent to the server as
3804	// null. It is an error if a field in this list has a non-empty value.
3805	// This may be used to include null fields in Patch requests.
3806	NullFields []string `json:"-"`
3807}
3808
3809func (s *PolicyEnforcementRule) MarshalJSON() ([]byte, error) {
3810	type NoMethod PolicyEnforcementRule
3811	raw := NoMethod(*s)
3812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3813}
3814
3815// PostureDetail: Additional details regarding the security posture of
3816// the device.
3817type PostureDetail struct {
3818	// Advice: Corresponding admin-facing advice to mitigate this security
3819	// risk and improve the security posture of the device.
3820	Advice []*UserFacingMessage `json:"advice,omitempty"`
3821
3822	// SecurityRisk: A specific security risk that negatively affects the
3823	// security posture of the device.
3824	//
3825	// Possible values:
3826	//   "SECURITY_RISK_UNSPECIFIED" - Unspecified.
3827	//   "UNKNOWN_OS" - SafetyNet detects that the device is running an
3828	// unknown OS (basicIntegrity check succeeds but ctsProfileMatch fails).
3829	//   "COMPROMISED_OS" - SafetyNet detects that the device is running a
3830	// compromised OS (basicIntegrity check fails).
3831	SecurityRisk string `json:"securityRisk,omitempty"`
3832
3833	// ForceSendFields is a list of field names (e.g. "Advice") to
3834	// unconditionally include in API requests. By default, fields with
3835	// empty or default values are omitted from API requests. However, any
3836	// non-pointer, non-interface field appearing in ForceSendFields will be
3837	// sent to the server regardless of whether the field is empty or not.
3838	// This may be used to include empty fields in Patch requests.
3839	ForceSendFields []string `json:"-"`
3840
3841	// NullFields is a list of field names (e.g. "Advice") to include in API
3842	// requests with the JSON null value. By default, fields with empty
3843	// values are omitted from API requests. However, any field with an
3844	// empty value appearing in NullFields will be sent to the server as
3845	// null. It is an error if a field in this list has a non-empty value.
3846	// This may be used to include null fields in Patch requests.
3847	NullFields []string `json:"-"`
3848}
3849
3850func (s *PostureDetail) MarshalJSON() ([]byte, error) {
3851	type NoMethod PostureDetail
3852	raw := NoMethod(*s)
3853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3854}
3855
3856// PowerManagementEvent: A power management event.
3857type PowerManagementEvent struct {
3858	// BatteryLevel: For BATTERY_LEVEL_COLLECTED events, the battery level
3859	// as a percentage.
3860	BatteryLevel float64 `json:"batteryLevel,omitempty"`
3861
3862	// CreateTime: The creation time of the event.
3863	CreateTime string `json:"createTime,omitempty"`
3864
3865	// EventType: Event type.
3866	//
3867	// Possible values:
3868	//   "POWER_MANAGEMENT_EVENT_TYPE_UNSPECIFIED" - Unspecified. No events
3869	// have this type.
3870	//   "BATTERY_LEVEL_COLLECTED" - Battery level was measured.
3871	//   "POWER_CONNECTED" - The device started charging.
3872	//   "POWER_DISCONNECTED" - The device stopped charging.
3873	//   "BATTERY_LOW" - The device entered low-power mode.
3874	//   "BATTERY_OKAY" - The device exited low-power mode.
3875	//   "BOOT_COMPLETED" - The device booted.
3876	//   "SHUTDOWN" - The device shut down.
3877	EventType string `json:"eventType,omitempty"`
3878
3879	// ForceSendFields is a list of field names (e.g. "BatteryLevel") to
3880	// unconditionally include in API requests. By default, fields with
3881	// empty or default values are omitted from API requests. However, any
3882	// non-pointer, non-interface field appearing in ForceSendFields will be
3883	// sent to the server regardless of whether the field is empty or not.
3884	// This may be used to include empty fields in Patch requests.
3885	ForceSendFields []string `json:"-"`
3886
3887	// NullFields is a list of field names (e.g. "BatteryLevel") to include
3888	// in API requests with the JSON null value. By default, fields with
3889	// empty values are omitted from API requests. However, any field with
3890	// an empty value appearing in NullFields will be sent to the server as
3891	// null. It is an error if a field in this list has a non-empty value.
3892	// This may be used to include null fields in Patch requests.
3893	NullFields []string `json:"-"`
3894}
3895
3896func (s *PowerManagementEvent) MarshalJSON() ([]byte, error) {
3897	type NoMethod PowerManagementEvent
3898	raw := NoMethod(*s)
3899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3900}
3901
3902func (s *PowerManagementEvent) UnmarshalJSON(data []byte) error {
3903	type NoMethod PowerManagementEvent
3904	var s1 struct {
3905		BatteryLevel gensupport.JSONFloat64 `json:"batteryLevel"`
3906		*NoMethod
3907	}
3908	s1.NoMethod = (*NoMethod)(s)
3909	if err := json.Unmarshal(data, &s1); err != nil {
3910		return err
3911	}
3912	s.BatteryLevel = float64(s1.BatteryLevel)
3913	return nil
3914}
3915
3916// ProxyInfo: Configuration info for an HTTP proxy. For a direct proxy,
3917// set the host, port, and excluded_hosts fields. For a PAC script
3918// proxy, set the pac_uri field.
3919type ProxyInfo struct {
3920	// ExcludedHosts: For a direct proxy, the hosts for which the proxy is
3921	// bypassed. The host names may contain wildcards such as *.example.com.
3922	ExcludedHosts []string `json:"excludedHosts,omitempty"`
3923
3924	// Host: The host of the direct proxy.
3925	Host string `json:"host,omitempty"`
3926
3927	// PacUri: The URI of the PAC script used to configure the proxy.
3928	PacUri string `json:"pacUri,omitempty"`
3929
3930	// Port: The port of the direct proxy.
3931	Port int64 `json:"port,omitempty"`
3932
3933	// ForceSendFields is a list of field names (e.g. "ExcludedHosts") to
3934	// unconditionally include in API requests. By default, fields with
3935	// empty or default values are omitted from API requests. However, any
3936	// non-pointer, non-interface field appearing in ForceSendFields will be
3937	// sent to the server regardless of whether the field is empty or not.
3938	// This may be used to include empty fields in Patch requests.
3939	ForceSendFields []string `json:"-"`
3940
3941	// NullFields is a list of field names (e.g. "ExcludedHosts") to include
3942	// in API requests with the JSON null value. By default, fields with
3943	// empty values are omitted from API requests. However, any field with
3944	// an empty value appearing in NullFields will be sent to the server as
3945	// null. It is an error if a field in this list has a non-empty value.
3946	// This may be used to include null fields in Patch requests.
3947	NullFields []string `json:"-"`
3948}
3949
3950func (s *ProxyInfo) MarshalJSON() ([]byte, error) {
3951	type NoMethod ProxyInfo
3952	raw := NoMethod(*s)
3953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3954}
3955
3956// SecurityPosture: The security posture of the device, as determined by
3957// the current device state and the policies applied.
3958type SecurityPosture struct {
3959	// DevicePosture: Device's security posture value.
3960	//
3961	// Possible values:
3962	//   "POSTURE_UNSPECIFIED" - Unspecified. There is no posture detail for
3963	// this posture value.
3964	//   "SECURE" - This device is secure.
3965	//   "AT_RISK" - This device may be more vulnerable to malicious actors
3966	// than is recommended for use with corporate data.
3967	//   "POTENTIALLY_COMPROMISED" - This device may be compromised and
3968	// corporate data may be accessible to unauthorized actors.
3969	DevicePosture string `json:"devicePosture,omitempty"`
3970
3971	// PostureDetails: Additional details regarding the security posture of
3972	// the device.
3973	PostureDetails []*PostureDetail `json:"postureDetails,omitempty"`
3974
3975	// ForceSendFields is a list of field names (e.g. "DevicePosture") to
3976	// unconditionally include in API requests. By default, fields with
3977	// empty or default values are omitted from API requests. However, any
3978	// non-pointer, non-interface field appearing in ForceSendFields will be
3979	// sent to the server regardless of whether the field is empty or not.
3980	// This may be used to include empty fields in Patch requests.
3981	ForceSendFields []string `json:"-"`
3982
3983	// NullFields is a list of field names (e.g. "DevicePosture") to include
3984	// in API requests with the JSON null value. By default, fields with
3985	// empty values are omitted from API requests. However, any field with
3986	// an empty value appearing in NullFields will be sent to the server as
3987	// null. It is an error if a field in this list has a non-empty value.
3988	// This may be used to include null fields in Patch requests.
3989	NullFields []string `json:"-"`
3990}
3991
3992func (s *SecurityPosture) MarshalJSON() ([]byte, error) {
3993	type NoMethod SecurityPosture
3994	raw := NoMethod(*s)
3995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3996}
3997
3998// SetupAction: An action executed during setup.
3999type SetupAction struct {
4000	// Description: Description of this action.
4001	Description *UserFacingMessage `json:"description,omitempty"`
4002
4003	// LaunchApp: An action to launch an app.
4004	LaunchApp *LaunchAppAction `json:"launchApp,omitempty"`
4005
4006	// Title: Title of this action.
4007	Title *UserFacingMessage `json:"title,omitempty"`
4008
4009	// ForceSendFields is a list of field names (e.g. "Description") to
4010	// unconditionally include in API requests. By default, fields with
4011	// empty or default values are omitted from API requests. However, any
4012	// non-pointer, non-interface field appearing in ForceSendFields will be
4013	// sent to the server regardless of whether the field is empty or not.
4014	// This may be used to include empty fields in Patch requests.
4015	ForceSendFields []string `json:"-"`
4016
4017	// NullFields is a list of field names (e.g. "Description") to include
4018	// in API requests with the JSON null value. By default, fields with
4019	// empty values are omitted from API requests. However, any field with
4020	// an empty value appearing in NullFields will be sent to the server as
4021	// null. It is an error if a field in this list has a non-empty value.
4022	// This may be used to include null fields in Patch requests.
4023	NullFields []string `json:"-"`
4024}
4025
4026func (s *SetupAction) MarshalJSON() ([]byte, error) {
4027	type NoMethod SetupAction
4028	raw := NoMethod(*s)
4029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4030}
4031
4032// SigninDetail: A resource containing sign in details for an
4033// enterprise.
4034type SigninDetail struct {
4035	// AllowPersonalUsage: Controls whether personal usage is allowed on a
4036	// device provisioned with this enrollment token.For company-owned
4037	// devices: Enabling personal usage allows the user to set up a work
4038	// profile on the device. Disabling personal usage requires the user
4039	// provision the device as a fully managed device.For personally-owned
4040	// devices: Enabling personal usage allows the user to set up a work
4041	// profile on the device. Disabling personal usage will prevent the
4042	// device from provisioning. Personal usage cannot be disabled on
4043	// personally-owned device.
4044	//
4045	// Possible values:
4046	//   "ALLOW_PERSONAL_USAGE_UNSPECIFIED" - Personal usage restriction is
4047	// not specified
4048	//   "PERSONAL_USAGE_ALLOWED" - Personal usage is allowed
4049	//   "PERSONAL_USAGE_DISALLOWED" - Personal usage is disallowed
4050	AllowPersonalUsage string `json:"allowPersonalUsage,omitempty"`
4051
4052	// QrCode: A JSON string whose UTF-8 representation can be used to
4053	// generate a QR code to enroll a device with this enrollment token. To
4054	// enroll a device using NFC, the NFC record must contain a serialized
4055	// java.util.Properties representation of the properties in the JSON.
4056	// This is a read-only field generated by the server.
4057	QrCode string `json:"qrCode,omitempty"`
4058
4059	// SigninEnrollmentToken: An enterprise wide enrollment token used to
4060	// trigger custom sign-in flow. This is a read-only field generated by
4061	// the server.
4062	SigninEnrollmentToken string `json:"signinEnrollmentToken,omitempty"`
4063
4064	// SigninUrl: Sign-in URL for authentication when device is provisioned
4065	// with a sign-in enrollment token. The sign-in endpoint should finish
4066	// authentication flow with a URL in the form of
4067	// https://enterprise.google.com/android/enroll?et= for a successful
4068	// login, or https://enterprise.google.com/android/enroll/invalid for a
4069	// failed login.
4070	SigninUrl string `json:"signinUrl,omitempty"`
4071
4072	// ForceSendFields is a list of field names (e.g. "AllowPersonalUsage")
4073	// to unconditionally include in API requests. By default, fields with
4074	// empty or default values are omitted from API requests. However, any
4075	// non-pointer, non-interface field appearing in ForceSendFields will be
4076	// sent to the server regardless of whether the field is empty or not.
4077	// This may be used to include empty fields in Patch requests.
4078	ForceSendFields []string `json:"-"`
4079
4080	// NullFields is a list of field names (e.g. "AllowPersonalUsage") to
4081	// include in API requests with the JSON null value. By default, fields
4082	// with empty values are omitted from API requests. However, any field
4083	// with an empty value appearing in NullFields will be sent to the
4084	// server as null. It is an error if a field in this list has a
4085	// non-empty value. This may be used to include null fields in Patch
4086	// requests.
4087	NullFields []string `json:"-"`
4088}
4089
4090func (s *SigninDetail) MarshalJSON() ([]byte, error) {
4091	type NoMethod SigninDetail
4092	raw := NoMethod(*s)
4093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4094}
4095
4096// SignupUrl: An enterprise signup URL.
4097type SignupUrl struct {
4098	// Name: The name of the resource. Use this value in the signupUrl field
4099	// when calling enterprises.create to complete the enterprise signup
4100	// flow.
4101	Name string `json:"name,omitempty"`
4102
4103	// Url: A URL where an enterprise admin can register their enterprise.
4104	// The page can't be rendered in an iframe.
4105	Url string `json:"url,omitempty"`
4106
4107	// ServerResponse contains the HTTP response code and headers from the
4108	// server.
4109	googleapi.ServerResponse `json:"-"`
4110
4111	// ForceSendFields is a list of field names (e.g. "Name") to
4112	// unconditionally include in API requests. By default, fields with
4113	// empty or default values are omitted from API requests. However, any
4114	// non-pointer, non-interface field appearing in ForceSendFields will be
4115	// sent to the server regardless of whether the field is empty or not.
4116	// This may be used to include empty fields in Patch requests.
4117	ForceSendFields []string `json:"-"`
4118
4119	// NullFields is a list of field names (e.g. "Name") to include in API
4120	// requests with the JSON null value. By default, fields with empty
4121	// values are omitted from API requests. However, any field with an
4122	// empty value appearing in NullFields will be sent to the server as
4123	// null. It is an error if a field in this list has a non-empty value.
4124	// This may be used to include null fields in Patch requests.
4125	NullFields []string `json:"-"`
4126}
4127
4128func (s *SignupUrl) MarshalJSON() ([]byte, error) {
4129	type NoMethod SignupUrl
4130	raw := NoMethod(*s)
4131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4132}
4133
4134// SoftwareInfo: Information about device software.
4135type SoftwareInfo struct {
4136	// AndroidBuildNumber: Android build ID string meant for displaying to
4137	// the user. For example, shamu-userdebug 6.0.1 MOB30I 2756745 dev-keys.
4138	AndroidBuildNumber string `json:"androidBuildNumber,omitempty"`
4139
4140	// AndroidBuildTime: Build time.
4141	AndroidBuildTime string `json:"androidBuildTime,omitempty"`
4142
4143	// AndroidDevicePolicyVersionCode: The Android Device Policy app version
4144	// code.
4145	AndroidDevicePolicyVersionCode int64 `json:"androidDevicePolicyVersionCode,omitempty"`
4146
4147	// AndroidDevicePolicyVersionName: The Android Device Policy app version
4148	// as displayed to the user.
4149	AndroidDevicePolicyVersionName string `json:"androidDevicePolicyVersionName,omitempty"`
4150
4151	// AndroidVersion: The user-visible Android version string. For example,
4152	// 6.0.1.
4153	AndroidVersion string `json:"androidVersion,omitempty"`
4154
4155	// BootloaderVersion: The system bootloader version number, e.g. 0.6.7.
4156	BootloaderVersion string `json:"bootloaderVersion,omitempty"`
4157
4158	// DeviceBuildSignature: SHA-256 hash of android.content.pm.Signature
4159	// (https://developer.android.com/reference/android/content/pm/Signature.html)
4160	// associated with the system package, which can be used to verify that
4161	// the system build hasn't been modified.
4162	DeviceBuildSignature string `json:"deviceBuildSignature,omitempty"`
4163
4164	// DeviceKernelVersion: Kernel version, for example, 2.6.32.9-g103d848.
4165	DeviceKernelVersion string `json:"deviceKernelVersion,omitempty"`
4166
4167	// PrimaryLanguageCode: An IETF BCP 47 language code for the primary
4168	// locale on the device.
4169	PrimaryLanguageCode string `json:"primaryLanguageCode,omitempty"`
4170
4171	// SecurityPatchLevel: Security patch level, e.g. 2016-05-01.
4172	SecurityPatchLevel string `json:"securityPatchLevel,omitempty"`
4173
4174	// SystemUpdateInfo: Information about a potential pending system
4175	// update.
4176	SystemUpdateInfo *SystemUpdateInfo `json:"systemUpdateInfo,omitempty"`
4177
4178	// ForceSendFields is a list of field names (e.g. "AndroidBuildNumber")
4179	// to unconditionally include in API requests. By default, fields with
4180	// empty or default values are omitted from API requests. However, any
4181	// non-pointer, non-interface field appearing in ForceSendFields will be
4182	// sent to the server regardless of whether the field is empty or not.
4183	// This may be used to include empty fields in Patch requests.
4184	ForceSendFields []string `json:"-"`
4185
4186	// NullFields is a list of field names (e.g. "AndroidBuildNumber") to
4187	// include in API requests with the JSON null value. By default, fields
4188	// with empty values are omitted from API requests. However, any field
4189	// with an empty value appearing in NullFields will be sent to the
4190	// server as null. It is an error if a field in this list has a
4191	// non-empty value. This may be used to include null fields in Patch
4192	// requests.
4193	NullFields []string `json:"-"`
4194}
4195
4196func (s *SoftwareInfo) MarshalJSON() ([]byte, error) {
4197	type NoMethod SoftwareInfo
4198	raw := NoMethod(*s)
4199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4200}
4201
4202// Status: The Status type defines a logical error model that is
4203// suitable for different programming environments, including REST APIs
4204// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
4205// Status message contains three pieces of data: error code, error
4206// message, and error details.You can find out more about this error
4207// model and how to work with it in the API Design Guide
4208// (https://cloud.google.com/apis/design/errors).
4209type Status struct {
4210	// Code: The status code, which should be an enum value of
4211	// google.rpc.Code.
4212	Code int64 `json:"code,omitempty"`
4213
4214	// Details: A list of messages that carry the error details. There is a
4215	// common set of message types for APIs to use.
4216	Details []googleapi.RawMessage `json:"details,omitempty"`
4217
4218	// Message: A developer-facing error message, which should be in
4219	// English. Any user-facing error message should be localized and sent
4220	// in the google.rpc.Status.details field, or localized by the client.
4221	Message string `json:"message,omitempty"`
4222
4223	// ForceSendFields is a list of field names (e.g. "Code") to
4224	// unconditionally include in API requests. By default, fields with
4225	// empty or default values are omitted from API requests. However, any
4226	// non-pointer, non-interface field appearing in ForceSendFields will be
4227	// sent to the server regardless of whether the field is empty or not.
4228	// This may be used to include empty fields in Patch requests.
4229	ForceSendFields []string `json:"-"`
4230
4231	// NullFields is a list of field names (e.g. "Code") to include in API
4232	// requests with the JSON null value. By default, fields with empty
4233	// values are omitted from API requests. However, any field with an
4234	// empty value appearing in NullFields will be sent to the server as
4235	// null. It is an error if a field in this list has a non-empty value.
4236	// This may be used to include null fields in Patch requests.
4237	NullFields []string `json:"-"`
4238}
4239
4240func (s *Status) MarshalJSON() ([]byte, error) {
4241	type NoMethod Status
4242	raw := NoMethod(*s)
4243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4244}
4245
4246// StatusReportingSettings: Settings controlling the behavior of status
4247// reports.
4248type StatusReportingSettings struct {
4249	// ApplicationReportingSettings: Application reporting settings. Only
4250	// applicable if application_reports_enabled is true.
4251	ApplicationReportingSettings *ApplicationReportingSettings `json:"applicationReportingSettings,omitempty"`
4252
4253	// ApplicationReportsEnabled: Whether app reports are enabled.
4254	ApplicationReportsEnabled bool `json:"applicationReportsEnabled,omitempty"`
4255
4256	// CommonCriteriaModeEnabled: Whether Common Criteria Mode reporting is
4257	// enabled.
4258	CommonCriteriaModeEnabled bool `json:"commonCriteriaModeEnabled,omitempty"`
4259
4260	// DeviceSettingsEnabled: Whether device settings reporting is enabled.
4261	DeviceSettingsEnabled bool `json:"deviceSettingsEnabled,omitempty"`
4262
4263	// DisplayInfoEnabled: Whether displays reporting is enabled. Report
4264	// data is not available for personally owned devices with work
4265	// profiles.
4266	DisplayInfoEnabled bool `json:"displayInfoEnabled,omitempty"`
4267
4268	// HardwareStatusEnabled: Whether hardware status reporting is enabled.
4269	// Report data is not available for personally owned devices with work
4270	// profiles.
4271	HardwareStatusEnabled bool `json:"hardwareStatusEnabled,omitempty"`
4272
4273	// MemoryInfoEnabled: Whether memory event reporting is enabled.
4274	MemoryInfoEnabled bool `json:"memoryInfoEnabled,omitempty"`
4275
4276	// NetworkInfoEnabled: Whether network info reporting is enabled.
4277	NetworkInfoEnabled bool `json:"networkInfoEnabled,omitempty"`
4278
4279	// PowerManagementEventsEnabled: Whether power management event
4280	// reporting is enabled. Report data is not available for personally
4281	// owned devices with work profiles.
4282	PowerManagementEventsEnabled bool `json:"powerManagementEventsEnabled,omitempty"`
4283
4284	// SoftwareInfoEnabled: Whether software info reporting is enabled.
4285	SoftwareInfoEnabled bool `json:"softwareInfoEnabled,omitempty"`
4286
4287	// SystemPropertiesEnabled: Whether system properties reporting is
4288	// enabled.
4289	SystemPropertiesEnabled bool `json:"systemPropertiesEnabled,omitempty"`
4290
4291	// ForceSendFields is a list of field names (e.g.
4292	// "ApplicationReportingSettings") to unconditionally include in API
4293	// requests. By default, fields with empty or default values are omitted
4294	// from API requests. However, any non-pointer, non-interface field
4295	// appearing in ForceSendFields will be sent to the server regardless of
4296	// whether the field is empty or not. This may be used to include empty
4297	// fields in Patch requests.
4298	ForceSendFields []string `json:"-"`
4299
4300	// NullFields is a list of field names (e.g.
4301	// "ApplicationReportingSettings") to include in API requests with the
4302	// JSON null value. By default, fields with empty values are omitted
4303	// from API requests. However, any field with an empty value appearing
4304	// in NullFields will be sent to the server as null. It is an error if a
4305	// field in this list has a non-empty value. This may be used to include
4306	// null fields in Patch requests.
4307	NullFields []string `json:"-"`
4308}
4309
4310func (s *StatusReportingSettings) MarshalJSON() ([]byte, error) {
4311	type NoMethod StatusReportingSettings
4312	raw := NoMethod(*s)
4313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4314}
4315
4316// SystemUpdate: Configuration for managing system updates
4317type SystemUpdate struct {
4318	// EndMinutes: If the type is WINDOWED, the end of the maintenance
4319	// window, measured as the number of minutes after midnight in device's
4320	// local time. This value must be between 0 and 1439, inclusive. If this
4321	// value is less than start_minutes, then the maintenance window spans
4322	// midnight. If the maintenance window specified is smaller than 30
4323	// minutes, the actual window is extended to 30 minutes beyond the start
4324	// time.
4325	EndMinutes int64 `json:"endMinutes,omitempty"`
4326
4327	// FreezePeriods: An annually repeating time period in which
4328	// over-the-air (OTA) system updates are postponed to freeze the OS
4329	// version running on a device. To prevent freezing the device
4330	// indefinitely, each freeze period must be separated by at least 60
4331	// days.
4332	FreezePeriods []*FreezePeriod `json:"freezePeriods,omitempty"`
4333
4334	// StartMinutes: If the type is WINDOWED, the start of the maintenance
4335	// window, measured as the number of minutes after midnight in the
4336	// device's local time. This value must be between 0 and 1439,
4337	// inclusive.
4338	StartMinutes int64 `json:"startMinutes,omitempty"`
4339
4340	// Type: The type of system update to configure.
4341	//
4342	// Possible values:
4343	//   "SYSTEM_UPDATE_TYPE_UNSPECIFIED" - Follow the default update
4344	// behavior for the device, which typically requires the user to accept
4345	// system updates.
4346	//   "AUTOMATIC" - Install automatically as soon as an update is
4347	// available.
4348	//   "WINDOWED" - Install automatically within a daily maintenance
4349	// window. This also configures Play apps to be updated within the
4350	// window. This is strongly recommended for kiosk devices because this
4351	// is the only way apps persistently pinned to the foreground can be
4352	// updated by Play.If autoUpdateMode is set to AUTO_UPDATE_HIGH_PRIORITY
4353	// for an app, then the maintenance window is ignored for that app and
4354	// it is updated as soon as possible even outside of the maintenance
4355	// window.
4356	//   "POSTPONE" - Postpone automatic install up to a maximum of 30 days.
4357	Type string `json:"type,omitempty"`
4358
4359	// ForceSendFields is a list of field names (e.g. "EndMinutes") to
4360	// unconditionally include in API requests. By default, fields with
4361	// empty or default values are omitted from API requests. However, any
4362	// non-pointer, non-interface field appearing in ForceSendFields will be
4363	// sent to the server regardless of whether the field is empty or not.
4364	// This may be used to include empty fields in Patch requests.
4365	ForceSendFields []string `json:"-"`
4366
4367	// NullFields is a list of field names (e.g. "EndMinutes") to include in
4368	// API requests with the JSON null value. By default, fields with empty
4369	// values are omitted from API requests. However, any field with an
4370	// empty value appearing in NullFields will be sent to the server as
4371	// null. It is an error if a field in this list has a non-empty value.
4372	// This may be used to include null fields in Patch requests.
4373	NullFields []string `json:"-"`
4374}
4375
4376func (s *SystemUpdate) MarshalJSON() ([]byte, error) {
4377	type NoMethod SystemUpdate
4378	raw := NoMethod(*s)
4379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4380}
4381
4382// SystemUpdateInfo: Information about a potential pending system
4383// update.
4384type SystemUpdateInfo struct {
4385	// UpdateReceivedTime: The time when the update was first available. A
4386	// zero value indicates that this field is not set. This field is set
4387	// only if an update is available (that is, updateStatus is neither
4388	// UPDATE_STATUS_UNKNOWN nor UP_TO_DATE).
4389	UpdateReceivedTime string `json:"updateReceivedTime,omitempty"`
4390
4391	// UpdateStatus: The status of an update: whether an update exists and
4392	// what type it is.
4393	//
4394	// Possible values:
4395	//   "UPDATE_STATUS_UNKNOWN" - It is unknown whether there is a pending
4396	// system update. This happens when, for example, the device API level
4397	// is less than 26, or if the version of Android Device Policy is
4398	// outdated.
4399	//   "UP_TO_DATE" - There is no pending system update available on the
4400	// device.
4401	//   "UNKNOWN_UPDATE_AVAILABLE" - There is a pending system update
4402	// available, but its type is not known.
4403	//   "SECURITY_UPDATE_AVAILABLE" - There is a pending security update
4404	// available.
4405	//   "OS_UPDATE_AVAILABLE" - There is a pending OS update available.
4406	UpdateStatus string `json:"updateStatus,omitempty"`
4407
4408	// ForceSendFields is a list of field names (e.g. "UpdateReceivedTime")
4409	// to unconditionally include in API requests. By default, fields with
4410	// empty or default values are omitted from API requests. However, any
4411	// non-pointer, non-interface field appearing in ForceSendFields will be
4412	// sent to the server regardless of whether the field is empty or not.
4413	// This may be used to include empty fields in Patch requests.
4414	ForceSendFields []string `json:"-"`
4415
4416	// NullFields is a list of field names (e.g. "UpdateReceivedTime") to
4417	// include in API requests with the JSON null value. By default, fields
4418	// with empty values are omitted from API requests. However, any field
4419	// with an empty value appearing in NullFields will be sent to the
4420	// server as null. It is an error if a field in this list has a
4421	// non-empty value. This may be used to include null fields in Patch
4422	// requests.
4423	NullFields []string `json:"-"`
4424}
4425
4426func (s *SystemUpdateInfo) MarshalJSON() ([]byte, error) {
4427	type NoMethod SystemUpdateInfo
4428	raw := NoMethod(*s)
4429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4430}
4431
4432// TelephonyInfo: Telephony information associated with a given SIM card
4433// on the device. Only supported on fully managed devices starting from
4434// Android API level 23.
4435type TelephonyInfo struct {
4436	// CarrierName: The carrier name associated with this SIM card.
4437	CarrierName string `json:"carrierName,omitempty"`
4438
4439	// PhoneNumber: The phone number associated with this SIM card.
4440	PhoneNumber string `json:"phoneNumber,omitempty"`
4441
4442	// ForceSendFields is a list of field names (e.g. "CarrierName") to
4443	// unconditionally include in API requests. By default, fields with
4444	// empty or default values are omitted from API requests. However, any
4445	// non-pointer, non-interface field appearing in ForceSendFields will be
4446	// sent to the server regardless of whether the field is empty or not.
4447	// This may be used to include empty fields in Patch requests.
4448	ForceSendFields []string `json:"-"`
4449
4450	// NullFields is a list of field names (e.g. "CarrierName") to include
4451	// in API requests with the JSON null value. By default, fields with
4452	// empty values are omitted from API requests. However, any field with
4453	// an empty value appearing in NullFields will be sent to the server as
4454	// null. It is an error if a field in this list has a non-empty value.
4455	// This may be used to include null fields in Patch requests.
4456	NullFields []string `json:"-"`
4457}
4458
4459func (s *TelephonyInfo) MarshalJSON() ([]byte, error) {
4460	type NoMethod TelephonyInfo
4461	raw := NoMethod(*s)
4462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4463}
4464
4465// TermsAndConditions: A terms and conditions page to be accepted during
4466// provisioning.
4467type TermsAndConditions struct {
4468	// Content: A well-formatted HTML string. It will be parsed on the
4469	// client with android.text.Html#fromHtml.
4470	Content *UserFacingMessage `json:"content,omitempty"`
4471
4472	// Header: A short header which appears above the HTML content.
4473	Header *UserFacingMessage `json:"header,omitempty"`
4474
4475	// ForceSendFields is a list of field names (e.g. "Content") to
4476	// unconditionally include in API requests. By default, fields with
4477	// empty or default values are omitted from API requests. However, any
4478	// non-pointer, non-interface field appearing in ForceSendFields will be
4479	// sent to the server regardless of whether the field is empty or not.
4480	// This may be used to include empty fields in Patch requests.
4481	ForceSendFields []string `json:"-"`
4482
4483	// NullFields is a list of field names (e.g. "Content") to include in
4484	// API requests with the JSON null value. By default, fields with empty
4485	// values are omitted from API requests. However, any field with an
4486	// empty value appearing in NullFields will be sent to the server as
4487	// null. It is an error if a field in this list has a non-empty value.
4488	// This may be used to include null fields in Patch requests.
4489	NullFields []string `json:"-"`
4490}
4491
4492func (s *TermsAndConditions) MarshalJSON() ([]byte, error) {
4493	type NoMethod TermsAndConditions
4494	raw := NoMethod(*s)
4495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4496}
4497
4498// User: A user belonging to an enterprise.
4499type User struct {
4500	// AccountIdentifier: A unique identifier you create for this user, such
4501	// as user342 or asset#44418. This field must be set when the user is
4502	// created and can't be updated. This field must not contain personally
4503	// identifiable information (PII). This identifier must be 1024
4504	// characters or less; otherwise, the update policy request will fail.
4505	AccountIdentifier string `json:"accountIdentifier,omitempty"`
4506
4507	// ForceSendFields is a list of field names (e.g. "AccountIdentifier")
4508	// to unconditionally include in API requests. By default, fields with
4509	// empty or default values are omitted from API requests. However, any
4510	// non-pointer, non-interface field appearing in ForceSendFields will be
4511	// sent to the server regardless of whether the field is empty or not.
4512	// This may be used to include empty fields in Patch requests.
4513	ForceSendFields []string `json:"-"`
4514
4515	// NullFields is a list of field names (e.g. "AccountIdentifier") to
4516	// include in API requests with the JSON null value. By default, fields
4517	// with empty values are omitted from API requests. However, any field
4518	// with an empty value appearing in NullFields will be sent to the
4519	// server as null. It is an error if a field in this list has a
4520	// non-empty value. This may be used to include null fields in Patch
4521	// requests.
4522	NullFields []string `json:"-"`
4523}
4524
4525func (s *User) MarshalJSON() ([]byte, error) {
4526	type NoMethod User
4527	raw := NoMethod(*s)
4528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4529}
4530
4531// UserFacingMessage: Provides a user-facing message with locale info.
4532// The maximum message length is 4096 characters.
4533type UserFacingMessage struct {
4534	// DefaultMessage: The default message displayed if no localized message
4535	// is specified or the user's locale doesn't match with any of the
4536	// localized messages. A default message must be provided if any
4537	// localized messages are provided.
4538	DefaultMessage string `json:"defaultMessage,omitempty"`
4539
4540	// LocalizedMessages: A map containing pairs, where locale is a
4541	// well-formed BCP 47 language
4542	// (https://www.w3.org/International/articles/language-tags/) code, such
4543	// as en-US, es-ES, or fr.
4544	LocalizedMessages map[string]string `json:"localizedMessages,omitempty"`
4545
4546	// ForceSendFields is a list of field names (e.g. "DefaultMessage") to
4547	// unconditionally include in API requests. By default, fields with
4548	// empty or default values are omitted from API requests. However, any
4549	// non-pointer, non-interface field appearing in ForceSendFields will be
4550	// sent to the server regardless of whether the field is empty or not.
4551	// This may be used to include empty fields in Patch requests.
4552	ForceSendFields []string `json:"-"`
4553
4554	// NullFields is a list of field names (e.g. "DefaultMessage") to
4555	// include in API requests with the JSON null value. By default, fields
4556	// with empty values are omitted from API requests. However, any field
4557	// with an empty value appearing in NullFields will be sent to the
4558	// server as null. It is an error if a field in this list has a
4559	// non-empty value. This may be used to include null fields in Patch
4560	// requests.
4561	NullFields []string `json:"-"`
4562}
4563
4564func (s *UserFacingMessage) MarshalJSON() ([]byte, error) {
4565	type NoMethod UserFacingMessage
4566	raw := NoMethod(*s)
4567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4568}
4569
4570// WebApp: A web app.
4571type WebApp struct {
4572	// DisplayMode: The display mode of the web app.
4573	//
4574	// Possible values:
4575	//   "DISPLAY_MODE_UNSPECIFIED" - Not used.
4576	//   "MINIMAL_UI" - Opens the web app with a minimal set of browser UI
4577	// elements for controlling navigation and viewing the page URL.
4578	//   "STANDALONE" - Opens the web app to look and feel like a standalone
4579	// native application. The browser UI elements and page URL are not
4580	// visible, however the system status bar and back button are visible.
4581	//   "FULL_SCREEN" - Opens the web app in full screen without any
4582	// visible controls. The browser UI elements, page URL, system status
4583	// bar and back button are not visible, and the web app takes up the
4584	// entirety of the available display area.
4585	DisplayMode string `json:"displayMode,omitempty"`
4586
4587	// Icons: A list of icons for the web app. Must have at least one
4588	// element.
4589	Icons []*WebAppIcon `json:"icons,omitempty"`
4590
4591	// Name: The name of the web app, which is generated by the server
4592	// during creation in the form
4593	// enterprises/{enterpriseId}/webApps/{packageName}.
4594	Name string `json:"name,omitempty"`
4595
4596	// StartUrl: The start URL, i.e. the URL that should load when the user
4597	// opens the application.
4598	StartUrl string `json:"startUrl,omitempty"`
4599
4600	// Title: The title of the web app as displayed to the user (e.g.,
4601	// amongst a list of other applications, or as a label for an icon).
4602	Title string `json:"title,omitempty"`
4603
4604	// VersionCode: The current version of the app.Note that the version can
4605	// automatically increase during the lifetime of the web app, while
4606	// Google does internal housekeeping to keep the web app up-to-date.
4607	VersionCode int64 `json:"versionCode,omitempty,string"`
4608
4609	// ServerResponse contains the HTTP response code and headers from the
4610	// server.
4611	googleapi.ServerResponse `json:"-"`
4612
4613	// ForceSendFields is a list of field names (e.g. "DisplayMode") to
4614	// unconditionally include in API requests. By default, fields with
4615	// empty or default values are omitted from API requests. However, any
4616	// non-pointer, non-interface field appearing in ForceSendFields will be
4617	// sent to the server regardless of whether the field is empty or not.
4618	// This may be used to include empty fields in Patch requests.
4619	ForceSendFields []string `json:"-"`
4620
4621	// NullFields is a list of field names (e.g. "DisplayMode") to include
4622	// in API requests with the JSON null value. By default, fields with
4623	// empty values are omitted from API requests. However, any field with
4624	// an empty value appearing in NullFields will be sent to the server as
4625	// null. It is an error if a field in this list has a non-empty value.
4626	// This may be used to include null fields in Patch requests.
4627	NullFields []string `json:"-"`
4628}
4629
4630func (s *WebApp) MarshalJSON() ([]byte, error) {
4631	type NoMethod WebApp
4632	raw := NoMethod(*s)
4633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4634}
4635
4636// WebAppIcon: An icon for a web app. Supported formats are: png, jpg
4637// and webp.
4638type WebAppIcon struct {
4639	// ImageData: The actual bytes of the image in a base64url encoded
4640	// string (c.f. RFC4648, section 5 "Base 64 Encoding with URL and
4641	// Filename Safe Alphabet"). - The image type can be png or jpg. - The
4642	// image should ideally be square. - The image should ideally have a
4643	// size of 512x512.
4644	ImageData string `json:"imageData,omitempty"`
4645
4646	// ForceSendFields is a list of field names (e.g. "ImageData") to
4647	// unconditionally include in API requests. By default, fields with
4648	// empty or default values are omitted from API requests. However, any
4649	// non-pointer, non-interface field appearing in ForceSendFields will be
4650	// sent to the server regardless of whether the field is empty or not.
4651	// This may be used to include empty fields in Patch requests.
4652	ForceSendFields []string `json:"-"`
4653
4654	// NullFields is a list of field names (e.g. "ImageData") to include in
4655	// API requests with the JSON null value. By default, fields with empty
4656	// values are omitted from API requests. However, any field with an
4657	// empty value appearing in NullFields will be sent to the server as
4658	// null. It is an error if a field in this list has a non-empty value.
4659	// This may be used to include null fields in Patch requests.
4660	NullFields []string `json:"-"`
4661}
4662
4663func (s *WebAppIcon) MarshalJSON() ([]byte, error) {
4664	type NoMethod WebAppIcon
4665	raw := NoMethod(*s)
4666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4667}
4668
4669// WebToken: A web token used to access the managed Google Play iframe.
4670type WebToken struct {
4671	// EnabledFeatures: The features to enable. Use this if you want to
4672	// control exactly which feature(s) will be activated; leave empty to
4673	// allow all features.Restrictions / things to note: - If no features
4674	// are listed here, all features are enabled — this is the default
4675	// behavior where you give access to all features to your admins. - This
4676	// must not contain any FEATURE_UNSPECIFIED values. - Repeated values
4677	// are ignored
4678	//
4679	// Possible values:
4680	//   "FEATURE_UNSPECIFIED" - Unspecified feature.
4681	//   "PLAY_SEARCH" - The Managed Play search apps page
4682	// (https://developers.google.com/android/management/apps#search-apps).
4683	//   "PRIVATE_APPS" - The private apps page
4684	// (https://developers.google.com/android/management/apps#private-apps).
4685	//   "WEB_APPS" - The Web Apps page
4686	// (https://developers.google.com/android/management/apps#web-apps).
4687	//   "STORE_BUILDER" - The organize apps page
4688	// (https://developers.google.com/android/management/apps#organize-apps).
4689	//   "MANAGED_CONFIGURATIONS" - The managed configurations page
4690	// (https://developers.google.com/android/management/managed-configurations-iframe).
4691	//   "ZERO_TOUCH_CUSTOMER_MANAGEMENT" - The zero-touch iframe
4692	// (https://developers.google.com/android/management/zero-touch-iframe).
4693	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
4694
4695	// Name: The name of the web token, which is generated by the server
4696	// during creation in the form
4697	// enterprises/{enterpriseId}/webTokens/{webTokenId}.
4698	Name string `json:"name,omitempty"`
4699
4700	// ParentFrameUrl: The URL of the parent frame hosting the iframe with
4701	// the embedded UI. To prevent XSS, the iframe may not be hosted at
4702	// other URLs. The URL must use the https scheme.
4703	ParentFrameUrl string `json:"parentFrameUrl,omitempty"`
4704
4705	// Permissions: Permissions available to an admin in the embedded UI. An
4706	// admin must have all of these permissions in order to view the UI.
4707	// This field is deprecated.
4708	//
4709	// Possible values:
4710	//   "WEB_TOKEN_PERMISSION_UNSPECIFIED" - This value is ignored.
4711	//   "APPROVE_APPS" - The permission to approve apps for the enterprise.
4712	Permissions []string `json:"permissions,omitempty"`
4713
4714	// Value: The token value which is used in the hosting page to generate
4715	// the iframe with the embedded UI. This is a read-only field generated
4716	// by the server.
4717	Value string `json:"value,omitempty"`
4718
4719	// ServerResponse contains the HTTP response code and headers from the
4720	// server.
4721	googleapi.ServerResponse `json:"-"`
4722
4723	// ForceSendFields is a list of field names (e.g. "EnabledFeatures") to
4724	// unconditionally include in API requests. By default, fields with
4725	// empty or default values are omitted from API requests. However, any
4726	// non-pointer, non-interface field appearing in ForceSendFields will be
4727	// sent to the server regardless of whether the field is empty or not.
4728	// This may be used to include empty fields in Patch requests.
4729	ForceSendFields []string `json:"-"`
4730
4731	// NullFields is a list of field names (e.g. "EnabledFeatures") to
4732	// include in API requests with the JSON null value. By default, fields
4733	// with empty values are omitted from API requests. However, any field
4734	// with an empty value appearing in NullFields will be sent to the
4735	// server as null. It is an error if a field in this list has a
4736	// non-empty value. This may be used to include null fields in Patch
4737	// requests.
4738	NullFields []string `json:"-"`
4739}
4740
4741func (s *WebToken) MarshalJSON() ([]byte, error) {
4742	type NoMethod WebToken
4743	raw := NoMethod(*s)
4744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4745}
4746
4747// WipeAction: An action to reset a fully managed device or delete a
4748// work profile. Note: blockAction must also be specified.
4749type WipeAction struct {
4750	// PreserveFrp: Whether the factory-reset protection data is preserved
4751	// on the device. This setting doesn’t apply to work profiles.
4752	PreserveFrp bool `json:"preserveFrp,omitempty"`
4753
4754	// WipeAfterDays: Number of days the policy is non-compliant before the
4755	// device or work profile is wiped. wipeAfterDays must be greater than
4756	// blockAfterDays.
4757	WipeAfterDays int64 `json:"wipeAfterDays,omitempty"`
4758
4759	// ForceSendFields is a list of field names (e.g. "PreserveFrp") to
4760	// unconditionally include in API requests. By default, fields with
4761	// empty or default values are omitted from API requests. However, any
4762	// non-pointer, non-interface field appearing in ForceSendFields will be
4763	// sent to the server regardless of whether the field is empty or not.
4764	// This may be used to include empty fields in Patch requests.
4765	ForceSendFields []string `json:"-"`
4766
4767	// NullFields is a list of field names (e.g. "PreserveFrp") to include
4768	// in API requests with the JSON null value. By default, fields with
4769	// empty values are omitted from API requests. However, any field with
4770	// an empty value appearing in NullFields will be sent to the server as
4771	// null. It is an error if a field in this list has a non-empty value.
4772	// This may be used to include null fields in Patch requests.
4773	NullFields []string `json:"-"`
4774}
4775
4776func (s *WipeAction) MarshalJSON() ([]byte, error) {
4777	type NoMethod WipeAction
4778	raw := NoMethod(*s)
4779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4780}
4781
4782// method id "androidmanagement.enterprises.create":
4783
4784type EnterprisesCreateCall struct {
4785	s          *Service
4786	enterprise *Enterprise
4787	urlParams_ gensupport.URLParams
4788	ctx_       context.Context
4789	header_    http.Header
4790}
4791
4792// Create: Creates an enterprise. This is the last step in the
4793// enterprise signup flow.
4794func (r *EnterprisesService) Create(enterprise *Enterprise) *EnterprisesCreateCall {
4795	c := &EnterprisesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4796	c.enterprise = enterprise
4797	return c
4798}
4799
4800// AgreementAccepted sets the optional parameter "agreementAccepted":
4801// Whether the enterprise admin has seen and agreed to the managed
4802// Google Play Agreement (https://www.android.com/enterprise/terms/).
4803// Always set this to true when creating an EMM-managed enterprise. Do
4804// not create the enterprise until the admin has viewed and accepted the
4805// agreement.
4806func (c *EnterprisesCreateCall) AgreementAccepted(agreementAccepted bool) *EnterprisesCreateCall {
4807	c.urlParams_.Set("agreementAccepted", fmt.Sprint(agreementAccepted))
4808	return c
4809}
4810
4811// EnterpriseToken sets the optional parameter "enterpriseToken": The
4812// enterprise token appended to the callback URL. Only set this when
4813// creating a customer-managed enterprise.
4814func (c *EnterprisesCreateCall) EnterpriseToken(enterpriseToken string) *EnterprisesCreateCall {
4815	c.urlParams_.Set("enterpriseToken", enterpriseToken)
4816	return c
4817}
4818
4819// ProjectId sets the optional parameter "projectId": The ID of the
4820// Google Cloud Platform project which will own the enterprise.
4821func (c *EnterprisesCreateCall) ProjectId(projectId string) *EnterprisesCreateCall {
4822	c.urlParams_.Set("projectId", projectId)
4823	return c
4824}
4825
4826// SignupUrlName sets the optional parameter "signupUrlName": The name
4827// of the SignupUrl used to sign up for the enterprise. Only set this
4828// when creating a customer-managed enterprise.
4829func (c *EnterprisesCreateCall) SignupUrlName(signupUrlName string) *EnterprisesCreateCall {
4830	c.urlParams_.Set("signupUrlName", signupUrlName)
4831	return c
4832}
4833
4834// Fields allows partial responses to be retrieved. See
4835// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4836// for more information.
4837func (c *EnterprisesCreateCall) Fields(s ...googleapi.Field) *EnterprisesCreateCall {
4838	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4839	return c
4840}
4841
4842// Context sets the context to be used in this call's Do method. Any
4843// pending HTTP request will be aborted if the provided context is
4844// canceled.
4845func (c *EnterprisesCreateCall) Context(ctx context.Context) *EnterprisesCreateCall {
4846	c.ctx_ = ctx
4847	return c
4848}
4849
4850// Header returns an http.Header that can be modified by the caller to
4851// add HTTP headers to the request.
4852func (c *EnterprisesCreateCall) Header() http.Header {
4853	if c.header_ == nil {
4854		c.header_ = make(http.Header)
4855	}
4856	return c.header_
4857}
4858
4859func (c *EnterprisesCreateCall) doRequest(alt string) (*http.Response, error) {
4860	reqHeaders := make(http.Header)
4861	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
4862	for k, v := range c.header_ {
4863		reqHeaders[k] = v
4864	}
4865	reqHeaders.Set("User-Agent", c.s.userAgent())
4866	var body io.Reader = nil
4867	body, err := googleapi.WithoutDataWrapper.JSONReader(c.enterprise)
4868	if err != nil {
4869		return nil, err
4870	}
4871	reqHeaders.Set("Content-Type", "application/json")
4872	c.urlParams_.Set("alt", alt)
4873	c.urlParams_.Set("prettyPrint", "false")
4874	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/enterprises")
4875	urls += "?" + c.urlParams_.Encode()
4876	req, err := http.NewRequest("POST", urls, body)
4877	if err != nil {
4878		return nil, err
4879	}
4880	req.Header = reqHeaders
4881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4882}
4883
4884// Do executes the "androidmanagement.enterprises.create" call.
4885// Exactly one of *Enterprise or error will be non-nil. Any non-2xx
4886// status code is an error. Response headers are in either
4887// *Enterprise.ServerResponse.Header or (if a response was returned at
4888// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4889// to check whether the returned error was because
4890// http.StatusNotModified was returned.
4891func (c *EnterprisesCreateCall) Do(opts ...googleapi.CallOption) (*Enterprise, error) {
4892	gensupport.SetOptions(c.urlParams_, opts...)
4893	res, err := c.doRequest("json")
4894	if res != nil && res.StatusCode == http.StatusNotModified {
4895		if res.Body != nil {
4896			res.Body.Close()
4897		}
4898		return nil, &googleapi.Error{
4899			Code:   res.StatusCode,
4900			Header: res.Header,
4901		}
4902	}
4903	if err != nil {
4904		return nil, err
4905	}
4906	defer googleapi.CloseBody(res)
4907	if err := googleapi.CheckResponse(res); err != nil {
4908		return nil, err
4909	}
4910	ret := &Enterprise{
4911		ServerResponse: googleapi.ServerResponse{
4912			Header:         res.Header,
4913			HTTPStatusCode: res.StatusCode,
4914		},
4915	}
4916	target := &ret
4917	if err := gensupport.DecodeResponse(target, res); err != nil {
4918		return nil, err
4919	}
4920	return ret, nil
4921	// {
4922	//   "description": "Creates an enterprise. This is the last step in the enterprise signup flow.",
4923	//   "flatPath": "v1/enterprises",
4924	//   "httpMethod": "POST",
4925	//   "id": "androidmanagement.enterprises.create",
4926	//   "parameterOrder": [],
4927	//   "parameters": {
4928	//     "agreementAccepted": {
4929	//       "description": "Whether the enterprise admin has seen and agreed to the managed Google Play Agreement (https://www.android.com/enterprise/terms/). Always set this to true when creating an EMM-managed enterprise. Do not create the enterprise until the admin has viewed and accepted the agreement.",
4930	//       "location": "query",
4931	//       "type": "boolean"
4932	//     },
4933	//     "enterpriseToken": {
4934	//       "description": "The enterprise token appended to the callback URL. Only set this when creating a customer-managed enterprise.",
4935	//       "location": "query",
4936	//       "type": "string"
4937	//     },
4938	//     "projectId": {
4939	//       "description": "The ID of the Google Cloud Platform project which will own the enterprise.",
4940	//       "location": "query",
4941	//       "type": "string"
4942	//     },
4943	//     "signupUrlName": {
4944	//       "description": "The name of the SignupUrl used to sign up for the enterprise. Only set this when creating a customer-managed enterprise.",
4945	//       "location": "query",
4946	//       "type": "string"
4947	//     }
4948	//   },
4949	//   "path": "v1/enterprises",
4950	//   "request": {
4951	//     "$ref": "Enterprise"
4952	//   },
4953	//   "response": {
4954	//     "$ref": "Enterprise"
4955	//   },
4956	//   "scopes": [
4957	//     "https://www.googleapis.com/auth/androidmanagement"
4958	//   ]
4959	// }
4960
4961}
4962
4963// method id "androidmanagement.enterprises.delete":
4964
4965type EnterprisesDeleteCall struct {
4966	s          *Service
4967	name       string
4968	urlParams_ gensupport.URLParams
4969	ctx_       context.Context
4970	header_    http.Header
4971}
4972
4973// Delete: Deletes an enterprise. Only available for EMM-managed
4974// enterprises.
4975//
4976// - name: The name of the enterprise in the form
4977//   enterprises/{enterpriseId}.
4978func (r *EnterprisesService) Delete(name string) *EnterprisesDeleteCall {
4979	c := &EnterprisesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4980	c.name = name
4981	return c
4982}
4983
4984// Fields allows partial responses to be retrieved. See
4985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4986// for more information.
4987func (c *EnterprisesDeleteCall) Fields(s ...googleapi.Field) *EnterprisesDeleteCall {
4988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4989	return c
4990}
4991
4992// Context sets the context to be used in this call's Do method. Any
4993// pending HTTP request will be aborted if the provided context is
4994// canceled.
4995func (c *EnterprisesDeleteCall) Context(ctx context.Context) *EnterprisesDeleteCall {
4996	c.ctx_ = ctx
4997	return c
4998}
4999
5000// Header returns an http.Header that can be modified by the caller to
5001// add HTTP headers to the request.
5002func (c *EnterprisesDeleteCall) Header() http.Header {
5003	if c.header_ == nil {
5004		c.header_ = make(http.Header)
5005	}
5006	return c.header_
5007}
5008
5009func (c *EnterprisesDeleteCall) doRequest(alt string) (*http.Response, error) {
5010	reqHeaders := make(http.Header)
5011	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5012	for k, v := range c.header_ {
5013		reqHeaders[k] = v
5014	}
5015	reqHeaders.Set("User-Agent", c.s.userAgent())
5016	var body io.Reader = nil
5017	c.urlParams_.Set("alt", alt)
5018	c.urlParams_.Set("prettyPrint", "false")
5019	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
5020	urls += "?" + c.urlParams_.Encode()
5021	req, err := http.NewRequest("DELETE", urls, body)
5022	if err != nil {
5023		return nil, err
5024	}
5025	req.Header = reqHeaders
5026	googleapi.Expand(req.URL, map[string]string{
5027		"name": c.name,
5028	})
5029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5030}
5031
5032// Do executes the "androidmanagement.enterprises.delete" call.
5033// Exactly one of *Empty or error will be non-nil. Any non-2xx status
5034// code is an error. Response headers are in either
5035// *Empty.ServerResponse.Header or (if a response was returned at all)
5036// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5037// check whether the returned error was because http.StatusNotModified
5038// was returned.
5039func (c *EnterprisesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
5040	gensupport.SetOptions(c.urlParams_, opts...)
5041	res, err := c.doRequest("json")
5042	if res != nil && res.StatusCode == http.StatusNotModified {
5043		if res.Body != nil {
5044			res.Body.Close()
5045		}
5046		return nil, &googleapi.Error{
5047			Code:   res.StatusCode,
5048			Header: res.Header,
5049		}
5050	}
5051	if err != nil {
5052		return nil, err
5053	}
5054	defer googleapi.CloseBody(res)
5055	if err := googleapi.CheckResponse(res); err != nil {
5056		return nil, err
5057	}
5058	ret := &Empty{
5059		ServerResponse: googleapi.ServerResponse{
5060			Header:         res.Header,
5061			HTTPStatusCode: res.StatusCode,
5062		},
5063	}
5064	target := &ret
5065	if err := gensupport.DecodeResponse(target, res); err != nil {
5066		return nil, err
5067	}
5068	return ret, nil
5069	// {
5070	//   "description": "Deletes an enterprise. Only available for EMM-managed enterprises.",
5071	//   "flatPath": "v1/enterprises/{enterprisesId}",
5072	//   "httpMethod": "DELETE",
5073	//   "id": "androidmanagement.enterprises.delete",
5074	//   "parameterOrder": [
5075	//     "name"
5076	//   ],
5077	//   "parameters": {
5078	//     "name": {
5079	//       "description": "The name of the enterprise in the form enterprises/{enterpriseId}.",
5080	//       "location": "path",
5081	//       "pattern": "^enterprises/[^/]+$",
5082	//       "required": true,
5083	//       "type": "string"
5084	//     }
5085	//   },
5086	//   "path": "v1/{+name}",
5087	//   "response": {
5088	//     "$ref": "Empty"
5089	//   },
5090	//   "scopes": [
5091	//     "https://www.googleapis.com/auth/androidmanagement"
5092	//   ]
5093	// }
5094
5095}
5096
5097// method id "androidmanagement.enterprises.get":
5098
5099type EnterprisesGetCall struct {
5100	s            *Service
5101	name         string
5102	urlParams_   gensupport.URLParams
5103	ifNoneMatch_ string
5104	ctx_         context.Context
5105	header_      http.Header
5106}
5107
5108// Get: Gets an enterprise.
5109//
5110// - name: The name of the enterprise in the form
5111//   enterprises/{enterpriseId}.
5112func (r *EnterprisesService) Get(name string) *EnterprisesGetCall {
5113	c := &EnterprisesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5114	c.name = name
5115	return c
5116}
5117
5118// Fields allows partial responses to be retrieved. See
5119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5120// for more information.
5121func (c *EnterprisesGetCall) Fields(s ...googleapi.Field) *EnterprisesGetCall {
5122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5123	return c
5124}
5125
5126// IfNoneMatch sets the optional parameter which makes the operation
5127// fail if the object's ETag matches the given value. This is useful for
5128// getting updates only after the object has changed since the last
5129// request. Use googleapi.IsNotModified to check whether the response
5130// error from Do is the result of In-None-Match.
5131func (c *EnterprisesGetCall) IfNoneMatch(entityTag string) *EnterprisesGetCall {
5132	c.ifNoneMatch_ = entityTag
5133	return c
5134}
5135
5136// Context sets the context to be used in this call's Do method. Any
5137// pending HTTP request will be aborted if the provided context is
5138// canceled.
5139func (c *EnterprisesGetCall) Context(ctx context.Context) *EnterprisesGetCall {
5140	c.ctx_ = ctx
5141	return c
5142}
5143
5144// Header returns an http.Header that can be modified by the caller to
5145// add HTTP headers to the request.
5146func (c *EnterprisesGetCall) Header() http.Header {
5147	if c.header_ == nil {
5148		c.header_ = make(http.Header)
5149	}
5150	return c.header_
5151}
5152
5153func (c *EnterprisesGetCall) doRequest(alt string) (*http.Response, error) {
5154	reqHeaders := make(http.Header)
5155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5156	for k, v := range c.header_ {
5157		reqHeaders[k] = v
5158	}
5159	reqHeaders.Set("User-Agent", c.s.userAgent())
5160	if c.ifNoneMatch_ != "" {
5161		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5162	}
5163	var body io.Reader = nil
5164	c.urlParams_.Set("alt", alt)
5165	c.urlParams_.Set("prettyPrint", "false")
5166	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
5167	urls += "?" + c.urlParams_.Encode()
5168	req, err := http.NewRequest("GET", urls, body)
5169	if err != nil {
5170		return nil, err
5171	}
5172	req.Header = reqHeaders
5173	googleapi.Expand(req.URL, map[string]string{
5174		"name": c.name,
5175	})
5176	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5177}
5178
5179// Do executes the "androidmanagement.enterprises.get" call.
5180// Exactly one of *Enterprise or error will be non-nil. Any non-2xx
5181// status code is an error. Response headers are in either
5182// *Enterprise.ServerResponse.Header or (if a response was returned at
5183// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5184// to check whether the returned error was because
5185// http.StatusNotModified was returned.
5186func (c *EnterprisesGetCall) Do(opts ...googleapi.CallOption) (*Enterprise, error) {
5187	gensupport.SetOptions(c.urlParams_, opts...)
5188	res, err := c.doRequest("json")
5189	if res != nil && res.StatusCode == http.StatusNotModified {
5190		if res.Body != nil {
5191			res.Body.Close()
5192		}
5193		return nil, &googleapi.Error{
5194			Code:   res.StatusCode,
5195			Header: res.Header,
5196		}
5197	}
5198	if err != nil {
5199		return nil, err
5200	}
5201	defer googleapi.CloseBody(res)
5202	if err := googleapi.CheckResponse(res); err != nil {
5203		return nil, err
5204	}
5205	ret := &Enterprise{
5206		ServerResponse: googleapi.ServerResponse{
5207			Header:         res.Header,
5208			HTTPStatusCode: res.StatusCode,
5209		},
5210	}
5211	target := &ret
5212	if err := gensupport.DecodeResponse(target, res); err != nil {
5213		return nil, err
5214	}
5215	return ret, nil
5216	// {
5217	//   "description": "Gets an enterprise.",
5218	//   "flatPath": "v1/enterprises/{enterprisesId}",
5219	//   "httpMethod": "GET",
5220	//   "id": "androidmanagement.enterprises.get",
5221	//   "parameterOrder": [
5222	//     "name"
5223	//   ],
5224	//   "parameters": {
5225	//     "name": {
5226	//       "description": "The name of the enterprise in the form enterprises/{enterpriseId}.",
5227	//       "location": "path",
5228	//       "pattern": "^enterprises/[^/]+$",
5229	//       "required": true,
5230	//       "type": "string"
5231	//     }
5232	//   },
5233	//   "path": "v1/{+name}",
5234	//   "response": {
5235	//     "$ref": "Enterprise"
5236	//   },
5237	//   "scopes": [
5238	//     "https://www.googleapis.com/auth/androidmanagement"
5239	//   ]
5240	// }
5241
5242}
5243
5244// method id "androidmanagement.enterprises.list":
5245
5246type EnterprisesListCall struct {
5247	s            *Service
5248	urlParams_   gensupport.URLParams
5249	ifNoneMatch_ string
5250	ctx_         context.Context
5251	header_      http.Header
5252}
5253
5254// List: Lists EMM-managed enterprises. Only BASIC fields are returned.
5255func (r *EnterprisesService) List() *EnterprisesListCall {
5256	c := &EnterprisesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5257	return c
5258}
5259
5260// PageSize sets the optional parameter "pageSize": The requested page
5261// size. The actual page size may be fixed to a min or max value.
5262func (c *EnterprisesListCall) PageSize(pageSize int64) *EnterprisesListCall {
5263	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5264	return c
5265}
5266
5267// PageToken sets the optional parameter "pageToken": A token
5268// identifying a page of results returned by the server.
5269func (c *EnterprisesListCall) PageToken(pageToken string) *EnterprisesListCall {
5270	c.urlParams_.Set("pageToken", pageToken)
5271	return c
5272}
5273
5274// ProjectId sets the optional parameter "projectId": Required. The
5275// Cloud project ID of the EMM managing the enterprises.
5276func (c *EnterprisesListCall) ProjectId(projectId string) *EnterprisesListCall {
5277	c.urlParams_.Set("projectId", projectId)
5278	return c
5279}
5280
5281// View sets the optional parameter "view": Specifies which Enterprise
5282// fields to return. This method only supports BASIC.
5283//
5284// Possible values:
5285//   "ENTERPRISE_VIEW_UNSPECIFIED" - The API will default to the BASIC
5286// view for the List method.
5287//   "BASIC" - Includes name and enterprise_display_name fields.
5288func (c *EnterprisesListCall) View(view string) *EnterprisesListCall {
5289	c.urlParams_.Set("view", view)
5290	return c
5291}
5292
5293// Fields allows partial responses to be retrieved. See
5294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5295// for more information.
5296func (c *EnterprisesListCall) Fields(s ...googleapi.Field) *EnterprisesListCall {
5297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5298	return c
5299}
5300
5301// IfNoneMatch sets the optional parameter which makes the operation
5302// fail if the object's ETag matches the given value. This is useful for
5303// getting updates only after the object has changed since the last
5304// request. Use googleapi.IsNotModified to check whether the response
5305// error from Do is the result of In-None-Match.
5306func (c *EnterprisesListCall) IfNoneMatch(entityTag string) *EnterprisesListCall {
5307	c.ifNoneMatch_ = entityTag
5308	return c
5309}
5310
5311// Context sets the context to be used in this call's Do method. Any
5312// pending HTTP request will be aborted if the provided context is
5313// canceled.
5314func (c *EnterprisesListCall) Context(ctx context.Context) *EnterprisesListCall {
5315	c.ctx_ = ctx
5316	return c
5317}
5318
5319// Header returns an http.Header that can be modified by the caller to
5320// add HTTP headers to the request.
5321func (c *EnterprisesListCall) Header() http.Header {
5322	if c.header_ == nil {
5323		c.header_ = make(http.Header)
5324	}
5325	return c.header_
5326}
5327
5328func (c *EnterprisesListCall) doRequest(alt string) (*http.Response, error) {
5329	reqHeaders := make(http.Header)
5330	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5331	for k, v := range c.header_ {
5332		reqHeaders[k] = v
5333	}
5334	reqHeaders.Set("User-Agent", c.s.userAgent())
5335	if c.ifNoneMatch_ != "" {
5336		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5337	}
5338	var body io.Reader = nil
5339	c.urlParams_.Set("alt", alt)
5340	c.urlParams_.Set("prettyPrint", "false")
5341	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/enterprises")
5342	urls += "?" + c.urlParams_.Encode()
5343	req, err := http.NewRequest("GET", urls, body)
5344	if err != nil {
5345		return nil, err
5346	}
5347	req.Header = reqHeaders
5348	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5349}
5350
5351// Do executes the "androidmanagement.enterprises.list" call.
5352// Exactly one of *ListEnterprisesResponse or error will be non-nil. Any
5353// non-2xx status code is an error. Response headers are in either
5354// *ListEnterprisesResponse.ServerResponse.Header or (if a response was
5355// returned at all) in error.(*googleapi.Error).Header. Use
5356// googleapi.IsNotModified to check whether the returned error was
5357// because http.StatusNotModified was returned.
5358func (c *EnterprisesListCall) Do(opts ...googleapi.CallOption) (*ListEnterprisesResponse, error) {
5359	gensupport.SetOptions(c.urlParams_, opts...)
5360	res, err := c.doRequest("json")
5361	if res != nil && res.StatusCode == http.StatusNotModified {
5362		if res.Body != nil {
5363			res.Body.Close()
5364		}
5365		return nil, &googleapi.Error{
5366			Code:   res.StatusCode,
5367			Header: res.Header,
5368		}
5369	}
5370	if err != nil {
5371		return nil, err
5372	}
5373	defer googleapi.CloseBody(res)
5374	if err := googleapi.CheckResponse(res); err != nil {
5375		return nil, err
5376	}
5377	ret := &ListEnterprisesResponse{
5378		ServerResponse: googleapi.ServerResponse{
5379			Header:         res.Header,
5380			HTTPStatusCode: res.StatusCode,
5381		},
5382	}
5383	target := &ret
5384	if err := gensupport.DecodeResponse(target, res); err != nil {
5385		return nil, err
5386	}
5387	return ret, nil
5388	// {
5389	//   "description": "Lists EMM-managed enterprises. Only BASIC fields are returned.",
5390	//   "flatPath": "v1/enterprises",
5391	//   "httpMethod": "GET",
5392	//   "id": "androidmanagement.enterprises.list",
5393	//   "parameterOrder": [],
5394	//   "parameters": {
5395	//     "pageSize": {
5396	//       "description": "The requested page size. The actual page size may be fixed to a min or max value.",
5397	//       "format": "int32",
5398	//       "location": "query",
5399	//       "type": "integer"
5400	//     },
5401	//     "pageToken": {
5402	//       "description": "A token identifying a page of results returned by the server.",
5403	//       "location": "query",
5404	//       "type": "string"
5405	//     },
5406	//     "projectId": {
5407	//       "description": "Required. The Cloud project ID of the EMM managing the enterprises.",
5408	//       "location": "query",
5409	//       "type": "string"
5410	//     },
5411	//     "view": {
5412	//       "description": "Specifies which Enterprise fields to return. This method only supports BASIC.",
5413	//       "enum": [
5414	//         "ENTERPRISE_VIEW_UNSPECIFIED",
5415	//         "BASIC"
5416	//       ],
5417	//       "enumDescriptions": [
5418	//         "The API will default to the BASIC view for the List method.",
5419	//         "Includes name and enterprise_display_name fields."
5420	//       ],
5421	//       "location": "query",
5422	//       "type": "string"
5423	//     }
5424	//   },
5425	//   "path": "v1/enterprises",
5426	//   "response": {
5427	//     "$ref": "ListEnterprisesResponse"
5428	//   },
5429	//   "scopes": [
5430	//     "https://www.googleapis.com/auth/androidmanagement"
5431	//   ]
5432	// }
5433
5434}
5435
5436// Pages invokes f for each page of results.
5437// A non-nil error returned from f will halt the iteration.
5438// The provided context supersedes any context provided to the Context method.
5439func (c *EnterprisesListCall) Pages(ctx context.Context, f func(*ListEnterprisesResponse) error) error {
5440	c.ctx_ = ctx
5441	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5442	for {
5443		x, err := c.Do()
5444		if err != nil {
5445			return err
5446		}
5447		if err := f(x); err != nil {
5448			return err
5449		}
5450		if x.NextPageToken == "" {
5451			return nil
5452		}
5453		c.PageToken(x.NextPageToken)
5454	}
5455}
5456
5457// method id "androidmanagement.enterprises.patch":
5458
5459type EnterprisesPatchCall struct {
5460	s          *Service
5461	name       string
5462	enterprise *Enterprise
5463	urlParams_ gensupport.URLParams
5464	ctx_       context.Context
5465	header_    http.Header
5466}
5467
5468// Patch: Updates an enterprise.
5469//
5470// - name: The name of the enterprise in the form
5471//   enterprises/{enterpriseId}.
5472func (r *EnterprisesService) Patch(name string, enterprise *Enterprise) *EnterprisesPatchCall {
5473	c := &EnterprisesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5474	c.name = name
5475	c.enterprise = enterprise
5476	return c
5477}
5478
5479// UpdateMask sets the optional parameter "updateMask": The field mask
5480// indicating the fields to update. If not set, all modifiable fields
5481// will be modified.
5482func (c *EnterprisesPatchCall) UpdateMask(updateMask string) *EnterprisesPatchCall {
5483	c.urlParams_.Set("updateMask", updateMask)
5484	return c
5485}
5486
5487// Fields allows partial responses to be retrieved. See
5488// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5489// for more information.
5490func (c *EnterprisesPatchCall) Fields(s ...googleapi.Field) *EnterprisesPatchCall {
5491	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5492	return c
5493}
5494
5495// Context sets the context to be used in this call's Do method. Any
5496// pending HTTP request will be aborted if the provided context is
5497// canceled.
5498func (c *EnterprisesPatchCall) Context(ctx context.Context) *EnterprisesPatchCall {
5499	c.ctx_ = ctx
5500	return c
5501}
5502
5503// Header returns an http.Header that can be modified by the caller to
5504// add HTTP headers to the request.
5505func (c *EnterprisesPatchCall) Header() http.Header {
5506	if c.header_ == nil {
5507		c.header_ = make(http.Header)
5508	}
5509	return c.header_
5510}
5511
5512func (c *EnterprisesPatchCall) doRequest(alt string) (*http.Response, error) {
5513	reqHeaders := make(http.Header)
5514	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5515	for k, v := range c.header_ {
5516		reqHeaders[k] = v
5517	}
5518	reqHeaders.Set("User-Agent", c.s.userAgent())
5519	var body io.Reader = nil
5520	body, err := googleapi.WithoutDataWrapper.JSONReader(c.enterprise)
5521	if err != nil {
5522		return nil, err
5523	}
5524	reqHeaders.Set("Content-Type", "application/json")
5525	c.urlParams_.Set("alt", alt)
5526	c.urlParams_.Set("prettyPrint", "false")
5527	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
5528	urls += "?" + c.urlParams_.Encode()
5529	req, err := http.NewRequest("PATCH", urls, body)
5530	if err != nil {
5531		return nil, err
5532	}
5533	req.Header = reqHeaders
5534	googleapi.Expand(req.URL, map[string]string{
5535		"name": c.name,
5536	})
5537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5538}
5539
5540// Do executes the "androidmanagement.enterprises.patch" call.
5541// Exactly one of *Enterprise or error will be non-nil. Any non-2xx
5542// status code is an error. Response headers are in either
5543// *Enterprise.ServerResponse.Header or (if a response was returned at
5544// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5545// to check whether the returned error was because
5546// http.StatusNotModified was returned.
5547func (c *EnterprisesPatchCall) Do(opts ...googleapi.CallOption) (*Enterprise, error) {
5548	gensupport.SetOptions(c.urlParams_, opts...)
5549	res, err := c.doRequest("json")
5550	if res != nil && res.StatusCode == http.StatusNotModified {
5551		if res.Body != nil {
5552			res.Body.Close()
5553		}
5554		return nil, &googleapi.Error{
5555			Code:   res.StatusCode,
5556			Header: res.Header,
5557		}
5558	}
5559	if err != nil {
5560		return nil, err
5561	}
5562	defer googleapi.CloseBody(res)
5563	if err := googleapi.CheckResponse(res); err != nil {
5564		return nil, err
5565	}
5566	ret := &Enterprise{
5567		ServerResponse: googleapi.ServerResponse{
5568			Header:         res.Header,
5569			HTTPStatusCode: res.StatusCode,
5570		},
5571	}
5572	target := &ret
5573	if err := gensupport.DecodeResponse(target, res); err != nil {
5574		return nil, err
5575	}
5576	return ret, nil
5577	// {
5578	//   "description": "Updates an enterprise.",
5579	//   "flatPath": "v1/enterprises/{enterprisesId}",
5580	//   "httpMethod": "PATCH",
5581	//   "id": "androidmanagement.enterprises.patch",
5582	//   "parameterOrder": [
5583	//     "name"
5584	//   ],
5585	//   "parameters": {
5586	//     "name": {
5587	//       "description": "The name of the enterprise in the form enterprises/{enterpriseId}.",
5588	//       "location": "path",
5589	//       "pattern": "^enterprises/[^/]+$",
5590	//       "required": true,
5591	//       "type": "string"
5592	//     },
5593	//     "updateMask": {
5594	//       "description": "The field mask indicating the fields to update. If not set, all modifiable fields will be modified.",
5595	//       "format": "google-fieldmask",
5596	//       "location": "query",
5597	//       "type": "string"
5598	//     }
5599	//   },
5600	//   "path": "v1/{+name}",
5601	//   "request": {
5602	//     "$ref": "Enterprise"
5603	//   },
5604	//   "response": {
5605	//     "$ref": "Enterprise"
5606	//   },
5607	//   "scopes": [
5608	//     "https://www.googleapis.com/auth/androidmanagement"
5609	//   ]
5610	// }
5611
5612}
5613
5614// method id "androidmanagement.enterprises.applications.get":
5615
5616type EnterprisesApplicationsGetCall struct {
5617	s            *Service
5618	name         string
5619	urlParams_   gensupport.URLParams
5620	ifNoneMatch_ string
5621	ctx_         context.Context
5622	header_      http.Header
5623}
5624
5625// Get: Gets info about an application.
5626//
5627// - name: The name of the application in the form
5628//   enterprises/{enterpriseId}/applications/{package_name}.
5629func (r *EnterprisesApplicationsService) Get(name string) *EnterprisesApplicationsGetCall {
5630	c := &EnterprisesApplicationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5631	c.name = name
5632	return c
5633}
5634
5635// LanguageCode sets the optional parameter "languageCode": The
5636// preferred language for localized application info, as a BCP47 tag
5637// (e.g. "en-US", "de"). If not specified the default language of the
5638// application will be used.
5639func (c *EnterprisesApplicationsGetCall) LanguageCode(languageCode string) *EnterprisesApplicationsGetCall {
5640	c.urlParams_.Set("languageCode", languageCode)
5641	return c
5642}
5643
5644// Fields allows partial responses to be retrieved. See
5645// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5646// for more information.
5647func (c *EnterprisesApplicationsGetCall) Fields(s ...googleapi.Field) *EnterprisesApplicationsGetCall {
5648	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5649	return c
5650}
5651
5652// IfNoneMatch sets the optional parameter which makes the operation
5653// fail if the object's ETag matches the given value. This is useful for
5654// getting updates only after the object has changed since the last
5655// request. Use googleapi.IsNotModified to check whether the response
5656// error from Do is the result of In-None-Match.
5657func (c *EnterprisesApplicationsGetCall) IfNoneMatch(entityTag string) *EnterprisesApplicationsGetCall {
5658	c.ifNoneMatch_ = entityTag
5659	return c
5660}
5661
5662// Context sets the context to be used in this call's Do method. Any
5663// pending HTTP request will be aborted if the provided context is
5664// canceled.
5665func (c *EnterprisesApplicationsGetCall) Context(ctx context.Context) *EnterprisesApplicationsGetCall {
5666	c.ctx_ = ctx
5667	return c
5668}
5669
5670// Header returns an http.Header that can be modified by the caller to
5671// add HTTP headers to the request.
5672func (c *EnterprisesApplicationsGetCall) Header() http.Header {
5673	if c.header_ == nil {
5674		c.header_ = make(http.Header)
5675	}
5676	return c.header_
5677}
5678
5679func (c *EnterprisesApplicationsGetCall) doRequest(alt string) (*http.Response, error) {
5680	reqHeaders := make(http.Header)
5681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5682	for k, v := range c.header_ {
5683		reqHeaders[k] = v
5684	}
5685	reqHeaders.Set("User-Agent", c.s.userAgent())
5686	if c.ifNoneMatch_ != "" {
5687		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5688	}
5689	var body io.Reader = nil
5690	c.urlParams_.Set("alt", alt)
5691	c.urlParams_.Set("prettyPrint", "false")
5692	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
5693	urls += "?" + c.urlParams_.Encode()
5694	req, err := http.NewRequest("GET", urls, body)
5695	if err != nil {
5696		return nil, err
5697	}
5698	req.Header = reqHeaders
5699	googleapi.Expand(req.URL, map[string]string{
5700		"name": c.name,
5701	})
5702	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5703}
5704
5705// Do executes the "androidmanagement.enterprises.applications.get" call.
5706// Exactly one of *Application or error will be non-nil. Any non-2xx
5707// status code is an error. Response headers are in either
5708// *Application.ServerResponse.Header or (if a response was returned at
5709// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5710// to check whether the returned error was because
5711// http.StatusNotModified was returned.
5712func (c *EnterprisesApplicationsGetCall) Do(opts ...googleapi.CallOption) (*Application, error) {
5713	gensupport.SetOptions(c.urlParams_, opts...)
5714	res, err := c.doRequest("json")
5715	if res != nil && res.StatusCode == http.StatusNotModified {
5716		if res.Body != nil {
5717			res.Body.Close()
5718		}
5719		return nil, &googleapi.Error{
5720			Code:   res.StatusCode,
5721			Header: res.Header,
5722		}
5723	}
5724	if err != nil {
5725		return nil, err
5726	}
5727	defer googleapi.CloseBody(res)
5728	if err := googleapi.CheckResponse(res); err != nil {
5729		return nil, err
5730	}
5731	ret := &Application{
5732		ServerResponse: googleapi.ServerResponse{
5733			Header:         res.Header,
5734			HTTPStatusCode: res.StatusCode,
5735		},
5736	}
5737	target := &ret
5738	if err := gensupport.DecodeResponse(target, res); err != nil {
5739		return nil, err
5740	}
5741	return ret, nil
5742	// {
5743	//   "description": "Gets info about an application.",
5744	//   "flatPath": "v1/enterprises/{enterprisesId}/applications/{applicationsId}",
5745	//   "httpMethod": "GET",
5746	//   "id": "androidmanagement.enterprises.applications.get",
5747	//   "parameterOrder": [
5748	//     "name"
5749	//   ],
5750	//   "parameters": {
5751	//     "languageCode": {
5752	//       "description": "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.",
5753	//       "location": "query",
5754	//       "type": "string"
5755	//     },
5756	//     "name": {
5757	//       "description": "The name of the application in the form enterprises/{enterpriseId}/applications/{package_name}.",
5758	//       "location": "path",
5759	//       "pattern": "^enterprises/[^/]+/applications/[^/]+$",
5760	//       "required": true,
5761	//       "type": "string"
5762	//     }
5763	//   },
5764	//   "path": "v1/{+name}",
5765	//   "response": {
5766	//     "$ref": "Application"
5767	//   },
5768	//   "scopes": [
5769	//     "https://www.googleapis.com/auth/androidmanagement"
5770	//   ]
5771	// }
5772
5773}
5774
5775// method id "androidmanagement.enterprises.devices.delete":
5776
5777type EnterprisesDevicesDeleteCall struct {
5778	s          *Service
5779	name       string
5780	urlParams_ gensupport.URLParams
5781	ctx_       context.Context
5782	header_    http.Header
5783}
5784
5785// Delete: Deletes a device. This operation wipes the device.
5786//
5787// - name: The name of the device in the form
5788//   enterprises/{enterpriseId}/devices/{deviceId}.
5789func (r *EnterprisesDevicesService) Delete(name string) *EnterprisesDevicesDeleteCall {
5790	c := &EnterprisesDevicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5791	c.name = name
5792	return c
5793}
5794
5795// WipeDataFlags sets the optional parameter "wipeDataFlags": Optional
5796// flags that control the device wiping behavior.
5797//
5798// Possible values:
5799//   "WIPE_DATA_FLAG_UNSPECIFIED" - This value is ignored.
5800//   "PRESERVE_RESET_PROTECTION_DATA" - Preserve the factory reset
5801// protection data on the device.
5802//   "WIPE_EXTERNAL_STORAGE" - Additionally wipe the device's external
5803// storage (such as SD cards).
5804func (c *EnterprisesDevicesDeleteCall) WipeDataFlags(wipeDataFlags ...string) *EnterprisesDevicesDeleteCall {
5805	c.urlParams_.SetMulti("wipeDataFlags", append([]string{}, wipeDataFlags...))
5806	return c
5807}
5808
5809// WipeReasonMessage sets the optional parameter "wipeReasonMessage": A
5810// short message displayed to the user before wiping the work profile on
5811// personal devices. This has no effect on company owned devices. The
5812// maximum message length is 200 characters.
5813func (c *EnterprisesDevicesDeleteCall) WipeReasonMessage(wipeReasonMessage string) *EnterprisesDevicesDeleteCall {
5814	c.urlParams_.Set("wipeReasonMessage", wipeReasonMessage)
5815	return c
5816}
5817
5818// Fields allows partial responses to be retrieved. See
5819// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5820// for more information.
5821func (c *EnterprisesDevicesDeleteCall) Fields(s ...googleapi.Field) *EnterprisesDevicesDeleteCall {
5822	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5823	return c
5824}
5825
5826// Context sets the context to be used in this call's Do method. Any
5827// pending HTTP request will be aborted if the provided context is
5828// canceled.
5829func (c *EnterprisesDevicesDeleteCall) Context(ctx context.Context) *EnterprisesDevicesDeleteCall {
5830	c.ctx_ = ctx
5831	return c
5832}
5833
5834// Header returns an http.Header that can be modified by the caller to
5835// add HTTP headers to the request.
5836func (c *EnterprisesDevicesDeleteCall) Header() http.Header {
5837	if c.header_ == nil {
5838		c.header_ = make(http.Header)
5839	}
5840	return c.header_
5841}
5842
5843func (c *EnterprisesDevicesDeleteCall) doRequest(alt string) (*http.Response, error) {
5844	reqHeaders := make(http.Header)
5845	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
5846	for k, v := range c.header_ {
5847		reqHeaders[k] = v
5848	}
5849	reqHeaders.Set("User-Agent", c.s.userAgent())
5850	var body io.Reader = nil
5851	c.urlParams_.Set("alt", alt)
5852	c.urlParams_.Set("prettyPrint", "false")
5853	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
5854	urls += "?" + c.urlParams_.Encode()
5855	req, err := http.NewRequest("DELETE", urls, body)
5856	if err != nil {
5857		return nil, err
5858	}
5859	req.Header = reqHeaders
5860	googleapi.Expand(req.URL, map[string]string{
5861		"name": c.name,
5862	})
5863	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5864}
5865
5866// Do executes the "androidmanagement.enterprises.devices.delete" call.
5867// Exactly one of *Empty or error will be non-nil. Any non-2xx status
5868// code is an error. Response headers are in either
5869// *Empty.ServerResponse.Header or (if a response was returned at all)
5870// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5871// check whether the returned error was because http.StatusNotModified
5872// was returned.
5873func (c *EnterprisesDevicesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
5874	gensupport.SetOptions(c.urlParams_, opts...)
5875	res, err := c.doRequest("json")
5876	if res != nil && res.StatusCode == http.StatusNotModified {
5877		if res.Body != nil {
5878			res.Body.Close()
5879		}
5880		return nil, &googleapi.Error{
5881			Code:   res.StatusCode,
5882			Header: res.Header,
5883		}
5884	}
5885	if err != nil {
5886		return nil, err
5887	}
5888	defer googleapi.CloseBody(res)
5889	if err := googleapi.CheckResponse(res); err != nil {
5890		return nil, err
5891	}
5892	ret := &Empty{
5893		ServerResponse: googleapi.ServerResponse{
5894			Header:         res.Header,
5895			HTTPStatusCode: res.StatusCode,
5896		},
5897	}
5898	target := &ret
5899	if err := gensupport.DecodeResponse(target, res); err != nil {
5900		return nil, err
5901	}
5902	return ret, nil
5903	// {
5904	//   "description": "Deletes a device. This operation wipes the device.",
5905	//   "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}",
5906	//   "httpMethod": "DELETE",
5907	//   "id": "androidmanagement.enterprises.devices.delete",
5908	//   "parameterOrder": [
5909	//     "name"
5910	//   ],
5911	//   "parameters": {
5912	//     "name": {
5913	//       "description": "The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.",
5914	//       "location": "path",
5915	//       "pattern": "^enterprises/[^/]+/devices/[^/]+$",
5916	//       "required": true,
5917	//       "type": "string"
5918	//     },
5919	//     "wipeDataFlags": {
5920	//       "description": "Optional flags that control the device wiping behavior.",
5921	//       "enum": [
5922	//         "WIPE_DATA_FLAG_UNSPECIFIED",
5923	//         "PRESERVE_RESET_PROTECTION_DATA",
5924	//         "WIPE_EXTERNAL_STORAGE"
5925	//       ],
5926	//       "enumDescriptions": [
5927	//         "This value is ignored.",
5928	//         "Preserve the factory reset protection data on the device.",
5929	//         "Additionally wipe the device's external storage (such as SD cards)."
5930	//       ],
5931	//       "location": "query",
5932	//       "repeated": true,
5933	//       "type": "string"
5934	//     },
5935	//     "wipeReasonMessage": {
5936	//       "description": "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.",
5937	//       "location": "query",
5938	//       "type": "string"
5939	//     }
5940	//   },
5941	//   "path": "v1/{+name}",
5942	//   "response": {
5943	//     "$ref": "Empty"
5944	//   },
5945	//   "scopes": [
5946	//     "https://www.googleapis.com/auth/androidmanagement"
5947	//   ]
5948	// }
5949
5950}
5951
5952// method id "androidmanagement.enterprises.devices.get":
5953
5954type EnterprisesDevicesGetCall struct {
5955	s            *Service
5956	name         string
5957	urlParams_   gensupport.URLParams
5958	ifNoneMatch_ string
5959	ctx_         context.Context
5960	header_      http.Header
5961}
5962
5963// Get: Gets a device.
5964//
5965// - name: The name of the device in the form
5966//   enterprises/{enterpriseId}/devices/{deviceId}.
5967func (r *EnterprisesDevicesService) Get(name string) *EnterprisesDevicesGetCall {
5968	c := &EnterprisesDevicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5969	c.name = name
5970	return c
5971}
5972
5973// Fields allows partial responses to be retrieved. See
5974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5975// for more information.
5976func (c *EnterprisesDevicesGetCall) Fields(s ...googleapi.Field) *EnterprisesDevicesGetCall {
5977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5978	return c
5979}
5980
5981// IfNoneMatch sets the optional parameter which makes the operation
5982// fail if the object's ETag matches the given value. This is useful for
5983// getting updates only after the object has changed since the last
5984// request. Use googleapi.IsNotModified to check whether the response
5985// error from Do is the result of In-None-Match.
5986func (c *EnterprisesDevicesGetCall) IfNoneMatch(entityTag string) *EnterprisesDevicesGetCall {
5987	c.ifNoneMatch_ = entityTag
5988	return c
5989}
5990
5991// Context sets the context to be used in this call's Do method. Any
5992// pending HTTP request will be aborted if the provided context is
5993// canceled.
5994func (c *EnterprisesDevicesGetCall) Context(ctx context.Context) *EnterprisesDevicesGetCall {
5995	c.ctx_ = ctx
5996	return c
5997}
5998
5999// Header returns an http.Header that can be modified by the caller to
6000// add HTTP headers to the request.
6001func (c *EnterprisesDevicesGetCall) Header() http.Header {
6002	if c.header_ == nil {
6003		c.header_ = make(http.Header)
6004	}
6005	return c.header_
6006}
6007
6008func (c *EnterprisesDevicesGetCall) doRequest(alt string) (*http.Response, error) {
6009	reqHeaders := make(http.Header)
6010	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6011	for k, v := range c.header_ {
6012		reqHeaders[k] = v
6013	}
6014	reqHeaders.Set("User-Agent", c.s.userAgent())
6015	if c.ifNoneMatch_ != "" {
6016		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6017	}
6018	var body io.Reader = nil
6019	c.urlParams_.Set("alt", alt)
6020	c.urlParams_.Set("prettyPrint", "false")
6021	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
6022	urls += "?" + c.urlParams_.Encode()
6023	req, err := http.NewRequest("GET", urls, body)
6024	if err != nil {
6025		return nil, err
6026	}
6027	req.Header = reqHeaders
6028	googleapi.Expand(req.URL, map[string]string{
6029		"name": c.name,
6030	})
6031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6032}
6033
6034// Do executes the "androidmanagement.enterprises.devices.get" call.
6035// Exactly one of *Device or error will be non-nil. Any non-2xx status
6036// code is an error. Response headers are in either
6037// *Device.ServerResponse.Header or (if a response was returned at all)
6038// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6039// check whether the returned error was because http.StatusNotModified
6040// was returned.
6041func (c *EnterprisesDevicesGetCall) Do(opts ...googleapi.CallOption) (*Device, error) {
6042	gensupport.SetOptions(c.urlParams_, opts...)
6043	res, err := c.doRequest("json")
6044	if res != nil && res.StatusCode == http.StatusNotModified {
6045		if res.Body != nil {
6046			res.Body.Close()
6047		}
6048		return nil, &googleapi.Error{
6049			Code:   res.StatusCode,
6050			Header: res.Header,
6051		}
6052	}
6053	if err != nil {
6054		return nil, err
6055	}
6056	defer googleapi.CloseBody(res)
6057	if err := googleapi.CheckResponse(res); err != nil {
6058		return nil, err
6059	}
6060	ret := &Device{
6061		ServerResponse: googleapi.ServerResponse{
6062			Header:         res.Header,
6063			HTTPStatusCode: res.StatusCode,
6064		},
6065	}
6066	target := &ret
6067	if err := gensupport.DecodeResponse(target, res); err != nil {
6068		return nil, err
6069	}
6070	return ret, nil
6071	// {
6072	//   "description": "Gets a device.",
6073	//   "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}",
6074	//   "httpMethod": "GET",
6075	//   "id": "androidmanagement.enterprises.devices.get",
6076	//   "parameterOrder": [
6077	//     "name"
6078	//   ],
6079	//   "parameters": {
6080	//     "name": {
6081	//       "description": "The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.",
6082	//       "location": "path",
6083	//       "pattern": "^enterprises/[^/]+/devices/[^/]+$",
6084	//       "required": true,
6085	//       "type": "string"
6086	//     }
6087	//   },
6088	//   "path": "v1/{+name}",
6089	//   "response": {
6090	//     "$ref": "Device"
6091	//   },
6092	//   "scopes": [
6093	//     "https://www.googleapis.com/auth/androidmanagement"
6094	//   ]
6095	// }
6096
6097}
6098
6099// method id "androidmanagement.enterprises.devices.issueCommand":
6100
6101type EnterprisesDevicesIssueCommandCall struct {
6102	s          *Service
6103	name       string
6104	command    *Command
6105	urlParams_ gensupport.URLParams
6106	ctx_       context.Context
6107	header_    http.Header
6108}
6109
6110// IssueCommand: Issues a command to a device. The Operation resource
6111// returned contains a Command in its metadata field. Use the get
6112// operation method to get the status of the command.
6113//
6114// - name: The name of the device in the form
6115//   enterprises/{enterpriseId}/devices/{deviceId}.
6116func (r *EnterprisesDevicesService) IssueCommand(name string, command *Command) *EnterprisesDevicesIssueCommandCall {
6117	c := &EnterprisesDevicesIssueCommandCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6118	c.name = name
6119	c.command = command
6120	return c
6121}
6122
6123// Fields allows partial responses to be retrieved. See
6124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6125// for more information.
6126func (c *EnterprisesDevicesIssueCommandCall) Fields(s ...googleapi.Field) *EnterprisesDevicesIssueCommandCall {
6127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6128	return c
6129}
6130
6131// Context sets the context to be used in this call's Do method. Any
6132// pending HTTP request will be aborted if the provided context is
6133// canceled.
6134func (c *EnterprisesDevicesIssueCommandCall) Context(ctx context.Context) *EnterprisesDevicesIssueCommandCall {
6135	c.ctx_ = ctx
6136	return c
6137}
6138
6139// Header returns an http.Header that can be modified by the caller to
6140// add HTTP headers to the request.
6141func (c *EnterprisesDevicesIssueCommandCall) Header() http.Header {
6142	if c.header_ == nil {
6143		c.header_ = make(http.Header)
6144	}
6145	return c.header_
6146}
6147
6148func (c *EnterprisesDevicesIssueCommandCall) doRequest(alt string) (*http.Response, error) {
6149	reqHeaders := make(http.Header)
6150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6151	for k, v := range c.header_ {
6152		reqHeaders[k] = v
6153	}
6154	reqHeaders.Set("User-Agent", c.s.userAgent())
6155	var body io.Reader = nil
6156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.command)
6157	if err != nil {
6158		return nil, err
6159	}
6160	reqHeaders.Set("Content-Type", "application/json")
6161	c.urlParams_.Set("alt", alt)
6162	c.urlParams_.Set("prettyPrint", "false")
6163	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:issueCommand")
6164	urls += "?" + c.urlParams_.Encode()
6165	req, err := http.NewRequest("POST", urls, body)
6166	if err != nil {
6167		return nil, err
6168	}
6169	req.Header = reqHeaders
6170	googleapi.Expand(req.URL, map[string]string{
6171		"name": c.name,
6172	})
6173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6174}
6175
6176// Do executes the "androidmanagement.enterprises.devices.issueCommand" call.
6177// Exactly one of *Operation or error will be non-nil. Any non-2xx
6178// status code is an error. Response headers are in either
6179// *Operation.ServerResponse.Header or (if a response was returned at
6180// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6181// to check whether the returned error was because
6182// http.StatusNotModified was returned.
6183func (c *EnterprisesDevicesIssueCommandCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6184	gensupport.SetOptions(c.urlParams_, opts...)
6185	res, err := c.doRequest("json")
6186	if res != nil && res.StatusCode == http.StatusNotModified {
6187		if res.Body != nil {
6188			res.Body.Close()
6189		}
6190		return nil, &googleapi.Error{
6191			Code:   res.StatusCode,
6192			Header: res.Header,
6193		}
6194	}
6195	if err != nil {
6196		return nil, err
6197	}
6198	defer googleapi.CloseBody(res)
6199	if err := googleapi.CheckResponse(res); err != nil {
6200		return nil, err
6201	}
6202	ret := &Operation{
6203		ServerResponse: googleapi.ServerResponse{
6204			Header:         res.Header,
6205			HTTPStatusCode: res.StatusCode,
6206		},
6207	}
6208	target := &ret
6209	if err := gensupport.DecodeResponse(target, res); err != nil {
6210		return nil, err
6211	}
6212	return ret, nil
6213	// {
6214	//   "description": "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.",
6215	//   "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}:issueCommand",
6216	//   "httpMethod": "POST",
6217	//   "id": "androidmanagement.enterprises.devices.issueCommand",
6218	//   "parameterOrder": [
6219	//     "name"
6220	//   ],
6221	//   "parameters": {
6222	//     "name": {
6223	//       "description": "The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.",
6224	//       "location": "path",
6225	//       "pattern": "^enterprises/[^/]+/devices/[^/]+$",
6226	//       "required": true,
6227	//       "type": "string"
6228	//     }
6229	//   },
6230	//   "path": "v1/{+name}:issueCommand",
6231	//   "request": {
6232	//     "$ref": "Command"
6233	//   },
6234	//   "response": {
6235	//     "$ref": "Operation"
6236	//   },
6237	//   "scopes": [
6238	//     "https://www.googleapis.com/auth/androidmanagement"
6239	//   ]
6240	// }
6241
6242}
6243
6244// method id "androidmanagement.enterprises.devices.list":
6245
6246type EnterprisesDevicesListCall struct {
6247	s            *Service
6248	parent       string
6249	urlParams_   gensupport.URLParams
6250	ifNoneMatch_ string
6251	ctx_         context.Context
6252	header_      http.Header
6253}
6254
6255// List: Lists devices for a given enterprise.
6256//
6257// - parent: The name of the enterprise in the form
6258//   enterprises/{enterpriseId}.
6259func (r *EnterprisesDevicesService) List(parent string) *EnterprisesDevicesListCall {
6260	c := &EnterprisesDevicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6261	c.parent = parent
6262	return c
6263}
6264
6265// PageSize sets the optional parameter "pageSize": The requested page
6266// size. The actual page size may be fixed to a min or max value.
6267func (c *EnterprisesDevicesListCall) PageSize(pageSize int64) *EnterprisesDevicesListCall {
6268	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
6269	return c
6270}
6271
6272// PageToken sets the optional parameter "pageToken": A token
6273// identifying a page of results returned by the server.
6274func (c *EnterprisesDevicesListCall) PageToken(pageToken string) *EnterprisesDevicesListCall {
6275	c.urlParams_.Set("pageToken", pageToken)
6276	return c
6277}
6278
6279// Fields allows partial responses to be retrieved. See
6280// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6281// for more information.
6282func (c *EnterprisesDevicesListCall) Fields(s ...googleapi.Field) *EnterprisesDevicesListCall {
6283	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6284	return c
6285}
6286
6287// IfNoneMatch sets the optional parameter which makes the operation
6288// fail if the object's ETag matches the given value. This is useful for
6289// getting updates only after the object has changed since the last
6290// request. Use googleapi.IsNotModified to check whether the response
6291// error from Do is the result of In-None-Match.
6292func (c *EnterprisesDevicesListCall) IfNoneMatch(entityTag string) *EnterprisesDevicesListCall {
6293	c.ifNoneMatch_ = entityTag
6294	return c
6295}
6296
6297// Context sets the context to be used in this call's Do method. Any
6298// pending HTTP request will be aborted if the provided context is
6299// canceled.
6300func (c *EnterprisesDevicesListCall) Context(ctx context.Context) *EnterprisesDevicesListCall {
6301	c.ctx_ = ctx
6302	return c
6303}
6304
6305// Header returns an http.Header that can be modified by the caller to
6306// add HTTP headers to the request.
6307func (c *EnterprisesDevicesListCall) Header() http.Header {
6308	if c.header_ == nil {
6309		c.header_ = make(http.Header)
6310	}
6311	return c.header_
6312}
6313
6314func (c *EnterprisesDevicesListCall) doRequest(alt string) (*http.Response, error) {
6315	reqHeaders := make(http.Header)
6316	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6317	for k, v := range c.header_ {
6318		reqHeaders[k] = v
6319	}
6320	reqHeaders.Set("User-Agent", c.s.userAgent())
6321	if c.ifNoneMatch_ != "" {
6322		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6323	}
6324	var body io.Reader = nil
6325	c.urlParams_.Set("alt", alt)
6326	c.urlParams_.Set("prettyPrint", "false")
6327	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/devices")
6328	urls += "?" + c.urlParams_.Encode()
6329	req, err := http.NewRequest("GET", urls, body)
6330	if err != nil {
6331		return nil, err
6332	}
6333	req.Header = reqHeaders
6334	googleapi.Expand(req.URL, map[string]string{
6335		"parent": c.parent,
6336	})
6337	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6338}
6339
6340// Do executes the "androidmanagement.enterprises.devices.list" call.
6341// Exactly one of *ListDevicesResponse or error will be non-nil. Any
6342// non-2xx status code is an error. Response headers are in either
6343// *ListDevicesResponse.ServerResponse.Header or (if a response was
6344// returned at all) in error.(*googleapi.Error).Header. Use
6345// googleapi.IsNotModified to check whether the returned error was
6346// because http.StatusNotModified was returned.
6347func (c *EnterprisesDevicesListCall) Do(opts ...googleapi.CallOption) (*ListDevicesResponse, error) {
6348	gensupport.SetOptions(c.urlParams_, opts...)
6349	res, err := c.doRequest("json")
6350	if res != nil && res.StatusCode == http.StatusNotModified {
6351		if res.Body != nil {
6352			res.Body.Close()
6353		}
6354		return nil, &googleapi.Error{
6355			Code:   res.StatusCode,
6356			Header: res.Header,
6357		}
6358	}
6359	if err != nil {
6360		return nil, err
6361	}
6362	defer googleapi.CloseBody(res)
6363	if err := googleapi.CheckResponse(res); err != nil {
6364		return nil, err
6365	}
6366	ret := &ListDevicesResponse{
6367		ServerResponse: googleapi.ServerResponse{
6368			Header:         res.Header,
6369			HTTPStatusCode: res.StatusCode,
6370		},
6371	}
6372	target := &ret
6373	if err := gensupport.DecodeResponse(target, res); err != nil {
6374		return nil, err
6375	}
6376	return ret, nil
6377	// {
6378	//   "description": "Lists devices for a given enterprise.",
6379	//   "flatPath": "v1/enterprises/{enterprisesId}/devices",
6380	//   "httpMethod": "GET",
6381	//   "id": "androidmanagement.enterprises.devices.list",
6382	//   "parameterOrder": [
6383	//     "parent"
6384	//   ],
6385	//   "parameters": {
6386	//     "pageSize": {
6387	//       "description": "The requested page size. The actual page size may be fixed to a min or max value.",
6388	//       "format": "int32",
6389	//       "location": "query",
6390	//       "type": "integer"
6391	//     },
6392	//     "pageToken": {
6393	//       "description": "A token identifying a page of results returned by the server.",
6394	//       "location": "query",
6395	//       "type": "string"
6396	//     },
6397	//     "parent": {
6398	//       "description": "The name of the enterprise in the form enterprises/{enterpriseId}.",
6399	//       "location": "path",
6400	//       "pattern": "^enterprises/[^/]+$",
6401	//       "required": true,
6402	//       "type": "string"
6403	//     }
6404	//   },
6405	//   "path": "v1/{+parent}/devices",
6406	//   "response": {
6407	//     "$ref": "ListDevicesResponse"
6408	//   },
6409	//   "scopes": [
6410	//     "https://www.googleapis.com/auth/androidmanagement"
6411	//   ]
6412	// }
6413
6414}
6415
6416// Pages invokes f for each page of results.
6417// A non-nil error returned from f will halt the iteration.
6418// The provided context supersedes any context provided to the Context method.
6419func (c *EnterprisesDevicesListCall) Pages(ctx context.Context, f func(*ListDevicesResponse) error) error {
6420	c.ctx_ = ctx
6421	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6422	for {
6423		x, err := c.Do()
6424		if err != nil {
6425			return err
6426		}
6427		if err := f(x); err != nil {
6428			return err
6429		}
6430		if x.NextPageToken == "" {
6431			return nil
6432		}
6433		c.PageToken(x.NextPageToken)
6434	}
6435}
6436
6437// method id "androidmanagement.enterprises.devices.patch":
6438
6439type EnterprisesDevicesPatchCall struct {
6440	s          *Service
6441	name       string
6442	device     *Device
6443	urlParams_ gensupport.URLParams
6444	ctx_       context.Context
6445	header_    http.Header
6446}
6447
6448// Patch: Updates a device.
6449//
6450// - name: The name of the device in the form
6451//   enterprises/{enterpriseId}/devices/{deviceId}.
6452func (r *EnterprisesDevicesService) Patch(name string, device *Device) *EnterprisesDevicesPatchCall {
6453	c := &EnterprisesDevicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6454	c.name = name
6455	c.device = device
6456	return c
6457}
6458
6459// UpdateMask sets the optional parameter "updateMask": The field mask
6460// indicating the fields to update. If not set, all modifiable fields
6461// will be modified.
6462func (c *EnterprisesDevicesPatchCall) UpdateMask(updateMask string) *EnterprisesDevicesPatchCall {
6463	c.urlParams_.Set("updateMask", updateMask)
6464	return c
6465}
6466
6467// Fields allows partial responses to be retrieved. See
6468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6469// for more information.
6470func (c *EnterprisesDevicesPatchCall) Fields(s ...googleapi.Field) *EnterprisesDevicesPatchCall {
6471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6472	return c
6473}
6474
6475// Context sets the context to be used in this call's Do method. Any
6476// pending HTTP request will be aborted if the provided context is
6477// canceled.
6478func (c *EnterprisesDevicesPatchCall) Context(ctx context.Context) *EnterprisesDevicesPatchCall {
6479	c.ctx_ = ctx
6480	return c
6481}
6482
6483// Header returns an http.Header that can be modified by the caller to
6484// add HTTP headers to the request.
6485func (c *EnterprisesDevicesPatchCall) Header() http.Header {
6486	if c.header_ == nil {
6487		c.header_ = make(http.Header)
6488	}
6489	return c.header_
6490}
6491
6492func (c *EnterprisesDevicesPatchCall) doRequest(alt string) (*http.Response, error) {
6493	reqHeaders := make(http.Header)
6494	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6495	for k, v := range c.header_ {
6496		reqHeaders[k] = v
6497	}
6498	reqHeaders.Set("User-Agent", c.s.userAgent())
6499	var body io.Reader = nil
6500	body, err := googleapi.WithoutDataWrapper.JSONReader(c.device)
6501	if err != nil {
6502		return nil, err
6503	}
6504	reqHeaders.Set("Content-Type", "application/json")
6505	c.urlParams_.Set("alt", alt)
6506	c.urlParams_.Set("prettyPrint", "false")
6507	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
6508	urls += "?" + c.urlParams_.Encode()
6509	req, err := http.NewRequest("PATCH", urls, body)
6510	if err != nil {
6511		return nil, err
6512	}
6513	req.Header = reqHeaders
6514	googleapi.Expand(req.URL, map[string]string{
6515		"name": c.name,
6516	})
6517	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6518}
6519
6520// Do executes the "androidmanagement.enterprises.devices.patch" call.
6521// Exactly one of *Device or error will be non-nil. Any non-2xx status
6522// code is an error. Response headers are in either
6523// *Device.ServerResponse.Header or (if a response was returned at all)
6524// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6525// check whether the returned error was because http.StatusNotModified
6526// was returned.
6527func (c *EnterprisesDevicesPatchCall) Do(opts ...googleapi.CallOption) (*Device, error) {
6528	gensupport.SetOptions(c.urlParams_, opts...)
6529	res, err := c.doRequest("json")
6530	if res != nil && res.StatusCode == http.StatusNotModified {
6531		if res.Body != nil {
6532			res.Body.Close()
6533		}
6534		return nil, &googleapi.Error{
6535			Code:   res.StatusCode,
6536			Header: res.Header,
6537		}
6538	}
6539	if err != nil {
6540		return nil, err
6541	}
6542	defer googleapi.CloseBody(res)
6543	if err := googleapi.CheckResponse(res); err != nil {
6544		return nil, err
6545	}
6546	ret := &Device{
6547		ServerResponse: googleapi.ServerResponse{
6548			Header:         res.Header,
6549			HTTPStatusCode: res.StatusCode,
6550		},
6551	}
6552	target := &ret
6553	if err := gensupport.DecodeResponse(target, res); err != nil {
6554		return nil, err
6555	}
6556	return ret, nil
6557	// {
6558	//   "description": "Updates a device.",
6559	//   "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}",
6560	//   "httpMethod": "PATCH",
6561	//   "id": "androidmanagement.enterprises.devices.patch",
6562	//   "parameterOrder": [
6563	//     "name"
6564	//   ],
6565	//   "parameters": {
6566	//     "name": {
6567	//       "description": "The name of the device in the form enterprises/{enterpriseId}/devices/{deviceId}.",
6568	//       "location": "path",
6569	//       "pattern": "^enterprises/[^/]+/devices/[^/]+$",
6570	//       "required": true,
6571	//       "type": "string"
6572	//     },
6573	//     "updateMask": {
6574	//       "description": "The field mask indicating the fields to update. If not set, all modifiable fields will be modified.",
6575	//       "format": "google-fieldmask",
6576	//       "location": "query",
6577	//       "type": "string"
6578	//     }
6579	//   },
6580	//   "path": "v1/{+name}",
6581	//   "request": {
6582	//     "$ref": "Device"
6583	//   },
6584	//   "response": {
6585	//     "$ref": "Device"
6586	//   },
6587	//   "scopes": [
6588	//     "https://www.googleapis.com/auth/androidmanagement"
6589	//   ]
6590	// }
6591
6592}
6593
6594// method id "androidmanagement.enterprises.devices.operations.cancel":
6595
6596type EnterprisesDevicesOperationsCancelCall struct {
6597	s          *Service
6598	name       string
6599	urlParams_ gensupport.URLParams
6600	ctx_       context.Context
6601	header_    http.Header
6602}
6603
6604// Cancel: Starts asynchronous cancellation on a long-running operation.
6605// The server makes a best effort to cancel the operation, but success
6606// is not guaranteed. If the server doesn't support this method, it
6607// returns google.rpc.Code.UNIMPLEMENTED. Clients can use
6608// Operations.GetOperation or other methods to check whether the
6609// cancellation succeeded or whether the operation completed despite
6610// cancellation. On successful cancellation, the operation is not
6611// deleted; instead, it becomes an operation with an Operation.error
6612// value with a google.rpc.Status.code of 1, corresponding to
6613// Code.CANCELLED.
6614//
6615// - name: The name of the operation resource to be cancelled.
6616func (r *EnterprisesDevicesOperationsService) Cancel(name string) *EnterprisesDevicesOperationsCancelCall {
6617	c := &EnterprisesDevicesOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6618	c.name = name
6619	return c
6620}
6621
6622// Fields allows partial responses to be retrieved. See
6623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6624// for more information.
6625func (c *EnterprisesDevicesOperationsCancelCall) Fields(s ...googleapi.Field) *EnterprisesDevicesOperationsCancelCall {
6626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6627	return c
6628}
6629
6630// Context sets the context to be used in this call's Do method. Any
6631// pending HTTP request will be aborted if the provided context is
6632// canceled.
6633func (c *EnterprisesDevicesOperationsCancelCall) Context(ctx context.Context) *EnterprisesDevicesOperationsCancelCall {
6634	c.ctx_ = ctx
6635	return c
6636}
6637
6638// Header returns an http.Header that can be modified by the caller to
6639// add HTTP headers to the request.
6640func (c *EnterprisesDevicesOperationsCancelCall) Header() http.Header {
6641	if c.header_ == nil {
6642		c.header_ = make(http.Header)
6643	}
6644	return c.header_
6645}
6646
6647func (c *EnterprisesDevicesOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
6648	reqHeaders := make(http.Header)
6649	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6650	for k, v := range c.header_ {
6651		reqHeaders[k] = v
6652	}
6653	reqHeaders.Set("User-Agent", c.s.userAgent())
6654	var body io.Reader = nil
6655	c.urlParams_.Set("alt", alt)
6656	c.urlParams_.Set("prettyPrint", "false")
6657	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
6658	urls += "?" + c.urlParams_.Encode()
6659	req, err := http.NewRequest("POST", urls, body)
6660	if err != nil {
6661		return nil, err
6662	}
6663	req.Header = reqHeaders
6664	googleapi.Expand(req.URL, map[string]string{
6665		"name": c.name,
6666	})
6667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6668}
6669
6670// Do executes the "androidmanagement.enterprises.devices.operations.cancel" call.
6671// Exactly one of *Empty or error will be non-nil. Any non-2xx status
6672// code is an error. Response headers are in either
6673// *Empty.ServerResponse.Header or (if a response was returned at all)
6674// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6675// check whether the returned error was because http.StatusNotModified
6676// was returned.
6677func (c *EnterprisesDevicesOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
6678	gensupport.SetOptions(c.urlParams_, opts...)
6679	res, err := c.doRequest("json")
6680	if res != nil && res.StatusCode == http.StatusNotModified {
6681		if res.Body != nil {
6682			res.Body.Close()
6683		}
6684		return nil, &googleapi.Error{
6685			Code:   res.StatusCode,
6686			Header: res.Header,
6687		}
6688	}
6689	if err != nil {
6690		return nil, err
6691	}
6692	defer googleapi.CloseBody(res)
6693	if err := googleapi.CheckResponse(res); err != nil {
6694		return nil, err
6695	}
6696	ret := &Empty{
6697		ServerResponse: googleapi.ServerResponse{
6698			Header:         res.Header,
6699			HTTPStatusCode: res.StatusCode,
6700		},
6701	}
6702	target := &ret
6703	if err := gensupport.DecodeResponse(target, res); err != nil {
6704		return nil, err
6705	}
6706	return ret, nil
6707	// {
6708	//   "description": "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.",
6709	//   "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}/operations/{operationsId}:cancel",
6710	//   "httpMethod": "POST",
6711	//   "id": "androidmanagement.enterprises.devices.operations.cancel",
6712	//   "parameterOrder": [
6713	//     "name"
6714	//   ],
6715	//   "parameters": {
6716	//     "name": {
6717	//       "description": "The name of the operation resource to be cancelled.",
6718	//       "location": "path",
6719	//       "pattern": "^enterprises/[^/]+/devices/[^/]+/operations/[^/]+$",
6720	//       "required": true,
6721	//       "type": "string"
6722	//     }
6723	//   },
6724	//   "path": "v1/{+name}:cancel",
6725	//   "response": {
6726	//     "$ref": "Empty"
6727	//   },
6728	//   "scopes": [
6729	//     "https://www.googleapis.com/auth/androidmanagement"
6730	//   ]
6731	// }
6732
6733}
6734
6735// method id "androidmanagement.enterprises.devices.operations.delete":
6736
6737type EnterprisesDevicesOperationsDeleteCall struct {
6738	s          *Service
6739	name       string
6740	urlParams_ gensupport.URLParams
6741	ctx_       context.Context
6742	header_    http.Header
6743}
6744
6745// Delete: Deletes a long-running operation. This method indicates that
6746// the client is no longer interested in the operation result. It does
6747// not cancel the operation. If the server doesn't support this method,
6748// it returns google.rpc.Code.UNIMPLEMENTED.
6749//
6750// - name: The name of the operation resource to be deleted.
6751func (r *EnterprisesDevicesOperationsService) Delete(name string) *EnterprisesDevicesOperationsDeleteCall {
6752	c := &EnterprisesDevicesOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6753	c.name = name
6754	return c
6755}
6756
6757// Fields allows partial responses to be retrieved. See
6758// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6759// for more information.
6760func (c *EnterprisesDevicesOperationsDeleteCall) Fields(s ...googleapi.Field) *EnterprisesDevicesOperationsDeleteCall {
6761	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6762	return c
6763}
6764
6765// Context sets the context to be used in this call's Do method. Any
6766// pending HTTP request will be aborted if the provided context is
6767// canceled.
6768func (c *EnterprisesDevicesOperationsDeleteCall) Context(ctx context.Context) *EnterprisesDevicesOperationsDeleteCall {
6769	c.ctx_ = ctx
6770	return c
6771}
6772
6773// Header returns an http.Header that can be modified by the caller to
6774// add HTTP headers to the request.
6775func (c *EnterprisesDevicesOperationsDeleteCall) Header() http.Header {
6776	if c.header_ == nil {
6777		c.header_ = make(http.Header)
6778	}
6779	return c.header_
6780}
6781
6782func (c *EnterprisesDevicesOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
6783	reqHeaders := make(http.Header)
6784	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6785	for k, v := range c.header_ {
6786		reqHeaders[k] = v
6787	}
6788	reqHeaders.Set("User-Agent", c.s.userAgent())
6789	var body io.Reader = nil
6790	c.urlParams_.Set("alt", alt)
6791	c.urlParams_.Set("prettyPrint", "false")
6792	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
6793	urls += "?" + c.urlParams_.Encode()
6794	req, err := http.NewRequest("DELETE", urls, body)
6795	if err != nil {
6796		return nil, err
6797	}
6798	req.Header = reqHeaders
6799	googleapi.Expand(req.URL, map[string]string{
6800		"name": c.name,
6801	})
6802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6803}
6804
6805// Do executes the "androidmanagement.enterprises.devices.operations.delete" call.
6806// Exactly one of *Empty or error will be non-nil. Any non-2xx status
6807// code is an error. Response headers are in either
6808// *Empty.ServerResponse.Header or (if a response was returned at all)
6809// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6810// check whether the returned error was because http.StatusNotModified
6811// was returned.
6812func (c *EnterprisesDevicesOperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
6813	gensupport.SetOptions(c.urlParams_, opts...)
6814	res, err := c.doRequest("json")
6815	if res != nil && res.StatusCode == http.StatusNotModified {
6816		if res.Body != nil {
6817			res.Body.Close()
6818		}
6819		return nil, &googleapi.Error{
6820			Code:   res.StatusCode,
6821			Header: res.Header,
6822		}
6823	}
6824	if err != nil {
6825		return nil, err
6826	}
6827	defer googleapi.CloseBody(res)
6828	if err := googleapi.CheckResponse(res); err != nil {
6829		return nil, err
6830	}
6831	ret := &Empty{
6832		ServerResponse: googleapi.ServerResponse{
6833			Header:         res.Header,
6834			HTTPStatusCode: res.StatusCode,
6835		},
6836	}
6837	target := &ret
6838	if err := gensupport.DecodeResponse(target, res); err != nil {
6839		return nil, err
6840	}
6841	return ret, nil
6842	// {
6843	//   "description": "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.",
6844	//   "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}/operations/{operationsId}",
6845	//   "httpMethod": "DELETE",
6846	//   "id": "androidmanagement.enterprises.devices.operations.delete",
6847	//   "parameterOrder": [
6848	//     "name"
6849	//   ],
6850	//   "parameters": {
6851	//     "name": {
6852	//       "description": "The name of the operation resource to be deleted.",
6853	//       "location": "path",
6854	//       "pattern": "^enterprises/[^/]+/devices/[^/]+/operations/[^/]+$",
6855	//       "required": true,
6856	//       "type": "string"
6857	//     }
6858	//   },
6859	//   "path": "v1/{+name}",
6860	//   "response": {
6861	//     "$ref": "Empty"
6862	//   },
6863	//   "scopes": [
6864	//     "https://www.googleapis.com/auth/androidmanagement"
6865	//   ]
6866	// }
6867
6868}
6869
6870// method id "androidmanagement.enterprises.devices.operations.get":
6871
6872type EnterprisesDevicesOperationsGetCall struct {
6873	s            *Service
6874	name         string
6875	urlParams_   gensupport.URLParams
6876	ifNoneMatch_ string
6877	ctx_         context.Context
6878	header_      http.Header
6879}
6880
6881// Get: Gets the latest state of a long-running operation. Clients can
6882// use this method to poll the operation result at intervals as
6883// recommended by the API service.
6884//
6885// - name: The name of the operation resource.
6886func (r *EnterprisesDevicesOperationsService) Get(name string) *EnterprisesDevicesOperationsGetCall {
6887	c := &EnterprisesDevicesOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6888	c.name = name
6889	return c
6890}
6891
6892// Fields allows partial responses to be retrieved. See
6893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6894// for more information.
6895func (c *EnterprisesDevicesOperationsGetCall) Fields(s ...googleapi.Field) *EnterprisesDevicesOperationsGetCall {
6896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6897	return c
6898}
6899
6900// IfNoneMatch sets the optional parameter which makes the operation
6901// fail if the object's ETag matches the given value. This is useful for
6902// getting updates only after the object has changed since the last
6903// request. Use googleapi.IsNotModified to check whether the response
6904// error from Do is the result of In-None-Match.
6905func (c *EnterprisesDevicesOperationsGetCall) IfNoneMatch(entityTag string) *EnterprisesDevicesOperationsGetCall {
6906	c.ifNoneMatch_ = entityTag
6907	return c
6908}
6909
6910// Context sets the context to be used in this call's Do method. Any
6911// pending HTTP request will be aborted if the provided context is
6912// canceled.
6913func (c *EnterprisesDevicesOperationsGetCall) Context(ctx context.Context) *EnterprisesDevicesOperationsGetCall {
6914	c.ctx_ = ctx
6915	return c
6916}
6917
6918// Header returns an http.Header that can be modified by the caller to
6919// add HTTP headers to the request.
6920func (c *EnterprisesDevicesOperationsGetCall) Header() http.Header {
6921	if c.header_ == nil {
6922		c.header_ = make(http.Header)
6923	}
6924	return c.header_
6925}
6926
6927func (c *EnterprisesDevicesOperationsGetCall) doRequest(alt string) (*http.Response, error) {
6928	reqHeaders := make(http.Header)
6929	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
6930	for k, v := range c.header_ {
6931		reqHeaders[k] = v
6932	}
6933	reqHeaders.Set("User-Agent", c.s.userAgent())
6934	if c.ifNoneMatch_ != "" {
6935		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6936	}
6937	var body io.Reader = nil
6938	c.urlParams_.Set("alt", alt)
6939	c.urlParams_.Set("prettyPrint", "false")
6940	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
6941	urls += "?" + c.urlParams_.Encode()
6942	req, err := http.NewRequest("GET", urls, body)
6943	if err != nil {
6944		return nil, err
6945	}
6946	req.Header = reqHeaders
6947	googleapi.Expand(req.URL, map[string]string{
6948		"name": c.name,
6949	})
6950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6951}
6952
6953// Do executes the "androidmanagement.enterprises.devices.operations.get" call.
6954// Exactly one of *Operation or error will be non-nil. Any non-2xx
6955// status code is an error. Response headers are in either
6956// *Operation.ServerResponse.Header or (if a response was returned at
6957// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6958// to check whether the returned error was because
6959// http.StatusNotModified was returned.
6960func (c *EnterprisesDevicesOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6961	gensupport.SetOptions(c.urlParams_, opts...)
6962	res, err := c.doRequest("json")
6963	if res != nil && res.StatusCode == http.StatusNotModified {
6964		if res.Body != nil {
6965			res.Body.Close()
6966		}
6967		return nil, &googleapi.Error{
6968			Code:   res.StatusCode,
6969			Header: res.Header,
6970		}
6971	}
6972	if err != nil {
6973		return nil, err
6974	}
6975	defer googleapi.CloseBody(res)
6976	if err := googleapi.CheckResponse(res); err != nil {
6977		return nil, err
6978	}
6979	ret := &Operation{
6980		ServerResponse: googleapi.ServerResponse{
6981			Header:         res.Header,
6982			HTTPStatusCode: res.StatusCode,
6983		},
6984	}
6985	target := &ret
6986	if err := gensupport.DecodeResponse(target, res); err != nil {
6987		return nil, err
6988	}
6989	return ret, nil
6990	// {
6991	//   "description": "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.",
6992	//   "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}/operations/{operationsId}",
6993	//   "httpMethod": "GET",
6994	//   "id": "androidmanagement.enterprises.devices.operations.get",
6995	//   "parameterOrder": [
6996	//     "name"
6997	//   ],
6998	//   "parameters": {
6999	//     "name": {
7000	//       "description": "The name of the operation resource.",
7001	//       "location": "path",
7002	//       "pattern": "^enterprises/[^/]+/devices/[^/]+/operations/[^/]+$",
7003	//       "required": true,
7004	//       "type": "string"
7005	//     }
7006	//   },
7007	//   "path": "v1/{+name}",
7008	//   "response": {
7009	//     "$ref": "Operation"
7010	//   },
7011	//   "scopes": [
7012	//     "https://www.googleapis.com/auth/androidmanagement"
7013	//   ]
7014	// }
7015
7016}
7017
7018// method id "androidmanagement.enterprises.devices.operations.list":
7019
7020type EnterprisesDevicesOperationsListCall struct {
7021	s            *Service
7022	name         string
7023	urlParams_   gensupport.URLParams
7024	ifNoneMatch_ string
7025	ctx_         context.Context
7026	header_      http.Header
7027}
7028
7029// List: Lists operations that match the specified filter in the
7030// request. If the server doesn't support this method, it returns
7031// UNIMPLEMENTED.NOTE: the name binding allows API services to override
7032// the binding to use different resource name schemes, such as
7033// users/*/operations. To override the binding, API services can add a
7034// binding such as "/v1/{name=users/*}/operations" to their service
7035// configuration. For backwards compatibility, the default name includes
7036// the operations collection id, however overriding users must ensure
7037// the name binding is the parent resource, without the operations
7038// collection id.
7039//
7040// - name: The name of the operation's parent resource.
7041func (r *EnterprisesDevicesOperationsService) List(name string) *EnterprisesDevicesOperationsListCall {
7042	c := &EnterprisesDevicesOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7043	c.name = name
7044	return c
7045}
7046
7047// Filter sets the optional parameter "filter": The standard list
7048// filter.
7049func (c *EnterprisesDevicesOperationsListCall) Filter(filter string) *EnterprisesDevicesOperationsListCall {
7050	c.urlParams_.Set("filter", filter)
7051	return c
7052}
7053
7054// PageSize sets the optional parameter "pageSize": The standard list
7055// page size.
7056func (c *EnterprisesDevicesOperationsListCall) PageSize(pageSize int64) *EnterprisesDevicesOperationsListCall {
7057	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7058	return c
7059}
7060
7061// PageToken sets the optional parameter "pageToken": The standard list
7062// page token.
7063func (c *EnterprisesDevicesOperationsListCall) PageToken(pageToken string) *EnterprisesDevicesOperationsListCall {
7064	c.urlParams_.Set("pageToken", pageToken)
7065	return c
7066}
7067
7068// Fields allows partial responses to be retrieved. See
7069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7070// for more information.
7071func (c *EnterprisesDevicesOperationsListCall) Fields(s ...googleapi.Field) *EnterprisesDevicesOperationsListCall {
7072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7073	return c
7074}
7075
7076// IfNoneMatch sets the optional parameter which makes the operation
7077// fail if the object's ETag matches the given value. This is useful for
7078// getting updates only after the object has changed since the last
7079// request. Use googleapi.IsNotModified to check whether the response
7080// error from Do is the result of In-None-Match.
7081func (c *EnterprisesDevicesOperationsListCall) IfNoneMatch(entityTag string) *EnterprisesDevicesOperationsListCall {
7082	c.ifNoneMatch_ = entityTag
7083	return c
7084}
7085
7086// Context sets the context to be used in this call's Do method. Any
7087// pending HTTP request will be aborted if the provided context is
7088// canceled.
7089func (c *EnterprisesDevicesOperationsListCall) Context(ctx context.Context) *EnterprisesDevicesOperationsListCall {
7090	c.ctx_ = ctx
7091	return c
7092}
7093
7094// Header returns an http.Header that can be modified by the caller to
7095// add HTTP headers to the request.
7096func (c *EnterprisesDevicesOperationsListCall) Header() http.Header {
7097	if c.header_ == nil {
7098		c.header_ = make(http.Header)
7099	}
7100	return c.header_
7101}
7102
7103func (c *EnterprisesDevicesOperationsListCall) doRequest(alt string) (*http.Response, error) {
7104	reqHeaders := make(http.Header)
7105	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7106	for k, v := range c.header_ {
7107		reqHeaders[k] = v
7108	}
7109	reqHeaders.Set("User-Agent", c.s.userAgent())
7110	if c.ifNoneMatch_ != "" {
7111		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7112	}
7113	var body io.Reader = nil
7114	c.urlParams_.Set("alt", alt)
7115	c.urlParams_.Set("prettyPrint", "false")
7116	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
7117	urls += "?" + c.urlParams_.Encode()
7118	req, err := http.NewRequest("GET", urls, body)
7119	if err != nil {
7120		return nil, err
7121	}
7122	req.Header = reqHeaders
7123	googleapi.Expand(req.URL, map[string]string{
7124		"name": c.name,
7125	})
7126	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7127}
7128
7129// Do executes the "androidmanagement.enterprises.devices.operations.list" call.
7130// Exactly one of *ListOperationsResponse or error will be non-nil. Any
7131// non-2xx status code is an error. Response headers are in either
7132// *ListOperationsResponse.ServerResponse.Header or (if a response was
7133// returned at all) in error.(*googleapi.Error).Header. Use
7134// googleapi.IsNotModified to check whether the returned error was
7135// because http.StatusNotModified was returned.
7136func (c *EnterprisesDevicesOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
7137	gensupport.SetOptions(c.urlParams_, opts...)
7138	res, err := c.doRequest("json")
7139	if res != nil && res.StatusCode == http.StatusNotModified {
7140		if res.Body != nil {
7141			res.Body.Close()
7142		}
7143		return nil, &googleapi.Error{
7144			Code:   res.StatusCode,
7145			Header: res.Header,
7146		}
7147	}
7148	if err != nil {
7149		return nil, err
7150	}
7151	defer googleapi.CloseBody(res)
7152	if err := googleapi.CheckResponse(res); err != nil {
7153		return nil, err
7154	}
7155	ret := &ListOperationsResponse{
7156		ServerResponse: googleapi.ServerResponse{
7157			Header:         res.Header,
7158			HTTPStatusCode: res.StatusCode,
7159		},
7160	}
7161	target := &ret
7162	if err := gensupport.DecodeResponse(target, res); err != nil {
7163		return nil, err
7164	}
7165	return ret, nil
7166	// {
7167	//   "description": "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.",
7168	//   "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}/operations",
7169	//   "httpMethod": "GET",
7170	//   "id": "androidmanagement.enterprises.devices.operations.list",
7171	//   "parameterOrder": [
7172	//     "name"
7173	//   ],
7174	//   "parameters": {
7175	//     "filter": {
7176	//       "description": "The standard list filter.",
7177	//       "location": "query",
7178	//       "type": "string"
7179	//     },
7180	//     "name": {
7181	//       "description": "The name of the operation's parent resource.",
7182	//       "location": "path",
7183	//       "pattern": "^enterprises/[^/]+/devices/[^/]+/operations$",
7184	//       "required": true,
7185	//       "type": "string"
7186	//     },
7187	//     "pageSize": {
7188	//       "description": "The standard list page size.",
7189	//       "format": "int32",
7190	//       "location": "query",
7191	//       "type": "integer"
7192	//     },
7193	//     "pageToken": {
7194	//       "description": "The standard list page token.",
7195	//       "location": "query",
7196	//       "type": "string"
7197	//     }
7198	//   },
7199	//   "path": "v1/{+name}",
7200	//   "response": {
7201	//     "$ref": "ListOperationsResponse"
7202	//   },
7203	//   "scopes": [
7204	//     "https://www.googleapis.com/auth/androidmanagement"
7205	//   ]
7206	// }
7207
7208}
7209
7210// Pages invokes f for each page of results.
7211// A non-nil error returned from f will halt the iteration.
7212// The provided context supersedes any context provided to the Context method.
7213func (c *EnterprisesDevicesOperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error {
7214	c.ctx_ = ctx
7215	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7216	for {
7217		x, err := c.Do()
7218		if err != nil {
7219			return err
7220		}
7221		if err := f(x); err != nil {
7222			return err
7223		}
7224		if x.NextPageToken == "" {
7225			return nil
7226		}
7227		c.PageToken(x.NextPageToken)
7228	}
7229}
7230
7231// method id "androidmanagement.enterprises.enrollmentTokens.create":
7232
7233type EnterprisesEnrollmentTokensCreateCall struct {
7234	s               *Service
7235	parent          string
7236	enrollmenttoken *EnrollmentToken
7237	urlParams_      gensupport.URLParams
7238	ctx_            context.Context
7239	header_         http.Header
7240}
7241
7242// Create: Creates an enrollment token for a given enterprise.
7243//
7244// - parent: The name of the enterprise in the form
7245//   enterprises/{enterpriseId}.
7246func (r *EnterprisesEnrollmentTokensService) Create(parent string, enrollmenttoken *EnrollmentToken) *EnterprisesEnrollmentTokensCreateCall {
7247	c := &EnterprisesEnrollmentTokensCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7248	c.parent = parent
7249	c.enrollmenttoken = enrollmenttoken
7250	return c
7251}
7252
7253// Fields allows partial responses to be retrieved. See
7254// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7255// for more information.
7256func (c *EnterprisesEnrollmentTokensCreateCall) Fields(s ...googleapi.Field) *EnterprisesEnrollmentTokensCreateCall {
7257	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7258	return c
7259}
7260
7261// Context sets the context to be used in this call's Do method. Any
7262// pending HTTP request will be aborted if the provided context is
7263// canceled.
7264func (c *EnterprisesEnrollmentTokensCreateCall) Context(ctx context.Context) *EnterprisesEnrollmentTokensCreateCall {
7265	c.ctx_ = ctx
7266	return c
7267}
7268
7269// Header returns an http.Header that can be modified by the caller to
7270// add HTTP headers to the request.
7271func (c *EnterprisesEnrollmentTokensCreateCall) Header() http.Header {
7272	if c.header_ == nil {
7273		c.header_ = make(http.Header)
7274	}
7275	return c.header_
7276}
7277
7278func (c *EnterprisesEnrollmentTokensCreateCall) doRequest(alt string) (*http.Response, error) {
7279	reqHeaders := make(http.Header)
7280	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7281	for k, v := range c.header_ {
7282		reqHeaders[k] = v
7283	}
7284	reqHeaders.Set("User-Agent", c.s.userAgent())
7285	var body io.Reader = nil
7286	body, err := googleapi.WithoutDataWrapper.JSONReader(c.enrollmenttoken)
7287	if err != nil {
7288		return nil, err
7289	}
7290	reqHeaders.Set("Content-Type", "application/json")
7291	c.urlParams_.Set("alt", alt)
7292	c.urlParams_.Set("prettyPrint", "false")
7293	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/enrollmentTokens")
7294	urls += "?" + c.urlParams_.Encode()
7295	req, err := http.NewRequest("POST", urls, body)
7296	if err != nil {
7297		return nil, err
7298	}
7299	req.Header = reqHeaders
7300	googleapi.Expand(req.URL, map[string]string{
7301		"parent": c.parent,
7302	})
7303	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7304}
7305
7306// Do executes the "androidmanagement.enterprises.enrollmentTokens.create" call.
7307// Exactly one of *EnrollmentToken or error will be non-nil. Any non-2xx
7308// status code is an error. Response headers are in either
7309// *EnrollmentToken.ServerResponse.Header or (if a response was returned
7310// at all) in error.(*googleapi.Error).Header. Use
7311// googleapi.IsNotModified to check whether the returned error was
7312// because http.StatusNotModified was returned.
7313func (c *EnterprisesEnrollmentTokensCreateCall) Do(opts ...googleapi.CallOption) (*EnrollmentToken, error) {
7314	gensupport.SetOptions(c.urlParams_, opts...)
7315	res, err := c.doRequest("json")
7316	if res != nil && res.StatusCode == http.StatusNotModified {
7317		if res.Body != nil {
7318			res.Body.Close()
7319		}
7320		return nil, &googleapi.Error{
7321			Code:   res.StatusCode,
7322			Header: res.Header,
7323		}
7324	}
7325	if err != nil {
7326		return nil, err
7327	}
7328	defer googleapi.CloseBody(res)
7329	if err := googleapi.CheckResponse(res); err != nil {
7330		return nil, err
7331	}
7332	ret := &EnrollmentToken{
7333		ServerResponse: googleapi.ServerResponse{
7334			Header:         res.Header,
7335			HTTPStatusCode: res.StatusCode,
7336		},
7337	}
7338	target := &ret
7339	if err := gensupport.DecodeResponse(target, res); err != nil {
7340		return nil, err
7341	}
7342	return ret, nil
7343	// {
7344	//   "description": "Creates an enrollment token for a given enterprise.",
7345	//   "flatPath": "v1/enterprises/{enterprisesId}/enrollmentTokens",
7346	//   "httpMethod": "POST",
7347	//   "id": "androidmanagement.enterprises.enrollmentTokens.create",
7348	//   "parameterOrder": [
7349	//     "parent"
7350	//   ],
7351	//   "parameters": {
7352	//     "parent": {
7353	//       "description": "The name of the enterprise in the form enterprises/{enterpriseId}.",
7354	//       "location": "path",
7355	//       "pattern": "^enterprises/[^/]+$",
7356	//       "required": true,
7357	//       "type": "string"
7358	//     }
7359	//   },
7360	//   "path": "v1/{+parent}/enrollmentTokens",
7361	//   "request": {
7362	//     "$ref": "EnrollmentToken"
7363	//   },
7364	//   "response": {
7365	//     "$ref": "EnrollmentToken"
7366	//   },
7367	//   "scopes": [
7368	//     "https://www.googleapis.com/auth/androidmanagement"
7369	//   ]
7370	// }
7371
7372}
7373
7374// method id "androidmanagement.enterprises.enrollmentTokens.delete":
7375
7376type EnterprisesEnrollmentTokensDeleteCall struct {
7377	s          *Service
7378	name       string
7379	urlParams_ gensupport.URLParams
7380	ctx_       context.Context
7381	header_    http.Header
7382}
7383
7384// Delete: Deletes an enrollment token. This operation invalidates the
7385// token, preventing its future use.
7386//
7387// - name: The name of the enrollment token in the form
7388//   enterprises/{enterpriseId}/enrollmentTokens/{enrollmentTokenId}.
7389func (r *EnterprisesEnrollmentTokensService) Delete(name string) *EnterprisesEnrollmentTokensDeleteCall {
7390	c := &EnterprisesEnrollmentTokensDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7391	c.name = name
7392	return c
7393}
7394
7395// Fields allows partial responses to be retrieved. See
7396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7397// for more information.
7398func (c *EnterprisesEnrollmentTokensDeleteCall) Fields(s ...googleapi.Field) *EnterprisesEnrollmentTokensDeleteCall {
7399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7400	return c
7401}
7402
7403// Context sets the context to be used in this call's Do method. Any
7404// pending HTTP request will be aborted if the provided context is
7405// canceled.
7406func (c *EnterprisesEnrollmentTokensDeleteCall) Context(ctx context.Context) *EnterprisesEnrollmentTokensDeleteCall {
7407	c.ctx_ = ctx
7408	return c
7409}
7410
7411// Header returns an http.Header that can be modified by the caller to
7412// add HTTP headers to the request.
7413func (c *EnterprisesEnrollmentTokensDeleteCall) Header() http.Header {
7414	if c.header_ == nil {
7415		c.header_ = make(http.Header)
7416	}
7417	return c.header_
7418}
7419
7420func (c *EnterprisesEnrollmentTokensDeleteCall) doRequest(alt string) (*http.Response, error) {
7421	reqHeaders := make(http.Header)
7422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7423	for k, v := range c.header_ {
7424		reqHeaders[k] = v
7425	}
7426	reqHeaders.Set("User-Agent", c.s.userAgent())
7427	var body io.Reader = nil
7428	c.urlParams_.Set("alt", alt)
7429	c.urlParams_.Set("prettyPrint", "false")
7430	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
7431	urls += "?" + c.urlParams_.Encode()
7432	req, err := http.NewRequest("DELETE", urls, body)
7433	if err != nil {
7434		return nil, err
7435	}
7436	req.Header = reqHeaders
7437	googleapi.Expand(req.URL, map[string]string{
7438		"name": c.name,
7439	})
7440	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7441}
7442
7443// Do executes the "androidmanagement.enterprises.enrollmentTokens.delete" call.
7444// Exactly one of *Empty or error will be non-nil. Any non-2xx status
7445// code is an error. Response headers are in either
7446// *Empty.ServerResponse.Header or (if a response was returned at all)
7447// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7448// check whether the returned error was because http.StatusNotModified
7449// was returned.
7450func (c *EnterprisesEnrollmentTokensDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
7451	gensupport.SetOptions(c.urlParams_, opts...)
7452	res, err := c.doRequest("json")
7453	if res != nil && res.StatusCode == http.StatusNotModified {
7454		if res.Body != nil {
7455			res.Body.Close()
7456		}
7457		return nil, &googleapi.Error{
7458			Code:   res.StatusCode,
7459			Header: res.Header,
7460		}
7461	}
7462	if err != nil {
7463		return nil, err
7464	}
7465	defer googleapi.CloseBody(res)
7466	if err := googleapi.CheckResponse(res); err != nil {
7467		return nil, err
7468	}
7469	ret := &Empty{
7470		ServerResponse: googleapi.ServerResponse{
7471			Header:         res.Header,
7472			HTTPStatusCode: res.StatusCode,
7473		},
7474	}
7475	target := &ret
7476	if err := gensupport.DecodeResponse(target, res); err != nil {
7477		return nil, err
7478	}
7479	return ret, nil
7480	// {
7481	//   "description": "Deletes an enrollment token. This operation invalidates the token, preventing its future use.",
7482	//   "flatPath": "v1/enterprises/{enterprisesId}/enrollmentTokens/{enrollmentTokensId}",
7483	//   "httpMethod": "DELETE",
7484	//   "id": "androidmanagement.enterprises.enrollmentTokens.delete",
7485	//   "parameterOrder": [
7486	//     "name"
7487	//   ],
7488	//   "parameters": {
7489	//     "name": {
7490	//       "description": "The name of the enrollment token in the form enterprises/{enterpriseId}/enrollmentTokens/{enrollmentTokenId}.",
7491	//       "location": "path",
7492	//       "pattern": "^enterprises/[^/]+/enrollmentTokens/[^/]+$",
7493	//       "required": true,
7494	//       "type": "string"
7495	//     }
7496	//   },
7497	//   "path": "v1/{+name}",
7498	//   "response": {
7499	//     "$ref": "Empty"
7500	//   },
7501	//   "scopes": [
7502	//     "https://www.googleapis.com/auth/androidmanagement"
7503	//   ]
7504	// }
7505
7506}
7507
7508// method id "androidmanagement.enterprises.policies.delete":
7509
7510type EnterprisesPoliciesDeleteCall struct {
7511	s          *Service
7512	name       string
7513	urlParams_ gensupport.URLParams
7514	ctx_       context.Context
7515	header_    http.Header
7516}
7517
7518// Delete: Deletes a policy. This operation is only permitted if no
7519// devices are currently referencing the policy.
7520//
7521// - name: The name of the policy in the form
7522//   enterprises/{enterpriseId}/policies/{policyId}.
7523func (r *EnterprisesPoliciesService) Delete(name string) *EnterprisesPoliciesDeleteCall {
7524	c := &EnterprisesPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7525	c.name = name
7526	return c
7527}
7528
7529// Fields allows partial responses to be retrieved. See
7530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7531// for more information.
7532func (c *EnterprisesPoliciesDeleteCall) Fields(s ...googleapi.Field) *EnterprisesPoliciesDeleteCall {
7533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7534	return c
7535}
7536
7537// Context sets the context to be used in this call's Do method. Any
7538// pending HTTP request will be aborted if the provided context is
7539// canceled.
7540func (c *EnterprisesPoliciesDeleteCall) Context(ctx context.Context) *EnterprisesPoliciesDeleteCall {
7541	c.ctx_ = ctx
7542	return c
7543}
7544
7545// Header returns an http.Header that can be modified by the caller to
7546// add HTTP headers to the request.
7547func (c *EnterprisesPoliciesDeleteCall) Header() http.Header {
7548	if c.header_ == nil {
7549		c.header_ = make(http.Header)
7550	}
7551	return c.header_
7552}
7553
7554func (c *EnterprisesPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
7555	reqHeaders := make(http.Header)
7556	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7557	for k, v := range c.header_ {
7558		reqHeaders[k] = v
7559	}
7560	reqHeaders.Set("User-Agent", c.s.userAgent())
7561	var body io.Reader = nil
7562	c.urlParams_.Set("alt", alt)
7563	c.urlParams_.Set("prettyPrint", "false")
7564	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
7565	urls += "?" + c.urlParams_.Encode()
7566	req, err := http.NewRequest("DELETE", urls, body)
7567	if err != nil {
7568		return nil, err
7569	}
7570	req.Header = reqHeaders
7571	googleapi.Expand(req.URL, map[string]string{
7572		"name": c.name,
7573	})
7574	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7575}
7576
7577// Do executes the "androidmanagement.enterprises.policies.delete" call.
7578// Exactly one of *Empty or error will be non-nil. Any non-2xx status
7579// code is an error. Response headers are in either
7580// *Empty.ServerResponse.Header or (if a response was returned at all)
7581// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7582// check whether the returned error was because http.StatusNotModified
7583// was returned.
7584func (c *EnterprisesPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
7585	gensupport.SetOptions(c.urlParams_, opts...)
7586	res, err := c.doRequest("json")
7587	if res != nil && res.StatusCode == http.StatusNotModified {
7588		if res.Body != nil {
7589			res.Body.Close()
7590		}
7591		return nil, &googleapi.Error{
7592			Code:   res.StatusCode,
7593			Header: res.Header,
7594		}
7595	}
7596	if err != nil {
7597		return nil, err
7598	}
7599	defer googleapi.CloseBody(res)
7600	if err := googleapi.CheckResponse(res); err != nil {
7601		return nil, err
7602	}
7603	ret := &Empty{
7604		ServerResponse: googleapi.ServerResponse{
7605			Header:         res.Header,
7606			HTTPStatusCode: res.StatusCode,
7607		},
7608	}
7609	target := &ret
7610	if err := gensupport.DecodeResponse(target, res); err != nil {
7611		return nil, err
7612	}
7613	return ret, nil
7614	// {
7615	//   "description": "Deletes a policy. This operation is only permitted if no devices are currently referencing the policy.",
7616	//   "flatPath": "v1/enterprises/{enterprisesId}/policies/{policiesId}",
7617	//   "httpMethod": "DELETE",
7618	//   "id": "androidmanagement.enterprises.policies.delete",
7619	//   "parameterOrder": [
7620	//     "name"
7621	//   ],
7622	//   "parameters": {
7623	//     "name": {
7624	//       "description": "The name of the policy in the form enterprises/{enterpriseId}/policies/{policyId}.",
7625	//       "location": "path",
7626	//       "pattern": "^enterprises/[^/]+/policies/[^/]+$",
7627	//       "required": true,
7628	//       "type": "string"
7629	//     }
7630	//   },
7631	//   "path": "v1/{+name}",
7632	//   "response": {
7633	//     "$ref": "Empty"
7634	//   },
7635	//   "scopes": [
7636	//     "https://www.googleapis.com/auth/androidmanagement"
7637	//   ]
7638	// }
7639
7640}
7641
7642// method id "androidmanagement.enterprises.policies.get":
7643
7644type EnterprisesPoliciesGetCall struct {
7645	s            *Service
7646	name         string
7647	urlParams_   gensupport.URLParams
7648	ifNoneMatch_ string
7649	ctx_         context.Context
7650	header_      http.Header
7651}
7652
7653// Get: Gets a policy.
7654//
7655// - name: The name of the policy in the form
7656//   enterprises/{enterpriseId}/policies/{policyId}.
7657func (r *EnterprisesPoliciesService) Get(name string) *EnterprisesPoliciesGetCall {
7658	c := &EnterprisesPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7659	c.name = name
7660	return c
7661}
7662
7663// Fields allows partial responses to be retrieved. See
7664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7665// for more information.
7666func (c *EnterprisesPoliciesGetCall) Fields(s ...googleapi.Field) *EnterprisesPoliciesGetCall {
7667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7668	return c
7669}
7670
7671// IfNoneMatch sets the optional parameter which makes the operation
7672// fail if the object's ETag matches the given value. This is useful for
7673// getting updates only after the object has changed since the last
7674// request. Use googleapi.IsNotModified to check whether the response
7675// error from Do is the result of In-None-Match.
7676func (c *EnterprisesPoliciesGetCall) IfNoneMatch(entityTag string) *EnterprisesPoliciesGetCall {
7677	c.ifNoneMatch_ = entityTag
7678	return c
7679}
7680
7681// Context sets the context to be used in this call's Do method. Any
7682// pending HTTP request will be aborted if the provided context is
7683// canceled.
7684func (c *EnterprisesPoliciesGetCall) Context(ctx context.Context) *EnterprisesPoliciesGetCall {
7685	c.ctx_ = ctx
7686	return c
7687}
7688
7689// Header returns an http.Header that can be modified by the caller to
7690// add HTTP headers to the request.
7691func (c *EnterprisesPoliciesGetCall) Header() http.Header {
7692	if c.header_ == nil {
7693		c.header_ = make(http.Header)
7694	}
7695	return c.header_
7696}
7697
7698func (c *EnterprisesPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
7699	reqHeaders := make(http.Header)
7700	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7701	for k, v := range c.header_ {
7702		reqHeaders[k] = v
7703	}
7704	reqHeaders.Set("User-Agent", c.s.userAgent())
7705	if c.ifNoneMatch_ != "" {
7706		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7707	}
7708	var body io.Reader = nil
7709	c.urlParams_.Set("alt", alt)
7710	c.urlParams_.Set("prettyPrint", "false")
7711	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
7712	urls += "?" + c.urlParams_.Encode()
7713	req, err := http.NewRequest("GET", urls, body)
7714	if err != nil {
7715		return nil, err
7716	}
7717	req.Header = reqHeaders
7718	googleapi.Expand(req.URL, map[string]string{
7719		"name": c.name,
7720	})
7721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7722}
7723
7724// Do executes the "androidmanagement.enterprises.policies.get" call.
7725// Exactly one of *Policy or error will be non-nil. Any non-2xx status
7726// code is an error. Response headers are in either
7727// *Policy.ServerResponse.Header or (if a response was returned at all)
7728// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7729// check whether the returned error was because http.StatusNotModified
7730// was returned.
7731func (c *EnterprisesPoliciesGetCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
7732	gensupport.SetOptions(c.urlParams_, opts...)
7733	res, err := c.doRequest("json")
7734	if res != nil && res.StatusCode == http.StatusNotModified {
7735		if res.Body != nil {
7736			res.Body.Close()
7737		}
7738		return nil, &googleapi.Error{
7739			Code:   res.StatusCode,
7740			Header: res.Header,
7741		}
7742	}
7743	if err != nil {
7744		return nil, err
7745	}
7746	defer googleapi.CloseBody(res)
7747	if err := googleapi.CheckResponse(res); err != nil {
7748		return nil, err
7749	}
7750	ret := &Policy{
7751		ServerResponse: googleapi.ServerResponse{
7752			Header:         res.Header,
7753			HTTPStatusCode: res.StatusCode,
7754		},
7755	}
7756	target := &ret
7757	if err := gensupport.DecodeResponse(target, res); err != nil {
7758		return nil, err
7759	}
7760	return ret, nil
7761	// {
7762	//   "description": "Gets a policy.",
7763	//   "flatPath": "v1/enterprises/{enterprisesId}/policies/{policiesId}",
7764	//   "httpMethod": "GET",
7765	//   "id": "androidmanagement.enterprises.policies.get",
7766	//   "parameterOrder": [
7767	//     "name"
7768	//   ],
7769	//   "parameters": {
7770	//     "name": {
7771	//       "description": "The name of the policy in the form enterprises/{enterpriseId}/policies/{policyId}.",
7772	//       "location": "path",
7773	//       "pattern": "^enterprises/[^/]+/policies/[^/]+$",
7774	//       "required": true,
7775	//       "type": "string"
7776	//     }
7777	//   },
7778	//   "path": "v1/{+name}",
7779	//   "response": {
7780	//     "$ref": "Policy"
7781	//   },
7782	//   "scopes": [
7783	//     "https://www.googleapis.com/auth/androidmanagement"
7784	//   ]
7785	// }
7786
7787}
7788
7789// method id "androidmanagement.enterprises.policies.list":
7790
7791type EnterprisesPoliciesListCall struct {
7792	s            *Service
7793	parent       string
7794	urlParams_   gensupport.URLParams
7795	ifNoneMatch_ string
7796	ctx_         context.Context
7797	header_      http.Header
7798}
7799
7800// List: Lists policies for a given enterprise.
7801//
7802// - parent: The name of the enterprise in the form
7803//   enterprises/{enterpriseId}.
7804func (r *EnterprisesPoliciesService) List(parent string) *EnterprisesPoliciesListCall {
7805	c := &EnterprisesPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7806	c.parent = parent
7807	return c
7808}
7809
7810// PageSize sets the optional parameter "pageSize": The requested page
7811// size. The actual page size may be fixed to a min or max value.
7812func (c *EnterprisesPoliciesListCall) PageSize(pageSize int64) *EnterprisesPoliciesListCall {
7813	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
7814	return c
7815}
7816
7817// PageToken sets the optional parameter "pageToken": A token
7818// identifying a page of results returned by the server.
7819func (c *EnterprisesPoliciesListCall) PageToken(pageToken string) *EnterprisesPoliciesListCall {
7820	c.urlParams_.Set("pageToken", pageToken)
7821	return c
7822}
7823
7824// Fields allows partial responses to be retrieved. See
7825// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7826// for more information.
7827func (c *EnterprisesPoliciesListCall) Fields(s ...googleapi.Field) *EnterprisesPoliciesListCall {
7828	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7829	return c
7830}
7831
7832// IfNoneMatch sets the optional parameter which makes the operation
7833// fail if the object's ETag matches the given value. This is useful for
7834// getting updates only after the object has changed since the last
7835// request. Use googleapi.IsNotModified to check whether the response
7836// error from Do is the result of In-None-Match.
7837func (c *EnterprisesPoliciesListCall) IfNoneMatch(entityTag string) *EnterprisesPoliciesListCall {
7838	c.ifNoneMatch_ = entityTag
7839	return c
7840}
7841
7842// Context sets the context to be used in this call's Do method. Any
7843// pending HTTP request will be aborted if the provided context is
7844// canceled.
7845func (c *EnterprisesPoliciesListCall) Context(ctx context.Context) *EnterprisesPoliciesListCall {
7846	c.ctx_ = ctx
7847	return c
7848}
7849
7850// Header returns an http.Header that can be modified by the caller to
7851// add HTTP headers to the request.
7852func (c *EnterprisesPoliciesListCall) Header() http.Header {
7853	if c.header_ == nil {
7854		c.header_ = make(http.Header)
7855	}
7856	return c.header_
7857}
7858
7859func (c *EnterprisesPoliciesListCall) doRequest(alt string) (*http.Response, error) {
7860	reqHeaders := make(http.Header)
7861	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
7862	for k, v := range c.header_ {
7863		reqHeaders[k] = v
7864	}
7865	reqHeaders.Set("User-Agent", c.s.userAgent())
7866	if c.ifNoneMatch_ != "" {
7867		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7868	}
7869	var body io.Reader = nil
7870	c.urlParams_.Set("alt", alt)
7871	c.urlParams_.Set("prettyPrint", "false")
7872	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/policies")
7873	urls += "?" + c.urlParams_.Encode()
7874	req, err := http.NewRequest("GET", urls, body)
7875	if err != nil {
7876		return nil, err
7877	}
7878	req.Header = reqHeaders
7879	googleapi.Expand(req.URL, map[string]string{
7880		"parent": c.parent,
7881	})
7882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7883}
7884
7885// Do executes the "androidmanagement.enterprises.policies.list" call.
7886// Exactly one of *ListPoliciesResponse or error will be non-nil. Any
7887// non-2xx status code is an error. Response headers are in either
7888// *ListPoliciesResponse.ServerResponse.Header or (if a response was
7889// returned at all) in error.(*googleapi.Error).Header. Use
7890// googleapi.IsNotModified to check whether the returned error was
7891// because http.StatusNotModified was returned.
7892func (c *EnterprisesPoliciesListCall) Do(opts ...googleapi.CallOption) (*ListPoliciesResponse, error) {
7893	gensupport.SetOptions(c.urlParams_, opts...)
7894	res, err := c.doRequest("json")
7895	if res != nil && res.StatusCode == http.StatusNotModified {
7896		if res.Body != nil {
7897			res.Body.Close()
7898		}
7899		return nil, &googleapi.Error{
7900			Code:   res.StatusCode,
7901			Header: res.Header,
7902		}
7903	}
7904	if err != nil {
7905		return nil, err
7906	}
7907	defer googleapi.CloseBody(res)
7908	if err := googleapi.CheckResponse(res); err != nil {
7909		return nil, err
7910	}
7911	ret := &ListPoliciesResponse{
7912		ServerResponse: googleapi.ServerResponse{
7913			Header:         res.Header,
7914			HTTPStatusCode: res.StatusCode,
7915		},
7916	}
7917	target := &ret
7918	if err := gensupport.DecodeResponse(target, res); err != nil {
7919		return nil, err
7920	}
7921	return ret, nil
7922	// {
7923	//   "description": "Lists policies for a given enterprise.",
7924	//   "flatPath": "v1/enterprises/{enterprisesId}/policies",
7925	//   "httpMethod": "GET",
7926	//   "id": "androidmanagement.enterprises.policies.list",
7927	//   "parameterOrder": [
7928	//     "parent"
7929	//   ],
7930	//   "parameters": {
7931	//     "pageSize": {
7932	//       "description": "The requested page size. The actual page size may be fixed to a min or max value.",
7933	//       "format": "int32",
7934	//       "location": "query",
7935	//       "type": "integer"
7936	//     },
7937	//     "pageToken": {
7938	//       "description": "A token identifying a page of results returned by the server.",
7939	//       "location": "query",
7940	//       "type": "string"
7941	//     },
7942	//     "parent": {
7943	//       "description": "The name of the enterprise in the form enterprises/{enterpriseId}.",
7944	//       "location": "path",
7945	//       "pattern": "^enterprises/[^/]+$",
7946	//       "required": true,
7947	//       "type": "string"
7948	//     }
7949	//   },
7950	//   "path": "v1/{+parent}/policies",
7951	//   "response": {
7952	//     "$ref": "ListPoliciesResponse"
7953	//   },
7954	//   "scopes": [
7955	//     "https://www.googleapis.com/auth/androidmanagement"
7956	//   ]
7957	// }
7958
7959}
7960
7961// Pages invokes f for each page of results.
7962// A non-nil error returned from f will halt the iteration.
7963// The provided context supersedes any context provided to the Context method.
7964func (c *EnterprisesPoliciesListCall) Pages(ctx context.Context, f func(*ListPoliciesResponse) error) error {
7965	c.ctx_ = ctx
7966	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7967	for {
7968		x, err := c.Do()
7969		if err != nil {
7970			return err
7971		}
7972		if err := f(x); err != nil {
7973			return err
7974		}
7975		if x.NextPageToken == "" {
7976			return nil
7977		}
7978		c.PageToken(x.NextPageToken)
7979	}
7980}
7981
7982// method id "androidmanagement.enterprises.policies.patch":
7983
7984type EnterprisesPoliciesPatchCall struct {
7985	s          *Service
7986	name       string
7987	policy     *Policy
7988	urlParams_ gensupport.URLParams
7989	ctx_       context.Context
7990	header_    http.Header
7991}
7992
7993// Patch: Updates or creates a policy.
7994//
7995// - name: The name of the policy in the form
7996//   enterprises/{enterpriseId}/policies/{policyId}.
7997func (r *EnterprisesPoliciesService) Patch(name string, policy *Policy) *EnterprisesPoliciesPatchCall {
7998	c := &EnterprisesPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7999	c.name = name
8000	c.policy = policy
8001	return c
8002}
8003
8004// UpdateMask sets the optional parameter "updateMask": The field mask
8005// indicating the fields to update. If not set, all modifiable fields
8006// will be modified.
8007func (c *EnterprisesPoliciesPatchCall) UpdateMask(updateMask string) *EnterprisesPoliciesPatchCall {
8008	c.urlParams_.Set("updateMask", updateMask)
8009	return c
8010}
8011
8012// Fields allows partial responses to be retrieved. See
8013// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8014// for more information.
8015func (c *EnterprisesPoliciesPatchCall) Fields(s ...googleapi.Field) *EnterprisesPoliciesPatchCall {
8016	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8017	return c
8018}
8019
8020// Context sets the context to be used in this call's Do method. Any
8021// pending HTTP request will be aborted if the provided context is
8022// canceled.
8023func (c *EnterprisesPoliciesPatchCall) Context(ctx context.Context) *EnterprisesPoliciesPatchCall {
8024	c.ctx_ = ctx
8025	return c
8026}
8027
8028// Header returns an http.Header that can be modified by the caller to
8029// add HTTP headers to the request.
8030func (c *EnterprisesPoliciesPatchCall) Header() http.Header {
8031	if c.header_ == nil {
8032		c.header_ = make(http.Header)
8033	}
8034	return c.header_
8035}
8036
8037func (c *EnterprisesPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
8038	reqHeaders := make(http.Header)
8039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8040	for k, v := range c.header_ {
8041		reqHeaders[k] = v
8042	}
8043	reqHeaders.Set("User-Agent", c.s.userAgent())
8044	var body io.Reader = nil
8045	body, err := googleapi.WithoutDataWrapper.JSONReader(c.policy)
8046	if err != nil {
8047		return nil, err
8048	}
8049	reqHeaders.Set("Content-Type", "application/json")
8050	c.urlParams_.Set("alt", alt)
8051	c.urlParams_.Set("prettyPrint", "false")
8052	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
8053	urls += "?" + c.urlParams_.Encode()
8054	req, err := http.NewRequest("PATCH", urls, body)
8055	if err != nil {
8056		return nil, err
8057	}
8058	req.Header = reqHeaders
8059	googleapi.Expand(req.URL, map[string]string{
8060		"name": c.name,
8061	})
8062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8063}
8064
8065// Do executes the "androidmanagement.enterprises.policies.patch" call.
8066// Exactly one of *Policy or error will be non-nil. Any non-2xx status
8067// code is an error. Response headers are in either
8068// *Policy.ServerResponse.Header or (if a response was returned at all)
8069// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8070// check whether the returned error was because http.StatusNotModified
8071// was returned.
8072func (c *EnterprisesPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
8073	gensupport.SetOptions(c.urlParams_, opts...)
8074	res, err := c.doRequest("json")
8075	if res != nil && res.StatusCode == http.StatusNotModified {
8076		if res.Body != nil {
8077			res.Body.Close()
8078		}
8079		return nil, &googleapi.Error{
8080			Code:   res.StatusCode,
8081			Header: res.Header,
8082		}
8083	}
8084	if err != nil {
8085		return nil, err
8086	}
8087	defer googleapi.CloseBody(res)
8088	if err := googleapi.CheckResponse(res); err != nil {
8089		return nil, err
8090	}
8091	ret := &Policy{
8092		ServerResponse: googleapi.ServerResponse{
8093			Header:         res.Header,
8094			HTTPStatusCode: res.StatusCode,
8095		},
8096	}
8097	target := &ret
8098	if err := gensupport.DecodeResponse(target, res); err != nil {
8099		return nil, err
8100	}
8101	return ret, nil
8102	// {
8103	//   "description": "Updates or creates a policy.",
8104	//   "flatPath": "v1/enterprises/{enterprisesId}/policies/{policiesId}",
8105	//   "httpMethod": "PATCH",
8106	//   "id": "androidmanagement.enterprises.policies.patch",
8107	//   "parameterOrder": [
8108	//     "name"
8109	//   ],
8110	//   "parameters": {
8111	//     "name": {
8112	//       "description": "The name of the policy in the form enterprises/{enterpriseId}/policies/{policyId}.",
8113	//       "location": "path",
8114	//       "pattern": "^enterprises/[^/]+/policies/[^/]+$",
8115	//       "required": true,
8116	//       "type": "string"
8117	//     },
8118	//     "updateMask": {
8119	//       "description": "The field mask indicating the fields to update. If not set, all modifiable fields will be modified.",
8120	//       "format": "google-fieldmask",
8121	//       "location": "query",
8122	//       "type": "string"
8123	//     }
8124	//   },
8125	//   "path": "v1/{+name}",
8126	//   "request": {
8127	//     "$ref": "Policy"
8128	//   },
8129	//   "response": {
8130	//     "$ref": "Policy"
8131	//   },
8132	//   "scopes": [
8133	//     "https://www.googleapis.com/auth/androidmanagement"
8134	//   ]
8135	// }
8136
8137}
8138
8139// method id "androidmanagement.enterprises.webApps.create":
8140
8141type EnterprisesWebAppsCreateCall struct {
8142	s          *Service
8143	parent     string
8144	webapp     *WebApp
8145	urlParams_ gensupport.URLParams
8146	ctx_       context.Context
8147	header_    http.Header
8148}
8149
8150// Create: Creates a web app.
8151//
8152// - parent: The name of the enterprise in the form
8153//   enterprises/{enterpriseId}.
8154func (r *EnterprisesWebAppsService) Create(parent string, webapp *WebApp) *EnterprisesWebAppsCreateCall {
8155	c := &EnterprisesWebAppsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8156	c.parent = parent
8157	c.webapp = webapp
8158	return c
8159}
8160
8161// Fields allows partial responses to be retrieved. See
8162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8163// for more information.
8164func (c *EnterprisesWebAppsCreateCall) Fields(s ...googleapi.Field) *EnterprisesWebAppsCreateCall {
8165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8166	return c
8167}
8168
8169// Context sets the context to be used in this call's Do method. Any
8170// pending HTTP request will be aborted if the provided context is
8171// canceled.
8172func (c *EnterprisesWebAppsCreateCall) Context(ctx context.Context) *EnterprisesWebAppsCreateCall {
8173	c.ctx_ = ctx
8174	return c
8175}
8176
8177// Header returns an http.Header that can be modified by the caller to
8178// add HTTP headers to the request.
8179func (c *EnterprisesWebAppsCreateCall) Header() http.Header {
8180	if c.header_ == nil {
8181		c.header_ = make(http.Header)
8182	}
8183	return c.header_
8184}
8185
8186func (c *EnterprisesWebAppsCreateCall) doRequest(alt string) (*http.Response, error) {
8187	reqHeaders := make(http.Header)
8188	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8189	for k, v := range c.header_ {
8190		reqHeaders[k] = v
8191	}
8192	reqHeaders.Set("User-Agent", c.s.userAgent())
8193	var body io.Reader = nil
8194	body, err := googleapi.WithoutDataWrapper.JSONReader(c.webapp)
8195	if err != nil {
8196		return nil, err
8197	}
8198	reqHeaders.Set("Content-Type", "application/json")
8199	c.urlParams_.Set("alt", alt)
8200	c.urlParams_.Set("prettyPrint", "false")
8201	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/webApps")
8202	urls += "?" + c.urlParams_.Encode()
8203	req, err := http.NewRequest("POST", urls, body)
8204	if err != nil {
8205		return nil, err
8206	}
8207	req.Header = reqHeaders
8208	googleapi.Expand(req.URL, map[string]string{
8209		"parent": c.parent,
8210	})
8211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8212}
8213
8214// Do executes the "androidmanagement.enterprises.webApps.create" call.
8215// Exactly one of *WebApp or error will be non-nil. Any non-2xx status
8216// code is an error. Response headers are in either
8217// *WebApp.ServerResponse.Header or (if a response was returned at all)
8218// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8219// check whether the returned error was because http.StatusNotModified
8220// was returned.
8221func (c *EnterprisesWebAppsCreateCall) Do(opts ...googleapi.CallOption) (*WebApp, error) {
8222	gensupport.SetOptions(c.urlParams_, opts...)
8223	res, err := c.doRequest("json")
8224	if res != nil && res.StatusCode == http.StatusNotModified {
8225		if res.Body != nil {
8226			res.Body.Close()
8227		}
8228		return nil, &googleapi.Error{
8229			Code:   res.StatusCode,
8230			Header: res.Header,
8231		}
8232	}
8233	if err != nil {
8234		return nil, err
8235	}
8236	defer googleapi.CloseBody(res)
8237	if err := googleapi.CheckResponse(res); err != nil {
8238		return nil, err
8239	}
8240	ret := &WebApp{
8241		ServerResponse: googleapi.ServerResponse{
8242			Header:         res.Header,
8243			HTTPStatusCode: res.StatusCode,
8244		},
8245	}
8246	target := &ret
8247	if err := gensupport.DecodeResponse(target, res); err != nil {
8248		return nil, err
8249	}
8250	return ret, nil
8251	// {
8252	//   "description": "Creates a web app.",
8253	//   "flatPath": "v1/enterprises/{enterprisesId}/webApps",
8254	//   "httpMethod": "POST",
8255	//   "id": "androidmanagement.enterprises.webApps.create",
8256	//   "parameterOrder": [
8257	//     "parent"
8258	//   ],
8259	//   "parameters": {
8260	//     "parent": {
8261	//       "description": "The name of the enterprise in the form enterprises/{enterpriseId}.",
8262	//       "location": "path",
8263	//       "pattern": "^enterprises/[^/]+$",
8264	//       "required": true,
8265	//       "type": "string"
8266	//     }
8267	//   },
8268	//   "path": "v1/{+parent}/webApps",
8269	//   "request": {
8270	//     "$ref": "WebApp"
8271	//   },
8272	//   "response": {
8273	//     "$ref": "WebApp"
8274	//   },
8275	//   "scopes": [
8276	//     "https://www.googleapis.com/auth/androidmanagement"
8277	//   ]
8278	// }
8279
8280}
8281
8282// method id "androidmanagement.enterprises.webApps.delete":
8283
8284type EnterprisesWebAppsDeleteCall struct {
8285	s          *Service
8286	name       string
8287	urlParams_ gensupport.URLParams
8288	ctx_       context.Context
8289	header_    http.Header
8290}
8291
8292// Delete: Deletes a web app.
8293//
8294// - name: The name of the web app in the form
8295//   enterprises/{enterpriseId}/webApps/{packageName}.
8296func (r *EnterprisesWebAppsService) Delete(name string) *EnterprisesWebAppsDeleteCall {
8297	c := &EnterprisesWebAppsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8298	c.name = name
8299	return c
8300}
8301
8302// Fields allows partial responses to be retrieved. See
8303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8304// for more information.
8305func (c *EnterprisesWebAppsDeleteCall) Fields(s ...googleapi.Field) *EnterprisesWebAppsDeleteCall {
8306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8307	return c
8308}
8309
8310// Context sets the context to be used in this call's Do method. Any
8311// pending HTTP request will be aborted if the provided context is
8312// canceled.
8313func (c *EnterprisesWebAppsDeleteCall) Context(ctx context.Context) *EnterprisesWebAppsDeleteCall {
8314	c.ctx_ = ctx
8315	return c
8316}
8317
8318// Header returns an http.Header that can be modified by the caller to
8319// add HTTP headers to the request.
8320func (c *EnterprisesWebAppsDeleteCall) Header() http.Header {
8321	if c.header_ == nil {
8322		c.header_ = make(http.Header)
8323	}
8324	return c.header_
8325}
8326
8327func (c *EnterprisesWebAppsDeleteCall) doRequest(alt string) (*http.Response, error) {
8328	reqHeaders := make(http.Header)
8329	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8330	for k, v := range c.header_ {
8331		reqHeaders[k] = v
8332	}
8333	reqHeaders.Set("User-Agent", c.s.userAgent())
8334	var body io.Reader = nil
8335	c.urlParams_.Set("alt", alt)
8336	c.urlParams_.Set("prettyPrint", "false")
8337	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
8338	urls += "?" + c.urlParams_.Encode()
8339	req, err := http.NewRequest("DELETE", urls, body)
8340	if err != nil {
8341		return nil, err
8342	}
8343	req.Header = reqHeaders
8344	googleapi.Expand(req.URL, map[string]string{
8345		"name": c.name,
8346	})
8347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8348}
8349
8350// Do executes the "androidmanagement.enterprises.webApps.delete" call.
8351// Exactly one of *Empty or error will be non-nil. Any non-2xx status
8352// code is an error. Response headers are in either
8353// *Empty.ServerResponse.Header or (if a response was returned at all)
8354// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8355// check whether the returned error was because http.StatusNotModified
8356// was returned.
8357func (c *EnterprisesWebAppsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
8358	gensupport.SetOptions(c.urlParams_, opts...)
8359	res, err := c.doRequest("json")
8360	if res != nil && res.StatusCode == http.StatusNotModified {
8361		if res.Body != nil {
8362			res.Body.Close()
8363		}
8364		return nil, &googleapi.Error{
8365			Code:   res.StatusCode,
8366			Header: res.Header,
8367		}
8368	}
8369	if err != nil {
8370		return nil, err
8371	}
8372	defer googleapi.CloseBody(res)
8373	if err := googleapi.CheckResponse(res); err != nil {
8374		return nil, err
8375	}
8376	ret := &Empty{
8377		ServerResponse: googleapi.ServerResponse{
8378			Header:         res.Header,
8379			HTTPStatusCode: res.StatusCode,
8380		},
8381	}
8382	target := &ret
8383	if err := gensupport.DecodeResponse(target, res); err != nil {
8384		return nil, err
8385	}
8386	return ret, nil
8387	// {
8388	//   "description": "Deletes a web app.",
8389	//   "flatPath": "v1/enterprises/{enterprisesId}/webApps/{webAppsId}",
8390	//   "httpMethod": "DELETE",
8391	//   "id": "androidmanagement.enterprises.webApps.delete",
8392	//   "parameterOrder": [
8393	//     "name"
8394	//   ],
8395	//   "parameters": {
8396	//     "name": {
8397	//       "description": "The name of the web app in the form enterprises/{enterpriseId}/webApps/{packageName}.",
8398	//       "location": "path",
8399	//       "pattern": "^enterprises/[^/]+/webApps/[^/]+$",
8400	//       "required": true,
8401	//       "type": "string"
8402	//     }
8403	//   },
8404	//   "path": "v1/{+name}",
8405	//   "response": {
8406	//     "$ref": "Empty"
8407	//   },
8408	//   "scopes": [
8409	//     "https://www.googleapis.com/auth/androidmanagement"
8410	//   ]
8411	// }
8412
8413}
8414
8415// method id "androidmanagement.enterprises.webApps.get":
8416
8417type EnterprisesWebAppsGetCall struct {
8418	s            *Service
8419	name         string
8420	urlParams_   gensupport.URLParams
8421	ifNoneMatch_ string
8422	ctx_         context.Context
8423	header_      http.Header
8424}
8425
8426// Get: Gets a web app.
8427//
8428// - name: The name of the web app in the form
8429//   enterprises/{enterpriseId}/webApp/{packageName}.
8430func (r *EnterprisesWebAppsService) Get(name string) *EnterprisesWebAppsGetCall {
8431	c := &EnterprisesWebAppsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8432	c.name = name
8433	return c
8434}
8435
8436// Fields allows partial responses to be retrieved. See
8437// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8438// for more information.
8439func (c *EnterprisesWebAppsGetCall) Fields(s ...googleapi.Field) *EnterprisesWebAppsGetCall {
8440	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8441	return c
8442}
8443
8444// IfNoneMatch sets the optional parameter which makes the operation
8445// fail if the object's ETag matches the given value. This is useful for
8446// getting updates only after the object has changed since the last
8447// request. Use googleapi.IsNotModified to check whether the response
8448// error from Do is the result of In-None-Match.
8449func (c *EnterprisesWebAppsGetCall) IfNoneMatch(entityTag string) *EnterprisesWebAppsGetCall {
8450	c.ifNoneMatch_ = entityTag
8451	return c
8452}
8453
8454// Context sets the context to be used in this call's Do method. Any
8455// pending HTTP request will be aborted if the provided context is
8456// canceled.
8457func (c *EnterprisesWebAppsGetCall) Context(ctx context.Context) *EnterprisesWebAppsGetCall {
8458	c.ctx_ = ctx
8459	return c
8460}
8461
8462// Header returns an http.Header that can be modified by the caller to
8463// add HTTP headers to the request.
8464func (c *EnterprisesWebAppsGetCall) Header() http.Header {
8465	if c.header_ == nil {
8466		c.header_ = make(http.Header)
8467	}
8468	return c.header_
8469}
8470
8471func (c *EnterprisesWebAppsGetCall) doRequest(alt string) (*http.Response, error) {
8472	reqHeaders := make(http.Header)
8473	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8474	for k, v := range c.header_ {
8475		reqHeaders[k] = v
8476	}
8477	reqHeaders.Set("User-Agent", c.s.userAgent())
8478	if c.ifNoneMatch_ != "" {
8479		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8480	}
8481	var body io.Reader = nil
8482	c.urlParams_.Set("alt", alt)
8483	c.urlParams_.Set("prettyPrint", "false")
8484	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
8485	urls += "?" + c.urlParams_.Encode()
8486	req, err := http.NewRequest("GET", urls, body)
8487	if err != nil {
8488		return nil, err
8489	}
8490	req.Header = reqHeaders
8491	googleapi.Expand(req.URL, map[string]string{
8492		"name": c.name,
8493	})
8494	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8495}
8496
8497// Do executes the "androidmanagement.enterprises.webApps.get" call.
8498// Exactly one of *WebApp or error will be non-nil. Any non-2xx status
8499// code is an error. Response headers are in either
8500// *WebApp.ServerResponse.Header or (if a response was returned at all)
8501// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8502// check whether the returned error was because http.StatusNotModified
8503// was returned.
8504func (c *EnterprisesWebAppsGetCall) Do(opts ...googleapi.CallOption) (*WebApp, error) {
8505	gensupport.SetOptions(c.urlParams_, opts...)
8506	res, err := c.doRequest("json")
8507	if res != nil && res.StatusCode == http.StatusNotModified {
8508		if res.Body != nil {
8509			res.Body.Close()
8510		}
8511		return nil, &googleapi.Error{
8512			Code:   res.StatusCode,
8513			Header: res.Header,
8514		}
8515	}
8516	if err != nil {
8517		return nil, err
8518	}
8519	defer googleapi.CloseBody(res)
8520	if err := googleapi.CheckResponse(res); err != nil {
8521		return nil, err
8522	}
8523	ret := &WebApp{
8524		ServerResponse: googleapi.ServerResponse{
8525			Header:         res.Header,
8526			HTTPStatusCode: res.StatusCode,
8527		},
8528	}
8529	target := &ret
8530	if err := gensupport.DecodeResponse(target, res); err != nil {
8531		return nil, err
8532	}
8533	return ret, nil
8534	// {
8535	//   "description": "Gets a web app.",
8536	//   "flatPath": "v1/enterprises/{enterprisesId}/webApps/{webAppsId}",
8537	//   "httpMethod": "GET",
8538	//   "id": "androidmanagement.enterprises.webApps.get",
8539	//   "parameterOrder": [
8540	//     "name"
8541	//   ],
8542	//   "parameters": {
8543	//     "name": {
8544	//       "description": "The name of the web app in the form enterprises/{enterpriseId}/webApp/{packageName}.",
8545	//       "location": "path",
8546	//       "pattern": "^enterprises/[^/]+/webApps/[^/]+$",
8547	//       "required": true,
8548	//       "type": "string"
8549	//     }
8550	//   },
8551	//   "path": "v1/{+name}",
8552	//   "response": {
8553	//     "$ref": "WebApp"
8554	//   },
8555	//   "scopes": [
8556	//     "https://www.googleapis.com/auth/androidmanagement"
8557	//   ]
8558	// }
8559
8560}
8561
8562// method id "androidmanagement.enterprises.webApps.list":
8563
8564type EnterprisesWebAppsListCall struct {
8565	s            *Service
8566	parent       string
8567	urlParams_   gensupport.URLParams
8568	ifNoneMatch_ string
8569	ctx_         context.Context
8570	header_      http.Header
8571}
8572
8573// List: Lists web apps for a given enterprise.
8574//
8575// - parent: The name of the enterprise in the form
8576//   enterprises/{enterpriseId}.
8577func (r *EnterprisesWebAppsService) List(parent string) *EnterprisesWebAppsListCall {
8578	c := &EnterprisesWebAppsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8579	c.parent = parent
8580	return c
8581}
8582
8583// PageSize sets the optional parameter "pageSize": The requested page
8584// size. The actual page size may be fixed to a min or max value.
8585func (c *EnterprisesWebAppsListCall) PageSize(pageSize int64) *EnterprisesWebAppsListCall {
8586	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
8587	return c
8588}
8589
8590// PageToken sets the optional parameter "pageToken": A token
8591// identifying a page of results returned by the server.
8592func (c *EnterprisesWebAppsListCall) PageToken(pageToken string) *EnterprisesWebAppsListCall {
8593	c.urlParams_.Set("pageToken", pageToken)
8594	return c
8595}
8596
8597// Fields allows partial responses to be retrieved. See
8598// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8599// for more information.
8600func (c *EnterprisesWebAppsListCall) Fields(s ...googleapi.Field) *EnterprisesWebAppsListCall {
8601	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8602	return c
8603}
8604
8605// IfNoneMatch sets the optional parameter which makes the operation
8606// fail if the object's ETag matches the given value. This is useful for
8607// getting updates only after the object has changed since the last
8608// request. Use googleapi.IsNotModified to check whether the response
8609// error from Do is the result of In-None-Match.
8610func (c *EnterprisesWebAppsListCall) IfNoneMatch(entityTag string) *EnterprisesWebAppsListCall {
8611	c.ifNoneMatch_ = entityTag
8612	return c
8613}
8614
8615// Context sets the context to be used in this call's Do method. Any
8616// pending HTTP request will be aborted if the provided context is
8617// canceled.
8618func (c *EnterprisesWebAppsListCall) Context(ctx context.Context) *EnterprisesWebAppsListCall {
8619	c.ctx_ = ctx
8620	return c
8621}
8622
8623// Header returns an http.Header that can be modified by the caller to
8624// add HTTP headers to the request.
8625func (c *EnterprisesWebAppsListCall) Header() http.Header {
8626	if c.header_ == nil {
8627		c.header_ = make(http.Header)
8628	}
8629	return c.header_
8630}
8631
8632func (c *EnterprisesWebAppsListCall) doRequest(alt string) (*http.Response, error) {
8633	reqHeaders := make(http.Header)
8634	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8635	for k, v := range c.header_ {
8636		reqHeaders[k] = v
8637	}
8638	reqHeaders.Set("User-Agent", c.s.userAgent())
8639	if c.ifNoneMatch_ != "" {
8640		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8641	}
8642	var body io.Reader = nil
8643	c.urlParams_.Set("alt", alt)
8644	c.urlParams_.Set("prettyPrint", "false")
8645	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/webApps")
8646	urls += "?" + c.urlParams_.Encode()
8647	req, err := http.NewRequest("GET", urls, body)
8648	if err != nil {
8649		return nil, err
8650	}
8651	req.Header = reqHeaders
8652	googleapi.Expand(req.URL, map[string]string{
8653		"parent": c.parent,
8654	})
8655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8656}
8657
8658// Do executes the "androidmanagement.enterprises.webApps.list" call.
8659// Exactly one of *ListWebAppsResponse or error will be non-nil. Any
8660// non-2xx status code is an error. Response headers are in either
8661// *ListWebAppsResponse.ServerResponse.Header or (if a response was
8662// returned at all) in error.(*googleapi.Error).Header. Use
8663// googleapi.IsNotModified to check whether the returned error was
8664// because http.StatusNotModified was returned.
8665func (c *EnterprisesWebAppsListCall) Do(opts ...googleapi.CallOption) (*ListWebAppsResponse, error) {
8666	gensupport.SetOptions(c.urlParams_, opts...)
8667	res, err := c.doRequest("json")
8668	if res != nil && res.StatusCode == http.StatusNotModified {
8669		if res.Body != nil {
8670			res.Body.Close()
8671		}
8672		return nil, &googleapi.Error{
8673			Code:   res.StatusCode,
8674			Header: res.Header,
8675		}
8676	}
8677	if err != nil {
8678		return nil, err
8679	}
8680	defer googleapi.CloseBody(res)
8681	if err := googleapi.CheckResponse(res); err != nil {
8682		return nil, err
8683	}
8684	ret := &ListWebAppsResponse{
8685		ServerResponse: googleapi.ServerResponse{
8686			Header:         res.Header,
8687			HTTPStatusCode: res.StatusCode,
8688		},
8689	}
8690	target := &ret
8691	if err := gensupport.DecodeResponse(target, res); err != nil {
8692		return nil, err
8693	}
8694	return ret, nil
8695	// {
8696	//   "description": "Lists web apps for a given enterprise.",
8697	//   "flatPath": "v1/enterprises/{enterprisesId}/webApps",
8698	//   "httpMethod": "GET",
8699	//   "id": "androidmanagement.enterprises.webApps.list",
8700	//   "parameterOrder": [
8701	//     "parent"
8702	//   ],
8703	//   "parameters": {
8704	//     "pageSize": {
8705	//       "description": "The requested page size. The actual page size may be fixed to a min or max value.",
8706	//       "format": "int32",
8707	//       "location": "query",
8708	//       "type": "integer"
8709	//     },
8710	//     "pageToken": {
8711	//       "description": "A token identifying a page of results returned by the server.",
8712	//       "location": "query",
8713	//       "type": "string"
8714	//     },
8715	//     "parent": {
8716	//       "description": "The name of the enterprise in the form enterprises/{enterpriseId}.",
8717	//       "location": "path",
8718	//       "pattern": "^enterprises/[^/]+$",
8719	//       "required": true,
8720	//       "type": "string"
8721	//     }
8722	//   },
8723	//   "path": "v1/{+parent}/webApps",
8724	//   "response": {
8725	//     "$ref": "ListWebAppsResponse"
8726	//   },
8727	//   "scopes": [
8728	//     "https://www.googleapis.com/auth/androidmanagement"
8729	//   ]
8730	// }
8731
8732}
8733
8734// Pages invokes f for each page of results.
8735// A non-nil error returned from f will halt the iteration.
8736// The provided context supersedes any context provided to the Context method.
8737func (c *EnterprisesWebAppsListCall) Pages(ctx context.Context, f func(*ListWebAppsResponse) error) error {
8738	c.ctx_ = ctx
8739	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
8740	for {
8741		x, err := c.Do()
8742		if err != nil {
8743			return err
8744		}
8745		if err := f(x); err != nil {
8746			return err
8747		}
8748		if x.NextPageToken == "" {
8749			return nil
8750		}
8751		c.PageToken(x.NextPageToken)
8752	}
8753}
8754
8755// method id "androidmanagement.enterprises.webApps.patch":
8756
8757type EnterprisesWebAppsPatchCall struct {
8758	s          *Service
8759	name       string
8760	webapp     *WebApp
8761	urlParams_ gensupport.URLParams
8762	ctx_       context.Context
8763	header_    http.Header
8764}
8765
8766// Patch: Updates a web app.
8767//
8768// - name: The name of the web app in the form
8769//   enterprises/{enterpriseId}/webApps/{packageName}.
8770func (r *EnterprisesWebAppsService) Patch(name string, webapp *WebApp) *EnterprisesWebAppsPatchCall {
8771	c := &EnterprisesWebAppsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8772	c.name = name
8773	c.webapp = webapp
8774	return c
8775}
8776
8777// UpdateMask sets the optional parameter "updateMask": The field mask
8778// indicating the fields to update. If not set, all modifiable fields
8779// will be modified.
8780func (c *EnterprisesWebAppsPatchCall) UpdateMask(updateMask string) *EnterprisesWebAppsPatchCall {
8781	c.urlParams_.Set("updateMask", updateMask)
8782	return c
8783}
8784
8785// Fields allows partial responses to be retrieved. See
8786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8787// for more information.
8788func (c *EnterprisesWebAppsPatchCall) Fields(s ...googleapi.Field) *EnterprisesWebAppsPatchCall {
8789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8790	return c
8791}
8792
8793// Context sets the context to be used in this call's Do method. Any
8794// pending HTTP request will be aborted if the provided context is
8795// canceled.
8796func (c *EnterprisesWebAppsPatchCall) Context(ctx context.Context) *EnterprisesWebAppsPatchCall {
8797	c.ctx_ = ctx
8798	return c
8799}
8800
8801// Header returns an http.Header that can be modified by the caller to
8802// add HTTP headers to the request.
8803func (c *EnterprisesWebAppsPatchCall) Header() http.Header {
8804	if c.header_ == nil {
8805		c.header_ = make(http.Header)
8806	}
8807	return c.header_
8808}
8809
8810func (c *EnterprisesWebAppsPatchCall) doRequest(alt string) (*http.Response, error) {
8811	reqHeaders := make(http.Header)
8812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8813	for k, v := range c.header_ {
8814		reqHeaders[k] = v
8815	}
8816	reqHeaders.Set("User-Agent", c.s.userAgent())
8817	var body io.Reader = nil
8818	body, err := googleapi.WithoutDataWrapper.JSONReader(c.webapp)
8819	if err != nil {
8820		return nil, err
8821	}
8822	reqHeaders.Set("Content-Type", "application/json")
8823	c.urlParams_.Set("alt", alt)
8824	c.urlParams_.Set("prettyPrint", "false")
8825	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
8826	urls += "?" + c.urlParams_.Encode()
8827	req, err := http.NewRequest("PATCH", urls, body)
8828	if err != nil {
8829		return nil, err
8830	}
8831	req.Header = reqHeaders
8832	googleapi.Expand(req.URL, map[string]string{
8833		"name": c.name,
8834	})
8835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8836}
8837
8838// Do executes the "androidmanagement.enterprises.webApps.patch" call.
8839// Exactly one of *WebApp or error will be non-nil. Any non-2xx status
8840// code is an error. Response headers are in either
8841// *WebApp.ServerResponse.Header or (if a response was returned at all)
8842// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8843// check whether the returned error was because http.StatusNotModified
8844// was returned.
8845func (c *EnterprisesWebAppsPatchCall) Do(opts ...googleapi.CallOption) (*WebApp, error) {
8846	gensupport.SetOptions(c.urlParams_, opts...)
8847	res, err := c.doRequest("json")
8848	if res != nil && res.StatusCode == http.StatusNotModified {
8849		if res.Body != nil {
8850			res.Body.Close()
8851		}
8852		return nil, &googleapi.Error{
8853			Code:   res.StatusCode,
8854			Header: res.Header,
8855		}
8856	}
8857	if err != nil {
8858		return nil, err
8859	}
8860	defer googleapi.CloseBody(res)
8861	if err := googleapi.CheckResponse(res); err != nil {
8862		return nil, err
8863	}
8864	ret := &WebApp{
8865		ServerResponse: googleapi.ServerResponse{
8866			Header:         res.Header,
8867			HTTPStatusCode: res.StatusCode,
8868		},
8869	}
8870	target := &ret
8871	if err := gensupport.DecodeResponse(target, res); err != nil {
8872		return nil, err
8873	}
8874	return ret, nil
8875	// {
8876	//   "description": "Updates a web app.",
8877	//   "flatPath": "v1/enterprises/{enterprisesId}/webApps/{webAppsId}",
8878	//   "httpMethod": "PATCH",
8879	//   "id": "androidmanagement.enterprises.webApps.patch",
8880	//   "parameterOrder": [
8881	//     "name"
8882	//   ],
8883	//   "parameters": {
8884	//     "name": {
8885	//       "description": "The name of the web app in the form enterprises/{enterpriseId}/webApps/{packageName}.",
8886	//       "location": "path",
8887	//       "pattern": "^enterprises/[^/]+/webApps/[^/]+$",
8888	//       "required": true,
8889	//       "type": "string"
8890	//     },
8891	//     "updateMask": {
8892	//       "description": "The field mask indicating the fields to update. If not set, all modifiable fields will be modified.",
8893	//       "format": "google-fieldmask",
8894	//       "location": "query",
8895	//       "type": "string"
8896	//     }
8897	//   },
8898	//   "path": "v1/{+name}",
8899	//   "request": {
8900	//     "$ref": "WebApp"
8901	//   },
8902	//   "response": {
8903	//     "$ref": "WebApp"
8904	//   },
8905	//   "scopes": [
8906	//     "https://www.googleapis.com/auth/androidmanagement"
8907	//   ]
8908	// }
8909
8910}
8911
8912// method id "androidmanagement.enterprises.webTokens.create":
8913
8914type EnterprisesWebTokensCreateCall struct {
8915	s          *Service
8916	parent     string
8917	webtoken   *WebToken
8918	urlParams_ gensupport.URLParams
8919	ctx_       context.Context
8920	header_    http.Header
8921}
8922
8923// Create: Creates a web token to access an embeddable managed Google
8924// Play web UI for a given enterprise.
8925//
8926// - parent: The name of the enterprise in the form
8927//   enterprises/{enterpriseId}.
8928func (r *EnterprisesWebTokensService) Create(parent string, webtoken *WebToken) *EnterprisesWebTokensCreateCall {
8929	c := &EnterprisesWebTokensCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8930	c.parent = parent
8931	c.webtoken = webtoken
8932	return c
8933}
8934
8935// Fields allows partial responses to be retrieved. See
8936// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8937// for more information.
8938func (c *EnterprisesWebTokensCreateCall) Fields(s ...googleapi.Field) *EnterprisesWebTokensCreateCall {
8939	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8940	return c
8941}
8942
8943// Context sets the context to be used in this call's Do method. Any
8944// pending HTTP request will be aborted if the provided context is
8945// canceled.
8946func (c *EnterprisesWebTokensCreateCall) Context(ctx context.Context) *EnterprisesWebTokensCreateCall {
8947	c.ctx_ = ctx
8948	return c
8949}
8950
8951// Header returns an http.Header that can be modified by the caller to
8952// add HTTP headers to the request.
8953func (c *EnterprisesWebTokensCreateCall) Header() http.Header {
8954	if c.header_ == nil {
8955		c.header_ = make(http.Header)
8956	}
8957	return c.header_
8958}
8959
8960func (c *EnterprisesWebTokensCreateCall) doRequest(alt string) (*http.Response, error) {
8961	reqHeaders := make(http.Header)
8962	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
8963	for k, v := range c.header_ {
8964		reqHeaders[k] = v
8965	}
8966	reqHeaders.Set("User-Agent", c.s.userAgent())
8967	var body io.Reader = nil
8968	body, err := googleapi.WithoutDataWrapper.JSONReader(c.webtoken)
8969	if err != nil {
8970		return nil, err
8971	}
8972	reqHeaders.Set("Content-Type", "application/json")
8973	c.urlParams_.Set("alt", alt)
8974	c.urlParams_.Set("prettyPrint", "false")
8975	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/webTokens")
8976	urls += "?" + c.urlParams_.Encode()
8977	req, err := http.NewRequest("POST", urls, body)
8978	if err != nil {
8979		return nil, err
8980	}
8981	req.Header = reqHeaders
8982	googleapi.Expand(req.URL, map[string]string{
8983		"parent": c.parent,
8984	})
8985	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8986}
8987
8988// Do executes the "androidmanagement.enterprises.webTokens.create" call.
8989// Exactly one of *WebToken or error will be non-nil. Any non-2xx status
8990// code is an error. Response headers are in either
8991// *WebToken.ServerResponse.Header or (if a response was returned at
8992// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8993// to check whether the returned error was because
8994// http.StatusNotModified was returned.
8995func (c *EnterprisesWebTokensCreateCall) Do(opts ...googleapi.CallOption) (*WebToken, error) {
8996	gensupport.SetOptions(c.urlParams_, opts...)
8997	res, err := c.doRequest("json")
8998	if res != nil && res.StatusCode == http.StatusNotModified {
8999		if res.Body != nil {
9000			res.Body.Close()
9001		}
9002		return nil, &googleapi.Error{
9003			Code:   res.StatusCode,
9004			Header: res.Header,
9005		}
9006	}
9007	if err != nil {
9008		return nil, err
9009	}
9010	defer googleapi.CloseBody(res)
9011	if err := googleapi.CheckResponse(res); err != nil {
9012		return nil, err
9013	}
9014	ret := &WebToken{
9015		ServerResponse: googleapi.ServerResponse{
9016			Header:         res.Header,
9017			HTTPStatusCode: res.StatusCode,
9018		},
9019	}
9020	target := &ret
9021	if err := gensupport.DecodeResponse(target, res); err != nil {
9022		return nil, err
9023	}
9024	return ret, nil
9025	// {
9026	//   "description": "Creates a web token to access an embeddable managed Google Play web UI for a given enterprise.",
9027	//   "flatPath": "v1/enterprises/{enterprisesId}/webTokens",
9028	//   "httpMethod": "POST",
9029	//   "id": "androidmanagement.enterprises.webTokens.create",
9030	//   "parameterOrder": [
9031	//     "parent"
9032	//   ],
9033	//   "parameters": {
9034	//     "parent": {
9035	//       "description": "The name of the enterprise in the form enterprises/{enterpriseId}.",
9036	//       "location": "path",
9037	//       "pattern": "^enterprises/[^/]+$",
9038	//       "required": true,
9039	//       "type": "string"
9040	//     }
9041	//   },
9042	//   "path": "v1/{+parent}/webTokens",
9043	//   "request": {
9044	//     "$ref": "WebToken"
9045	//   },
9046	//   "response": {
9047	//     "$ref": "WebToken"
9048	//   },
9049	//   "scopes": [
9050	//     "https://www.googleapis.com/auth/androidmanagement"
9051	//   ]
9052	// }
9053
9054}
9055
9056// method id "androidmanagement.signupUrls.create":
9057
9058type SignupUrlsCreateCall struct {
9059	s          *Service
9060	urlParams_ gensupport.URLParams
9061	ctx_       context.Context
9062	header_    http.Header
9063}
9064
9065// Create: Creates an enterprise signup URL.
9066func (r *SignupUrlsService) Create() *SignupUrlsCreateCall {
9067	c := &SignupUrlsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9068	return c
9069}
9070
9071// CallbackUrl sets the optional parameter "callbackUrl": The callback
9072// URL that the admin will be redirected to after successfully creating
9073// an enterprise. Before redirecting there the system will add a query
9074// parameter to this URL named enterpriseToken which will contain an
9075// opaque token to be used for the create enterprise request. The URL
9076// will be parsed then reformatted in order to add the enterpriseToken
9077// parameter, so there may be some minor formatting changes.
9078func (c *SignupUrlsCreateCall) CallbackUrl(callbackUrl string) *SignupUrlsCreateCall {
9079	c.urlParams_.Set("callbackUrl", callbackUrl)
9080	return c
9081}
9082
9083// ProjectId sets the optional parameter "projectId": The ID of the
9084// Google Cloud Platform project which will own the enterprise.
9085func (c *SignupUrlsCreateCall) ProjectId(projectId string) *SignupUrlsCreateCall {
9086	c.urlParams_.Set("projectId", projectId)
9087	return c
9088}
9089
9090// Fields allows partial responses to be retrieved. See
9091// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9092// for more information.
9093func (c *SignupUrlsCreateCall) Fields(s ...googleapi.Field) *SignupUrlsCreateCall {
9094	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9095	return c
9096}
9097
9098// Context sets the context to be used in this call's Do method. Any
9099// pending HTTP request will be aborted if the provided context is
9100// canceled.
9101func (c *SignupUrlsCreateCall) Context(ctx context.Context) *SignupUrlsCreateCall {
9102	c.ctx_ = ctx
9103	return c
9104}
9105
9106// Header returns an http.Header that can be modified by the caller to
9107// add HTTP headers to the request.
9108func (c *SignupUrlsCreateCall) Header() http.Header {
9109	if c.header_ == nil {
9110		c.header_ = make(http.Header)
9111	}
9112	return c.header_
9113}
9114
9115func (c *SignupUrlsCreateCall) doRequest(alt string) (*http.Response, error) {
9116	reqHeaders := make(http.Header)
9117	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812")
9118	for k, v := range c.header_ {
9119		reqHeaders[k] = v
9120	}
9121	reqHeaders.Set("User-Agent", c.s.userAgent())
9122	var body io.Reader = nil
9123	c.urlParams_.Set("alt", alt)
9124	c.urlParams_.Set("prettyPrint", "false")
9125	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/signupUrls")
9126	urls += "?" + c.urlParams_.Encode()
9127	req, err := http.NewRequest("POST", urls, body)
9128	if err != nil {
9129		return nil, err
9130	}
9131	req.Header = reqHeaders
9132	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9133}
9134
9135// Do executes the "androidmanagement.signupUrls.create" call.
9136// Exactly one of *SignupUrl or error will be non-nil. Any non-2xx
9137// status code is an error. Response headers are in either
9138// *SignupUrl.ServerResponse.Header or (if a response was returned at
9139// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9140// to check whether the returned error was because
9141// http.StatusNotModified was returned.
9142func (c *SignupUrlsCreateCall) Do(opts ...googleapi.CallOption) (*SignupUrl, error) {
9143	gensupport.SetOptions(c.urlParams_, opts...)
9144	res, err := c.doRequest("json")
9145	if res != nil && res.StatusCode == http.StatusNotModified {
9146		if res.Body != nil {
9147			res.Body.Close()
9148		}
9149		return nil, &googleapi.Error{
9150			Code:   res.StatusCode,
9151			Header: res.Header,
9152		}
9153	}
9154	if err != nil {
9155		return nil, err
9156	}
9157	defer googleapi.CloseBody(res)
9158	if err := googleapi.CheckResponse(res); err != nil {
9159		return nil, err
9160	}
9161	ret := &SignupUrl{
9162		ServerResponse: googleapi.ServerResponse{
9163			Header:         res.Header,
9164			HTTPStatusCode: res.StatusCode,
9165		},
9166	}
9167	target := &ret
9168	if err := gensupport.DecodeResponse(target, res); err != nil {
9169		return nil, err
9170	}
9171	return ret, nil
9172	// {
9173	//   "description": "Creates an enterprise signup URL.",
9174	//   "flatPath": "v1/signupUrls",
9175	//   "httpMethod": "POST",
9176	//   "id": "androidmanagement.signupUrls.create",
9177	//   "parameterOrder": [],
9178	//   "parameters": {
9179	//     "callbackUrl": {
9180	//       "description": "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.",
9181	//       "location": "query",
9182	//       "type": "string"
9183	//     },
9184	//     "projectId": {
9185	//       "description": "The ID of the Google Cloud Platform project which will own the enterprise.",
9186	//       "location": "query",
9187	//       "type": "string"
9188	//     }
9189	//   },
9190	//   "path": "v1/signupUrls",
9191	//   "response": {
9192	//     "$ref": "SignupUrl"
9193	//   },
9194	//   "scopes": [
9195	//     "https://www.googleapis.com/auth/androidmanagement"
9196	//   ]
9197	// }
9198
9199}
9200