blob: 6fdd71fe80a1be5541ffeaeb8a88da95797fb563 [file]
// This is a generated file (see the discoveryapis_generator project).
// ignore_for_file: unused_import, unnecessary_cast
library googleapis.admin.reports_v1;
import 'dart:core' as core;
import 'dart:async' as async;
import 'dart:convert' as convert;
import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
import 'package:http/http.dart' as http;
export 'package:_discoveryapis_commons/_discoveryapis_commons.dart'
show ApiRequestError, DetailedApiRequestError;
const core.String USER_AGENT = 'dart-api-client admin/reports_v1';
/// Admin SDK lets administrators of enterprise domains to view and manage
/// resources like user, groups etc. It also provides audit and usage reports of
/// domain.
class AdminApi {
/// View audit reports for your G Suite domain
static const AdminReportsAuditReadonlyScope =
"https://www.googleapis.com/auth/admin.reports.audit.readonly";
/// View usage reports for your G Suite domain
static const AdminReportsUsageReadonlyScope =
"https://www.googleapis.com/auth/admin.reports.usage.readonly";
final commons.ApiRequester _requester;
ActivitiesResourceApi get activities => new ActivitiesResourceApi(_requester);
ChannelsResourceApi get channels => new ChannelsResourceApi(_requester);
CustomerUsageReportsResourceApi get customerUsageReports =>
new CustomerUsageReportsResourceApi(_requester);
EntityUsageReportsResourceApi get entityUsageReports =>
new EntityUsageReportsResourceApi(_requester);
UserUsageReportResourceApi get userUsageReport =>
new UserUsageReportResourceApi(_requester);
AdminApi(http.Client client,
{core.String rootUrl = "https://www.googleapis.com/",
core.String servicePath = ""})
: _requester =
new commons.ApiRequester(client, rootUrl, servicePath, USER_AGENT);
}
class ActivitiesResourceApi {
final commons.ApiRequester _requester;
ActivitiesResourceApi(commons.ApiRequester client) : _requester = client;
/// Retrieves a list of activities for a specific customer's account and
/// application such as the Admin console application or the Google Drive
/// application. For more information, see the guides for administrator and
/// Google Drive activity reports. For more information about the activity
/// report's parameters, see the activity parameters reference guides.
///
/// Request parameters:
///
/// [userKey] - Represents the profile ID or the user email for which the data
/// should be filtered. Can be all for all information, or userKey for a
/// user's unique G Suite profile ID or their primary email address.
///
/// [applicationName] - Application name for which the events are to be
/// retrieved.
/// Value must have pattern
/// "(admin)|(calendar)|(drive)|(login)|(mobile)|(token)|(groups)|(saml)|(chat)|(gplus)|(rules)|(jamboard)|(meet)|(user_accounts)|(access_transparency)|(groups_enterprise)|(gcp)|(context_aware_access)|(data_studio)|(chrome)".
/// Possible string values are:
/// - "application_name_undefined"
/// - "access_transparency" : The G Suite Access Transparency activity reports
/// return information about different types of Access Transparency activity
/// events.
/// - "admin" : The Admin console application's activity reports return
/// account information about different types of administrator activity
/// events.
/// - "calendar" : The G Suite Calendar application's activity reports return
/// information about various Calendar activity events.
/// - "chat" : The Chat activity reports return information about various Chat
/// activity events.
/// - "drive" : The Google Drive application's activity reports return
/// information about various Google Drive activity events. The Drive activity
/// report is only available for G Suite Business customers.
/// - "gcp" : The Google Cloud Platform application's activity reports return
/// information about various GCP activity events.
/// - "gplus" : The Google+ application's activity reports return information
/// about various Google+ activity events.
/// - "groups" : The Google Groups application's activity reports return
/// information about various Groups activity events.
/// - "groups_enterprise" : The Enterprise Groups activity reports return
/// information about various Enterprise group activity events.
/// - "jamboard" : The Jamboard activity reports return information about
/// various Jamboard activity events.
/// - "login" : The Login application's activity reports return account
/// information about different types of Login activity events.
/// - "meet" : The Meet Audit activity report return information about
/// different types of Meet Audit activity events.
/// - "mobile" : The Mobile Audit activity report return information about
/// different types of Mobile Audit activity events.
/// - "rules" : The Rules activity report return information about different
/// types of Rules activity events.
/// - "saml" : The SAML activity report return information about different
/// types of SAML activity events.
/// - "token" : The Token application's activity reports return account
/// information about different types of Token activity events.
/// - "user_accounts" : The User Accounts application's activity reports
/// return account information about different types of User Accounts activity
/// events.
/// - "context_aware_access" : The Context-aware access activity reports
/// return information about users' access denied events due to Context-aware
/// access rules.
/// - "chrome" : The Chrome activity reports return information about unsafe
/// events reported in the context of the WebProtect features of BeyondCorp.
///
/// [customerId] - The unique ID of the customer to retrieve data for.
/// Value must have pattern "C.+".
///
/// [actorIpAddress] - The Internet Protocol (IP) Address of host where the
/// event was performed. This is an additional way to filter a report's
/// summary using the IP address of the user whose activity is being reported.
/// This IP address 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. This parameter supports both IPv4
/// and IPv6 address versions.
///
/// [eventName] - The name of the event being queried by the API. Each
/// eventName is related to a specific G Suite service or feature which the
/// API organizes into types of events. An example is the Google Calendar
/// events in the Admin console application's reports. The Calendar Settings
/// type structure has all of the Calendar eventName activities reported by
/// the API. When an administrator changes a Calendar setting, the API reports
/// this activity in the Calendar Settings type and eventName parameters. For
/// more information about eventName query strings and parameters, see the
/// list of event names for various applications above in applicationName.
///
/// [pageToken] - The token to specify next page. A report with multiple pages
/// has a nextPageToken property in the response. In your follow-on request
/// getting the next page of the report, enter the nextPageToken value in the
/// pageToken query string.
///
/// [startTime] - Sets the beginning of the range of time shown in the report.
/// The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z.
/// The report returns all activities from startTime until endTime. The
/// startTime must be before the endTime (if specified) and the current time
/// when the request is made, or the API returns an error.
/// Value must have pattern
/// "(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.(\d+))?(?:(Z)|([-+])(\d\d):(\d\d))".
///
/// [maxResults] - Determines how many activity records are shown on each
/// response page. For example, if the request sets maxResults=1 and the
/// report has two activities, the report has two pages. The response's
/// nextPageToken property has the token to the second page. The maxResults
/// query string is optional in the request. The default value is 1000.
/// Value must be between "1" and "1000".
///
/// [filters] - The filters query string is a comma-separated list. The list
/// is composed of event parameters that are manipulated by relational
/// operators. Event parameters are in the form parameter1 name[parameter1
/// value],parameter2 name[parameter2 value],... These event parameters are
/// associated with a specific eventName. An empty report is returned if the
/// filtered request's parameter does not belong to the eventName. For more
/// information about eventName parameters, see the list of event names for
/// various applications above in applicationName. In the following Admin
/// Activity example, the <> operator is URL-encoded in the request's query
/// string (%3C%3E): GET...&eventName=CHANGE_CALENDAR_SETTING
/// &filters=NEW_VALUE%3C%3EREAD_ONLY_ACCESS In the following Drive example,
/// the list can be a view or edit event's doc_id parameter with a value that
/// is manipulated by an 'equal to' (==) or 'not equal to' (<>) relational
/// operator. In the first example, the report returns each edited document's
/// doc_id. In the second example, the report returns each viewed document's
/// doc_id that equals the value 12345 and does not return any viewed
/// document's which have a doc_id value of 98765. The <> operator is
/// URL-encoded in the request's query string (%3C%3E):
/// GET...&eventName=edit&filters=doc_id
/// GET...&eventName=view&filters=doc_id==12345,doc_id%3C%3E98765 The
/// relational operators include: - == - 'equal to'. - <> - 'not equal to'. It
/// is URL-encoded (%3C%3E). - < - 'less than'. It is URL-encoded (%3C). - <=
/// - 'less than or equal to'. It is URL-encoded (%3C=). - > - 'greater than'.
/// It is URL-encoded (%3E). - >= - 'greater than or equal to'. It is
/// URL-encoded (%3E=). *Note:* The API doesn't accept multiple values of a
/// parameter. If a particular parameter is supplied more than once in the API
/// request, the API only accepts the last value of that request parameter. In
/// addition, if an invalid request parameter is supplied in the API request,
/// the API ignores that request parameter and returns the response
/// corresponding to the remaining valid request parameters. If no parameters
/// are requested, all parameters are returned.
/// Value must have pattern
/// "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)".
///
/// [orgUnitID] - ID of the organizational unit to report on. Activity records
/// will be shown only for users who belong to the specified organizational
/// unit. Data before Dec 17, 2018 doesn't appear in the filtered results.
/// Value must have pattern "(id:[a-z0-9]+)".
///
/// [endTime] - Sets the end of the range of time shown in the report. The
/// date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The
/// default value is the approximate time of the API request. An API report
/// has three basic time concepts: - *Date of the API's request for a report*:
/// When the API created and retrieved the report. - *Report's start time*:
/// The beginning of the timespan shown in the report. The startTime must be
/// before the endTime (if specified) and the current time when the request is
/// made, or the API returns an error. - *Report's end time*: The end of the
/// timespan shown in the report. For example, the timespan of events
/// summarized in a report can start in April and end in May. The report
/// itself can be requested in August. If the endTime is not specified, the
/// report returns all activities from the startTime until the current time or
/// the most recent 180 days if the startTime is more than 180 days in the
/// past.
/// Value must have pattern
/// "(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.(\d+))?(?:(Z)|([-+])(\d\d):(\d\d))".
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Activities].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<Activities> list(
core.String userKey, core.String applicationName,
{core.String customerId,
core.String actorIpAddress,
core.String eventName,
core.String pageToken,
core.String startTime,
core.int maxResults,
core.String filters,
core.String orgUnitID,
core.String endTime,
core.String $fields}) {
var _url;
var _queryParams = new core.Map<core.String, core.List<core.String>>();
var _uploadMedia;
var _uploadOptions;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body;
if (userKey == null) {
throw new core.ArgumentError("Parameter userKey is required.");
}
if (applicationName == null) {
throw new core.ArgumentError("Parameter applicationName is required.");
}
if (customerId != null) {
_queryParams["customerId"] = [customerId];
}
if (actorIpAddress != null) {
_queryParams["actorIpAddress"] = [actorIpAddress];
}
if (eventName != null) {
_queryParams["eventName"] = [eventName];
}
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
if (startTime != null) {
_queryParams["startTime"] = [startTime];
}
if (maxResults != null) {
_queryParams["maxResults"] = ["${maxResults}"];
}
if (filters != null) {
_queryParams["filters"] = [filters];
}
if (orgUnitID != null) {
_queryParams["orgUnitID"] = [orgUnitID];
}
if (endTime != null) {
_queryParams["endTime"] = [endTime];
}
if ($fields != null) {
_queryParams["fields"] = [$fields];
}
_url = 'admin/reports/v1/activity/users/' +
commons.Escaper.ecapeVariable('$userKey') +
'/applications/' +
commons.Escaper.ecapeVariable('$applicationName');
var _response = _requester.request(_url, "GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new Activities.fromJson(data));
}
/// Start receiving notifications for account activities. For more
/// information, see Receiving Push Notifications.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [userKey] - Represents the profile ID or the user email for which the data
/// should be filtered. Can be all for all information, or userKey for a
/// user's unique G Suite profile ID or their primary email address.
///
/// [applicationName] - Application name for which the events are to be
/// retrieved.
/// Value must have pattern
/// "(admin)|(calendar)|(drive)|(login)|(mobile)|(token)|(groups)|(saml)|(chat)|(gplus)|(rules)|(jamboard)|(meet)|(user_accounts)|(access_transparency)|(groups_enterprise)|(gcp)|(context_aware_access)|(data_studio)|(chrome)".
/// Possible string values are:
/// - "application_name_unspecified"
/// - "access_transparency" : The G Suite Access Transparency activity reports
/// return information about different types of Access Transparency activity
/// events.
/// - "admin" : The Admin console application's activity reports return
/// account information about different types of administrator activity
/// events.
/// - "calendar" : The G Suite Calendar application's activity reports return
/// information about various Calendar activity events.
/// - "chat" : The Chat activity reports return information about various Chat
/// activity events.
/// - "drive" : The Google Drive application's activity reports return
/// information about various Google Drive activity events. The Drive activity
/// report is only available for G Suite Business customers.
/// - "gcp" : The Google Cloud Platform application's activity reports return
/// information about various GCP activity events.
/// - "gplus" : The Google+ application's activity reports return information
/// about various Google+ activity events.
/// - "groups" : The Google Groups application's activity reports return
/// information about various Groups activity events.
/// - "groups_enterprise" : The Enterprise Groups activity reports return
/// information about various Enterprise group activity events.
/// - "jamboard" : The Jamboard activity reports return information about
/// various Jamboard activity events.
/// - "login" : The Login application's activity reports return account
/// information about different types of Login activity events.
/// - "meet" : The Meet Audit activity report return information about
/// different types of Meet Audit activity events.
/// - "mobile" : The Mobile Audit activity report return information about
/// different types of Mobile Audit activity events.
/// - "rules" : The Rules activity report return information about different
/// types of Rules activity events.
/// - "saml" : The SAML activity report return information about different
/// types of SAML activity events.
/// - "token" : The Token application's activity reports return account
/// information about different types of Token activity events.
/// - "user_accounts" : The User Accounts application's activity reports
/// return account information about different types of User Accounts activity
/// events.
/// - "context_aware_access" : The Context-aware access activity reports
/// return information about users' access denied events due to Context-aware
/// access rules.
/// - "chrome" : The Chrome activity reports return information about unsafe
/// events reported in the context of the WebProtect features of BeyondCorp.
///
/// [maxResults] - Determines how many activity records are shown on each
/// response page. For example, if the request sets maxResults=1 and the
/// report has two activities, the report has two pages. The response's
/// nextPageToken property has the token to the second page. The maxResults
/// query string is optional in the request. The default value is 1000.
/// Value must be between "1" and "1000".
///
/// [customerId] - The unique ID of the customer to retrieve data for.
/// Value must have pattern "C.+".
///
/// [startTime] - Sets the beginning of the range of time shown in the report.
/// The date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z.
/// The report returns all activities from startTime until endTime. The
/// startTime must be before the endTime (if specified) and the current time
/// when the request is made, or the API returns an error.
/// Value must have pattern
/// "(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.(\d+))?(?:(Z)|([-+])(\d\d):(\d\d))".
///
/// [eventName] - The name of the event being queried by the API. Each
/// eventName is related to a specific G Suite service or feature which the
/// API organizes into types of events. An example is the Google Calendar
/// events in the Admin console application's reports. The Calendar Settings
/// type structure has all of the Calendar eventName activities reported by
/// the API. When an administrator changes a Calendar setting, the API reports
/// this activity in the Calendar Settings type and eventName parameters. For
/// more information about eventName query strings and parameters, see the
/// list of event names for various applications above in applicationName.
///
/// [filters] - The filters query string is a comma-separated list. The list
/// is composed of event parameters that are manipulated by relational
/// operators. Event parameters are in the form parameter1 name[parameter1
/// value],parameter2 name[parameter2 value],... These event parameters are
/// associated with a specific eventName. An empty report is returned if the
/// filtered request's parameter does not belong to the eventName. For more
/// information about eventName parameters, see the list of event names for
/// various applications above in applicationName. In the following Admin
/// Activity example, the <> operator is URL-encoded in the request's query
/// string (%3C%3E): GET...&eventName=CHANGE_CALENDAR_SETTING
/// &filters=NEW_VALUE%3C%3EREAD_ONLY_ACCESS In the following Drive example,
/// the list can be a view or edit event's doc_id parameter with a value that
/// is manipulated by an 'equal to' (==) or 'not equal to' (<>) relational
/// operator. In the first example, the report returns each edited document's
/// doc_id. In the second example, the report returns each viewed document's
/// doc_id that equals the value 12345 and does not return any viewed
/// document's which have a doc_id value of 98765. The <> operator is
/// URL-encoded in the request's query string (%3C%3E):
/// GET...&eventName=edit&filters=doc_id
/// GET...&eventName=view&filters=doc_id==12345,doc_id%3C%3E98765 The
/// relational operators include: - == - 'equal to'. - <> - 'not equal to'. It
/// is URL-encoded (%3C%3E). - < - 'less than'. It is URL-encoded (%3C). - <=
/// - 'less than or equal to'. It is URL-encoded (%3C=). - > - 'greater than'.
/// It is URL-encoded (%3E). - >= - 'greater than or equal to'. It is
/// URL-encoded (%3E=). *Note:* The API doesn't accept multiple values of a
/// parameter. If a particular parameter is supplied more than once in the API
/// request, the API only accepts the last value of that request parameter. In
/// addition, if an invalid request parameter is supplied in the API request,
/// the API ignores that request parameter and returns the response
/// corresponding to the remaining valid request parameters. If no parameters
/// are requested, all parameters are returned.
/// Value must have pattern
/// "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)".
///
/// [actorIpAddress] - The Internet Protocol (IP) Address of host where the
/// event was performed. This is an additional way to filter a report's
/// summary using the IP address of the user whose activity is being reported.
/// This IP address 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. This parameter supports both IPv4
/// and IPv6 address versions.
///
/// [orgUnitID] - ID of the organizational unit to report on. Activity records
/// will be shown only for users who belong to the specified organizational
/// unit. Data before Dec 17, 2018 doesn't appear in the filtered results.
/// Value must have pattern "(id:[a-z0-9]+)".
///
/// [pageToken] - The token to specify next page. A report with multiple pages
/// has a nextPageToken property in the response. In your follow-on request
/// getting the next page of the report, enter the nextPageToken value in the
/// pageToken query string.
///
/// [endTime] - Sets the end of the range of time shown in the report. The
/// date is in the RFC 3339 format, for example 2010-10-28T10:26:35.000Z. The
/// default value is the approximate time of the API request. An API report
/// has three basic time concepts: - *Date of the API's request for a report*:
/// When the API created and retrieved the report. - *Report's start time*:
/// The beginning of the timespan shown in the report. The startTime must be
/// before the endTime (if specified) and the current time when the request is
/// made, or the API returns an error. - *Report's end time*: The end of the
/// timespan shown in the report. For example, the timespan of events
/// summarized in a report can start in April and end in May. The report
/// itself can be requested in August. If the endTime is not specified, the
/// report returns all activities from the startTime until the current time or
/// the most recent 180 days if the startTime is more than 180 days in the
/// past.
/// Value must have pattern
/// "(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.(\d+))?(?:(Z)|([-+])(\d\d):(\d\d))".
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [Channel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<Channel> watch(
Channel request, core.String userKey, core.String applicationName,
{core.int maxResults,
core.String customerId,
core.String startTime,
core.String eventName,
core.String filters,
core.String actorIpAddress,
core.String orgUnitID,
core.String pageToken,
core.String endTime,
core.String $fields}) {
var _url;
var _queryParams = new core.Map<core.String, core.List<core.String>>();
var _uploadMedia;
var _uploadOptions;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body;
if (request != null) {
_body = convert.json.encode((request).toJson());
}
if (userKey == null) {
throw new core.ArgumentError("Parameter userKey is required.");
}
if (applicationName == null) {
throw new core.ArgumentError("Parameter applicationName is required.");
}
if (maxResults != null) {
_queryParams["maxResults"] = ["${maxResults}"];
}
if (customerId != null) {
_queryParams["customerId"] = [customerId];
}
if (startTime != null) {
_queryParams["startTime"] = [startTime];
}
if (eventName != null) {
_queryParams["eventName"] = [eventName];
}
if (filters != null) {
_queryParams["filters"] = [filters];
}
if (actorIpAddress != null) {
_queryParams["actorIpAddress"] = [actorIpAddress];
}
if (orgUnitID != null) {
_queryParams["orgUnitID"] = [orgUnitID];
}
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
if (endTime != null) {
_queryParams["endTime"] = [endTime];
}
if ($fields != null) {
_queryParams["fields"] = [$fields];
}
_url = 'admin/reports/v1/activity/users/' +
commons.Escaper.ecapeVariable('$userKey') +
'/applications/' +
commons.Escaper.ecapeVariable('$applicationName') +
'/watch';
var _response = _requester.request(_url, "POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new Channel.fromJson(data));
}
}
class ChannelsResourceApi {
final commons.ApiRequester _requester;
ChannelsResourceApi(commons.ApiRequester client) : _requester = client;
/// Stop watching resources through this channel.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future stop(Channel request, {core.String $fields}) {
var _url;
var _queryParams = new core.Map<core.String, core.List<core.String>>();
var _uploadMedia;
var _uploadOptions;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body;
if (request != null) {
_body = convert.json.encode((request).toJson());
}
if ($fields != null) {
_queryParams["fields"] = [$fields];
}
_downloadOptions = null;
_url = 'admin/reports_v1/channels/stop';
var _response = _requester.request(_url, "POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => null);
}
}
class CustomerUsageReportsResourceApi {
final commons.ApiRequester _requester;
CustomerUsageReportsResourceApi(commons.ApiRequester client)
: _requester = client;
/// Retrieves a report which is a collection of properties and statistics for
/// a specific customer's account. For more information, see the Customers
/// Usage Report guide. For more information about the customer report's
/// parameters, see the Customers Usage parameters reference guides.
///
/// Request parameters:
///
/// [date] - Represents the date the usage occurred. The timestamp is in the
/// ISO 8601 format, yyyy-mm-dd. We recommend you use your account's time zone
/// for this.
/// Value must have pattern "(\d){4}-(\d){2}-(\d){2}".
///
/// [parameters] - The parameters query string is a comma-separated list of
/// event parameters that refine a report's results. The parameter is
/// associated with a specific application. The application values for the
/// Customers usage report include accounts, app_maker, apps_scripts,
/// calendar, classroom, cros, docs, gmail, gplus, device_management, meet,
/// and sites. A parameters query string is in the CSV form of
/// app_name1:param_name1, app_name2:param_name2. *Note:* The API doesn't
/// accept multiple values of a parameter. If a particular parameter is
/// supplied more than once in the API request, the API only accepts the last
/// value of that request parameter. In addition, if an invalid request
/// parameter is supplied in the API request, the API ignores that request
/// parameter and returns the response corresponding to the remaining valid
/// request parameters. An example of an invalid request parameter is one that
/// does not belong to the application. If no parameters are requested, all
/// parameters are returned.
/// Value must have pattern
/// "(((accounts)|(app_maker)|(apps_scripts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)|(meet)):[^,]+,)*(((accounts)|(app_maker)|(apps_scripts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)|(meet)):[^,]+)".
///
/// [pageToken] - 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.
///
/// [customerId] - The unique ID of the customer to retrieve data for.
/// Value must have pattern "C.+".
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [UsageReports].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<UsageReports> get(core.String date,
{core.String parameters,
core.String pageToken,
core.String customerId,
core.String $fields}) {
var _url;
var _queryParams = new core.Map<core.String, core.List<core.String>>();
var _uploadMedia;
var _uploadOptions;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body;
if (date == null) {
throw new core.ArgumentError("Parameter date is required.");
}
if (parameters != null) {
_queryParams["parameters"] = [parameters];
}
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
if (customerId != null) {
_queryParams["customerId"] = [customerId];
}
if ($fields != null) {
_queryParams["fields"] = [$fields];
}
_url = 'admin/reports/v1/usage/dates/' +
commons.Escaper.ecapeVariable('$date');
var _response = _requester.request(_url, "GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new UsageReports.fromJson(data));
}
}
class EntityUsageReportsResourceApi {
final commons.ApiRequester _requester;
EntityUsageReportsResourceApi(commons.ApiRequester client)
: _requester = client;
/// Retrieves a report which is a collection of properties and statistics for
/// entities used by users within the account. For more information, see the
/// Entities Usage Report guide. For more information about the entities
/// report's parameters, see the Entities Usage parameters reference guides.
///
/// Request parameters:
///
/// [entityType] - Represents the type of entity for the report.
/// Value must have pattern "(gplus_communities)".
/// Possible string values are:
/// - "entity_type_undefined"
/// - "gplus_communities" : Returns a report on Google+ communities.
///
/// [entityKey] - Represents the key of the object to filter the data with.
/// Possible string values are:
/// - "entityKeyUndefined"
/// - "all" : Returns activity events for all users.
/// - "entityKey" : Represents an app-specific identifier for the entity. For
/// details on how to obtain the entityKey for a particular entityType, see
/// the Entities Usage parameters reference guides.
///
/// [date] - Represents the date the usage occurred. The timestamp is in the
/// ISO 8601 format, yyyy-mm-dd. We recommend you use your account's time zone
/// for this.
/// Value must have pattern "(\d){4}-(\d){2}-(\d){2}".
///
/// [customerId] - The unique ID of the customer to retrieve data for.
/// Value must have pattern "C.+".
///
/// [pageToken] - Token to specify next page. A report with multiple pages has
/// a nextPageToken property in the response. In your follow-on request
/// getting the next page of the report, enter the nextPageToken value in the
/// pageToken query string.
///
/// [maxResults] - Determines how many activity records are shown on each
/// response page. For example, if the request sets maxResults=1 and the
/// report has two activities, the report has two pages. The response's
/// nextPageToken property has the token to the second page.
/// Value must be between "1" and "1000".
///
/// [filters] - The filters query string is a comma-separated list of an
/// application's event parameters where the parameter's value is manipulated
/// by a relational operator. The filters query string includes the name of
/// the application whose usage is returned in the report. The application
/// values for the Entities usage report include accounts, docs, and gmail.
/// Filters are in the form [application name]:parameter name[parameter
/// value],.... In this example, the <> 'not equal to' operator is URL-encoded
/// in the request's query string (%3C%3E): GET
/// https://www.googleapis.com/admin/reports/v1/usage/gplus_communities/all/dates/2017-12-01
/// ?parameters=gplus:community_name,gplus:num_total_members
/// &filters=gplus:num_total_members>0 The relational operators include: - ==
/// - 'equal to'. - <> - 'not equal to'. It is URL-encoded (%3C%3E). - < -
/// 'less than'. It is URL-encoded (%3C). - <= - 'less than or equal to'. It
/// is URL-encoded (%3C=). - > - 'greater than'. It is URL-encoded (%3E). - >=
/// - 'greater than or equal to'. It is URL-encoded (%3E=). Filters can only
/// be applied to numeric parameters.
/// Value must have pattern
/// "(((gplus)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+,)*(((gplus)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+)".
///
/// [parameters] - The parameters query string is a comma-separated list of
/// event parameters that refine a report's results. The parameter is
/// associated with a specific application. The application values for the
/// Entities usage report are only gplus. A parameter query string is in the
/// CSV form of [app_name1:param_name1], [app_name2:param_name2].... *Note:*
/// The API doesn't accept multiple values of a parameter. If a particular
/// parameter is supplied more than once in the API request, the API only
/// accepts the last value of that request parameter. In addition, if an
/// invalid request parameter is supplied in the API request, the API ignores
/// that request parameter and returns the response corresponding to the
/// remaining valid request parameters. An example of an invalid request
/// parameter is one that does not belong to the application. If no parameters
/// are requested, all parameters are returned.
/// Value must have pattern "(((gplus)):[^,]+,)*(((gplus)):[^,]+)".
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [UsageReports].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<UsageReports> get(
core.String entityType, core.String entityKey, core.String date,
{core.String customerId,
core.String pageToken,
core.int maxResults,
core.String filters,
core.String parameters,
core.String $fields}) {
var _url;
var _queryParams = new core.Map<core.String, core.List<core.String>>();
var _uploadMedia;
var _uploadOptions;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body;
if (entityType == null) {
throw new core.ArgumentError("Parameter entityType is required.");
}
if (entityKey == null) {
throw new core.ArgumentError("Parameter entityKey is required.");
}
if (date == null) {
throw new core.ArgumentError("Parameter date is required.");
}
if (customerId != null) {
_queryParams["customerId"] = [customerId];
}
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
if (maxResults != null) {
_queryParams["maxResults"] = ["${maxResults}"];
}
if (filters != null) {
_queryParams["filters"] = [filters];
}
if (parameters != null) {
_queryParams["parameters"] = [parameters];
}
if ($fields != null) {
_queryParams["fields"] = [$fields];
}
_url = 'admin/reports/v1/usage/' +
commons.Escaper.ecapeVariable('$entityType') +
'/' +
commons.Escaper.ecapeVariable('$entityKey') +
'/dates/' +
commons.Escaper.ecapeVariable('$date');
var _response = _requester.request(_url, "GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new UsageReports.fromJson(data));
}
}
class UserUsageReportResourceApi {
final commons.ApiRequester _requester;
UserUsageReportResourceApi(commons.ApiRequester client) : _requester = client;
/// Retrieves a report which is a collection of properties and statistics for
/// a set of users with the account. For more information, see the User Usage
/// Report guide. For more information about the user report's parameters, see
/// the Users Usage parameters reference guides.
///
/// Request parameters:
///
/// [userKey] - Represents the profile ID or the user email for which the data
/// should be filtered. Can be all for all information, or userKey for a
/// user's unique G Suite profile ID or their primary email address.
///
/// [date] - Represents the date the usage occurred. The timestamp is in the
/// ISO 8601 format, yyyy-mm-dd. We recommend you use your account's time zone
/// for this.
/// Value must have pattern "(\d){4}-(\d){2}-(\d){2}".
///
/// [orgUnitID] - ID of the organizational unit to report on. User activity
/// will be shown only for users who belong to the specified organizational
/// unit. Data before Dec 17, 2018 doesn't appear in the filtered results.
/// Value must have pattern "(id:[a-z0-9]+)".
///
/// [customerId] - The unique ID of the customer to retrieve data for.
/// Value must have pattern "C.+".
///
/// [parameters] - The parameters query string is a comma-separated list of
/// event parameters that refine a report's results. The parameter is
/// associated with a specific application. The application values for the
/// Customers usage report include accounts, app_maker, apps_scripts,
/// calendar, classroom, cros, docs, gmail, gplus, device_management, meet,
/// and sites. A parameters query string is in the CSV form of
/// app_name1:param_name1, app_name2:param_name2. *Note:* The API doesn't
/// accept multiple values of a parameter. If a particular parameter is
/// supplied more than once in the API request, the API only accepts the last
/// value of that request parameter. In addition, if an invalid request
/// parameter is supplied in the API request, the API ignores that request
/// parameter and returns the response corresponding to the remaining valid
/// request parameters. An example of an invalid request parameter is one that
/// does not belong to the application. If no parameters are requested, all
/// parameters are returned.
/// Value must have pattern
/// "(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+,)*(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+)".
///
/// [filters] - The filters query string is a comma-separated list of an
/// application's event parameters where the parameter's value is manipulated
/// by a relational operator. The filters query string includes the name of
/// the application whose usage is returned in the report. The application
/// values for the Users Usage Report include accounts, docs, and gmail.
/// Filters are in the form [application name]:parameter name[parameter
/// value],.... In this example, the <> 'not equal to' operator is URL-encoded
/// in the request's query string (%3C%3E): GET
/// https://www.googleapis.com/admin/reports/v1/usage/users/all/dates/2013-03-03
/// ?parameters=accounts:last_login_time
/// &filters=accounts:last_login_time>2010-10-28T10:26:35.000Z The relational
/// operators include: - == - 'equal to'. - <> - 'not equal to'. It is
/// URL-encoded (%3C%3E). - < - 'less than'. It is URL-encoded (%3C). - <= -
/// 'less than or equal to'. It is URL-encoded (%3C=). - > - 'greater than'.
/// It is URL-encoded (%3E). - >= - 'greater than or equal to'. It is
/// URL-encoded (%3E=).
/// Value must have pattern
/// "(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+,)*(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[<,<=,==,>=,>,!=][^,]+)".
///
/// [pageToken] - Token to specify next page. A report with multiple pages has
/// a nextPageToken property in the response. In your follow-on request
/// getting the next page of the report, enter the nextPageToken value in the
/// pageToken query string.
///
/// [maxResults] - Determines how many activity records are shown on each
/// response page. For example, if the request sets maxResults=1 and the
/// report has two activities, the report has two pages. The response's
/// nextPageToken property has the token to the second page. The maxResults
/// query string is optional.
/// Value must be between "1" and "1000".
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [UsageReports].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<UsageReports> get(core.String userKey, core.String date,
{core.String orgUnitID,
core.String customerId,
core.String parameters,
core.String filters,
core.String pageToken,
core.int maxResults,
core.String $fields}) {
var _url;
var _queryParams = new core.Map<core.String, core.List<core.String>>();
var _uploadMedia;
var _uploadOptions;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body;
if (userKey == null) {
throw new core.ArgumentError("Parameter userKey is required.");
}
if (date == null) {
throw new core.ArgumentError("Parameter date is required.");
}
if (orgUnitID != null) {
_queryParams["orgUnitID"] = [orgUnitID];
}
if (customerId != null) {
_queryParams["customerId"] = [customerId];
}
if (parameters != null) {
_queryParams["parameters"] = [parameters];
}
if (filters != null) {
_queryParams["filters"] = [filters];
}
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
if (maxResults != null) {
_queryParams["maxResults"] = ["${maxResults}"];
}
if ($fields != null) {
_queryParams["fields"] = [$fields];
}
_url = 'admin/reports/v1/usage/users/' +
commons.Escaper.ecapeVariable('$userKey') +
'/dates/' +
commons.Escaper.ecapeVariable('$date');
var _response = _requester.request(_url, "GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new UsageReports.fromJson(data));
}
}
/// JSON template for a collection of activities.
class Activities {
/// ETag of the resource.
core.String etag;
/// Each activity record in the response.
core.List<Activity> items;
/// The type of API resource. For an activity report, the value is
/// reports#activities.
core.String kind;
/// Token for retrieving the follow-on next page of the report. The
/// nextPageToken value is used in the request's pageToken query string.
core.String nextPageToken;
Activities();
Activities.fromJson(core.Map _json) {
if (_json.containsKey("etag")) {
etag = _json["etag"];
}
if (_json.containsKey("items")) {
items = (_json["items"] as core.List)
.map<Activity>((value) => new Activity.fromJson(value))
.toList();
}
if (_json.containsKey("kind")) {
kind = _json["kind"];
}
if (_json.containsKey("nextPageToken")) {
nextPageToken = _json["nextPageToken"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (etag != null) {
_json["etag"] = etag;
}
if (items != null) {
_json["items"] = items.map((value) => (value).toJson()).toList();
}
if (kind != null) {
_json["kind"] = kind;
}
if (nextPageToken != null) {
_json["nextPageToken"] = nextPageToken;
}
return _json;
}
}
/// User doing the action.
class ActivityActor {
/// The type of actor.
core.String callerType;
/// The primary email address of the actor. May be absent if there is no email
/// address associated with the actor.
core.String 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.
core.String key;
/// The unique G Suite profile ID of the actor. May be absent if the actor is
/// not a G Suite user.
core.String profileId;
ActivityActor();
ActivityActor.fromJson(core.Map _json) {
if (_json.containsKey("callerType")) {
callerType = _json["callerType"];
}
if (_json.containsKey("email")) {
email = _json["email"];
}
if (_json.containsKey("key")) {
key = _json["key"];
}
if (_json.containsKey("profileId")) {
profileId = _json["profileId"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (callerType != null) {
_json["callerType"] = callerType;
}
if (email != null) {
_json["email"] = email;
}
if (key != null) {
_json["key"] = key;
}
if (profileId != null) {
_json["profileId"] = profileId;
}
return _json;
}
}
/// 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 ActivityEventsParametersMessageValue {
/// Parameter values
core.List<NestedParameter> parameter;
ActivityEventsParametersMessageValue();
ActivityEventsParametersMessageValue.fromJson(core.Map _json) {
if (_json.containsKey("parameter")) {
parameter = (_json["parameter"] as core.List)
.map<NestedParameter>((value) => new NestedParameter.fromJson(value))
.toList();
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (parameter != null) {
_json["parameter"] = parameter.map((value) => (value).toJson()).toList();
}
return _json;
}
}
class ActivityEventsParametersMultiMessageValue {
/// Parameter values
core.List<NestedParameter> parameter;
ActivityEventsParametersMultiMessageValue();
ActivityEventsParametersMultiMessageValue.fromJson(core.Map _json) {
if (_json.containsKey("parameter")) {
parameter = (_json["parameter"] as core.List)
.map<NestedParameter>((value) => new NestedParameter.fromJson(value))
.toList();
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (parameter != null) {
_json["parameter"] = parameter.map((value) => (value).toJson()).toList();
}
return _json;
}
}
class ActivityEventsParameters {
/// Boolean value of the parameter.
core.bool boolValue;
/// Integer value of the parameter.
core.String intValue;
/// 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}]}]
ActivityEventsParametersMessageValue messageValue;
/// Integer values of the parameter.
core.List<core.String> multiIntValue;
/// List of messageValue objects.
core.List<ActivityEventsParametersMultiMessageValue> multiMessageValue;
/// String values of the parameter.
core.List<core.String> multiValue;
/// The name of the parameter.
core.String name;
/// String value of the parameter.
core.String value;
ActivityEventsParameters();
ActivityEventsParameters.fromJson(core.Map _json) {
if (_json.containsKey("boolValue")) {
boolValue = _json["boolValue"];
}
if (_json.containsKey("intValue")) {
intValue = _json["intValue"];
}
if (_json.containsKey("messageValue")) {
messageValue = new ActivityEventsParametersMessageValue.fromJson(
_json["messageValue"]);
}
if (_json.containsKey("multiIntValue")) {
multiIntValue = (_json["multiIntValue"] as core.List).cast<core.String>();
}
if (_json.containsKey("multiMessageValue")) {
multiMessageValue = (_json["multiMessageValue"] as core.List)
.map<ActivityEventsParametersMultiMessageValue>((value) =>
new ActivityEventsParametersMultiMessageValue.fromJson(value))
.toList();
}
if (_json.containsKey("multiValue")) {
multiValue = (_json["multiValue"] as core.List).cast<core.String>();
}
if (_json.containsKey("name")) {
name = _json["name"];
}
if (_json.containsKey("value")) {
value = _json["value"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (boolValue != null) {
_json["boolValue"] = boolValue;
}
if (intValue != null) {
_json["intValue"] = intValue;
}
if (messageValue != null) {
_json["messageValue"] = (messageValue).toJson();
}
if (multiIntValue != null) {
_json["multiIntValue"] = multiIntValue;
}
if (multiMessageValue != null) {
_json["multiMessageValue"] =
multiMessageValue.map((value) => (value).toJson()).toList();
}
if (multiValue != null) {
_json["multiValue"] = multiValue;
}
if (name != null) {
_json["name"] = name;
}
if (value != null) {
_json["value"] = value;
}
return _json;
}
}
class ActivityEvents {
/// 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.
core.String 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.
core.List<ActivityEventsParameters> 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.
core.String type;
ActivityEvents();
ActivityEvents.fromJson(core.Map _json) {
if (_json.containsKey("name")) {
name = _json["name"];
}
if (_json.containsKey("parameters")) {
parameters = (_json["parameters"] as core.List)
.map<ActivityEventsParameters>(
(value) => new ActivityEventsParameters.fromJson(value))
.toList();
}
if (_json.containsKey("type")) {
type = _json["type"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (name != null) {
_json["name"] = name;
}
if (parameters != null) {
_json["parameters"] =
parameters.map((value) => (value).toJson()).toList();
}
if (type != null) {
_json["type"] = type;
}
return _json;
}
}
/// Unique identifier for each activity record.
class ActivityId {
/// Application name to which the event belongs. For possible values see the
/// list of applications above in applicationName.
core.String applicationName;
/// The unique identifier for a G suite account.
core.String customerId;
/// Time of occurrence of the activity. This is in UNIX epoch time in seconds.
core.DateTime time;
/// Unique qualifier if multiple events have the same time.
core.String uniqueQualifier;
ActivityId();
ActivityId.fromJson(core.Map _json) {
if (_json.containsKey("applicationName")) {
applicationName = _json["applicationName"];
}
if (_json.containsKey("customerId")) {
customerId = _json["customerId"];
}
if (_json.containsKey("time")) {
time = core.DateTime.parse(_json["time"]);
}
if (_json.containsKey("uniqueQualifier")) {
uniqueQualifier = _json["uniqueQualifier"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (applicationName != null) {
_json["applicationName"] = applicationName;
}
if (customerId != null) {
_json["customerId"] = customerId;
}
if (time != null) {
_json["time"] = (time).toIso8601String();
}
if (uniqueQualifier != null) {
_json["uniqueQualifier"] = uniqueQualifier;
}
return _json;
}
}
/// JSON template for the activity resource.
class Activity {
/// User doing the action.
ActivityActor actor;
/// ETag of the entry.
core.String etag;
/// Activity events in the report.
core.List<ActivityEvents> events;
/// Unique identifier for each activity record.
ActivityId 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.
core.String ipAddress;
/// The type of API resource. For an activity report, the value is
/// audit#activity.
core.String 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.
core.String ownerDomain;
Activity();
Activity.fromJson(core.Map _json) {
if (_json.containsKey("actor")) {
actor = new ActivityActor.fromJson(_json["actor"]);
}
if (_json.containsKey("etag")) {
etag = _json["etag"];
}
if (_json.containsKey("events")) {
events = (_json["events"] as core.List)
.map<ActivityEvents>((value) => new ActivityEvents.fromJson(value))
.toList();
}
if (_json.containsKey("id")) {
id = new ActivityId.fromJson(_json["id"]);
}
if (_json.containsKey("ipAddress")) {
ipAddress = _json["ipAddress"];
}
if (_json.containsKey("kind")) {
kind = _json["kind"];
}
if (_json.containsKey("ownerDomain")) {
ownerDomain = _json["ownerDomain"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (actor != null) {
_json["actor"] = (actor).toJson();
}
if (etag != null) {
_json["etag"] = etag;
}
if (events != null) {
_json["events"] = events.map((value) => (value).toJson()).toList();
}
if (id != null) {
_json["id"] = (id).toJson();
}
if (ipAddress != null) {
_json["ipAddress"] = ipAddress;
}
if (kind != null) {
_json["kind"] = kind;
}
if (ownerDomain != null) {
_json["ownerDomain"] = ownerDomain;
}
return _json;
}
}
/// A notification channel used to watch for resource changes.
class Channel {
/// The address where notifications are delivered for this channel.
core.String address;
/// Date and time of notification channel expiration, expressed as a Unix
/// timestamp, in milliseconds. Optional.
core.String expiration;
/// A UUID or similar unique string that identifies this channel.
core.String id;
/// Identifies this as a notification channel used to watch for changes to a
/// resource, which is "api#channel".
core.String kind;
/// Additional parameters controlling delivery channel behavior. Optional.
core.Map<core.String, core.String> params;
/// A Boolean value to indicate whether payload is wanted. Optional.
core.bool payload;
/// An opaque ID that identifies the resource being watched on this channel.
/// Stable across different API versions.
core.String resourceId;
/// A version-specific identifier for the watched resource.
core.String resourceUri;
/// An arbitrary string delivered to the target address with each notification
/// delivered over this channel. Optional.
core.String token;
/// The type of delivery mechanism used for this channel.
core.String type;
Channel();
Channel.fromJson(core.Map _json) {
if (_json.containsKey("address")) {
address = _json["address"];
}
if (_json.containsKey("expiration")) {
expiration = _json["expiration"];
}
if (_json.containsKey("id")) {
id = _json["id"];
}
if (_json.containsKey("kind")) {
kind = _json["kind"];
}
if (_json.containsKey("params")) {
params = (_json["params"] as core.Map).cast<core.String, core.String>();
}
if (_json.containsKey("payload")) {
payload = _json["payload"];
}
if (_json.containsKey("resourceId")) {
resourceId = _json["resourceId"];
}
if (_json.containsKey("resourceUri")) {
resourceUri = _json["resourceUri"];
}
if (_json.containsKey("token")) {
token = _json["token"];
}
if (_json.containsKey("type")) {
type = _json["type"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (address != null) {
_json["address"] = address;
}
if (expiration != null) {
_json["expiration"] = expiration;
}
if (id != null) {
_json["id"] = id;
}
if (kind != null) {
_json["kind"] = kind;
}
if (params != null) {
_json["params"] = params;
}
if (payload != null) {
_json["payload"] = payload;
}
if (resourceId != null) {
_json["resourceId"] = resourceId;
}
if (resourceUri != null) {
_json["resourceUri"] = resourceUri;
}
if (token != null) {
_json["token"] = token;
}
if (type != null) {
_json["type"] = type;
}
return _json;
}
}
/// JSON template for a parameter used in various reports.
class NestedParameter {
/// Boolean value of the parameter.
core.bool boolValue;
/// Integer value of the parameter.
core.String intValue;
/// Multiple boolean values of the parameter.
core.List<core.bool> multiBoolValue;
/// Multiple integer values of the parameter.
core.List<core.String> multiIntValue;
/// Multiple string values of the parameter.
core.List<core.String> multiValue;
/// The name of the parameter.
core.String name;
/// String value of the parameter.
core.String value;
NestedParameter();
NestedParameter.fromJson(core.Map _json) {
if (_json.containsKey("boolValue")) {
boolValue = _json["boolValue"];
}
if (_json.containsKey("intValue")) {
intValue = _json["intValue"];
}
if (_json.containsKey("multiBoolValue")) {
multiBoolValue = (_json["multiBoolValue"] as core.List).cast<core.bool>();
}
if (_json.containsKey("multiIntValue")) {
multiIntValue = (_json["multiIntValue"] as core.List).cast<core.String>();
}
if (_json.containsKey("multiValue")) {
multiValue = (_json["multiValue"] as core.List).cast<core.String>();
}
if (_json.containsKey("name")) {
name = _json["name"];
}
if (_json.containsKey("value")) {
value = _json["value"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (boolValue != null) {
_json["boolValue"] = boolValue;
}
if (intValue != null) {
_json["intValue"] = intValue;
}
if (multiBoolValue != null) {
_json["multiBoolValue"] = multiBoolValue;
}
if (multiIntValue != null) {
_json["multiIntValue"] = multiIntValue;
}
if (multiValue != null) {
_json["multiValue"] = multiValue;
}
if (name != null) {
_json["name"] = name;
}
if (value != null) {
_json["value"] = value;
}
return _json;
}
}
/// Output only. Information about the type of the item.
class UsageReportEntity {
/// Output only. The unique identifier of the customer's account.
core.String customerId;
/// Output only. Object key. Only relevant if entity.type = "OBJECT" Note:
/// external-facing name of report is "Entities" rather than "Objects".
core.String entityId;
/// Output only. The user's immutable G Suite profile identifier.
core.String profileId;
/// Output only. The type of item. The value is customer.
core.String type;
/// Output only. The user's email address. Only relevant if entity.type =
/// "USER"
core.String userEmail;
UsageReportEntity();
UsageReportEntity.fromJson(core.Map _json) {
if (_json.containsKey("customerId")) {
customerId = _json["customerId"];
}
if (_json.containsKey("entityId")) {
entityId = _json["entityId"];
}
if (_json.containsKey("profileId")) {
profileId = _json["profileId"];
}
if (_json.containsKey("type")) {
type = _json["type"];
}
if (_json.containsKey("userEmail")) {
userEmail = _json["userEmail"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (customerId != null) {
_json["customerId"] = customerId;
}
if (entityId != null) {
_json["entityId"] = entityId;
}
if (profileId != null) {
_json["profileId"] = profileId;
}
if (type != null) {
_json["type"] = type;
}
if (userEmail != null) {
_json["userEmail"] = userEmail;
}
return _json;
}
}
class UsageReportParameters {
/// Output only. Boolean value of the parameter.
core.bool boolValue;
/// The RFC 3339 formatted value of the parameter, for example
/// 2010-10-28T10:26:35.000Z.
core.DateTime datetimeValue;
/// Output only. Integer value of the parameter.
core.String intValue;
/// Output only. Nested message value of the parameter.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.List<core.Map<core.String, core.Object>> msgValue;
/// Name of the parameter.
core.String name;
/// Output only. String value of the parameter.
core.String stringValue;
UsageReportParameters();
UsageReportParameters.fromJson(core.Map _json) {
if (_json.containsKey("boolValue")) {
boolValue = _json["boolValue"];
}
if (_json.containsKey("datetimeValue")) {
datetimeValue = core.DateTime.parse(_json["datetimeValue"]);
}
if (_json.containsKey("intValue")) {
intValue = _json["intValue"];
}
if (_json.containsKey("msgValue")) {
msgValue = (_json["msgValue"] as core.List)
.map<core.Map<core.String, core.Object>>(
(value) => (value as core.Map).cast<core.String, core.Object>())
.toList();
}
if (_json.containsKey("name")) {
name = _json["name"];
}
if (_json.containsKey("stringValue")) {
stringValue = _json["stringValue"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (boolValue != null) {
_json["boolValue"] = boolValue;
}
if (datetimeValue != null) {
_json["datetimeValue"] = (datetimeValue).toIso8601String();
}
if (intValue != null) {
_json["intValue"] = intValue;
}
if (msgValue != null) {
_json["msgValue"] = msgValue;
}
if (name != null) {
_json["name"] = name;
}
if (stringValue != null) {
_json["stringValue"] = stringValue;
}
return _json;
}
}
/// JSON template for a usage report.
class UsageReport {
/// Output only. The date of the report request.
core.String date;
/// Output only. Information about the type of the item.
UsageReportEntity entity;
/// ETag of the resource.
core.String etag;
/// The type of API resource. For a usage report, the value is
/// admin#reports#usageReport.
core.String kind;
/// Output only. Parameter value pairs for various applications. For the
/// Customers usage report parameters and values, see the customer usage
/// parameters reference.
core.List<UsageReportParameters> parameters;
UsageReport();
UsageReport.fromJson(core.Map _json) {
if (_json.containsKey("date")) {
date = _json["date"];
}
if (_json.containsKey("entity")) {
entity = new UsageReportEntity.fromJson(_json["entity"]);
}
if (_json.containsKey("etag")) {
etag = _json["etag"];
}
if (_json.containsKey("kind")) {
kind = _json["kind"];
}
if (_json.containsKey("parameters")) {
parameters = (_json["parameters"] as core.List)
.map<UsageReportParameters>(
(value) => new UsageReportParameters.fromJson(value))
.toList();
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (date != null) {
_json["date"] = date;
}
if (entity != null) {
_json["entity"] = (entity).toJson();
}
if (etag != null) {
_json["etag"] = etag;
}
if (kind != null) {
_json["kind"] = kind;
}
if (parameters != null) {
_json["parameters"] =
parameters.map((value) => (value).toJson()).toList();
}
return _json;
}
}
class UsageReportsWarningsData {
/// Key associated with a key-value pair to give detailed information on the
/// warning.
core.String key;
/// Value associated with a key-value pair to give detailed information on the
/// warning.
core.String value;
UsageReportsWarningsData();
UsageReportsWarningsData.fromJson(core.Map _json) {
if (_json.containsKey("key")) {
key = _json["key"];
}
if (_json.containsKey("value")) {
value = _json["value"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (key != null) {
_json["key"] = key;
}
if (value != null) {
_json["value"] = value;
}
return _json;
}
}
class UsageReportsWarnings {
/// Machine readable code or warning type. The warning code value is 200.
core.String code;
/// Key-value pairs to give detailed information on the warning.
core.List<UsageReportsWarningsData> 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.
core.String message;
UsageReportsWarnings();
UsageReportsWarnings.fromJson(core.Map _json) {
if (_json.containsKey("code")) {
code = _json["code"];
}
if (_json.containsKey("data")) {
data = (_json["data"] as core.List)
.map<UsageReportsWarningsData>(
(value) => new UsageReportsWarningsData.fromJson(value))
.toList();
}
if (_json.containsKey("message")) {
message = _json["message"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (code != null) {
_json["code"] = code;
}
if (data != null) {
_json["data"] = data.map((value) => (value).toJson()).toList();
}
if (message != null) {
_json["message"] = message;
}
return _json;
}
}
class UsageReports {
/// ETag of the resource.
core.String etag;
/// The type of API resource. For a usage report, the value is
/// admin#reports#usageReports.
core.String 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.
core.String nextPageToken;
/// Various application parameter records.
core.List<UsageReport> usageReports;
/// Warnings, if any.
core.List<UsageReportsWarnings> warnings;
UsageReports();
UsageReports.fromJson(core.Map _json) {
if (_json.containsKey("etag")) {
etag = _json["etag"];
}
if (_json.containsKey("kind")) {
kind = _json["kind"];
}
if (_json.containsKey("nextPageToken")) {
nextPageToken = _json["nextPageToken"];
}
if (_json.containsKey("usageReports")) {
usageReports = (_json["usageReports"] as core.List)
.map<UsageReport>((value) => new UsageReport.fromJson(value))
.toList();
}
if (_json.containsKey("warnings")) {
warnings = (_json["warnings"] as core.List)
.map<UsageReportsWarnings>(
(value) => new UsageReportsWarnings.fromJson(value))
.toList();
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json =
new core.Map<core.String, core.Object>();
if (etag != null) {
_json["etag"] = etag;
}
if (kind != null) {
_json["kind"] = kind;
}
if (nextPageToken != null) {
_json["nextPageToken"] = nextPageToken;
}
if (usageReports != null) {
_json["usageReports"] =
usageReports.map((value) => (value).toJson()).toList();
}
if (warnings != null) {
_json["warnings"] = warnings.map((value) => (value).toJson()).toList();
}
return _json;
}
}