# 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 AdminReportsV1 # JSON template for a collection of activities. class Activities include Google::Apis::Core::Hashable # ETag of the resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Each activity record in the response. # Corresponds to the JSON property `items` # @return [Array] attr_accessor :items # The type of API resource. For an activity report, the value is `reports# # activities`. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Token for retrieving the follow-on next page of the report. The `nextPageToken` # value is used in the request's `pageToken` query string. # 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) @etag = args[:etag] if args.key?(:etag) @items = args[:items] if args.key?(:items) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # JSON template for the activity resource. class Activity include Google::Apis::Core::Hashable # User doing the action. # Corresponds to the JSON property `actor` # @return [Google::Apis::AdminReportsV1::Activity::Actor] attr_accessor :actor # ETag of the entry. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # Activity events in the report. # Corresponds to the JSON property `events` # @return [Array] attr_accessor :events # Unique identifier for each activity record. # Corresponds to the JSON property `id` # @return [Google::Apis::AdminReportsV1::Activity::Id] attr_accessor :id # IP address of the user doing the action. This is the Internet Protocol (IP) # address of the user when logging into G Suite which may or may not reflect the # user's physical location. For example, the IP address can be the user's proxy # server's address or a virtual private network (VPN) address. The API supports # IPv4 and IPv6. # Corresponds to the JSON property `ipAddress` # @return [String] attr_accessor :ip_address # The type of API resource. For an activity report, the value is `audit#activity` # . # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # This is the domain that is affected by the report's event. For example domain # of Admin console or the Drive application's document owner. # Corresponds to the JSON property `ownerDomain` # @return [String] attr_accessor :owner_domain def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @actor = args[:actor] if args.key?(:actor) @etag = args[:etag] if args.key?(:etag) @events = args[:events] if args.key?(:events) @id = args[:id] if args.key?(:id) @ip_address = args[:ip_address] if args.key?(:ip_address) @kind = args[:kind] if args.key?(:kind) @owner_domain = args[:owner_domain] if args.key?(:owner_domain) end # User doing the action. class Actor include Google::Apis::Core::Hashable # The type of actor. # Corresponds to the JSON property `callerType` # @return [String] attr_accessor :caller_type # The primary email address of the actor. May be absent if there is no email # address associated with the actor. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email # Only present when `callerType` is `KEY`. Can be the `consumer_key` of the # requestor for OAuth 2LO API requests or an identifier for robot accounts. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # The unique G Suite profile ID of the actor. May be absent if the actor is not # a G Suite user. # Corresponds to the JSON property `profileId` # @return [String] attr_accessor :profile_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @caller_type = args[:caller_type] if args.key?(:caller_type) @email = args[:email] if args.key?(:email) @key = args[:key] if args.key?(:key) @profile_id = args[:profile_id] if args.key?(:profile_id) end end # class Event include Google::Apis::Core::Hashable # Name of the event. This is the specific name of the activity reported by the # API. And each `eventName` is related to a specific G Suite service or feature # which the API organizes into types of events. For `eventName` request # parameters in general: - If no `eventName` is given, the report returns all # possible instances of an `eventName`. - When you request an `eventName`, the # API's response returns all activities which contain that `eventName`. It is # possible that the returned activities will have other `eventName` properties # in addition to the one requested. For more information about `eventName` # properties, see the list of event names for various applications above in ` # applicationName`. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Parameter value pairs for various applications. For more information about ` # eventName` parameters, see the list of event names for various applications # above in `applicationName`. # Corresponds to the JSON property `parameters` # @return [Array] attr_accessor :parameters # Type of event. The G Suite service or feature that an administrator changes is # identified in the `type` property which identifies an event using the ` # eventName` property. For a full list of the API's `type` categories, see the # list of event names for various applications above in `applicationName`. # 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) @name = args[:name] if args.key?(:name) @parameters = args[:parameters] if args.key?(:parameters) @type = args[:type] if args.key?(:type) end # class Parameter include Google::Apis::Core::Hashable # Boolean value of the parameter. # Corresponds to the JSON property `boolValue` # @return [Boolean] attr_accessor :bool_value alias_method :bool_value?, :bool_value # Integer value of the parameter. # Corresponds to the JSON property `intValue` # @return [Fixnum] attr_accessor :int_value # Nested parameter value pairs associated with this parameter. Complex value # type for a parameter are returned as a list of parameter values. For example, # the address parameter may have a value as `[`parameter: [`name: city, value: # abc`]`]` # Corresponds to the JSON property `messageValue` # @return [Google::Apis::AdminReportsV1::Activity::Event::Parameter::MessageValue] attr_accessor :message_value # Integer values of the parameter. # Corresponds to the JSON property `multiIntValue` # @return [Array] attr_accessor :multi_int_value # List of `messageValue` objects. # Corresponds to the JSON property `multiMessageValue` # @return [Array] attr_accessor :multi_message_value # String values of the parameter. # Corresponds to the JSON property `multiValue` # @return [Array] attr_accessor :multi_value # The name of the parameter. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # String value of the parameter. # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bool_value = args[:bool_value] if args.key?(:bool_value) @int_value = args[:int_value] if args.key?(:int_value) @message_value = args[:message_value] if args.key?(:message_value) @multi_int_value = args[:multi_int_value] if args.key?(:multi_int_value) @multi_message_value = args[:multi_message_value] if args.key?(:multi_message_value) @multi_value = args[:multi_value] if args.key?(:multi_value) @name = args[:name] if args.key?(:name) @value = args[:value] if args.key?(:value) end # Nested parameter value pairs associated with this parameter. Complex value # type for a parameter are returned as a list of parameter values. For example, # the address parameter may have a value as `[`parameter: [`name: city, value: # abc`]`]` class MessageValue include Google::Apis::Core::Hashable # Parameter values # Corresponds to the JSON property `parameter` # @return [Array] attr_accessor :parameter def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @parameter = args[:parameter] if args.key?(:parameter) end end # class MultiMessageValue include Google::Apis::Core::Hashable # Parameter values # Corresponds to the JSON property `parameter` # @return [Array] attr_accessor :parameter def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @parameter = args[:parameter] if args.key?(:parameter) end end end end # Unique identifier for each activity record. class Id include Google::Apis::Core::Hashable # Application name to which the event belongs. For possible values see the list # of applications above in `applicationName`. # Corresponds to the JSON property `applicationName` # @return [String] attr_accessor :application_name # The unique identifier for a G suite account. # Corresponds to the JSON property `customerId` # @return [String] attr_accessor :customer_id # Time of occurrence of the activity. This is in UNIX epoch time in seconds. # Corresponds to the JSON property `time` # @return [DateTime] attr_accessor :time # Unique qualifier if multiple events have the same time. # Corresponds to the JSON property `uniqueQualifier` # @return [Fixnum] attr_accessor :unique_qualifier def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @application_name = args[:application_name] if args.key?(:application_name) @customer_id = args[:customer_id] if args.key?(:customer_id) @time = args[:time] if args.key?(:time) @unique_qualifier = args[:unique_qualifier] if args.key?(:unique_qualifier) end end end # A notification channel used to watch for resource changes. class Channel include Google::Apis::Core::Hashable # The address where notifications are delivered for this channel. # Corresponds to the JSON property `address` # @return [String] attr_accessor :address # Date and time of notification channel expiration, expressed as a Unix # timestamp, in milliseconds. Optional. # Corresponds to the JSON property `expiration` # @return [Fixnum] attr_accessor :expiration # A UUID or similar unique string that identifies this channel. # Corresponds to the JSON property `id` # @return [String] attr_accessor :id # Identifies this as a notification channel used to watch for changes to a # resource, which is "`api#channel`". # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Additional parameters controlling delivery channel behavior. Optional. # Corresponds to the JSON property `params` # @return [Hash] attr_accessor :params # A Boolean value to indicate whether payload is wanted. Optional. # Corresponds to the JSON property `payload` # @return [Boolean] attr_accessor :payload alias_method :payload?, :payload # An opaque ID that identifies the resource being watched on this channel. # Stable across different API versions. # Corresponds to the JSON property `resourceId` # @return [String] attr_accessor :resource_id # A version-specific identifier for the watched resource. # Corresponds to the JSON property `resourceUri` # @return [String] attr_accessor :resource_uri # An arbitrary string delivered to the target address with each notification # delivered over this channel. Optional. # Corresponds to the JSON property `token` # @return [String] attr_accessor :token # The type of delivery mechanism used for this channel. The value should be set # to `"web_hook"`. # 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) @address = args[:address] if args.key?(:address) @expiration = args[:expiration] if args.key?(:expiration) @id = args[:id] if args.key?(:id) @kind = args[:kind] if args.key?(:kind) @params = args[:params] if args.key?(:params) @payload = args[:payload] if args.key?(:payload) @resource_id = args[:resource_id] if args.key?(:resource_id) @resource_uri = args[:resource_uri] if args.key?(:resource_uri) @token = args[:token] if args.key?(:token) @type = args[:type] if args.key?(:type) end end # JSON template for a parameter used in various reports. class NestedParameter include Google::Apis::Core::Hashable # Boolean value of the parameter. # Corresponds to the JSON property `boolValue` # @return [Boolean] attr_accessor :bool_value alias_method :bool_value?, :bool_value # Integer value of the parameter. # Corresponds to the JSON property `intValue` # @return [Fixnum] attr_accessor :int_value # Multiple boolean values of the parameter. # Corresponds to the JSON property `multiBoolValue` # @return [Array] attr_accessor :multi_bool_value # Multiple integer values of the parameter. # Corresponds to the JSON property `multiIntValue` # @return [Array] attr_accessor :multi_int_value # Multiple string values of the parameter. # Corresponds to the JSON property `multiValue` # @return [Array] attr_accessor :multi_value # The name of the parameter. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # String value of the parameter. # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bool_value = args[:bool_value] if args.key?(:bool_value) @int_value = args[:int_value] if args.key?(:int_value) @multi_bool_value = args[:multi_bool_value] if args.key?(:multi_bool_value) @multi_int_value = args[:multi_int_value] if args.key?(:multi_int_value) @multi_value = args[:multi_value] if args.key?(:multi_value) @name = args[:name] if args.key?(:name) @value = args[:value] if args.key?(:value) end end # JSON template for a usage report. class UsageReport include Google::Apis::Core::Hashable # Output only. The date of the report request. # Corresponds to the JSON property `date` # @return [String] attr_accessor :date # Output only. Information about the type of the item. # Corresponds to the JSON property `entity` # @return [Google::Apis::AdminReportsV1::UsageReport::Entity] attr_accessor :entity # ETag of the resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The type of API resource. For a usage report, the value is `admin#reports# # usageReport`. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Output only. Parameter value pairs for various applications. For the Entity # Usage Report parameters and values, see [the Entity Usage parameters reference] # (/admin-sdk/reports/v1/reference/usage-ref-appendix-a/entities). # Corresponds to the JSON property `parameters` # @return [Array] attr_accessor :parameters def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @date = args[:date] if args.key?(:date) @entity = args[:entity] if args.key?(:entity) @etag = args[:etag] if args.key?(:etag) @kind = args[:kind] if args.key?(:kind) @parameters = args[:parameters] if args.key?(:parameters) end # Output only. Information about the type of the item. class Entity include Google::Apis::Core::Hashable # Output only. The unique identifier of the customer's account. # Corresponds to the JSON property `customerId` # @return [String] attr_accessor :customer_id # Output only. Object key. Only relevant if entity.type = "OBJECT" Note: # external-facing name of report is "Entities" rather than "Objects". # Corresponds to the JSON property `entityId` # @return [String] attr_accessor :entity_id # Output only. The user's immutable G Suite profile identifier. # Corresponds to the JSON property `profileId` # @return [String] attr_accessor :profile_id # Output only. The type of item. The value is `user`. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # Output only. The user's email address. Only relevant if entity.type = "USER" # Corresponds to the JSON property `userEmail` # @return [String] attr_accessor :user_email def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @customer_id = args[:customer_id] if args.key?(:customer_id) @entity_id = args[:entity_id] if args.key?(:entity_id) @profile_id = args[:profile_id] if args.key?(:profile_id) @type = args[:type] if args.key?(:type) @user_email = args[:user_email] if args.key?(:user_email) end end # class Parameter include Google::Apis::Core::Hashable # Output only. Boolean value of the parameter. # Corresponds to the JSON property `boolValue` # @return [Boolean] attr_accessor :bool_value alias_method :bool_value?, :bool_value # The RFC 3339 formatted value of the parameter, for example 2010-10-28T10:26:35. # 000Z. # Corresponds to the JSON property `datetimeValue` # @return [DateTime] attr_accessor :datetime_value # Output only. Integer value of the parameter. # Corresponds to the JSON property `intValue` # @return [Fixnum] attr_accessor :int_value # Output only. Nested message value of the parameter. # Corresponds to the JSON property `msgValue` # @return [Array>] attr_accessor :msg_value # The name of the parameter. For the User Usage Report parameter names, see the # User Usage parameters reference. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. String value of the parameter. # Corresponds to the JSON property `stringValue` # @return [String] attr_accessor :string_value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bool_value = args[:bool_value] if args.key?(:bool_value) @datetime_value = args[:datetime_value] if args.key?(:datetime_value) @int_value = args[:int_value] if args.key?(:int_value) @msg_value = args[:msg_value] if args.key?(:msg_value) @name = args[:name] if args.key?(:name) @string_value = args[:string_value] if args.key?(:string_value) end end end # class UsageReports include Google::Apis::Core::Hashable # ETag of the resource. # Corresponds to the JSON property `etag` # @return [String] attr_accessor :etag # The type of API resource. For a usage report, the value is `admin#reports# # usageReports`. # Corresponds to the JSON property `kind` # @return [String] attr_accessor :kind # Token to specify next page. A report with multiple pages has a `nextPageToken` # property in the response. For your follow-on requests getting all of the # report's pages, enter the `nextPageToken` value in the `pageToken` query # string. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # Various application parameter records. # Corresponds to the JSON property `usageReports` # @return [Array] attr_accessor :usage_reports # Warnings, if any. # Corresponds to the JSON property `warnings` # @return [Array] attr_accessor :warnings def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @etag = args[:etag] if args.key?(:etag) @kind = args[:kind] if args.key?(:kind) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @usage_reports = args[:usage_reports] if args.key?(:usage_reports) @warnings = args[:warnings] if args.key?(:warnings) end # class Warning include Google::Apis::Core::Hashable # Machine readable code or warning type. The warning code value is `200`. # Corresponds to the JSON property `code` # @return [String] attr_accessor :code # Key-value pairs to give detailed information on the warning. # Corresponds to the JSON property `data` # @return [Array] attr_accessor :data # The human readable messages for a warning are: - Data is not available warning # - Sorry, data for date yyyy-mm-dd for application "`application name`" is not # available. - Partial data is available warning - Data for date yyyy-mm-dd for # application "`application name`" is not available right now, please try again # after a few hours. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @data = args[:data] if args.key?(:data) @message = args[:message] if args.key?(:message) end # class Datum include Google::Apis::Core::Hashable # Key associated with a key-value pair to give detailed information on the # warning. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # Value associated with a key-value pair to give detailed information on the # warning. # Corresponds to the JSON property `value` # @return [String] attr_accessor :value def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @key = args[:key] if args.key?(:key) @value = args[:value] if args.key?(:value) end end end end end end end