# 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 DriveactivityV2 # Information about the action. class Action include Google::Apis::Core::Hashable # The actor of a Drive activity. # Corresponds to the JSON property `actor` # @return [Google::Apis::DriveactivityV2::Actor] attr_accessor :actor # Data describing the type and additional information of an action. # Corresponds to the JSON property `detail` # @return [Google::Apis::DriveactivityV2::ActionDetail] attr_accessor :detail # Information about the target of activity. # Corresponds to the JSON property `target` # @return [Google::Apis::DriveactivityV2::Target] attr_accessor :target # Information about time ranges. # Corresponds to the JSON property `timeRange` # @return [Google::Apis::DriveactivityV2::TimeRange] attr_accessor :time_range # The action occurred at this specific time. # Corresponds to the JSON property `timestamp` # @return [String] attr_accessor :timestamp def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @actor = args[:actor] if args.key?(:actor) @detail = args[:detail] if args.key?(:detail) @target = args[:target] if args.key?(:target) @time_range = args[:time_range] if args.key?(:time_range) @timestamp = args[:timestamp] if args.key?(:timestamp) end end # Data describing the type and additional information of an action. class ActionDetail include Google::Apis::Core::Hashable # A change about comments on an object. # Corresponds to the JSON property `comment` # @return [Google::Apis::DriveactivityV2::Comment] attr_accessor :comment # An object was created. # Corresponds to the JSON property `create` # @return [Google::Apis::DriveactivityV2::Create] attr_accessor :create # An object was deleted. # Corresponds to the JSON property `delete` # @return [Google::Apis::DriveactivityV2::Delete] attr_accessor :delete # A change in the object's data leak prevention status. # Corresponds to the JSON property `dlpChange` # @return [Google::Apis::DriveactivityV2::DataLeakPreventionChange] attr_accessor :dlp_change # An empty message indicating an object was edited. # Corresponds to the JSON property `edit` # @return [Google::Apis::DriveactivityV2::Edit] attr_accessor :edit # An object was moved. # Corresponds to the JSON property `move` # @return [Google::Apis::DriveactivityV2::Move] attr_accessor :move # A change of the permission setting on an item. # Corresponds to the JSON property `permissionChange` # @return [Google::Apis::DriveactivityV2::PermissionChange] attr_accessor :permission_change # Activity in applications other than Drive. # Corresponds to the JSON property `reference` # @return [Google::Apis::DriveactivityV2::ApplicationReference] attr_accessor :reference # An object was renamed. # Corresponds to the JSON property `rename` # @return [Google::Apis::DriveactivityV2::Rename] attr_accessor :rename # A deleted object was restored. # Corresponds to the JSON property `restore` # @return [Google::Apis::DriveactivityV2::Restore] attr_accessor :restore # Information about settings changes. # Corresponds to the JSON property `settingsChange` # @return [Google::Apis::DriveactivityV2::SettingsChange] attr_accessor :settings_change def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @comment = args[:comment] if args.key?(:comment) @create = args[:create] if args.key?(:create) @delete = args[:delete] if args.key?(:delete) @dlp_change = args[:dlp_change] if args.key?(:dlp_change) @edit = args[:edit] if args.key?(:edit) @move = args[:move] if args.key?(:move) @permission_change = args[:permission_change] if args.key?(:permission_change) @reference = args[:reference] if args.key?(:reference) @rename = args[:rename] if args.key?(:rename) @restore = args[:restore] if args.key?(:restore) @settings_change = args[:settings_change] if args.key?(:settings_change) end end # The actor of a Drive activity. class Actor include Google::Apis::Core::Hashable # Empty message representing an administrator. # Corresponds to the JSON property `administrator` # @return [Google::Apis::DriveactivityV2::Administrator] attr_accessor :administrator # Empty message representing an anonymous user or indicating the authenticated # user should be anonymized. # Corresponds to the JSON property `anonymous` # @return [Google::Apis::DriveactivityV2::AnonymousUser] attr_accessor :anonymous # Information about an impersonation, where an admin acts on behalf of an end # user. Information about the acting admin is not currently available. # Corresponds to the JSON property `impersonation` # @return [Google::Apis::DriveactivityV2::Impersonation] attr_accessor :impersonation # Event triggered by system operations instead of end users. # Corresponds to the JSON property `system` # @return [Google::Apis::DriveactivityV2::SystemEvent] attr_accessor :system # Information about an end user. # Corresponds to the JSON property `user` # @return [Google::Apis::DriveactivityV2::User] attr_accessor :user def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @administrator = args[:administrator] if args.key?(:administrator) @anonymous = args[:anonymous] if args.key?(:anonymous) @impersonation = args[:impersonation] if args.key?(:impersonation) @system = args[:system] if args.key?(:system) @user = args[:user] if args.key?(:user) end end # Empty message representing an administrator. class Administrator include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Empty message representing an anonymous user or indicating the authenticated # user should be anonymized. class AnonymousUser include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Represents any user (including a logged out user). class Anyone include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Activity in applications other than Drive. class ApplicationReference include Google::Apis::Core::Hashable # The reference type corresponding to this event. # 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) @type = args[:type] if args.key?(:type) end end # A comment with an assignment. class Assignment include Google::Apis::Core::Hashable # Information about an end user. # Corresponds to the JSON property `assignedUser` # @return [Google::Apis::DriveactivityV2::User] attr_accessor :assigned_user # The sub-type of this event. # Corresponds to the JSON property `subtype` # @return [String] attr_accessor :subtype def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assigned_user = args[:assigned_user] if args.key?(:assigned_user) @subtype = args[:subtype] if args.key?(:subtype) end end # A change about comments on an object. class Comment include Google::Apis::Core::Hashable # A comment with an assignment. # Corresponds to the JSON property `assignment` # @return [Google::Apis::DriveactivityV2::Assignment] attr_accessor :assignment # Users who are mentioned in this comment. # Corresponds to the JSON property `mentionedUsers` # @return [Array] attr_accessor :mentioned_users # A regular posted comment. # Corresponds to the JSON property `post` # @return [Google::Apis::DriveactivityV2::Post] attr_accessor :post # A suggestion. # Corresponds to the JSON property `suggestion` # @return [Google::Apis::DriveactivityV2::Suggestion] attr_accessor :suggestion def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @assignment = args[:assignment] if args.key?(:assignment) @mentioned_users = args[:mentioned_users] if args.key?(:mentioned_users) @post = args[:post] if args.key?(:post) @suggestion = args[:suggestion] if args.key?(:suggestion) end end # How the individual activities are consolidated. A set of activities may be # consolidated into one combined activity if they are related in some way, such # as one actor performing the same action on multiple targets, or multiple # actors performing the same action on a single target. The strategy defines the # rules for which activities are related. class ConsolidationStrategy include Google::Apis::Core::Hashable # A strategy which consolidates activities using the grouping rules from the # legacy V1 Activity API. Similar actions occurring within a window of time can # be grouped across multiple targets (such as moving a set of files at once) or # multiple actors (such as several users editing the same item). Grouping rules # for this strategy are specific to each type of action. # Corresponds to the JSON property `legacy` # @return [Google::Apis::DriveactivityV2::Legacy] attr_accessor :legacy # A strategy which does no consolidation of individual activities. # Corresponds to the JSON property `none` # @return [Google::Apis::DriveactivityV2::NoConsolidation] attr_accessor :none def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @legacy = args[:legacy] if args.key?(:legacy) @none = args[:none] if args.key?(:none) end end # An object was created by copying an existing object. class Copy include Google::Apis::Core::Hashable # A lightweight reference to the target of activity. # Corresponds to the JSON property `originalObject` # @return [Google::Apis::DriveactivityV2::TargetReference] attr_accessor :original_object def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @original_object = args[:original_object] if args.key?(:original_object) end end # An object was created. class Create include Google::Apis::Core::Hashable # An object was created by copying an existing object. # Corresponds to the JSON property `copy` # @return [Google::Apis::DriveactivityV2::Copy] attr_accessor :copy # An object was created from scratch. # Corresponds to the JSON property `new` # @return [Google::Apis::DriveactivityV2::New] attr_accessor :new # An object was uploaded into Drive. # Corresponds to the JSON property `upload` # @return [Google::Apis::DriveactivityV2::Upload] attr_accessor :upload def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @copy = args[:copy] if args.key?(:copy) @new = args[:new] if args.key?(:new) @upload = args[:upload] if args.key?(:upload) end end # A change in the object's data leak prevention status. class DataLeakPreventionChange include Google::Apis::Core::Hashable # The type of Data Leak Prevention (DLP) change. # 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) @type = args[:type] if args.key?(:type) end end # An object was deleted. class Delete include Google::Apis::Core::Hashable # The type of delete action taken. # 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) @type = args[:type] if args.key?(:type) end end # A user whose account has since been deleted. class DeletedUser include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Information about a domain. class Domain include Google::Apis::Core::Hashable # An opaque string used to identify this domain. # Corresponds to the JSON property `legacyId` # @return [String] attr_accessor :legacy_id # The name of the domain, e.g. "google.com". # 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) @legacy_id = args[:legacy_id] if args.key?(:legacy_id) @name = args[:name] if args.key?(:name) end end # Information about a shared drive. class Drive include Google::Apis::Core::Hashable # The resource name of the shared drive. The format is "COLLECTION_ID/DRIVE_ID". # Clients should not assume a specific collection ID for this resource name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A Drive item, such as a file or folder. # Corresponds to the JSON property `root` # @return [Google::Apis::DriveactivityV2::DriveItem] attr_accessor :root # The title of the shared drive. # 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) @name = args[:name] if args.key?(:name) @root = args[:root] if args.key?(:root) @title = args[:title] if args.key?(:title) end end # A single Drive activity comprising one or more Actions by one or more Actors # on one or more Targets. Some Action groupings occur spontaneously, such as # moving an item into a shared folder triggering a permission change. Other # groupings of related Actions, such as multiple Actors editing one item or # moving multiple files into a new folder, are controlled by the selection of a # ConsolidationStrategy in the QueryDriveActivityRequest. class DriveActivity include Google::Apis::Core::Hashable # Details on all actions in this activity. # Corresponds to the JSON property `actions` # @return [Array] attr_accessor :actions # All actor(s) responsible for the activity. # Corresponds to the JSON property `actors` # @return [Array] attr_accessor :actors # Data describing the type and additional information of an action. # Corresponds to the JSON property `primaryActionDetail` # @return [Google::Apis::DriveactivityV2::ActionDetail] attr_accessor :primary_action_detail # All Google Drive objects this activity is about (e.g. file, folder, drive). # This represents the state of the target immediately after the actions occurred. # Corresponds to the JSON property `targets` # @return [Array] attr_accessor :targets # Information about time ranges. # Corresponds to the JSON property `timeRange` # @return [Google::Apis::DriveactivityV2::TimeRange] attr_accessor :time_range # The activity occurred at this specific time. # Corresponds to the JSON property `timestamp` # @return [String] attr_accessor :timestamp def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @actions = args[:actions] if args.key?(:actions) @actors = args[:actors] if args.key?(:actors) @primary_action_detail = args[:primary_action_detail] if args.key?(:primary_action_detail) @targets = args[:targets] if args.key?(:targets) @time_range = args[:time_range] if args.key?(:time_range) @timestamp = args[:timestamp] if args.key?(:timestamp) end end # A Drive item which is a file. class DriveFile include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # A Drive item which is a folder. class DriveFolder include Google::Apis::Core::Hashable # The type of Drive folder. # 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) @type = args[:type] if args.key?(:type) end end # A Drive item, such as a file or folder. class DriveItem include Google::Apis::Core::Hashable # A Drive item which is a file. # Corresponds to the JSON property `driveFile` # @return [Google::Apis::DriveactivityV2::DriveFile] attr_accessor :drive_file # A Drive item which is a folder. # Corresponds to the JSON property `driveFolder` # @return [Google::Apis::DriveactivityV2::DriveFolder] attr_accessor :drive_folder # This item is deprecated; please see `DriveFile` instead. # Corresponds to the JSON property `file` # @return [Google::Apis::DriveactivityV2::File] attr_accessor :file # This item is deprecated; please see `DriveFolder` instead. # Corresponds to the JSON property `folder` # @return [Google::Apis::DriveactivityV2::Folder] attr_accessor :folder # The MIME type of the Drive item. See https://developers.google.com/drive/v3/ # web/mime-types. # Corresponds to the JSON property `mimeType` # @return [String] attr_accessor :mime_type # The target Drive item. The format is "items/ITEM_ID". # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Information about the owner of a Drive item. # Corresponds to the JSON property `owner` # @return [Google::Apis::DriveactivityV2::Owner] attr_accessor :owner # The title of the Drive item. # 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) @drive_file = args[:drive_file] if args.key?(:drive_file) @drive_folder = args[:drive_folder] if args.key?(:drive_folder) @file = args[:file] if args.key?(:file) @folder = args[:folder] if args.key?(:folder) @mime_type = args[:mime_type] if args.key?(:mime_type) @name = args[:name] if args.key?(:name) @owner = args[:owner] if args.key?(:owner) @title = args[:title] if args.key?(:title) end end # A lightweight reference to a Drive item, such as a file or folder. class DriveItemReference include Google::Apis::Core::Hashable # A Drive item which is a file. # Corresponds to the JSON property `driveFile` # @return [Google::Apis::DriveactivityV2::DriveFile] attr_accessor :drive_file # A Drive item which is a folder. # Corresponds to the JSON property `driveFolder` # @return [Google::Apis::DriveactivityV2::DriveFolder] attr_accessor :drive_folder # This item is deprecated; please see `DriveFile` instead. # Corresponds to the JSON property `file` # @return [Google::Apis::DriveactivityV2::File] attr_accessor :file # This item is deprecated; please see `DriveFolder` instead. # Corresponds to the JSON property `folder` # @return [Google::Apis::DriveactivityV2::Folder] attr_accessor :folder # The target Drive item. The format is "items/ITEM_ID". # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The title of the Drive item. # 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) @drive_file = args[:drive_file] if args.key?(:drive_file) @drive_folder = args[:drive_folder] if args.key?(:drive_folder) @file = args[:file] if args.key?(:file) @folder = args[:folder] if args.key?(:folder) @name = args[:name] if args.key?(:name) @title = args[:title] if args.key?(:title) end end # A lightweight reference to a shared drive. class DriveReference include Google::Apis::Core::Hashable # The resource name of the shared drive. The format is "COLLECTION_ID/DRIVE_ID". # Clients should not assume a specific collection ID for this resource name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The title of the shared drive. # 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) @name = args[:name] if args.key?(:name) @title = args[:title] if args.key?(:title) end end # An empty message indicating an object was edited. class Edit include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # This item is deprecated; please see `DriveFile` instead. class File include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # A comment on a file. class FileComment include Google::Apis::Core::Hashable # The comment in the discussion thread. This identifier is an opaque string # compatible with the Drive API; see https://developers.google.com/drive/v3/ # reference/comments/get # Corresponds to the JSON property `legacyCommentId` # @return [String] attr_accessor :legacy_comment_id # The discussion thread to which the comment was added. This identifier is an # opaque string compatible with the Drive API and references the first comment # in a discussion; see https://developers.google.com/drive/v3/reference/comments/ # get # Corresponds to the JSON property `legacyDiscussionId` # @return [String] attr_accessor :legacy_discussion_id # The link to the discussion thread containing this comment, for example, "https: # //docs.google.com/DOCUMENT_ID/edit?disco=THREAD_ID". # Corresponds to the JSON property `linkToDiscussion` # @return [String] attr_accessor :link_to_discussion # A Drive item, such as a file or folder. # Corresponds to the JSON property `parent` # @return [Google::Apis::DriveactivityV2::DriveItem] attr_accessor :parent def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @legacy_comment_id = args[:legacy_comment_id] if args.key?(:legacy_comment_id) @legacy_discussion_id = args[:legacy_discussion_id] if args.key?(:legacy_discussion_id) @link_to_discussion = args[:link_to_discussion] if args.key?(:link_to_discussion) @parent = args[:parent] if args.key?(:parent) end end # This item is deprecated; please see `DriveFolder` instead. class Folder include Google::Apis::Core::Hashable # This field is deprecated; please see `DriveFolder.type` instead. # 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) @type = args[:type] if args.key?(:type) end end # Information about a group. class Group include Google::Apis::Core::Hashable # The email address of the group. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email # The title of the group. # 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) @email = args[:email] if args.key?(:email) @title = args[:title] if args.key?(:title) end end # Information about an impersonation, where an admin acts on behalf of an end # user. Information about the acting admin is not currently available. class Impersonation include Google::Apis::Core::Hashable # Information about an end user. # Corresponds to the JSON property `impersonatedUser` # @return [Google::Apis::DriveactivityV2::User] attr_accessor :impersonated_user def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @impersonated_user = args[:impersonated_user] if args.key?(:impersonated_user) end end # A known user. class KnownUser include Google::Apis::Core::Hashable # True if this is the user making the request. # Corresponds to the JSON property `isCurrentUser` # @return [Boolean] attr_accessor :is_current_user alias_method :is_current_user?, :is_current_user # The identifier for this user that can be used with the People API to get more # information. The format is "people/ACCOUNT_ID". See https://developers.google. # com/people/. # Corresponds to the JSON property `personName` # @return [String] attr_accessor :person_name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @is_current_user = args[:is_current_user] if args.key?(:is_current_user) @person_name = args[:person_name] if args.key?(:person_name) end end # A strategy which consolidates activities using the grouping rules from the # legacy V1 Activity API. Similar actions occurring within a window of time can # be grouped across multiple targets (such as moving a set of files at once) or # multiple actors (such as several users editing the same item). Grouping rules # for this strategy are specific to each type of action. class Legacy include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # An object was moved. class Move include Google::Apis::Core::Hashable # The added parent object(s). # Corresponds to the JSON property `addedParents` # @return [Array] attr_accessor :added_parents # The removed parent object(s). # Corresponds to the JSON property `removedParents` # @return [Array] attr_accessor :removed_parents def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @added_parents = args[:added_parents] if args.key?(:added_parents) @removed_parents = args[:removed_parents] if args.key?(:removed_parents) end end # An object was created from scratch. class New include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # A strategy which does no consolidation of individual activities. class NoConsolidation include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Information about the owner of a Drive item. class Owner include Google::Apis::Core::Hashable # Information about a domain. # Corresponds to the JSON property `domain` # @return [Google::Apis::DriveactivityV2::Domain] attr_accessor :domain # A lightweight reference to a shared drive. # Corresponds to the JSON property `drive` # @return [Google::Apis::DriveactivityV2::DriveReference] attr_accessor :drive # This item is deprecated; please see `DriveReference` instead. # Corresponds to the JSON property `teamDrive` # @return [Google::Apis::DriveactivityV2::TeamDriveReference] attr_accessor :team_drive # Information about an end user. # Corresponds to the JSON property `user` # @return [Google::Apis::DriveactivityV2::User] attr_accessor :user def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @domain = args[:domain] if args.key?(:domain) @drive = args[:drive] if args.key?(:drive) @team_drive = args[:team_drive] if args.key?(:team_drive) @user = args[:user] if args.key?(:user) end end # The permission setting of an object. class Permission include Google::Apis::Core::Hashable # If true, the item can be discovered (e.g. in the user's "Shared with me" # collection) without needing a link to the item. # Corresponds to the JSON property `allowDiscovery` # @return [Boolean] attr_accessor :allow_discovery alias_method :allow_discovery?, :allow_discovery # Represents any user (including a logged out user). # Corresponds to the JSON property `anyone` # @return [Google::Apis::DriveactivityV2::Anyone] attr_accessor :anyone # Information about a domain. # Corresponds to the JSON property `domain` # @return [Google::Apis::DriveactivityV2::Domain] attr_accessor :domain # Information about a group. # Corresponds to the JSON property `group` # @return [Google::Apis::DriveactivityV2::Group] attr_accessor :group # Indicates the Google Drive permissions role. The role determines a user's # ability to read, write, and comment on items. # Corresponds to the JSON property `role` # @return [String] attr_accessor :role # Information about an end user. # Corresponds to the JSON property `user` # @return [Google::Apis::DriveactivityV2::User] attr_accessor :user def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @allow_discovery = args[:allow_discovery] if args.key?(:allow_discovery) @anyone = args[:anyone] if args.key?(:anyone) @domain = args[:domain] if args.key?(:domain) @group = args[:group] if args.key?(:group) @role = args[:role] if args.key?(:role) @user = args[:user] if args.key?(:user) end end # A change of the permission setting on an item. class PermissionChange include Google::Apis::Core::Hashable # The set of permissions added by this change. # Corresponds to the JSON property `addedPermissions` # @return [Array] attr_accessor :added_permissions # The set of permissions removed by this change. # Corresponds to the JSON property `removedPermissions` # @return [Array] attr_accessor :removed_permissions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @added_permissions = args[:added_permissions] if args.key?(:added_permissions) @removed_permissions = args[:removed_permissions] if args.key?(:removed_permissions) end end # A regular posted comment. class Post include Google::Apis::Core::Hashable # The sub-type of this event. # Corresponds to the JSON property `subtype` # @return [String] attr_accessor :subtype def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @subtype = args[:subtype] if args.key?(:subtype) end end # The request message for querying Drive activity. class QueryDriveActivityRequest include Google::Apis::Core::Hashable # Return activities for this Drive folder and all children and descendants. The # format is "items/ITEM_ID". # Corresponds to the JSON property `ancestorName` # @return [String] attr_accessor :ancestor_name # How the individual activities are consolidated. A set of activities may be # consolidated into one combined activity if they are related in some way, such # as one actor performing the same action on multiple targets, or multiple # actors performing the same action on a single target. The strategy defines the # rules for which activities are related. # Corresponds to the JSON property `consolidationStrategy` # @return [Google::Apis::DriveactivityV2::ConsolidationStrategy] attr_accessor :consolidation_strategy # The filtering for items returned from this query request. The format of the # filter string is a sequence of expressions, joined by an optional "AND", where # each expression is of the form "field operator value". Supported fields: - # time: Uses numerical operators on date values either in terms of milliseconds # since Jan 1, 1970 or in RFC 3339 format. Examples: - time > 1452409200000 AND # time <= 1492812924310 - time >= "2016-01-10T01:02:03-05:00" - detail. # action_detail_case: Uses the "has" operator (:) and either a singular value or # a list of allowed action types enclosed in parentheses. Examples: - detail. # action_detail_case: RENAME - detail.action_detail_case:(CREATE EDIT) - -detail. # action_detail_case:MOVE # Corresponds to the JSON property `filter` # @return [String] attr_accessor :filter # Return activities for this Drive item. The format is "items/ITEM_ID". # Corresponds to the JSON property `itemName` # @return [String] attr_accessor :item_name # The miminum number of activities desired in the response; the server will # attempt to return at least this quanitity. The server may also return fewer # activities if it has a partial response ready before the request times out. If # not set, a default value is used. # Corresponds to the JSON property `pageSize` # @return [Fixnum] attr_accessor :page_size # The token identifying which page of results to return. Set this to the # next_page_token value returned from a previous query to obtain the following # page of results. If not set, the first page of results will be returned. # Corresponds to the JSON property `pageToken` # @return [String] attr_accessor :page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @ancestor_name = args[:ancestor_name] if args.key?(:ancestor_name) @consolidation_strategy = args[:consolidation_strategy] if args.key?(:consolidation_strategy) @filter = args[:filter] if args.key?(:filter) @item_name = args[:item_name] if args.key?(:item_name) @page_size = args[:page_size] if args.key?(:page_size) @page_token = args[:page_token] if args.key?(:page_token) end end # Response message for querying Drive activity. class QueryDriveActivityResponse include Google::Apis::Core::Hashable # List of activity requested. # Corresponds to the JSON property `activities` # @return [Array] attr_accessor :activities # Token to retrieve the next page of results, or empty if there are no more # results in the list. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @activities = args[:activities] if args.key?(:activities) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # An object was renamed. class Rename include Google::Apis::Core::Hashable # The new title of the drive object. # Corresponds to the JSON property `newTitle` # @return [String] attr_accessor :new_title # The previous title of the drive object. # Corresponds to the JSON property `oldTitle` # @return [String] attr_accessor :old_title def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @new_title = args[:new_title] if args.key?(:new_title) @old_title = args[:old_title] if args.key?(:old_title) end end # A deleted object was restored. class Restore include Google::Apis::Core::Hashable # The type of restore action taken. # 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) @type = args[:type] if args.key?(:type) end end # Information about restriction policy changes to a feature. class RestrictionChange include Google::Apis::Core::Hashable # The feature which had a change in restriction policy. # Corresponds to the JSON property `feature` # @return [String] attr_accessor :feature # The restriction in place after the change. # Corresponds to the JSON property `newRestriction` # @return [String] attr_accessor :new_restriction def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @feature = args[:feature] if args.key?(:feature) @new_restriction = args[:new_restriction] if args.key?(:new_restriction) end end # Information about settings changes. class SettingsChange include Google::Apis::Core::Hashable # The set of changes made to restrictions. # Corresponds to the JSON property `restrictionChanges` # @return [Array] attr_accessor :restriction_changes def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @restriction_changes = args[:restriction_changes] if args.key?(:restriction_changes) end end # A suggestion. class Suggestion include Google::Apis::Core::Hashable # The sub-type of this event. # Corresponds to the JSON property `subtype` # @return [String] attr_accessor :subtype def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @subtype = args[:subtype] if args.key?(:subtype) end end # Event triggered by system operations instead of end users. class SystemEvent include Google::Apis::Core::Hashable # The type of the system event that may triggered activity. # 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) @type = args[:type] if args.key?(:type) end end # Information about the target of activity. class Target include Google::Apis::Core::Hashable # Information about a shared drive. # Corresponds to the JSON property `drive` # @return [Google::Apis::DriveactivityV2::Drive] attr_accessor :drive # A Drive item, such as a file or folder. # Corresponds to the JSON property `driveItem` # @return [Google::Apis::DriveactivityV2::DriveItem] attr_accessor :drive_item # A comment on a file. # Corresponds to the JSON property `fileComment` # @return [Google::Apis::DriveactivityV2::FileComment] attr_accessor :file_comment # This item is deprecated; please see `Drive` instead. # Corresponds to the JSON property `teamDrive` # @return [Google::Apis::DriveactivityV2::TeamDrive] attr_accessor :team_drive def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @drive = args[:drive] if args.key?(:drive) @drive_item = args[:drive_item] if args.key?(:drive_item) @file_comment = args[:file_comment] if args.key?(:file_comment) @team_drive = args[:team_drive] if args.key?(:team_drive) end end # A lightweight reference to the target of activity. class TargetReference include Google::Apis::Core::Hashable # A lightweight reference to a shared drive. # Corresponds to the JSON property `drive` # @return [Google::Apis::DriveactivityV2::DriveReference] attr_accessor :drive # A lightweight reference to a Drive item, such as a file or folder. # Corresponds to the JSON property `driveItem` # @return [Google::Apis::DriveactivityV2::DriveItemReference] attr_accessor :drive_item # This item is deprecated; please see `DriveReference` instead. # Corresponds to the JSON property `teamDrive` # @return [Google::Apis::DriveactivityV2::TeamDriveReference] attr_accessor :team_drive def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @drive = args[:drive] if args.key?(:drive) @drive_item = args[:drive_item] if args.key?(:drive_item) @team_drive = args[:team_drive] if args.key?(:team_drive) end end # This item is deprecated; please see `Drive` instead. class TeamDrive include Google::Apis::Core::Hashable # This field is deprecated; please see `Drive.name` instead. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A Drive item, such as a file or folder. # Corresponds to the JSON property `root` # @return [Google::Apis::DriveactivityV2::DriveItem] attr_accessor :root # This field is deprecated; please see `Drive.title` instead. # 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) @name = args[:name] if args.key?(:name) @root = args[:root] if args.key?(:root) @title = args[:title] if args.key?(:title) end end # This item is deprecated; please see `DriveReference` instead. class TeamDriveReference include Google::Apis::Core::Hashable # This field is deprecated; please see `DriveReference.name` instead. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # This field is deprecated; please see `DriveReference.title` instead. # 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) @name = args[:name] if args.key?(:name) @title = args[:title] if args.key?(:title) end end # Information about time ranges. class TimeRange include Google::Apis::Core::Hashable # The end of the time range. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # The start of the time range. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_time = args[:end_time] if args.key?(:end_time) @start_time = args[:start_time] if args.key?(:start_time) end end # A user about whom nothing is currently known. class UnknownUser include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # An object was uploaded into Drive. class Upload include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Information about an end user. class User include Google::Apis::Core::Hashable # A user whose account has since been deleted. # Corresponds to the JSON property `deletedUser` # @return [Google::Apis::DriveactivityV2::DeletedUser] attr_accessor :deleted_user # A known user. # Corresponds to the JSON property `knownUser` # @return [Google::Apis::DriveactivityV2::KnownUser] attr_accessor :known_user # A user about whom nothing is currently known. # Corresponds to the JSON property `unknownUser` # @return [Google::Apis::DriveactivityV2::UnknownUser] attr_accessor :unknown_user def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @deleted_user = args[:deleted_user] if args.key?(:deleted_user) @known_user = args[:known_user] if args.key?(:known_user) @unknown_user = args[:unknown_user] if args.key?(:unknown_user) end end end end end