2929 lines
		
	
	
		
			119 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			2929 lines
		
	
	
		
			119 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# Copyright 2015 Google Inc.
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#      http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
 | 
						|
require 'date'
 | 
						|
require 'google/apis/core/base_service'
 | 
						|
require 'google/apis/core/json_representation'
 | 
						|
require 'google/apis/core/hashable'
 | 
						|
require 'google/apis/errors'
 | 
						|
 | 
						|
module Google
 | 
						|
  module Apis
 | 
						|
    module AndroidenterpriseV1
 | 
						|
      
 | 
						|
      # This represents an enterprise admin who can manage the enterprise in the
 | 
						|
      # managed Google Play store.
 | 
						|
      class Administrator
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The admin's email address.
 | 
						|
        # Corresponds to the JSON property `email`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :email
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @email = args[:email] if args.key?(:email)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A token authorizing an admin to access an iframe.
 | 
						|
      class AdministratorWebToken
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # An opaque token to be passed to the Play front-end to generate an iframe.
 | 
						|
        # Corresponds to the JSON property `token`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :token
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @token = args[:token] if args.key?(:token)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Specification for a token used to generate iframes. The token specifies what
 | 
						|
      # data the admin is allowed to modify and the URI the iframe is allowed to
 | 
						|
      # communiate with.
 | 
						|
      class AdministratorWebTokenSpec
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Options for displaying the Managed Configuration page.
 | 
						|
        # Corresponds to the JSON property `managedConfigurations`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::AdministratorWebTokenSpecManagedConfigurations]
 | 
						|
        attr_accessor :managed_configurations
 | 
						|
      
 | 
						|
        # The URI of the parent frame hosting the iframe. To prevent XSS, the iframe may
 | 
						|
        # not be hosted at other URIs. This URI must be https. Use whitespaces to
 | 
						|
        # separate multiple parent URIs.
 | 
						|
        # Corresponds to the JSON property `parent`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :parent
 | 
						|
      
 | 
						|
        # Deprecated. Use PlaySearch.approveApps.
 | 
						|
        # Corresponds to the JSON property `permission`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :permission
 | 
						|
      
 | 
						|
        # Options for displaying the managed Play Search apps page.
 | 
						|
        # Corresponds to the JSON property `playSearch`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::AdministratorWebTokenSpecPlaySearch]
 | 
						|
        attr_accessor :play_search
 | 
						|
      
 | 
						|
        # Options for displaying the Private Apps page.
 | 
						|
        # Corresponds to the JSON property `privateApps`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::AdministratorWebTokenSpecPrivateApps]
 | 
						|
        attr_accessor :private_apps
 | 
						|
      
 | 
						|
        # Options for displaying the Organize apps page.
 | 
						|
        # Corresponds to the JSON property `storeBuilder`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::AdministratorWebTokenSpecStoreBuilder]
 | 
						|
        attr_accessor :store_builder
 | 
						|
      
 | 
						|
        # Options for displaying the Web Apps page.
 | 
						|
        # Corresponds to the JSON property `webApps`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::AdministratorWebTokenSpecWebApps]
 | 
						|
        attr_accessor :web_apps
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @managed_configurations = args[:managed_configurations] if args.key?(:managed_configurations)
 | 
						|
          @parent = args[:parent] if args.key?(:parent)
 | 
						|
          @permission = args[:permission] if args.key?(:permission)
 | 
						|
          @play_search = args[:play_search] if args.key?(:play_search)
 | 
						|
          @private_apps = args[:private_apps] if args.key?(:private_apps)
 | 
						|
          @store_builder = args[:store_builder] if args.key?(:store_builder)
 | 
						|
          @web_apps = args[:web_apps] if args.key?(:web_apps)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class AdministratorWebTokenSpecManagedConfigurations
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Whether the Managed Configuration page is displayed. Default is true.
 | 
						|
        # Corresponds to the JSON property `enabled`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :enabled
 | 
						|
        alias_method :enabled?, :enabled
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @enabled = args[:enabled] if args.key?(:enabled)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class AdministratorWebTokenSpecPlaySearch
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Allow access to the iframe in approve mode. Default is false.
 | 
						|
        # Corresponds to the JSON property `approveApps`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :approve_apps
 | 
						|
        alias_method :approve_apps?, :approve_apps
 | 
						|
      
 | 
						|
        # Whether the managed Play Search apps page is displayed. Default is true.
 | 
						|
        # Corresponds to the JSON property `enabled`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :enabled
 | 
						|
        alias_method :enabled?, :enabled
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @approve_apps = args[:approve_apps] if args.key?(:approve_apps)
 | 
						|
          @enabled = args[:enabled] if args.key?(:enabled)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class AdministratorWebTokenSpecPrivateApps
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Whether the Private Apps page is displayed. Default is true.
 | 
						|
        # Corresponds to the JSON property `enabled`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :enabled
 | 
						|
        alias_method :enabled?, :enabled
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @enabled = args[:enabled] if args.key?(:enabled)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class AdministratorWebTokenSpecStoreBuilder
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Whether the Organize apps page is displayed. Default is true.
 | 
						|
        # Corresponds to the JSON property `enabled`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :enabled
 | 
						|
        alias_method :enabled?, :enabled
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @enabled = args[:enabled] if args.key?(:enabled)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class AdministratorWebTokenSpecWebApps
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Whether the Web Apps page is displayed. Default is true.
 | 
						|
        # Corresponds to the JSON property `enabled`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :enabled
 | 
						|
        alias_method :enabled?, :enabled
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @enabled = args[:enabled] if args.key?(:enabled)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents the list of app restrictions available to be pre-configured for the
 | 
						|
      # product.
 | 
						|
      class AppRestrictionsSchema
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Deprecated.
 | 
						|
        # Corresponds to the JSON property `kind`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :kind
 | 
						|
      
 | 
						|
        # The set of restrictions that make up this schema.
 | 
						|
        # Corresponds to the JSON property `restrictions`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::AppRestrictionsSchemaRestriction>]
 | 
						|
        attr_accessor :restrictions
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @kind = args[:kind] if args.key?(:kind)
 | 
						|
          @restrictions = args[:restrictions] if args.key?(:restrictions)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An event generated when a new app version is uploaded to Google Play and its
 | 
						|
      # app restrictions schema changed. To fetch the app restrictions schema for an
 | 
						|
      # app, use Products.getAppRestrictionsSchema on the EMM API.
 | 
						|
      class AppRestrictionsSchemaChangeEvent
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The id of the product (e.g. "app:com.google.android.gm") for which the app
 | 
						|
        # restriction schema changed. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A restriction in the App Restriction Schema represents a piece of
 | 
						|
      # configuration that may be pre-applied.
 | 
						|
      class AppRestrictionsSchemaRestriction
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A typed value for the restriction.
 | 
						|
        # Corresponds to the JSON property `defaultValue`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::AppRestrictionsSchemaRestrictionRestrictionValue]
 | 
						|
        attr_accessor :default_value
 | 
						|
      
 | 
						|
        # A longer description of the restriction, giving more detail of what it affects.
 | 
						|
        # Corresponds to the JSON property `description`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :description
 | 
						|
      
 | 
						|
        # For choice or multiselect restrictions, the list of possible entries' human-
 | 
						|
        # readable names.
 | 
						|
        # Corresponds to the JSON property `entry`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :entry
 | 
						|
      
 | 
						|
        # For choice or multiselect restrictions, the list of possible entries' machine-
 | 
						|
        # readable values. These values should be used in the configuration, either as a
 | 
						|
        # single string value for a choice restriction or in a stringArray for a
 | 
						|
        # multiselect restriction.
 | 
						|
        # Corresponds to the JSON property `entryValue`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :entry_value
 | 
						|
      
 | 
						|
        # The unique key that the product uses to identify the restriction, e.g. "com.
 | 
						|
        # google.android.gm.fieldname".
 | 
						|
        # Corresponds to the JSON property `key`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :key
 | 
						|
      
 | 
						|
        # For bundle or bundleArray restrictions, the list of nested restrictions. A
 | 
						|
        # bundle restriction is always nested within a bundleArray restriction, and a
 | 
						|
        # bundleArray restriction is at most two levels deep.
 | 
						|
        # Corresponds to the JSON property `nestedRestriction`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::AppRestrictionsSchemaRestriction>]
 | 
						|
        attr_accessor :nested_restriction
 | 
						|
      
 | 
						|
        # The type of the restriction.
 | 
						|
        # Corresponds to the JSON property `restrictionType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :restriction_type
 | 
						|
      
 | 
						|
        # The name of the restriction.
 | 
						|
        # Corresponds to the JSON property `title`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :title
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @default_value = args[:default_value] if args.key?(:default_value)
 | 
						|
          @description = args[:description] if args.key?(:description)
 | 
						|
          @entry = args[:entry] if args.key?(:entry)
 | 
						|
          @entry_value = args[:entry_value] if args.key?(:entry_value)
 | 
						|
          @key = args[:key] if args.key?(:key)
 | 
						|
          @nested_restriction = args[:nested_restriction] if args.key?(:nested_restriction)
 | 
						|
          @restriction_type = args[:restriction_type] if args.key?(:restriction_type)
 | 
						|
          @title = args[:title] if args.key?(:title)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A typed value for the restriction.
 | 
						|
      class AppRestrictionsSchemaRestrictionRestrictionValue
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The type of the value being provided.
 | 
						|
        # Corresponds to the JSON property `type`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :type
 | 
						|
      
 | 
						|
        # The boolean value - this will only be present if type is bool.
 | 
						|
        # Corresponds to the JSON property `valueBool`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :value_bool
 | 
						|
        alias_method :value_bool?, :value_bool
 | 
						|
      
 | 
						|
        # The integer value - this will only be present if type is integer.
 | 
						|
        # Corresponds to the JSON property `valueInteger`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :value_integer
 | 
						|
      
 | 
						|
        # The list of string values - this will only be present if type is multiselect.
 | 
						|
        # Corresponds to the JSON property `valueMultiselect`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :value_multiselect
 | 
						|
      
 | 
						|
        # The string value - this will be present for types string, choice and hidden.
 | 
						|
        # Corresponds to the JSON property `valueString`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :value_string
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @type = args[:type] if args.key?(:type)
 | 
						|
          @value_bool = args[:value_bool] if args.key?(:value_bool)
 | 
						|
          @value_integer = args[:value_integer] if args.key?(:value_integer)
 | 
						|
          @value_multiselect = args[:value_multiselect] if args.key?(:value_multiselect)
 | 
						|
          @value_string = args[:value_string] if args.key?(:value_string)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # List of states set by the app.
 | 
						|
      class AppState
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # List of keyed app states. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `keyedAppState`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::KeyedAppState>]
 | 
						|
        attr_accessor :keyed_app_state
 | 
						|
      
 | 
						|
        # The package name of the app. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `packageName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :package_name
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @keyed_app_state = args[:keyed_app_state] if args.key?(:keyed_app_state)
 | 
						|
          @package_name = args[:package_name] if args.key?(:package_name)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An event generated when a new version of an app is uploaded to Google Play.
 | 
						|
      # Notifications are sent for new public versions only: alpha, beta, or canary
 | 
						|
      # versions do not generate this event. To fetch up-to-date version history for
 | 
						|
      # an app, use Products.Get on the EMM API.
 | 
						|
      class AppUpdateEvent
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The id of the product (e.g. "app:com.google.android.gm") that was updated.
 | 
						|
        # This field will always be present.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # This represents a single version of the app.
 | 
						|
      class AppVersion
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # True if this version is a production APK.
 | 
						|
        # Corresponds to the JSON property `isProduction`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :is_production
 | 
						|
        alias_method :is_production?, :is_production
 | 
						|
      
 | 
						|
        # Deprecated, use trackId instead.
 | 
						|
        # Corresponds to the JSON property `track`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :track
 | 
						|
      
 | 
						|
        # Track ids that the app version is published in. Replaces the track field (
 | 
						|
        # deprecated), but doesn't include the production track (see isProduction
 | 
						|
        # instead).
 | 
						|
        # Corresponds to the JSON property `trackId`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :track_id
 | 
						|
      
 | 
						|
        # Unique increasing identifier for the app version.
 | 
						|
        # Corresponds to the JSON property `versionCode`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :version_code
 | 
						|
      
 | 
						|
        # The string used in the Play store by the app developer to identify the version.
 | 
						|
        # The string is not necessarily unique or localized (for example, the string
 | 
						|
        # could be "1.4").
 | 
						|
        # Corresponds to the JSON property `versionString`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :version_string
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @is_production = args[:is_production] if args.key?(:is_production)
 | 
						|
          @track = args[:track] if args.key?(:track)
 | 
						|
          @track_id = args[:track_id] if args.key?(:track_id)
 | 
						|
          @version_code = args[:version_code] if args.key?(:version_code)
 | 
						|
          @version_string = args[:version_string] if args.key?(:version_string)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Information on an approval URL.
 | 
						|
      class ApprovalUrlInfo
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A URL that displays a product's permissions and that can also be used to
 | 
						|
        # approve the product with the Products.approve call.
 | 
						|
        # Corresponds to the JSON property `approvalUrl`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :approval_url
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @approval_url = args[:approval_url] if args.key?(:approval_url)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An AuthenticationToken is used by the EMM's device policy client on a device
 | 
						|
      # to provision the given EMM-managed user on that device.
 | 
						|
      class AuthenticationToken
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The authentication token to be passed to the device policy client on the
 | 
						|
        # device where it can be used to provision the account for which this token was
 | 
						|
        # generated.
 | 
						|
        # Corresponds to the JSON property `token`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :token
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @token = args[:token] if args.key?(:token)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The auto-install constraint. Defines a set of restrictions for installation.
 | 
						|
      # At least one of the fields must be set.
 | 
						|
      class AutoInstallConstraint
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Charging state constraint.
 | 
						|
        # Corresponds to the JSON property `chargingStateConstraint`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :charging_state_constraint
 | 
						|
      
 | 
						|
        # Device idle state constraint.
 | 
						|
        # Corresponds to the JSON property `deviceIdleStateConstraint`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :device_idle_state_constraint
 | 
						|
      
 | 
						|
        # Network type constraint.
 | 
						|
        # Corresponds to the JSON property `networkTypeConstraint`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :network_type_constraint
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @charging_state_constraint = args[:charging_state_constraint] if args.key?(:charging_state_constraint)
 | 
						|
          @device_idle_state_constraint = args[:device_idle_state_constraint] if args.key?(:device_idle_state_constraint)
 | 
						|
          @network_type_constraint = args[:network_type_constraint] if args.key?(:network_type_constraint)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class AutoInstallPolicy
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The constraints for auto-installing the app. You can specify a maximum of one
 | 
						|
        # constraint.
 | 
						|
        # Corresponds to the JSON property `autoInstallConstraint`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::AutoInstallConstraint>]
 | 
						|
        attr_accessor :auto_install_constraint
 | 
						|
      
 | 
						|
        # The auto-install mode. If unset defaults to "doNotAutoInstall".
 | 
						|
        # Corresponds to the JSON property `autoInstallMode`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :auto_install_mode
 | 
						|
      
 | 
						|
        # The priority of the install, as an unsigned integer. A lower number means
 | 
						|
        # higher priority.
 | 
						|
        # Corresponds to the JSON property `autoInstallPriority`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :auto_install_priority
 | 
						|
      
 | 
						|
        # The minimum version of the app. If a lower version of the app is installed,
 | 
						|
        # then the app will be auto-updated according to the auto-install constraints,
 | 
						|
        # instead of waiting for the regular auto-update. You can set a minimum version
 | 
						|
        # code for at most 20 apps per device.
 | 
						|
        # Corresponds to the JSON property `minimumVersionCode`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :minimum_version_code
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @auto_install_constraint = args[:auto_install_constraint] if args.key?(:auto_install_constraint)
 | 
						|
          @auto_install_mode = args[:auto_install_mode] if args.key?(:auto_install_mode)
 | 
						|
          @auto_install_priority = args[:auto_install_priority] if args.key?(:auto_install_priority)
 | 
						|
          @minimum_version_code = args[:minimum_version_code] if args.key?(:minimum_version_code)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A configuration variables resource contains the managed configuration settings
 | 
						|
      # ID to be applied to a single user, as well as the variable set that is
 | 
						|
      # attributed to the user. The variable set will be used to replace placeholders
 | 
						|
      # in the managed configuration settings.
 | 
						|
      class ConfigurationVariables
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The ID of the managed configurations settings.
 | 
						|
        # Corresponds to the JSON property `mcmId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :mcm_id
 | 
						|
      
 | 
						|
        # The variable set that is attributed to the user.
 | 
						|
        # Corresponds to the JSON property `variableSet`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::VariableSet>]
 | 
						|
        attr_accessor :variable_set
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @mcm_id = args[:mcm_id] if args.key?(:mcm_id)
 | 
						|
          @variable_set = args[:variable_set] if args.key?(:variable_set)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A Devices resource represents a mobile device managed by the EMM and belonging
 | 
						|
      # to a specific enterprise user.
 | 
						|
      class Device
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The Google Play Services Android ID for the device encoded as a lowercase hex
 | 
						|
        # string. For example, "123456789abcdef0".
 | 
						|
        # Corresponds to the JSON property `androidId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :android_id
 | 
						|
      
 | 
						|
        # Identifies the extent to which the device is controlled by a managed Google
 | 
						|
        # Play EMM in various deployment configurations. Possible values include: - "
 | 
						|
        # managedDevice", a device that has the EMM's device policy controller (DPC) as
 | 
						|
        # the device owner. - "managedProfile", a device that has a profile managed by
 | 
						|
        # the DPC (DPC is profile owner) in addition to a separate, personal profile
 | 
						|
        # that is unavailable to the DPC. - "containerApp", no longer used (deprecated).
 | 
						|
        # - "unmanagedProfile", a device that has been allowed (by the domain's admin,
 | 
						|
        # using the Admin Console to enable the privilege) to use managed Google Play,
 | 
						|
        # but the profile is itself not owned by a DPC.
 | 
						|
        # Corresponds to the JSON property `managementType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :management_type
 | 
						|
      
 | 
						|
        # The device policy for a given managed device.
 | 
						|
        # Corresponds to the JSON property `policy`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::Policy]
 | 
						|
        attr_accessor :policy
 | 
						|
      
 | 
						|
        # Device report updated with the latest app states for managed apps on the
 | 
						|
        # device.
 | 
						|
        # Corresponds to the JSON property `report`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::DeviceReport]
 | 
						|
        attr_accessor :report
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @android_id = args[:android_id] if args.key?(:android_id)
 | 
						|
          @management_type = args[:management_type] if args.key?(:management_type)
 | 
						|
          @policy = args[:policy] if args.key?(:policy)
 | 
						|
          @report = args[:report] if args.key?(:report)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Device report updated with the latest app states for managed apps on the
 | 
						|
      # device.
 | 
						|
      class DeviceReport
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # List of app states set by managed apps on the device. App states are defined
 | 
						|
        # by the app's developers. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `appState`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::AppState>]
 | 
						|
        attr_accessor :app_state
 | 
						|
      
 | 
						|
        # The timestamp of the last report update in milliseconds since epoch. This
 | 
						|
        # field will always be present.
 | 
						|
        # Corresponds to the JSON property `lastUpdatedTimestampMillis`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :last_updated_timestamp_millis
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @app_state = args[:app_state] if args.key?(:app_state)
 | 
						|
          @last_updated_timestamp_millis = args[:last_updated_timestamp_millis] if args.key?(:last_updated_timestamp_millis)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An event generated when an updated device report is available.
 | 
						|
      class DeviceReportUpdateEvent
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The Android ID of the device. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `deviceId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :device_id
 | 
						|
      
 | 
						|
        # Device report updated with the latest app states for managed apps on the
 | 
						|
        # device.
 | 
						|
        # Corresponds to the JSON property `report`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::DeviceReport]
 | 
						|
        attr_accessor :report
 | 
						|
      
 | 
						|
        # The ID of the user. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `userId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :user_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @device_id = args[:device_id] if args.key?(:device_id)
 | 
						|
          @report = args[:report] if args.key?(:report)
 | 
						|
          @user_id = args[:user_id] if args.key?(:user_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The state of a user's device, as accessed by the getState and setState methods
 | 
						|
      # on device resources.
 | 
						|
      class DeviceState
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The state of the Google account on the device. "enabled" indicates that the
 | 
						|
        # Google account on the device can be used to access Google services (including
 | 
						|
        # Google Play), while "disabled" means that it cannot. A new device is initially
 | 
						|
        # in the "disabled" state.
 | 
						|
        # Corresponds to the JSON property `accountState`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :account_state
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @account_state = args[:account_state] if args.key?(:account_state)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ListDevicesResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A managed device.
 | 
						|
        # Corresponds to the JSON property `device`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::Device>]
 | 
						|
        attr_accessor :device
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @device = args[:device] if args.key?(:device)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An Enterprises resource represents the binding between an EMM and a specific
 | 
						|
      # organization. That binding can be instantiated in one of two different ways
 | 
						|
      # using this API as follows: - For Google managed domain customers, the process
 | 
						|
      # involves using Enterprises.enroll and Enterprises.setAccount (in conjunction
 | 
						|
      # with artifacts obtained from the Admin console and the Google API Console) and
 | 
						|
      # submitted to the EMM through a more-or-less manual process. - For managed
 | 
						|
      # Google Play Accounts customers, the process involves using Enterprises.
 | 
						|
      # generateSignupUrl and Enterprises.completeSignup in conjunction with the
 | 
						|
      # managed Google Play sign-up UI (Google-provided mechanism) to create the
 | 
						|
      # binding without manual steps. As an EMM, you can support either or both
 | 
						|
      # approaches in your EMM console. See Create an Enterprise for details.
 | 
						|
      class Enterprise
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Admins of the enterprise. This is only supported for enterprises created via
 | 
						|
        # the EMM-initiated flow.
 | 
						|
        # Corresponds to the JSON property `administrator`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::Administrator>]
 | 
						|
        attr_accessor :administrator
 | 
						|
      
 | 
						|
        # The unique ID for the enterprise.
 | 
						|
        # Corresponds to the JSON property `id`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :id
 | 
						|
      
 | 
						|
        # The name of the enterprise, for example, "Example, Inc".
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        # The enterprise's primary domain, such as "example.com".
 | 
						|
        # Corresponds to the JSON property `primaryDomain`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :primary_domain
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @administrator = args[:administrator] if args.key?(:administrator)
 | 
						|
          @id = args[:id] if args.key?(:id)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
          @primary_domain = args[:primary_domain] if args.key?(:primary_domain)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A service account that can be used to authenticate as the enterprise to API
 | 
						|
      # calls that require such authentication.
 | 
						|
      class EnterpriseAccount
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The email address of the service account.
 | 
						|
        # Corresponds to the JSON property `accountEmail`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :account_email
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @account_email = args[:account_email] if args.key?(:account_email)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ListEnterprisesResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # An enterprise.
 | 
						|
        # Corresponds to the JSON property `enterprise`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::Enterprise>]
 | 
						|
        attr_accessor :enterprise
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @enterprise = args[:enterprise] if args.key?(:enterprise)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class SendTestPushNotificationResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The message ID of the test push notification that was sent.
 | 
						|
        # Corresponds to the JSON property `messageId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :message_id
 | 
						|
      
 | 
						|
        # The name of the Cloud Pub/Sub topic to which notifications for this enterprise'
 | 
						|
        # s enrolled account will be sent.
 | 
						|
        # Corresponds to the JSON property `topicName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :topic_name
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @message_id = args[:message_id] if args.key?(:message_id)
 | 
						|
          @topic_name = args[:topic_name] if args.key?(:topic_name)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The presence of an Entitlements resource indicates that a user has the right
 | 
						|
      # to use a particular app. Entitlements are user specific, not device specific.
 | 
						|
      # This allows a user with an entitlement to an app to install the app on all
 | 
						|
      # their devices. It's also possible for a user to hold an entitlement to an app
 | 
						|
      # without installing the app on any device. The API can be used to create an
 | 
						|
      # entitlement. As an option, you can also use the API to trigger the
 | 
						|
      # installation of an app on all a user's managed devices at the same time the
 | 
						|
      # entitlement is created. If the app is free, creating the entitlement also
 | 
						|
      # creates a group license for that app. For paid apps, creating the entitlement
 | 
						|
      # consumes one license, and that license remains consumed until the entitlement
 | 
						|
      # is removed. If the enterprise hasn't purchased enough licenses, then no
 | 
						|
      # entitlement is created and the installation fails. An entitlement is also not
 | 
						|
      # created for an app if the app requires permissions that the enterprise hasn't
 | 
						|
      # accepted. If an entitlement is deleted, the app may be uninstalled from a user'
 | 
						|
      # s device. As a best practice, uninstall the app by calling Installs.delete()
 | 
						|
      # before deleting the entitlement. Entitlements for apps that a user pays for on
 | 
						|
      # an unmanaged profile have "userPurchase" as the entitlement reason. These
 | 
						|
      # entitlements cannot be removed via the API.
 | 
						|
      class Entitlement
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The ID of the product that the entitlement is for. For example, "app:com.
 | 
						|
        # google.android.gm".
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        # The reason for the entitlement. For example, "free" for free apps. This
 | 
						|
        # property is temporary: it will be replaced by the acquisition kind field of
 | 
						|
        # group licenses.
 | 
						|
        # Corresponds to the JSON property `reason`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :reason
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
          @reason = args[:reason] if args.key?(:reason)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ListEntitlementsResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # An entitlement of a user to a product (e.g. an app). For example, a free app
 | 
						|
        # that they have installed, or a paid app that they have been allocated a
 | 
						|
        # license to.
 | 
						|
        # Corresponds to the JSON property `entitlement`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::Entitlement>]
 | 
						|
        attr_accessor :entitlement
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @entitlement = args[:entitlement] if args.key?(:entitlement)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Group license objects allow you to keep track of licenses (called entitlements)
 | 
						|
      # for both free and paid apps. For a free app, a group license is created when
 | 
						|
      # an enterprise admin first approves the product in Google Play or when the
 | 
						|
      # first entitlement for the product is created for a user via the API. For a
 | 
						|
      # paid app, a group license object is only created when an enterprise admin
 | 
						|
      # purchases the product in Google Play for the first time. Use the API to query
 | 
						|
      # group licenses. A Grouplicenses resource includes the total number of licenses
 | 
						|
      # purchased (paid apps only) and the total number of licenses currently in use.
 | 
						|
      # In other words, the total number of Entitlements that exist for the product.
 | 
						|
      # Only one group license object is created per product and group license objects
 | 
						|
      # are never deleted. If a product is unapproved, its group license remains. This
 | 
						|
      # allows enterprise admins to keep track of any remaining entitlements for the
 | 
						|
      # product.
 | 
						|
      class GroupLicense
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # How this group license was acquired. "bulkPurchase" means that this
 | 
						|
        # Grouplicenses resource was created because the enterprise purchased licenses
 | 
						|
        # for this product; otherwise, the value is "free" (for free products).
 | 
						|
        # Corresponds to the JSON property `acquisitionKind`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :acquisition_kind
 | 
						|
      
 | 
						|
        # Whether the product to which this group license relates is currently approved
 | 
						|
        # by the enterprise. Products are approved when a group license is first created,
 | 
						|
        # but this approval may be revoked by an enterprise admin via Google Play.
 | 
						|
        # Unapproved products will not be visible to end users in collections, and new
 | 
						|
        # entitlements to them should not normally be created.
 | 
						|
        # Corresponds to the JSON property `approval`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :approval
 | 
						|
      
 | 
						|
        # The total number of provisioned licenses for this product. Returned by read
 | 
						|
        # operations, but ignored in write operations.
 | 
						|
        # Corresponds to the JSON property `numProvisioned`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :num_provisioned
 | 
						|
      
 | 
						|
        # The number of purchased licenses (possibly in multiple purchases). If this
 | 
						|
        # field is omitted, then there is no limit on the number of licenses that can be
 | 
						|
        # provisioned (for example, if the acquisition kind is "free").
 | 
						|
        # Corresponds to the JSON property `numPurchased`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :num_purchased
 | 
						|
      
 | 
						|
        # The permission approval status of the product. This field is only set if the
 | 
						|
        # product is approved. Possible states are: - "currentApproved", the current set
 | 
						|
        # of permissions is approved, but additional permissions will require the
 | 
						|
        # administrator to reapprove the product (If the product was approved without
 | 
						|
        # specifying the approved permissions setting, then this is the default behavior.
 | 
						|
        # ), - "needsReapproval", the product has unapproved permissions. No additional
 | 
						|
        # product licenses can be assigned until the product is reapproved, - "
 | 
						|
        # allCurrentAndFutureApproved", the current permissions are approved and any
 | 
						|
        # future permission updates will be automatically approved without administrator
 | 
						|
        # review.
 | 
						|
        # Corresponds to the JSON property `permissions`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :permissions
 | 
						|
      
 | 
						|
        # The ID of the product that the license is for. For example, "app:com.google.
 | 
						|
        # android.gm".
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @acquisition_kind = args[:acquisition_kind] if args.key?(:acquisition_kind)
 | 
						|
          @approval = args[:approval] if args.key?(:approval)
 | 
						|
          @num_provisioned = args[:num_provisioned] if args.key?(:num_provisioned)
 | 
						|
          @num_purchased = args[:num_purchased] if args.key?(:num_purchased)
 | 
						|
          @permissions = args[:permissions] if args.key?(:permissions)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ListGroupLicenseUsersResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A user of an enterprise.
 | 
						|
        # Corresponds to the JSON property `user`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::User>]
 | 
						|
        attr_accessor :user
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @user = args[:user] if args.key?(:user)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ListGroupLicensesResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A group license for a product approved for use in the enterprise.
 | 
						|
        # Corresponds to the JSON property `groupLicense`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::GroupLicense>]
 | 
						|
        attr_accessor :group_license
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @group_license = args[:group_license] if args.key?(:group_license)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The existence of an Installs resource indicates that an app is installed on a
 | 
						|
      # particular device (or that an install is pending). The API can be used to
 | 
						|
      # create an install resource using the update method. This triggers the actual
 | 
						|
      # install of the app on the device. If the user does not already have an
 | 
						|
      # entitlement for the app, then an attempt is made to create one. If this fails (
 | 
						|
      # for example, because the app is not free and there is no available license),
 | 
						|
      # then the creation of the install fails. The API can also be used to update an
 | 
						|
      # installed app. If the update method is used on an existing install, then the
 | 
						|
      # app will be updated to the latest available version. Note that it is not
 | 
						|
      # possible to force the installation of a specific version of an app: the
 | 
						|
      # version code is read-only. If a user installs an app themselves (as permitted
 | 
						|
      # by the enterprise), then again an install resource and possibly an entitlement
 | 
						|
      # resource are automatically created. The API can also be used to delete an
 | 
						|
      # install resource, which triggers the removal of the app from the device. Note
 | 
						|
      # that deleting an install does not automatically remove the corresponding
 | 
						|
      # entitlement, even if there are no remaining installs. The install resource
 | 
						|
      # will also be deleted if the user uninstalls the app themselves.
 | 
						|
      class Install
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Install state. The state "installPending" means that an install request has
 | 
						|
        # recently been made and download to the device is in progress. The state "
 | 
						|
        # installed" means that the app has been installed. This field is read-only.
 | 
						|
        # Corresponds to the JSON property `installState`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :install_state
 | 
						|
      
 | 
						|
        # The ID of the product that the install is for. For example, "app:com.google.
 | 
						|
        # android.gm".
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        # The version of the installed product. Guaranteed to be set only if the install
 | 
						|
        # state is "installed".
 | 
						|
        # Corresponds to the JSON property `versionCode`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :version_code
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @install_state = args[:install_state] if args.key?(:install_state)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
          @version_code = args[:version_code] if args.key?(:version_code)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An event generated when an app installation failed on a device
 | 
						|
      class InstallFailureEvent
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The Android ID of the device. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `deviceId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :device_id
 | 
						|
      
 | 
						|
        # Additional details on the failure if applicable.
 | 
						|
        # Corresponds to the JSON property `failureDetails`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :failure_details
 | 
						|
      
 | 
						|
        # The reason for the installation failure. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `failureReason`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :failure_reason
 | 
						|
      
 | 
						|
        # The id of the product (e.g. "app:com.google.android.gm") for which the install
 | 
						|
        # failure event occured. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        # The ID of the user. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `userId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :user_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @device_id = args[:device_id] if args.key?(:device_id)
 | 
						|
          @failure_details = args[:failure_details] if args.key?(:failure_details)
 | 
						|
          @failure_reason = args[:failure_reason] if args.key?(:failure_reason)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
          @user_id = args[:user_id] if args.key?(:user_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ListInstallsResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # An installation of an app for a user on a specific device. The existence of an
 | 
						|
        # install implies that the user must have an entitlement to the app.
 | 
						|
        # Corresponds to the JSON property `install`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::Install>]
 | 
						|
        attr_accessor :install
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @install = args[:install] if args.key?(:install)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents a keyed app state containing a key, timestamp, severity level,
 | 
						|
      # optional description, and optional data.
 | 
						|
      class KeyedAppState
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Additional field intended for machine-readable data. For example, a number or
 | 
						|
        # JSON object. To prevent XSS, we recommend removing any HTML from the data
 | 
						|
        # before displaying it.
 | 
						|
        # Corresponds to the JSON property `data`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :data
 | 
						|
      
 | 
						|
        # Key indicating what the app is providing a state for. The content of the key
 | 
						|
        # is set by the app's developer. To prevent XSS, we recommend removing any HTML
 | 
						|
        # from the key before displaying it. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `key`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :key
 | 
						|
      
 | 
						|
        # Free-form, human-readable message describing the app state. For example, an
 | 
						|
        # error message. To prevent XSS, we recommend removing any HTML from the message
 | 
						|
        # before displaying it.
 | 
						|
        # Corresponds to the JSON property `message`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :message
 | 
						|
      
 | 
						|
        # Severity of the app state. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `severity`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :severity
 | 
						|
      
 | 
						|
        # Timestamp of when the app set the state in milliseconds since epoch. This
 | 
						|
        # field will always be present.
 | 
						|
        # Corresponds to the JSON property `stateTimestampMillis`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :state_timestamp_millis
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @data = args[:data] if args.key?(:data)
 | 
						|
          @key = args[:key] if args.key?(:key)
 | 
						|
          @message = args[:message] if args.key?(:message)
 | 
						|
          @severity = args[:severity] if args.key?(:severity)
 | 
						|
          @state_timestamp_millis = args[:state_timestamp_millis] if args.key?(:state_timestamp_millis)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A localized string with its locale.
 | 
						|
      class LocalizedText
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The BCP47 tag for a locale. (e.g. "en-US", "de").
 | 
						|
        # Corresponds to the JSON property `locale`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :locale
 | 
						|
      
 | 
						|
        # The text localized in the associated locale.
 | 
						|
        # Corresponds to the JSON property `text`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :text
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @locale = args[:locale] if args.key?(:locale)
 | 
						|
          @text = args[:text] if args.key?(:text)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Maintenance window for managed Google Play Accounts. This allows Play store to
 | 
						|
      # update the apps on the foreground in the designated window.
 | 
						|
      class MaintenanceWindow
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Duration of the maintenance window, in milliseconds. The duration must be
 | 
						|
        # between 30 minutes and 24 hours (inclusive).
 | 
						|
        # Corresponds to the JSON property `durationMs`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :duration_ms
 | 
						|
      
 | 
						|
        # Start time of the maintenance window, in milliseconds after midnight on the
 | 
						|
        # device. Windows can span midnight.
 | 
						|
        # Corresponds to the JSON property `startTimeAfterMidnightMs`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :start_time_after_midnight_ms
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @duration_ms = args[:duration_ms] if args.key?(:duration_ms)
 | 
						|
          @start_time_after_midnight_ms = args[:start_time_after_midnight_ms] if args.key?(:start_time_after_midnight_ms)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A managed configuration resource contains the set of managed properties
 | 
						|
      # defined by the app developer in the app's managed configurations schema, as
 | 
						|
      # well as any configuration variables defined for the user.
 | 
						|
      class ManagedConfiguration
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A configuration variables resource contains the managed configuration settings
 | 
						|
        # ID to be applied to a single user, as well as the variable set that is
 | 
						|
        # attributed to the user. The variable set will be used to replace placeholders
 | 
						|
        # in the managed configuration settings.
 | 
						|
        # Corresponds to the JSON property `configurationVariables`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::ConfigurationVariables]
 | 
						|
        attr_accessor :configuration_variables
 | 
						|
      
 | 
						|
        # Deprecated.
 | 
						|
        # Corresponds to the JSON property `kind`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :kind
 | 
						|
      
 | 
						|
        # The set of managed properties for this configuration.
 | 
						|
        # Corresponds to the JSON property `managedProperty`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ManagedProperty>]
 | 
						|
        attr_accessor :managed_property
 | 
						|
      
 | 
						|
        # The ID of the product that the managed configuration is for, e.g. "app:com.
 | 
						|
        # google.android.gm".
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @configuration_variables = args[:configuration_variables] if args.key?(:configuration_variables)
 | 
						|
          @kind = args[:kind] if args.key?(:kind)
 | 
						|
          @managed_property = args[:managed_property] if args.key?(:managed_property)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ManagedConfigurationsForDeviceListResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A managed configuration for an app on a specific device.
 | 
						|
        # Corresponds to the JSON property `managedConfigurationForDevice`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ManagedConfiguration>]
 | 
						|
        attr_accessor :managed_configuration_for_device
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @managed_configuration_for_device = args[:managed_configuration_for_device] if args.key?(:managed_configuration_for_device)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ManagedConfigurationsForUserListResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A managed configuration for an app for a specific user.
 | 
						|
        # Corresponds to the JSON property `managedConfigurationForUser`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ManagedConfiguration>]
 | 
						|
        attr_accessor :managed_configuration_for_user
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @managed_configuration_for_user = args[:managed_configuration_for_user] if args.key?(:managed_configuration_for_user)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A managed configurations settings resource contains the set of managed
 | 
						|
      # properties that have been configured for an Android app to be applied to a set
 | 
						|
      # of users. The app's developer would have defined configurable properties in
 | 
						|
      # the managed configurations schema.
 | 
						|
      class ManagedConfigurationsSettings
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The last updated time of the managed configuration settings in milliseconds
 | 
						|
        # since 1970-01-01T00:00:00Z.
 | 
						|
        # Corresponds to the JSON property `lastUpdatedTimestampMillis`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :last_updated_timestamp_millis
 | 
						|
      
 | 
						|
        # The ID of the managed configurations settings.
 | 
						|
        # Corresponds to the JSON property `mcmId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :mcm_id
 | 
						|
      
 | 
						|
        # The name of the managed configurations settings.
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @last_updated_timestamp_millis = args[:last_updated_timestamp_millis] if args.key?(:last_updated_timestamp_millis)
 | 
						|
          @mcm_id = args[:mcm_id] if args.key?(:mcm_id)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ManagedConfigurationsSettingsListResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A managed configurations settings for an app that may be assigned to a group
 | 
						|
        # of users in an enterprise.
 | 
						|
        # Corresponds to the JSON property `managedConfigurationsSettings`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ManagedConfigurationsSettings>]
 | 
						|
        attr_accessor :managed_configurations_settings
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @managed_configurations_settings = args[:managed_configurations_settings] if args.key?(:managed_configurations_settings)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A managed property of a managed configuration. The property must match one of
 | 
						|
      # the properties in the app restrictions schema of the product. Exactly one of
 | 
						|
      # the value fields must be populated, and it must match the property's type in
 | 
						|
      # the app restrictions schema.
 | 
						|
      class ManagedProperty
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The unique key that identifies the property.
 | 
						|
        # Corresponds to the JSON property `key`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :key
 | 
						|
      
 | 
						|
        # The boolean value - this will only be present if type of the property is bool.
 | 
						|
        # Corresponds to the JSON property `valueBool`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :value_bool
 | 
						|
        alias_method :value_bool?, :value_bool
 | 
						|
      
 | 
						|
        # A bundle of managed properties.
 | 
						|
        # Corresponds to the JSON property `valueBundle`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::ManagedPropertyBundle]
 | 
						|
        attr_accessor :value_bundle
 | 
						|
      
 | 
						|
        # The list of bundles of properties - this will only be present if type of the
 | 
						|
        # property is bundle_array.
 | 
						|
        # Corresponds to the JSON property `valueBundleArray`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ManagedPropertyBundle>]
 | 
						|
        attr_accessor :value_bundle_array
 | 
						|
      
 | 
						|
        # The integer value - this will only be present if type of the property is
 | 
						|
        # integer.
 | 
						|
        # Corresponds to the JSON property `valueInteger`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :value_integer
 | 
						|
      
 | 
						|
        # The string value - this will only be present if type of the property is string,
 | 
						|
        # choice or hidden.
 | 
						|
        # Corresponds to the JSON property `valueString`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :value_string
 | 
						|
      
 | 
						|
        # The list of string values - this will only be present if type of the property
 | 
						|
        # is multiselect.
 | 
						|
        # Corresponds to the JSON property `valueStringArray`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :value_string_array
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @key = args[:key] if args.key?(:key)
 | 
						|
          @value_bool = args[:value_bool] if args.key?(:value_bool)
 | 
						|
          @value_bundle = args[:value_bundle] if args.key?(:value_bundle)
 | 
						|
          @value_bundle_array = args[:value_bundle_array] if args.key?(:value_bundle_array)
 | 
						|
          @value_integer = args[:value_integer] if args.key?(:value_integer)
 | 
						|
          @value_string = args[:value_string] if args.key?(:value_string)
 | 
						|
          @value_string_array = args[:value_string_array] if args.key?(:value_string_array)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A bundle of managed properties.
 | 
						|
      class ManagedPropertyBundle
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The list of managed properties.
 | 
						|
        # Corresponds to the JSON property `managedProperty`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ManagedProperty>]
 | 
						|
        attr_accessor :managed_property
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @managed_property = args[:managed_property] if args.key?(:managed_property)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An event generated when a new device is ready to be managed.
 | 
						|
      class NewDeviceEvent
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The Android ID of the device. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `deviceId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :device_id
 | 
						|
      
 | 
						|
        # Policy app on the device.
 | 
						|
        # Corresponds to the JSON property `dpcPackageName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :dpc_package_name
 | 
						|
      
 | 
						|
        # Identifies the extent to which the device is controlled by an Android EMM in
 | 
						|
        # various deployment configurations. Possible values include: - "managedDevice",
 | 
						|
        # a device where the DPC is set as device owner, - "managedProfile", a device
 | 
						|
        # where the DPC is set as profile owner.
 | 
						|
        # Corresponds to the JSON property `managementType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :management_type
 | 
						|
      
 | 
						|
        # The ID of the user. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `userId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :user_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @device_id = args[:device_id] if args.key?(:device_id)
 | 
						|
          @dpc_package_name = args[:dpc_package_name] if args.key?(:dpc_package_name)
 | 
						|
          @management_type = args[:management_type] if args.key?(:management_type)
 | 
						|
          @user_id = args[:user_id] if args.key?(:user_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An event generated when new permissions are added to an app.
 | 
						|
      class NewPermissionsEvent
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The set of permissions that the enterprise admin has already approved for this
 | 
						|
        # application. Use Permissions.Get on the EMM API to retrieve details about
 | 
						|
        # these permissions.
 | 
						|
        # Corresponds to the JSON property `approvedPermissions`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :approved_permissions
 | 
						|
      
 | 
						|
        # The id of the product (e.g. "app:com.google.android.gm") for which new
 | 
						|
        # permissions were added. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        # The set of permissions that the app is currently requesting. Use Permissions.
 | 
						|
        # Get on the EMM API to retrieve details about these permissions.
 | 
						|
        # Corresponds to the JSON property `requestedPermissions`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :requested_permissions
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @approved_permissions = args[:approved_permissions] if args.key?(:approved_permissions)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
          @requested_permissions = args[:requested_permissions] if args.key?(:requested_permissions)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A notification of one event relating to an enterprise.
 | 
						|
      class Notification
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # An event generated when a new app version is uploaded to Google Play and its
 | 
						|
        # app restrictions schema changed. To fetch the app restrictions schema for an
 | 
						|
        # app, use Products.getAppRestrictionsSchema on the EMM API.
 | 
						|
        # Corresponds to the JSON property `appRestrictionsSchemaChangeEvent`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::AppRestrictionsSchemaChangeEvent]
 | 
						|
        attr_accessor :app_restrictions_schema_change_event
 | 
						|
      
 | 
						|
        # An event generated when a new version of an app is uploaded to Google Play.
 | 
						|
        # Notifications are sent for new public versions only: alpha, beta, or canary
 | 
						|
        # versions do not generate this event. To fetch up-to-date version history for
 | 
						|
        # an app, use Products.Get on the EMM API.
 | 
						|
        # Corresponds to the JSON property `appUpdateEvent`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::AppUpdateEvent]
 | 
						|
        attr_accessor :app_update_event
 | 
						|
      
 | 
						|
        # An event generated when an updated device report is available.
 | 
						|
        # Corresponds to the JSON property `deviceReportUpdateEvent`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::DeviceReportUpdateEvent]
 | 
						|
        attr_accessor :device_report_update_event
 | 
						|
      
 | 
						|
        # The ID of the enterprise for which the notification is sent. This will always
 | 
						|
        # be present.
 | 
						|
        # Corresponds to the JSON property `enterpriseId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :enterprise_id
 | 
						|
      
 | 
						|
        # An event generated when an app installation failed on a device
 | 
						|
        # Corresponds to the JSON property `installFailureEvent`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::InstallFailureEvent]
 | 
						|
        attr_accessor :install_failure_event
 | 
						|
      
 | 
						|
        # An event generated when a new device is ready to be managed.
 | 
						|
        # Corresponds to the JSON property `newDeviceEvent`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::NewDeviceEvent]
 | 
						|
        attr_accessor :new_device_event
 | 
						|
      
 | 
						|
        # An event generated when new permissions are added to an app.
 | 
						|
        # Corresponds to the JSON property `newPermissionsEvent`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::NewPermissionsEvent]
 | 
						|
        attr_accessor :new_permissions_event
 | 
						|
      
 | 
						|
        # Type of the notification.
 | 
						|
        # Corresponds to the JSON property `notificationType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :notification_type
 | 
						|
      
 | 
						|
        # An event generated when a product's approval status is changed.
 | 
						|
        # Corresponds to the JSON property `productApprovalEvent`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::ProductApprovalEvent]
 | 
						|
        attr_accessor :product_approval_event
 | 
						|
      
 | 
						|
        # An event generated whenever a product's availability changes.
 | 
						|
        # Corresponds to the JSON property `productAvailabilityChangeEvent`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::ProductAvailabilityChangeEvent]
 | 
						|
        attr_accessor :product_availability_change_event
 | 
						|
      
 | 
						|
        # The time when the notification was published in milliseconds since 1970-01-
 | 
						|
        # 01T00:00:00Z. This will always be present.
 | 
						|
        # Corresponds to the JSON property `timestampMillis`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :timestamp_millis
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @app_restrictions_schema_change_event = args[:app_restrictions_schema_change_event] if args.key?(:app_restrictions_schema_change_event)
 | 
						|
          @app_update_event = args[:app_update_event] if args.key?(:app_update_event)
 | 
						|
          @device_report_update_event = args[:device_report_update_event] if args.key?(:device_report_update_event)
 | 
						|
          @enterprise_id = args[:enterprise_id] if args.key?(:enterprise_id)
 | 
						|
          @install_failure_event = args[:install_failure_event] if args.key?(:install_failure_event)
 | 
						|
          @new_device_event = args[:new_device_event] if args.key?(:new_device_event)
 | 
						|
          @new_permissions_event = args[:new_permissions_event] if args.key?(:new_permissions_event)
 | 
						|
          @notification_type = args[:notification_type] if args.key?(:notification_type)
 | 
						|
          @product_approval_event = args[:product_approval_event] if args.key?(:product_approval_event)
 | 
						|
          @product_availability_change_event = args[:product_availability_change_event] if args.key?(:product_availability_change_event)
 | 
						|
          @timestamp_millis = args[:timestamp_millis] if args.key?(:timestamp_millis)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A resource returned by the PullNotificationSet API, which contains a
 | 
						|
      # collection of notifications for enterprises associated with the service
 | 
						|
      # account authenticated for the request.
 | 
						|
      class NotificationSet
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The notifications received, or empty if no notifications are present.
 | 
						|
        # Corresponds to the JSON property `notification`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::Notification>]
 | 
						|
        attr_accessor :notification
 | 
						|
      
 | 
						|
        # The notification set ID, required to mark the notification as received with
 | 
						|
        # the Enterprises.AcknowledgeNotification API. This will be omitted if no
 | 
						|
        # notifications are present.
 | 
						|
        # Corresponds to the JSON property `notificationSetId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :notification_set_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @notification = args[:notification] if args.key?(:notification)
 | 
						|
          @notification_set_id = args[:notification_set_id] if args.key?(:notification_set_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Information about the current page. List operations that supports paging
 | 
						|
      # return only one "page" of results. This protocol buffer message describes the
 | 
						|
      # page that has been returned.
 | 
						|
      class PageInfo
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Maximum number of results returned in one page. ! The number of results
 | 
						|
        # included in the API response.
 | 
						|
        # Corresponds to the JSON property `resultPerPage`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :result_per_page
 | 
						|
      
 | 
						|
        # Index of the first result returned in the current page.
 | 
						|
        # Corresponds to the JSON property `startIndex`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :start_index
 | 
						|
      
 | 
						|
        # Total number of results available on the backend ! The total number of results
 | 
						|
        # in the result set.
 | 
						|
        # Corresponds to the JSON property `totalResults`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :total_results
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @result_per_page = args[:result_per_page] if args.key?(:result_per_page)
 | 
						|
          @start_index = args[:start_index] if args.key?(:start_index)
 | 
						|
          @total_results = args[:total_results] if args.key?(:total_results)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A Permissions resource represents some extra capability, to be granted to an
 | 
						|
      # Android app, which requires explicit consent. An enterprise admin must consent
 | 
						|
      # to these permissions on behalf of their users before an entitlement for the
 | 
						|
      # app can be created. The permissions collection is read-only. The information
 | 
						|
      # provided for each permission (localized name and description) is intended to
 | 
						|
      # be used in the MDM user interface when obtaining consent from the enterprise.
 | 
						|
      class Permission
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A longer description of the Permissions resource, giving more details of what
 | 
						|
        # it affects.
 | 
						|
        # Corresponds to the JSON property `description`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :description
 | 
						|
      
 | 
						|
        # The name of the permission.
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        # An opaque string uniquely identifying the permission.
 | 
						|
        # Corresponds to the JSON property `permissionId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :permission_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @description = args[:description] if args.key?(:description)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
          @permission_id = args[:permission_id] if args.key?(:permission_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The device policy for a given managed device.
 | 
						|
      class Policy
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The auto-update policy for apps installed on the device. "choiceToTheUser"
 | 
						|
        # allows the device's user to configure the app update policy. "always" enables
 | 
						|
        # auto updates. "never" disables auto updates. "wifiOnly" enables auto updates
 | 
						|
        # only when the device is connected to wifi.
 | 
						|
        # Corresponds to the JSON property `autoUpdatePolicy`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :auto_update_policy
 | 
						|
      
 | 
						|
        # Whether the device reports app states to the EMM. The default value is "
 | 
						|
        # deviceReportDisabled".
 | 
						|
        # Corresponds to the JSON property `deviceReportPolicy`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :device_report_policy
 | 
						|
      
 | 
						|
        # Maintenance window for managed Google Play Accounts. This allows Play store to
 | 
						|
        # update the apps on the foreground in the designated window.
 | 
						|
        # Corresponds to the JSON property `maintenanceWindow`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::MaintenanceWindow]
 | 
						|
        attr_accessor :maintenance_window
 | 
						|
      
 | 
						|
        # The availability granted to the device for the specified products. "all" gives
 | 
						|
        # the device access to all products, regardless of approval status. "all" does
 | 
						|
        # not enable automatic visibility of "alpha" or "beta" tracks. "whitelist"
 | 
						|
        # grants the device access the products specified in productPolicy[]. Only
 | 
						|
        # products that are approved or products that were previously approved (products
 | 
						|
        # with revoked approval) by the enterprise can be whitelisted. If no value is
 | 
						|
        # provided, the availability set at the user level is applied by default.
 | 
						|
        # Corresponds to the JSON property `productAvailabilityPolicy`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_availability_policy
 | 
						|
      
 | 
						|
        # The list of product policies. The productAvailabilityPolicy needs to be set to
 | 
						|
        # WHITELIST or ALL for the product policies to be applied.
 | 
						|
        # Corresponds to the JSON property `productPolicy`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ProductPolicy>]
 | 
						|
        attr_accessor :product_policy
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @auto_update_policy = args[:auto_update_policy] if args.key?(:auto_update_policy)
 | 
						|
          @device_report_policy = args[:device_report_policy] if args.key?(:device_report_policy)
 | 
						|
          @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
 | 
						|
          @product_availability_policy = args[:product_availability_policy] if args.key?(:product_availability_policy)
 | 
						|
          @product_policy = args[:product_policy] if args.key?(:product_policy)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A Products resource represents an app in the Google Play store that is
 | 
						|
      # available to at least some users in the enterprise. (Some apps are restricted
 | 
						|
      # to a single enterprise, and no information about them is made available
 | 
						|
      # outside that enterprise.) The information provided for each product (localized
 | 
						|
      # name, icon, link to the full Google Play details page) is intended to allow a
 | 
						|
      # basic representation of the product within an EMM user interface.
 | 
						|
      class Product
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The tracks visible to the enterprise.
 | 
						|
        # Corresponds to the JSON property `appTracks`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::TrackInfo>]
 | 
						|
        attr_accessor :app_tracks
 | 
						|
      
 | 
						|
        # App versions currently available for this product.
 | 
						|
        # Corresponds to the JSON property `appVersion`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::AppVersion>]
 | 
						|
        attr_accessor :app_version
 | 
						|
      
 | 
						|
        # The name of the author of the product (for example, the app developer).
 | 
						|
        # Corresponds to the JSON property `authorName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :author_name
 | 
						|
      
 | 
						|
        # The countries which this app is available in.
 | 
						|
        # Corresponds to the JSON property `availableCountries`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :available_countries
 | 
						|
      
 | 
						|
        # Deprecated, use appTracks instead.
 | 
						|
        # Corresponds to the JSON property `availableTracks`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :available_tracks
 | 
						|
      
 | 
						|
        # The app category (e.g. RACING, SOCIAL, etc.)
 | 
						|
        # Corresponds to the JSON property `category`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :category
 | 
						|
      
 | 
						|
        # The content rating for this app.
 | 
						|
        # Corresponds to the JSON property `contentRating`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :content_rating
 | 
						|
      
 | 
						|
        # The localized promotional description, if available.
 | 
						|
        # Corresponds to the JSON property `description`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :description
 | 
						|
      
 | 
						|
        # A link to the (consumer) Google Play details page for the product.
 | 
						|
        # Corresponds to the JSON property `detailsUrl`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :details_url
 | 
						|
      
 | 
						|
        # How and to whom the package is made available. The value publicGoogleHosted
 | 
						|
        # means that the package is available through the Play store and not restricted
 | 
						|
        # to a specific enterprise. The value privateGoogleHosted means that the package
 | 
						|
        # is a private app (restricted to an enterprise) but hosted by Google. The value
 | 
						|
        # privateSelfHosted means that the package is a private app (restricted to an
 | 
						|
        # enterprise) and is privately hosted.
 | 
						|
        # Corresponds to the JSON property `distributionChannel`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :distribution_channel
 | 
						|
      
 | 
						|
        # Noteworthy features (if any) of this product.
 | 
						|
        # Corresponds to the JSON property `features`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :features
 | 
						|
      
 | 
						|
        # A link to an image that can be used as an icon for the product. This image is
 | 
						|
        # suitable for use at up to 512px x 512px.
 | 
						|
        # Corresponds to the JSON property `iconUrl`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :icon_url
 | 
						|
      
 | 
						|
        # The approximate time (within 7 days) the app was last published, expressed in
 | 
						|
        # milliseconds since epoch.
 | 
						|
        # Corresponds to the JSON property `lastUpdatedTimestampMillis`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :last_updated_timestamp_millis
 | 
						|
      
 | 
						|
        # The minimum Android SDK necessary to run the app.
 | 
						|
        # Corresponds to the JSON property `minAndroidSdkVersion`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :min_android_sdk_version
 | 
						|
      
 | 
						|
        # A list of permissions required by the app.
 | 
						|
        # Corresponds to the JSON property `permissions`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ProductPermission>]
 | 
						|
        attr_accessor :permissions
 | 
						|
      
 | 
						|
        # A string of the form *app:<package name>*. For example, app:com.google.android.
 | 
						|
        # gm represents the Gmail app.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        # Whether this product is free, free with in-app purchases, or paid. If the
 | 
						|
        # pricing is unknown, this means the product is not generally available anymore (
 | 
						|
        # even though it might still be available to people who own it).
 | 
						|
        # Corresponds to the JSON property `productPricing`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_pricing
 | 
						|
      
 | 
						|
        # A description of the recent changes made to the app.
 | 
						|
        # Corresponds to the JSON property `recentChanges`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :recent_changes
 | 
						|
      
 | 
						|
        # Deprecated.
 | 
						|
        # Corresponds to the JSON property `requiresContainerApp`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :requires_container_app
 | 
						|
        alias_method :requires_container_app?, :requires_container_app
 | 
						|
      
 | 
						|
        # A list of screenshot links representing the app.
 | 
						|
        # Corresponds to the JSON property `screenshotUrls`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :screenshot_urls
 | 
						|
      
 | 
						|
        # The certificate used to sign this product.
 | 
						|
        # Corresponds to the JSON property `signingCertificate`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::ProductSigningCertificate]
 | 
						|
        attr_accessor :signing_certificate
 | 
						|
      
 | 
						|
        # A link to a smaller image that can be used as an icon for the product. This
 | 
						|
        # image is suitable for use at up to 128px x 128px.
 | 
						|
        # Corresponds to the JSON property `smallIconUrl`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :small_icon_url
 | 
						|
      
 | 
						|
        # The name of the product.
 | 
						|
        # Corresponds to the JSON property `title`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :title
 | 
						|
      
 | 
						|
        # A link to the managed Google Play details page for the product, for use by an
 | 
						|
        # Enterprise admin.
 | 
						|
        # Corresponds to the JSON property `workDetailsUrl`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :work_details_url
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @app_tracks = args[:app_tracks] if args.key?(:app_tracks)
 | 
						|
          @app_version = args[:app_version] if args.key?(:app_version)
 | 
						|
          @author_name = args[:author_name] if args.key?(:author_name)
 | 
						|
          @available_countries = args[:available_countries] if args.key?(:available_countries)
 | 
						|
          @available_tracks = args[:available_tracks] if args.key?(:available_tracks)
 | 
						|
          @category = args[:category] if args.key?(:category)
 | 
						|
          @content_rating = args[:content_rating] if args.key?(:content_rating)
 | 
						|
          @description = args[:description] if args.key?(:description)
 | 
						|
          @details_url = args[:details_url] if args.key?(:details_url)
 | 
						|
          @distribution_channel = args[:distribution_channel] if args.key?(:distribution_channel)
 | 
						|
          @features = args[:features] if args.key?(:features)
 | 
						|
          @icon_url = args[:icon_url] if args.key?(:icon_url)
 | 
						|
          @last_updated_timestamp_millis = args[:last_updated_timestamp_millis] if args.key?(:last_updated_timestamp_millis)
 | 
						|
          @min_android_sdk_version = args[:min_android_sdk_version] if args.key?(:min_android_sdk_version)
 | 
						|
          @permissions = args[:permissions] if args.key?(:permissions)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
          @product_pricing = args[:product_pricing] if args.key?(:product_pricing)
 | 
						|
          @recent_changes = args[:recent_changes] if args.key?(:recent_changes)
 | 
						|
          @requires_container_app = args[:requires_container_app] if args.key?(:requires_container_app)
 | 
						|
          @screenshot_urls = args[:screenshot_urls] if args.key?(:screenshot_urls)
 | 
						|
          @signing_certificate = args[:signing_certificate] if args.key?(:signing_certificate)
 | 
						|
          @small_icon_url = args[:small_icon_url] if args.key?(:small_icon_url)
 | 
						|
          @title = args[:title] if args.key?(:title)
 | 
						|
          @work_details_url = args[:work_details_url] if args.key?(:work_details_url)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An event generated when a product's approval status is changed.
 | 
						|
      class ProductApprovalEvent
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Whether the product was approved or unapproved. This field will always be
 | 
						|
        # present.
 | 
						|
        # Corresponds to the JSON property `approved`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :approved
 | 
						|
      
 | 
						|
        # The id of the product (e.g. "app:com.google.android.gm") for which the
 | 
						|
        # approval status has changed. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @approved = args[:approved] if args.key?(:approved)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An event generated whenever a product's availability changes.
 | 
						|
      class ProductAvailabilityChangeEvent
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The new state of the product. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `availabilityStatus`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :availability_status
 | 
						|
      
 | 
						|
        # The id of the product (e.g. "app:com.google.android.gm") for which the product
 | 
						|
        # availability changed. This field will always be present.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @availability_status = args[:availability_status] if args.key?(:availability_status)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A product permissions resource represents the set of permissions required by a
 | 
						|
      # specific app and whether or not they have been accepted by an enterprise admin.
 | 
						|
      # The API can be used to read the set of permissions, and also to update the
 | 
						|
      # set to indicate that permissions have been accepted.
 | 
						|
      class ProductPermission
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # An opaque string uniquely identifying the permission.
 | 
						|
        # Corresponds to the JSON property `permissionId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :permission_id
 | 
						|
      
 | 
						|
        # Whether the permission has been accepted or not.
 | 
						|
        # Corresponds to the JSON property `state`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :state
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @permission_id = args[:permission_id] if args.key?(:permission_id)
 | 
						|
          @state = args[:state] if args.key?(:state)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Information about the permissions required by a specific app and whether they
 | 
						|
      # have been accepted by the enterprise.
 | 
						|
      class ProductPermissions
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The permissions required by the app.
 | 
						|
        # Corresponds to the JSON property `permission`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ProductPermission>]
 | 
						|
        attr_accessor :permission
 | 
						|
      
 | 
						|
        # The ID of the app that the permissions relate to, e.g. "app:com.google.android.
 | 
						|
        # gm".
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @permission = args[:permission] if args.key?(:permission)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The policy for a product.
 | 
						|
      class ProductPolicy
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The auto-install policy for the product.
 | 
						|
        # Corresponds to the JSON property `autoInstallPolicy`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::AutoInstallPolicy]
 | 
						|
        attr_accessor :auto_install_policy
 | 
						|
      
 | 
						|
        # A managed configuration resource contains the set of managed properties
 | 
						|
        # defined by the app developer in the app's managed configurations schema, as
 | 
						|
        # well as any configuration variables defined for the user.
 | 
						|
        # Corresponds to the JSON property `managedConfiguration`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::ManagedConfiguration]
 | 
						|
        attr_accessor :managed_configuration
 | 
						|
      
 | 
						|
        # The ID of the product. For example, "app:com.google.android.gm".
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        # Grants the device visibility to the specified product release track(s),
 | 
						|
        # identified by trackIds. The list of release tracks of a product can be
 | 
						|
        # obtained by calling Products.Get.
 | 
						|
        # Corresponds to the JSON property `trackIds`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :track_ids
 | 
						|
      
 | 
						|
        # Deprecated. Use trackIds instead.
 | 
						|
        # Corresponds to the JSON property `tracks`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :tracks
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @auto_install_policy = args[:auto_install_policy] if args.key?(:auto_install_policy)
 | 
						|
          @managed_configuration = args[:managed_configuration] if args.key?(:managed_configuration)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
          @track_ids = args[:track_ids] if args.key?(:track_ids)
 | 
						|
          @tracks = args[:tracks] if args.key?(:tracks)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A set of products.
 | 
						|
      class ProductSet
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The list of product IDs making up the set of products.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        # The interpretation of this product set. "unknown" should never be sent and is
 | 
						|
        # ignored if received. "whitelist" means that the user is entitled to access the
 | 
						|
        # product set. "includeAll" means that all products are accessible, including
 | 
						|
        # products that are approved, products with revoked approval, and products that
 | 
						|
        # have never been approved. "allApproved" means that the user is entitled to
 | 
						|
        # access all products that are approved for the enterprise. If the value is "
 | 
						|
        # allApproved" or "includeAll", the productId field is ignored. If no value is
 | 
						|
        # provided, it is interpreted as "whitelist" for backwards compatibility.
 | 
						|
        # Further "allApproved" or "includeAll" does not enable automatic visibility of "
 | 
						|
        # alpha" or "beta" tracks for Android app. Use ProductVisibility to enable "
 | 
						|
        # alpha" or "beta" tracks per user.
 | 
						|
        # Corresponds to the JSON property `productSetBehavior`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_set_behavior
 | 
						|
      
 | 
						|
        # Additional list of product IDs making up the product set. Unlike the productID
 | 
						|
        # array, in this list It's possible to specify which tracks (alpha, beta,
 | 
						|
        # production) of a product are visible to the user. See ProductVisibility and
 | 
						|
        # its fields for more information. Specifying the same product ID both here and
 | 
						|
        # in the productId array is not allowed and it will result in an error.
 | 
						|
        # Corresponds to the JSON property `productVisibility`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ProductVisibility>]
 | 
						|
        attr_accessor :product_visibility
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
          @product_set_behavior = args[:product_set_behavior] if args.key?(:product_set_behavior)
 | 
						|
          @product_visibility = args[:product_visibility] if args.key?(:product_visibility)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ProductSigningCertificate
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The base64 urlsafe encoded SHA1 hash of the certificate. (This field is
 | 
						|
        # deprecated in favor of SHA2-256. It should not be used and may be removed at
 | 
						|
        # any time.)
 | 
						|
        # Corresponds to the JSON property `certificateHashSha1`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :certificate_hash_sha1
 | 
						|
      
 | 
						|
        # The base64 urlsafe encoded SHA2-256 hash of the certificate.
 | 
						|
        # Corresponds to the JSON property `certificateHashSha256`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :certificate_hash_sha256
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @certificate_hash_sha1 = args[:certificate_hash_sha1] if args.key?(:certificate_hash_sha1)
 | 
						|
          @certificate_hash_sha256 = args[:certificate_hash_sha256] if args.key?(:certificate_hash_sha256)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A product to be made visible to a user.
 | 
						|
      class ProductVisibility
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The product ID to make visible to the user. Required for each item in the
 | 
						|
        # productVisibility list.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        # Grants the user visibility to the specified product track(s), identified by
 | 
						|
        # trackIds.
 | 
						|
        # Corresponds to the JSON property `trackIds`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :track_ids
 | 
						|
      
 | 
						|
        # Deprecated. Use trackIds instead.
 | 
						|
        # Corresponds to the JSON property `tracks`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :tracks
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
          @track_ids = args[:track_ids] if args.key?(:track_ids)
 | 
						|
          @tracks = args[:tracks] if args.key?(:tracks)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ApproveProductRequest
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Information on an approval URL.
 | 
						|
        # Corresponds to the JSON property `approvalUrlInfo`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::ApprovalUrlInfo]
 | 
						|
        attr_accessor :approval_url_info
 | 
						|
      
 | 
						|
        # Sets how new permission requests for the product are handled. "allPermissions"
 | 
						|
        # automatically approves all current and future permissions for the product. "
 | 
						|
        # currentPermissionsOnly" approves the current set of permissions for the
 | 
						|
        # product, but any future permissions added through updates will require manual
 | 
						|
        # reapproval. If not specified, only the current set of permissions will be
 | 
						|
        # approved.
 | 
						|
        # Corresponds to the JSON property `approvedPermissions`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :approved_permissions
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @approval_url_info = args[:approval_url_info] if args.key?(:approval_url_info)
 | 
						|
          @approved_permissions = args[:approved_permissions] if args.key?(:approved_permissions)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class GenerateProductApprovalUrlResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A URL that can be rendered in an iframe to display the permissions (if any) of
 | 
						|
        # a product. This URL can be used to approve the product only once and only
 | 
						|
        # within 24 hours of being generated, using the Products.approve call. If the
 | 
						|
        # product is currently unapproved and has no permissions, this URL will point to
 | 
						|
        # an empty page. If the product is currently approved, a URL will only be
 | 
						|
        # generated if that product has added permissions since it was last approved,
 | 
						|
        # and the URL will only display those new permissions that have not yet been
 | 
						|
        # accepted.
 | 
						|
        # Corresponds to the JSON property `url`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :url
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @url = args[:url] if args.key?(:url)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ProductsListResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Information about the current page. List operations that supports paging
 | 
						|
        # return only one "page" of results. This protocol buffer message describes the
 | 
						|
        # page that has been returned.
 | 
						|
        # Corresponds to the JSON property `pageInfo`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::PageInfo]
 | 
						|
        attr_accessor :page_info
 | 
						|
      
 | 
						|
        # Information about a product (e.g. an app) in the Google Play store, for
 | 
						|
        # display to an enterprise admin.
 | 
						|
        # Corresponds to the JSON property `product`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::Product>]
 | 
						|
        attr_accessor :product
 | 
						|
      
 | 
						|
        # Pagination information returned by a List operation when token pagination is
 | 
						|
        # enabled. List operations that supports paging return only one "page" of
 | 
						|
        # results. This protocol buffer message describes the page that has been
 | 
						|
        # returned. When using token pagination, clients should use the next/previous
 | 
						|
        # token to get another page of the result. The presence or absence of next/
 | 
						|
        # previous token indicates whether a next/previous page is available and
 | 
						|
        # provides a mean of accessing this page. ListRequest.page_token should be set
 | 
						|
        # to either next_page_token or previous_page_token to access another page.
 | 
						|
        # Corresponds to the JSON property `tokenPagination`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::TokenPagination]
 | 
						|
        attr_accessor :token_pagination
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @page_info = args[:page_info] if args.key?(:page_info)
 | 
						|
          @product = args[:product] if args.key?(:product)
 | 
						|
          @token_pagination = args[:token_pagination] if args.key?(:token_pagination)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A service account identity, including the name and credentials that can be
 | 
						|
      # used to authenticate as the service account.
 | 
						|
      class ServiceAccount
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Credentials that can be used to authenticate as a service account.
 | 
						|
        # Corresponds to the JSON property `key`
 | 
						|
        # @return [Google::Apis::AndroidenterpriseV1::ServiceAccountKey]
 | 
						|
        attr_accessor :key
 | 
						|
      
 | 
						|
        # The account name of the service account, in the form of an email address.
 | 
						|
        # Assigned by the server.
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @key = args[:key] if args.key?(:key)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Credentials that can be used to authenticate as a service account.
 | 
						|
      class ServiceAccountKey
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The body of the private key credentials file, in string format. This is only
 | 
						|
        # populated when the ServiceAccountKey is created, and is not stored by Google.
 | 
						|
        # Corresponds to the JSON property `data`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :data
 | 
						|
      
 | 
						|
        # An opaque, unique identifier for this ServiceAccountKey. Assigned by the
 | 
						|
        # server.
 | 
						|
        # Corresponds to the JSON property `id`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :id
 | 
						|
      
 | 
						|
        # Public key data for the credentials file. This is an X.509 cert. If you are
 | 
						|
        # using the googleCredentials key type, this is identical to the cert that can
 | 
						|
        # be retrieved by using the X.509 cert url inside of the credentials file.
 | 
						|
        # Corresponds to the JSON property `publicData`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :public_data
 | 
						|
      
 | 
						|
        # The file format of the generated key data.
 | 
						|
        # Corresponds to the JSON property `type`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :type
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @data = args[:data] if args.key?(:data)
 | 
						|
          @id = args[:id] if args.key?(:id)
 | 
						|
          @public_data = args[:public_data] if args.key?(:public_data)
 | 
						|
          @type = args[:type] if args.key?(:type)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ServiceAccountKeysListResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The service account credentials.
 | 
						|
        # Corresponds to the JSON property `serviceAccountKey`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::ServiceAccountKey>]
 | 
						|
        attr_accessor :service_account_key
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @service_account_key = args[:service_account_key] if args.key?(:service_account_key)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A resource returned by the GenerateSignupUrl API, which contains the Signup
 | 
						|
      # URL and Completion Token.
 | 
						|
      class SignupInfo
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # An opaque token that will be required, along with the Enterprise Token, for
 | 
						|
        # obtaining the enterprise resource from CompleteSignup.
 | 
						|
        # Corresponds to the JSON property `completionToken`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :completion_token
 | 
						|
      
 | 
						|
        # Deprecated.
 | 
						|
        # Corresponds to the JSON property `kind`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :kind
 | 
						|
      
 | 
						|
        # A URL under which the Admin can sign up for an enterprise. The page pointed to
 | 
						|
        # cannot be rendered in an iframe.
 | 
						|
        # Corresponds to the JSON property `url`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :url
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @completion_token = args[:completion_token] if args.key?(:completion_token)
 | 
						|
          @kind = args[:kind] if args.key?(:kind)
 | 
						|
          @url = args[:url] if args.key?(:url)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Definition of a managed Google Play store cluster, a list of products
 | 
						|
      # displayed as part of a store page.
 | 
						|
      class StoreCluster
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Unique ID of this cluster. Assigned by the server. Immutable once assigned.
 | 
						|
        # Corresponds to the JSON property `id`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :id
 | 
						|
      
 | 
						|
        # Ordered list of localized strings giving the name of this page. The text
 | 
						|
        # displayed is the one that best matches the user locale, or the first entry if
 | 
						|
        # there is no good match. There needs to be at least one entry.
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::LocalizedText>]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        # String (US-ASCII only) used to determine order of this cluster within the
 | 
						|
        # parent page's elements. Page elements are sorted in lexicographic order of
 | 
						|
        # this field. Duplicated values are allowed, but ordering between elements with
 | 
						|
        # duplicate order is undefined. The value of this field is never visible to a
 | 
						|
        # user, it is used solely for the purpose of defining an ordering. Maximum
 | 
						|
        # length is 256 characters.
 | 
						|
        # Corresponds to the JSON property `orderInPage`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :order_in_page
 | 
						|
      
 | 
						|
        # List of products in the order they are displayed in the cluster. There should
 | 
						|
        # not be duplicates within a cluster.
 | 
						|
        # Corresponds to the JSON property `productId`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :product_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @id = args[:id] if args.key?(:id)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
          @order_in_page = args[:order_in_page] if args.key?(:order_in_page)
 | 
						|
          @product_id = args[:product_id] if args.key?(:product_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # General setting for the managed Google Play store layout, currently only
 | 
						|
      # specifying the page to display the first time the store is opened.
 | 
						|
      class StoreLayout
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The ID of the store page to be used as the homepage. The homepage is the first
 | 
						|
        # page shown in the managed Google Play Store. Not specifying a homepage is
 | 
						|
        # equivalent to setting the store layout type to "basic".
 | 
						|
        # Corresponds to the JSON property `homepageId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :homepage_id
 | 
						|
      
 | 
						|
        # The store layout type. By default, this value is set to "basic" if the
 | 
						|
        # homepageId field is not set, and to "custom" otherwise. If set to "basic", the
 | 
						|
        # layout will consist of all approved apps that have been whitelisted for the
 | 
						|
        # user.
 | 
						|
        # Corresponds to the JSON property `storeLayoutType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :store_layout_type
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @homepage_id = args[:homepage_id] if args.key?(:homepage_id)
 | 
						|
          @store_layout_type = args[:store_layout_type] if args.key?(:store_layout_type)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class StoreLayoutClustersListResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A store cluster of an enterprise.
 | 
						|
        # Corresponds to the JSON property `cluster`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::StoreCluster>]
 | 
						|
        attr_accessor :cluster
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @cluster = args[:cluster] if args.key?(:cluster)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class StoreLayoutPagesListResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A store page of an enterprise.
 | 
						|
        # Corresponds to the JSON property `page`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::StorePage>]
 | 
						|
        attr_accessor :page
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @page = args[:page] if args.key?(:page)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Definition of a managed Google Play store page, made of a localized name and
 | 
						|
      # links to other pages. A page also contains clusters defined as a subcollection.
 | 
						|
      class StorePage
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Unique ID of this page. Assigned by the server. Immutable once assigned.
 | 
						|
        # Corresponds to the JSON property `id`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :id
 | 
						|
      
 | 
						|
        # Ordered list of pages a user should be able to reach from this page. The list
 | 
						|
        # can't include this page. It is recommended that the basic pages are created
 | 
						|
        # first, before adding the links between pages. The API doesn't verify that the
 | 
						|
        # pages exist or the pages are reachable.
 | 
						|
        # Corresponds to the JSON property `link`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :link
 | 
						|
      
 | 
						|
        # Ordered list of localized strings giving the name of this page. The text
 | 
						|
        # displayed is the one that best matches the user locale, or the first entry if
 | 
						|
        # there is no good match. There needs to be at least one entry.
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::LocalizedText>]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @id = args[:id] if args.key?(:id)
 | 
						|
          @link = args[:link] if args.key?(:link)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Pagination information returned by a List operation when token pagination is
 | 
						|
      # enabled. List operations that supports paging return only one "page" of
 | 
						|
      # results. This protocol buffer message describes the page that has been
 | 
						|
      # returned. When using token pagination, clients should use the next/previous
 | 
						|
      # token to get another page of the result. The presence or absence of next/
 | 
						|
      # previous token indicates whether a next/previous page is available and
 | 
						|
      # provides a mean of accessing this page. ListRequest.page_token should be set
 | 
						|
      # to either next_page_token or previous_page_token to access another page.
 | 
						|
      class TokenPagination
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Tokens to pass to the standard list field 'page_token'. Whenever available,
 | 
						|
        # tokens are preferred over manipulating start_index.
 | 
						|
        # Corresponds to the JSON property `nextPageToken`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :next_page_token
 | 
						|
      
 | 
						|
        # 
 | 
						|
        # Corresponds to the JSON property `previousPageToken`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :previous_page_token
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
 | 
						|
          @previous_page_token = args[:previous_page_token] if args.key?(:previous_page_token)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Id to name association of a track.
 | 
						|
      class TrackInfo
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A modifiable name for a track. This is the visible name in the play developer
 | 
						|
        # console.
 | 
						|
        # Corresponds to the JSON property `trackAlias`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :track_alias
 | 
						|
      
 | 
						|
        # Unmodifiable, unique track identifier. This identifier is the releaseTrackId
 | 
						|
        # in the url of the play developer console page that displays the track
 | 
						|
        # information.
 | 
						|
        # Corresponds to the JSON property `trackId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :track_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @track_alias = args[:track_alias] if args.key?(:track_alias)
 | 
						|
          @track_id = args[:track_id] if args.key?(:track_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A Users resource represents an account associated with an enterprise. The
 | 
						|
      # account may be specific to a device or to an individual user (who can then use
 | 
						|
      # the account across multiple devices). The account may provide access to
 | 
						|
      # managed Google Play only, or to other Google services, depending on the
 | 
						|
      # identity model: - The Google managed domain identity model requires
 | 
						|
      # synchronization to Google account sources (via primaryEmail). - The managed
 | 
						|
      # Google Play Accounts identity model provides a dynamic means for enterprises
 | 
						|
      # to create user or device accounts as needed. These accounts provide access to
 | 
						|
      # managed Google Play.
 | 
						|
      class User
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A unique identifier you create for this user, such as "user342" or "asset#
 | 
						|
        # 44418". Do not use personally identifiable information (PII) for this property.
 | 
						|
        # Must always be set for EMM-managed users. Not set for Google-managed users.
 | 
						|
        # Corresponds to the JSON property `accountIdentifier`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :account_identifier
 | 
						|
      
 | 
						|
        # The type of account that this user represents. A userAccount can be installed
 | 
						|
        # on multiple devices, but a deviceAccount is specific to a single device. An
 | 
						|
        # EMM-managed user (emmManaged) can be either type (userAccount, deviceAccount),
 | 
						|
        # but a Google-managed user (googleManaged) is always a userAccount.
 | 
						|
        # Corresponds to the JSON property `accountType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :account_type
 | 
						|
      
 | 
						|
        # The name that will appear in user interfaces. Setting this property is
 | 
						|
        # optional when creating EMM-managed users. If you do set this property, use
 | 
						|
        # something generic about the organization (such as "Example, Inc.") or your
 | 
						|
        # name (as EMM). Not used for Google-managed user accounts. @mutable
 | 
						|
        # androidenterprise.users.update
 | 
						|
        # Corresponds to the JSON property `displayName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :display_name
 | 
						|
      
 | 
						|
        # The unique ID for the user.
 | 
						|
        # Corresponds to the JSON property `id`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :id
 | 
						|
      
 | 
						|
        # The entity that manages the user. With googleManaged users, the source of
 | 
						|
        # truth is Google so EMMs have to make sure a Google Account exists for the user.
 | 
						|
        # With emmManaged users, the EMM is in charge.
 | 
						|
        # Corresponds to the JSON property `managementType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :management_type
 | 
						|
      
 | 
						|
        # The user's primary email address, for example, "jsmith@example.com". Will
 | 
						|
        # always be set for Google managed users and not set for EMM managed users.
 | 
						|
        # Corresponds to the JSON property `primaryEmail`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :primary_email
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @account_identifier = args[:account_identifier] if args.key?(:account_identifier)
 | 
						|
          @account_type = args[:account_type] if args.key?(:account_type)
 | 
						|
          @display_name = args[:display_name] if args.key?(:display_name)
 | 
						|
          @id = args[:id] if args.key?(:id)
 | 
						|
          @management_type = args[:management_type] if args.key?(:management_type)
 | 
						|
          @primary_email = args[:primary_email] if args.key?(:primary_email)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class ListUsersResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A user of an enterprise.
 | 
						|
        # Corresponds to the JSON property `user`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::User>]
 | 
						|
        attr_accessor :user
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @user = args[:user] if args.key?(:user)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A variable set is a key-value pair of EMM-provided placeholders and its
 | 
						|
      # corresponding value, which is attributed to a user. For example, $FIRSTNAME
 | 
						|
      # could be a placeholder, and its value could be Alice. Placeholders should
 | 
						|
      # start with a '$' sign and should be alphanumeric only.
 | 
						|
      class VariableSet
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The placeholder string; defined by EMM.
 | 
						|
        # Corresponds to the JSON property `placeholder`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :placeholder
 | 
						|
      
 | 
						|
        # The value of the placeholder, specific to the user.
 | 
						|
        # Corresponds to the JSON property `userValue`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :user_value
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @placeholder = args[:placeholder] if args.key?(:placeholder)
 | 
						|
          @user_value = args[:user_value] if args.key?(:user_value)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A WebApps resource represents a web app created for an enterprise. Web apps
 | 
						|
      # are published to managed Google Play and can be distributed like other Android
 | 
						|
      # apps. On a user's device, a web app opens its specified URL.
 | 
						|
      class WebApp
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The display mode of the web app. Possible values include: - "minimalUi", the
 | 
						|
        # device's status bar, navigation bar, the app's URL, and a refresh button are
 | 
						|
        # visible when the app is open. For HTTP URLs, you can only select this option. -
 | 
						|
        # "standalone", the device's status bar and navigation bar are visible when the
 | 
						|
        # app is open. - "fullScreen", the app opens in full screen mode, hiding the
 | 
						|
        # device's status and navigation bars. All browser UI elements, page URL, system
 | 
						|
        # status bar and back button are not visible, and the web app takes up the
 | 
						|
        # entirety of the available display area.
 | 
						|
        # Corresponds to the JSON property `displayMode`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :display_mode
 | 
						|
      
 | 
						|
        # A list of icons representing this website. If absent, a default icon (for
 | 
						|
        # create) or the current icon (for update) will be used.
 | 
						|
        # Corresponds to the JSON property `icons`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::WebAppIcon>]
 | 
						|
        attr_accessor :icons
 | 
						|
      
 | 
						|
        # A flag whether the app has been published to the Play store yet.
 | 
						|
        # Corresponds to the JSON property `isPublished`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :is_published
 | 
						|
        alias_method :is_published?, :is_published
 | 
						|
      
 | 
						|
        # The start URL, i.e. the URL that should load when the user opens the
 | 
						|
        # application.
 | 
						|
        # Corresponds to the JSON property `startUrl`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :start_url
 | 
						|
      
 | 
						|
        # The title of the web app as displayed to the user (e.g., amongst a list of
 | 
						|
        # other applications, or as a label for an icon).
 | 
						|
        # Corresponds to the JSON property `title`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :title
 | 
						|
      
 | 
						|
        # The current version of the app. Note that the version can automatically
 | 
						|
        # increase during the lifetime of the web app, while Google does internal
 | 
						|
        # housekeeping to keep the web app up-to-date.
 | 
						|
        # Corresponds to the JSON property `versionCode`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :version_code
 | 
						|
      
 | 
						|
        # The ID of the application. A string of the form "app:<package name>" where the
 | 
						|
        # package name always starts with the prefix "com.google.enterprise.webapp."
 | 
						|
        # followed by a random id.
 | 
						|
        # Corresponds to the JSON property `webAppId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :web_app_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @display_mode = args[:display_mode] if args.key?(:display_mode)
 | 
						|
          @icons = args[:icons] if args.key?(:icons)
 | 
						|
          @is_published = args[:is_published] if args.key?(:is_published)
 | 
						|
          @start_url = args[:start_url] if args.key?(:start_url)
 | 
						|
          @title = args[:title] if args.key?(:title)
 | 
						|
          @version_code = args[:version_code] if args.key?(:version_code)
 | 
						|
          @web_app_id = args[:web_app_id] if args.key?(:web_app_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Icon for a web app.
 | 
						|
      class WebAppIcon
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The actual bytes of the image in a base64url encoded string (c.f. RFC4648,
 | 
						|
        # section 5 "Base 64 Encoding with URL and Filename Safe Alphabet"). - The image
 | 
						|
        # type can be png or jpg. - The image should ideally be square. - The image
 | 
						|
        # should ideally have a size of 512x512.
 | 
						|
        # Corresponds to the JSON property `imageData`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :image_data
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @image_data = args[:image_data] if args.key?(:image_data)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class WebAppsListResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The manifest describing a web app.
 | 
						|
        # Corresponds to the JSON property `webApp`
 | 
						|
        # @return [Array<Google::Apis::AndroidenterpriseV1::WebApp>]
 | 
						|
        attr_accessor :web_app
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @web_app = args[:web_app] if args.key?(:web_app)
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |