Switch to using the dep tool and update all the dependencies

This commit is contained in:
Nick Craig-Wood
2017-05-11 15:39:54 +01:00
parent 5135ff73cb
commit 98c2d2c41b
5321 changed files with 4483201 additions and 5922 deletions

View File

@ -0,0 +1,411 @@
{
"kind": "discovery#restDescription",
"etag": "\"tbys6C40o18GZwyMen5GMkdK-3s/69RNEuIs-2cMvhRHgpkaoTAmcFU\"",
"discoveryVersion": "v1",
"id": "admin:datatransfer_v1",
"name": "admin",
"canonicalName": "DataTransfer",
"version": "datatransfer_v1",
"revision": "20160223",
"title": "Admin Data Transfer API",
"description": "Transfers user data from one user to another.",
"ownerDomain": "google.com",
"ownerName": "Google",
"packagePath": "admin",
"icons": {
"x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
"x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
},
"documentationLink": "https://developers.google.com/admin-sdk/data-transfer/",
"protocol": "rest",
"baseUrl": "https://www.googleapis.com/admin/datatransfer/v1/",
"basePath": "/admin/datatransfer/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "admin/datatransfer/v1/",
"batchPath": "batch",
"parameters": {
"alt": {
"type": "string",
"description": "Data format for the response.",
"default": "json",
"enum": [
"json"
],
"enumDescriptions": [
"Responses with Content-Type of application/json"
],
"location": "query"
},
"fields": {
"type": "string",
"description": "Selector specifying which fields to include in a partial response.",
"location": "query"
},
"key": {
"type": "string",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query"
},
"oauth_token": {
"type": "string",
"description": "OAuth 2.0 token for the current user.",
"location": "query"
},
"prettyPrint": {
"type": "boolean",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"location": "query"
},
"quotaUser": {
"type": "string",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
"location": "query"
},
"userIp": {
"type": "string",
"description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
"location": "query"
}
},
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/admin.datatransfer": {
"description": "View and manage data transfers between users in your organization"
},
"https://www.googleapis.com/auth/admin.datatransfer.readonly": {
"description": "View data transfers between users in your organization"
}
}
}
},
"schemas": {
"Application": {
"id": "Application",
"type": "object",
"description": "The JSON template for an Application resource.",
"properties": {
"etag": {
"type": "string",
"description": "Etag of the resource."
},
"id": {
"type": "string",
"description": "The application's ID.",
"format": "int64"
},
"kind": {
"type": "string",
"description": "Identifies the resource as a DataTransfer Application Resource.",
"default": "admin#datatransfer#ApplicationResource"
},
"name": {
"type": "string",
"description": "The application's name."
},
"transferParams": {
"type": "array",
"description": "The list of all possible transfer parameters for this application. These parameters can be used to select the data of the user in this application to be transfered.",
"items": {
"$ref": "ApplicationTransferParam"
}
}
}
},
"ApplicationDataTransfer": {
"id": "ApplicationDataTransfer",
"type": "object",
"description": "Template to map fields of ApplicationDataTransfer resource.",
"properties": {
"applicationId": {
"type": "string",
"description": "The application's ID.",
"format": "int64"
},
"applicationTransferParams": {
"type": "array",
"description": "The transfer parameters for the application. These parameters are used to select the data which will get transfered in context of this application.",
"items": {
"$ref": "ApplicationTransferParam"
}
},
"applicationTransferStatus": {
"type": "string",
"description": "Current status of transfer for this application. (Read-only)"
}
}
},
"ApplicationTransferParam": {
"id": "ApplicationTransferParam",
"type": "object",
"description": "Template for application transfer parameters.",
"properties": {
"key": {
"type": "string",
"description": "The type of the transfer parameter. eg: 'PRIVACY_LEVEL'"
},
"value": {
"type": "array",
"description": "The value of the coressponding transfer parameter. eg: 'PRIVATE' or 'SHARED'",
"items": {
"type": "string"
}
}
}
},
"ApplicationsListResponse": {
"id": "ApplicationsListResponse",
"type": "object",
"description": "Template for a collection of Applications.",
"properties": {
"applications": {
"type": "array",
"description": "List of applications that support data transfer and are also installed for the customer.",
"items": {
"$ref": "Application"
}
},
"etag": {
"type": "string",
"description": "ETag of the resource."
},
"kind": {
"type": "string",
"description": "Identifies the resource as a collection of Applications.",
"default": "admin#datatransfer#applicationsList"
},
"nextPageToken": {
"type": "string",
"description": "Continuation token which will be used to specify next page in list API."
}
}
},
"DataTransfer": {
"id": "DataTransfer",
"type": "object",
"description": "The JSON template for a DataTransfer resource.",
"properties": {
"applicationDataTransfers": {
"type": "array",
"description": "List of per application data transfer resources. It contains data transfer details of the applications associated with this transfer resource. Note that this list is also used to specify the applications for which data transfer has to be done at the time of the transfer resource creation.",
"items": {
"$ref": "ApplicationDataTransfer"
}
},
"etag": {
"type": "string",
"description": "ETag of the resource."
},
"id": {
"type": "string",
"description": "The transfer's ID (Read-only)."
},
"kind": {
"type": "string",
"description": "Identifies the resource as a DataTransfer request.",
"default": "admin#datatransfer#DataTransfer"
},
"newOwnerUserId": {
"type": "string",
"description": "ID of the user to whom the data is being transfered."
},
"oldOwnerUserId": {
"type": "string",
"description": "ID of the user whose data is being transfered."
},
"overallTransferStatusCode": {
"type": "string",
"description": "Overall transfer status (Read-only)."
},
"requestTime": {
"type": "string",
"description": "The time at which the data transfer was requested (Read-only).",
"format": "date-time"
}
}
},
"DataTransfersListResponse": {
"id": "DataTransfersListResponse",
"type": "object",
"description": "Template for a collection of DataTransfer resources.",
"properties": {
"dataTransfers": {
"type": "array",
"description": "List of data transfer requests.",
"items": {
"$ref": "DataTransfer"
}
},
"etag": {
"type": "string",
"description": "ETag of the resource."
},
"kind": {
"type": "string",
"description": "Identifies the resource as a collection of data transfer requests.",
"default": "admin#datatransfer#dataTransfersList"
},
"nextPageToken": {
"type": "string",
"description": "Continuation token which will be used to specify next page in list API."
}
}
}
},
"resources": {
"applications": {
"methods": {
"get": {
"id": "datatransfer.applications.get",
"path": "applications/{applicationId}",
"httpMethod": "GET",
"description": "Retrieves information about an application for the given application ID.",
"parameters": {
"applicationId": {
"type": "string",
"description": "ID of the application resource to be retrieved.",
"required": true,
"format": "int64",
"location": "path"
}
},
"parameterOrder": [
"applicationId"
],
"response": {
"$ref": "Application"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
},
"list": {
"id": "datatransfer.applications.list",
"path": "applications",
"httpMethod": "GET",
"description": "Lists the applications available for data transfer for a customer.",
"parameters": {
"customerId": {
"type": "string",
"description": "Immutable ID of the Google Apps account.",
"location": "query"
},
"maxResults": {
"type": "integer",
"description": "Maximum number of results to return. Default is 100.",
"format": "int32",
"minimum": "1",
"maximum": "500",
"location": "query"
},
"pageToken": {
"type": "string",
"description": "Token to specify next page in the list.",
"location": "query"
}
},
"response": {
"$ref": "ApplicationsListResponse"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
}
}
},
"transfers": {
"methods": {
"get": {
"id": "datatransfer.transfers.get",
"path": "transfers/{dataTransferId}",
"httpMethod": "GET",
"description": "Retrieves a data transfer request by its resource ID.",
"parameters": {
"dataTransferId": {
"type": "string",
"description": "ID of the resource to be retrieved. This is returned in the response from the insert method.",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"dataTransferId"
],
"response": {
"$ref": "DataTransfer"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
},
"insert": {
"id": "datatransfer.transfers.insert",
"path": "transfers",
"httpMethod": "POST",
"description": "Inserts a data transfer request.",
"request": {
"$ref": "DataTransfer"
},
"response": {
"$ref": "DataTransfer"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer"
]
},
"list": {
"id": "datatransfer.transfers.list",
"path": "transfers",
"httpMethod": "GET",
"description": "Lists the transfers for a customer by source user, destination user, or status.",
"parameters": {
"customerId": {
"type": "string",
"description": "Immutable ID of the Google Apps account.",
"location": "query"
},
"maxResults": {
"type": "integer",
"description": "Maximum number of results to return. Default is 100.",
"format": "int32",
"minimum": "1",
"maximum": "500",
"location": "query"
},
"newOwnerUserId": {
"type": "string",
"description": "Destination user's profile ID.",
"location": "query"
},
"oldOwnerUserId": {
"type": "string",
"description": "Source user's profile ID.",
"location": "query"
},
"pageToken": {
"type": "string",
"description": "Token to specify the next page in the list.",
"location": "query"
},
"status": {
"type": "string",
"description": "Status of the transfer.",
"location": "query"
}
},
"response": {
"$ref": "DataTransfersListResponse"
},
"scopes": [
"https://www.googleapis.com/auth/admin.datatransfer",
"https://www.googleapis.com/auth/admin.datatransfer.readonly"
]
}
}
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,173 @@
{
"kind": "discovery#restDescription",
"etag": "\"ye6orv2F-1npMW3u9suM3a7C5Bo/_VRzIG5q4_x1FzCCxocLHIuiUhw\"",
"discoveryVersion": "v1",
"id": "admin:email_migration_v2",
"name": "admin",
"version": "email_migration_v2",
"revision": "20150303",
"title": "Email Migration API v2",
"description": "Email Migration API lets you migrate emails of users to Google backends.",
"ownerDomain": "google.com",
"ownerName": "Google",
"icons": {
"x16": "https://www.google.com/images/icons/product/googlemail-16.png",
"x32": "https://www.google.com/images/icons/product/googlemail-32.png"
},
"documentationLink": "https://developers.google.com/admin-sdk/email-migration/v2/",
"protocol": "rest",
"baseUrl": "https://www.googleapis.com/email/v2/users/",
"basePath": "/email/v2/users/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "email/v2/users/",
"batchPath": "batch",
"parameters": {
"alt": {
"type": "string",
"description": "Data format for the response.",
"default": "json",
"enum": [
"json"
],
"enumDescriptions": [
"Responses with Content-Type of application/json"
],
"location": "query"
},
"fields": {
"type": "string",
"description": "Selector specifying which fields to include in a partial response.",
"location": "query"
},
"key": {
"type": "string",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query"
},
"oauth_token": {
"type": "string",
"description": "OAuth 2.0 token for the current user.",
"location": "query"
},
"prettyPrint": {
"type": "boolean",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"location": "query"
},
"quotaUser": {
"type": "string",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
"location": "query"
},
"userIp": {
"type": "string",
"description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
"location": "query"
}
},
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/email.migration": {
"description": "Manage email messages of users on your domain"
}
}
}
},
"schemas": {
"MailItem": {
"id": "MailItem",
"type": "object",
"description": "JSON template for MailItem object in Email Migration API.",
"properties": {
"isDeleted": {
"type": "boolean",
"description": "Boolean indicating if the mail is deleted (used in Vault)"
},
"isDraft": {
"type": "boolean",
"description": "Boolean indicating if the mail is draft"
},
"isInbox": {
"type": "boolean",
"description": "Boolean indicating if the mail is in inbox"
},
"isSent": {
"type": "boolean",
"description": "Boolean indicating if the mail is in 'sent mails'"
},
"isStarred": {
"type": "boolean",
"description": "Boolean indicating if the mail is starred"
},
"isTrash": {
"type": "boolean",
"description": "Boolean indicating if the mail is in trash"
},
"isUnread": {
"type": "boolean",
"description": "Boolean indicating if the mail is unread"
},
"kind": {
"type": "string",
"description": "Kind of resource this is.",
"default": "mailItem"
},
"labels": {
"type": "array",
"description": "List of labels (strings)",
"items": {
"type": "string"
}
}
}
}
},
"resources": {
"mail": {
"methods": {
"insert": {
"id": "emailMigration.mail.insert",
"path": "{userKey}/mail",
"httpMethod": "POST",
"description": "Insert Mail into Google's Gmail backends",
"parameters": {
"userKey": {
"type": "string",
"description": "The email or immutable id of the user",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"userKey"
],
"request": {
"$ref": "MailItem"
},
"scopes": [
"https://www.googleapis.com/auth/email.migration"
],
"supportsMediaUpload": true,
"mediaUpload": {
"accept": [
"message/rfc822"
],
"maxSize": "35MB",
"protocols": {
"simple": {
"multipart": true,
"path": "/upload/email/v2/users/{userKey}/mail"
},
"resumable": {
"multipart": true,
"path": "/resumable/upload/email/v2/users/{userKey}/mail"
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,347 @@
// Package admin provides access to the Email Migration API v2.
//
// See https://developers.google.com/admin-sdk/email-migration/v2/
//
// Usage example:
//
// import "google.golang.org/api/admin/email_migration/v2"
// ...
// adminService, err := admin.New(oauthHttpClient)
package admin // import "google.golang.org/api/admin/email_migration/v2"
import (
"bytes"
"encoding/json"
"errors"
"fmt"
context "golang.org/x/net/context"
ctxhttp "golang.org/x/net/context/ctxhttp"
gensupport "google.golang.org/api/gensupport"
googleapi "google.golang.org/api/googleapi"
"io"
"net/http"
"net/url"
"strconv"
"strings"
)
// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = ctxhttp.Do
const apiId = "admin:email_migration_v2"
const apiName = "admin"
const apiVersion = "email_migration_v2"
const basePath = "https://www.googleapis.com/email/v2/users/"
// OAuth2 scopes used by this API.
const (
// Manage email messages of users on your domain
EmailMigrationScope = "https://www.googleapis.com/auth/email.migration"
)
func New(client *http.Client) (*Service, error) {
if client == nil {
return nil, errors.New("client is nil")
}
s := &Service{client: client, BasePath: basePath}
s.Mail = NewMailService(s)
return s, nil
}
type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
Mail *MailService
}
func (s *Service) userAgent() string {
if s.UserAgent == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
}
func NewMailService(s *Service) *MailService {
rs := &MailService{s: s}
return rs
}
type MailService struct {
s *Service
}
// MailItem: JSON template for MailItem object in Email Migration API.
type MailItem struct {
// IsDeleted: Boolean indicating if the mail is deleted (used in Vault)
IsDeleted bool `json:"isDeleted,omitempty"`
// IsDraft: Boolean indicating if the mail is draft
IsDraft bool `json:"isDraft,omitempty"`
// IsInbox: Boolean indicating if the mail is in inbox
IsInbox bool `json:"isInbox,omitempty"`
// IsSent: Boolean indicating if the mail is in 'sent mails'
IsSent bool `json:"isSent,omitempty"`
// IsStarred: Boolean indicating if the mail is starred
IsStarred bool `json:"isStarred,omitempty"`
// IsTrash: Boolean indicating if the mail is in trash
IsTrash bool `json:"isTrash,omitempty"`
// IsUnread: Boolean indicating if the mail is unread
IsUnread bool `json:"isUnread,omitempty"`
// Kind: Kind of resource this is.
Kind string `json:"kind,omitempty"`
// Labels: List of labels (strings)
Labels []string `json:"labels,omitempty"`
// ForceSendFields is a list of field names (e.g. "IsDeleted") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "IsDeleted") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *MailItem) MarshalJSON() ([]byte, error) {
type noMethod MailItem
raw := noMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// method id "emailMigration.mail.insert":
type MailInsertCall struct {
s *Service
userKey string
mailitem *MailItem
urlParams_ gensupport.URLParams
media_ io.Reader
mediaBuffer_ *gensupport.MediaBuffer
mediaType_ string
mediaSize_ int64 // mediaSize, if known. Used only for calls to progressUpdater_.
progressUpdater_ googleapi.ProgressUpdater
ctx_ context.Context
}
// Insert: Insert Mail into Google's Gmail backends
func (r *MailService) Insert(userKey string, mailitem *MailItem) *MailInsertCall {
c := &MailInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.userKey = userKey
c.mailitem = mailitem
return c
}
// Media specifies the media to upload in one or more chunks. The chunk
// size may be controlled by supplying a MediaOption generated by
// googleapi.ChunkSize. The chunk size defaults to
// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
// upload request will be determined by sniffing the contents of r,
// unless a MediaOption generated by googleapi.ContentType is
// supplied.
// At most one of Media and ResumableMedia may be set.
func (c *MailInsertCall) Media(r io.Reader, options ...googleapi.MediaOption) *MailInsertCall {
opts := googleapi.ProcessMediaOptions(options)
chunkSize := opts.ChunkSize
if !opts.ForceEmptyContentType {
r, c.mediaType_ = gensupport.DetermineContentType(r, opts.ContentType)
}
c.media_, c.mediaBuffer_ = gensupport.PrepareUpload(r, chunkSize)
return c
}
// ResumableMedia specifies the media to upload in chunks and can be
// canceled with ctx.
//
// Deprecated: use Media instead.
//
// At most one of Media and ResumableMedia may be set. mediaType
// identifies the MIME media type of the upload, such as "image/png". If
// mediaType is "", it will be auto-detected. The provided ctx will
// supersede any context previously provided to the Context method.
func (c *MailInsertCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *MailInsertCall {
c.ctx_ = ctx
rdr := gensupport.ReaderAtToReader(r, size)
rdr, c.mediaType_ = gensupport.DetermineContentType(rdr, mediaType)
c.mediaBuffer_ = gensupport.NewMediaBuffer(rdr, googleapi.DefaultUploadChunkSize)
c.media_ = nil
c.mediaSize_ = size
return c
}
// ProgressUpdater provides a callback function that will be called
// after every chunk. It should be a low-latency function in order to
// not slow down the upload operation. This should only be called when
// using ResumableMedia (as opposed to Media).
func (c *MailInsertCall) ProgressUpdater(pu googleapi.ProgressUpdater) *MailInsertCall {
c.progressUpdater_ = pu
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
// for more information.
func (c *MailInsertCall) Fields(s ...googleapi.Field) *MailInsertCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method. Any
// pending HTTP request will be aborted if the provided context is
// canceled.
// This context will supersede any context previously provided to the
// ResumableMedia method.
func (c *MailInsertCall) Context(ctx context.Context) *MailInsertCall {
c.ctx_ = ctx
return c
}
func (c *MailInsertCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := make(http.Header)
reqHeaders.Set("User-Agent", c.s.userAgent())
var body io.Reader = nil
body, err := googleapi.WithoutDataWrapper.JSONReader(c.mailitem)
if err != nil {
return nil, err
}
reqHeaders.Set("Content-Type", "application/json")
c.urlParams_.Set("alt", alt)
urls := googleapi.ResolveRelative(c.s.BasePath, "{userKey}/mail")
if c.media_ != nil || c.mediaBuffer_ != nil {
urls = strings.Replace(urls, "https://www.googleapis.com/", "https://www.googleapis.com/upload/", 1)
protocol := "multipart"
if c.mediaBuffer_ != nil {
protocol = "resumable"
}
c.urlParams_.Set("uploadType", protocol)
}
if body == nil {
body = new(bytes.Buffer)
reqHeaders.Set("Content-Type", "application/json")
}
if c.media_ != nil {
combined, ctype := gensupport.CombineBodyMedia(body, "application/json", c.media_, c.mediaType_)
defer combined.Close()
reqHeaders.Set("Content-Type", ctype)
body = combined
}
if c.mediaBuffer_ != nil && c.mediaType_ != "" {
reqHeaders.Set("X-Upload-Content-Type", c.mediaType_)
}
urls += "?" + c.urlParams_.Encode()
req, _ := http.NewRequest("POST", urls, body)
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"userKey": c.userKey,
})
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "emailMigration.mail.insert" call.
func (c *MailInsertCall) Do(opts ...googleapi.CallOption) error {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if err != nil {
return err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return err
}
if c.mediaBuffer_ != nil {
loc := res.Header.Get("Location")
rx := &gensupport.ResumableUpload{
Client: c.s.client,
UserAgent: c.s.userAgent(),
URI: loc,
Media: c.mediaBuffer_,
MediaType: c.mediaType_,
Callback: func(curr int64) {
if c.progressUpdater_ != nil {
c.progressUpdater_(curr, c.mediaSize_)
}
},
}
ctx := c.ctx_
if ctx == nil {
ctx = context.TODO()
}
res, err = rx.Upload(ctx)
if err != nil {
return err
}
defer res.Body.Close()
if err := googleapi.CheckResponse(res); err != nil {
return err
}
}
return nil
// {
// "description": "Insert Mail into Google's Gmail backends",
// "httpMethod": "POST",
// "id": "emailMigration.mail.insert",
// "mediaUpload": {
// "accept": [
// "message/rfc822"
// ],
// "maxSize": "35MB",
// "protocols": {
// "resumable": {
// "multipart": true,
// "path": "/resumable/upload/email/v2/users/{userKey}/mail"
// },
// "simple": {
// "multipart": true,
// "path": "/upload/email/v2/users/{userKey}/mail"
// }
// }
// },
// "parameterOrder": [
// "userKey"
// ],
// "parameters": {
// "userKey": {
// "description": "The email or immutable id of the user",
// "location": "path",
// "required": true,
// "type": "string"
// }
// },
// "path": "{userKey}/mail",
// "request": {
// "$ref": "MailItem"
// },
// "scopes": [
// "https://www.googleapis.com/auth/email.migration"
// ],
// "supportsMediaUpload": true
// }
}

View File

@ -0,0 +1,744 @@
{
"kind": "discovery#restDescription",
"etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/-tkaOVzArVVhbxGreMOY21mRaV8\"",
"discoveryVersion": "v1",
"id": "admin:reports_v1",
"name": "admin",
"canonicalName": "reports",
"version": "reports_v1",
"revision": "20170320",
"title": "Admin Reports API",
"description": "Fetches reports for the administrators of G Suite customers about the usage, collaboration, security, and risk for their users.",
"ownerDomain": "google.com",
"ownerName": "Google",
"packagePath": "admin",
"icons": {
"x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png",
"x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png"
},
"documentationLink": "https://developers.google.com/admin-sdk/reports/",
"protocol": "rest",
"baseUrl": "https://www.googleapis.com/admin/reports/v1/",
"basePath": "/admin/reports/v1/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "admin/reports/v1/",
"batchPath": "batch",
"parameters": {
"alt": {
"type": "string",
"description": "Data format for the response.",
"default": "json",
"enum": [
"json"
],
"enumDescriptions": [
"Responses with Content-Type of application/json"
],
"location": "query"
},
"fields": {
"type": "string",
"description": "Selector specifying which fields to include in a partial response.",
"location": "query"
},
"key": {
"type": "string",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query"
},
"oauth_token": {
"type": "string",
"description": "OAuth 2.0 token for the current user.",
"location": "query"
},
"prettyPrint": {
"type": "boolean",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"location": "query"
},
"quotaUser": {
"type": "string",
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
"location": "query"
},
"userIp": {
"type": "string",
"description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
"location": "query"
}
},
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/admin.reports.audit.readonly": {
"description": "View audit reports for your G Suite domain"
},
"https://www.googleapis.com/auth/admin.reports.usage.readonly": {
"description": "View usage reports for your G Suite domain"
}
}
}
},
"schemas": {
"Activities": {
"id": "Activities",
"type": "object",
"description": "JSON template for a collection of activites.",
"properties": {
"etag": {
"type": "string",
"description": "ETag of the resource."
},
"items": {
"type": "array",
"description": "Each record in read response.",
"items": {
"$ref": "Activity"
}
},
"kind": {
"type": "string",
"description": "Kind of list response this is.",
"default": "admin#reports#activities"
},
"nextPageToken": {
"type": "string",
"description": "Token for retrieving the next page"
}
}
},
"Activity": {
"id": "Activity",
"type": "object",
"description": "JSON template for the activity resource.",
"properties": {
"actor": {
"type": "object",
"description": "User doing the action.",
"properties": {
"callerType": {
"type": "string",
"description": "User or OAuth 2LO request."
},
"email": {
"type": "string",
"description": "Email address of the user."
},
"key": {
"type": "string",
"description": "For OAuth 2LO API requests, consumer_key of the requestor."
},
"profileId": {
"type": "string",
"description": "Obfuscated user id of the user."
}
}
},
"etag": {
"type": "string",
"description": "ETag of the entry."
},
"events": {
"type": "array",
"description": "Activity events.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of event."
},
"parameters": {
"type": "array",
"description": "Parameter value pairs for various applications.",
"items": {
"type": "object",
"properties": {
"boolValue": {
"type": "boolean",
"description": "Boolean value of the parameter."
},
"intValue": {
"type": "string",
"description": "Integral value of the parameter.",
"format": "int64"
},
"multiIntValue": {
"type": "array",
"description": "Multi-int value of the parameter.",
"items": {
"type": "string",
"format": "int64"
}
},
"multiValue": {
"type": "array",
"description": "Multi-string value of the parameter.",
"items": {
"type": "string"
}
},
"name": {
"type": "string",
"description": "The name of the parameter."
},
"value": {
"type": "string",
"description": "String value of the parameter."
}
}
}
},
"type": {
"type": "string",
"description": "Type of event."
}
}
}
},
"id": {
"type": "object",
"description": "Unique identifier for each activity record.",
"properties": {
"applicationName": {
"type": "string",
"description": "Application name to which the event belongs."
},
"customerId": {
"type": "string",
"description": "Obfuscated customer ID of the source customer."
},
"time": {
"type": "string",
"description": "Time of occurrence of the activity.",
"format": "date-time"
},
"uniqueQualifier": {
"type": "string",
"description": "Unique qualifier if multiple events have the same time.",
"format": "int64"
}
}
},
"ipAddress": {
"type": "string",
"description": "IP Address of the user doing the action."
},
"kind": {
"type": "string",
"description": "Kind of resource this is.",
"default": "admin#reports#activity"
},
"ownerDomain": {
"type": "string",
"description": "Domain of source customer."
}
}
},
"Channel": {
"id": "Channel",
"type": "object",
"description": "An notification channel used to watch for resource changes.",
"properties": {
"address": {
"type": "string",
"description": "The address where notifications are delivered for this channel."
},
"expiration": {
"type": "string",
"description": "Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.",
"format": "int64"
},
"id": {
"type": "string",
"description": "A UUID or similar unique string that identifies this channel."
},
"kind": {
"type": "string",
"description": "Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".",
"default": "api#channel"
},
"params": {
"type": "object",
"description": "Additional parameters controlling delivery channel behavior. Optional.",
"additionalProperties": {
"type": "string",
"description": "Declares a new parameter by name."
}
},
"payload": {
"type": "boolean",
"description": "A Boolean value to indicate whether payload is wanted. Optional."
},
"resourceId": {
"type": "string",
"description": "An opaque ID that identifies the resource being watched on this channel. Stable across different API versions."
},
"resourceUri": {
"type": "string",
"description": "A version-specific identifier for the watched resource."
},
"token": {
"type": "string",
"description": "An arbitrary string delivered to the target address with each notification delivered over this channel. Optional."
},
"type": {
"type": "string",
"description": "The type of delivery mechanism used for this channel."
}
}
},
"UsageReport": {
"id": "UsageReport",
"type": "object",
"description": "JSON template for a usage report.",
"properties": {
"date": {
"type": "string",
"description": "The date to which the record belongs.",
"readOnly": true
},
"entity": {
"type": "object",
"description": "Information about the type of the item.",
"readOnly": true,
"properties": {
"customerId": {
"type": "string",
"description": "Obfuscated customer id for the record.",
"readOnly": true
},
"profileId": {
"type": "string",
"description": "Obfuscated user id for the record.",
"readOnly": true
},
"type": {
"type": "string",
"description": "The type of item, can be a customer or user.",
"readOnly": true
},
"userEmail": {
"type": "string",
"description": "user's email.",
"readOnly": true
}
}
},
"etag": {
"type": "string",
"description": "ETag of the resource."
},
"kind": {
"type": "string",
"description": "The kind of object.",
"default": "admin#reports#usageReport"
},
"parameters": {
"type": "array",
"description": "Parameter value pairs for various applications.",
"readOnly": true,
"items": {
"type": "object",
"properties": {
"boolValue": {
"type": "boolean",
"description": "Boolean value of the parameter.",
"readOnly": true
},
"datetimeValue": {
"type": "string",
"description": "RFC 3339 formatted value of the parameter.",
"format": "date-time",
"readOnly": true
},
"intValue": {
"type": "string",
"description": "Integral value of the parameter.",
"format": "int64",
"readOnly": true
},
"msgValue": {
"type": "array",
"description": "Nested message value of the parameter.",
"readOnly": true,
"items": {
"type": "object",
"additionalProperties": {
"type": "any"
}
}
},
"name": {
"type": "string",
"description": "The name of the parameter."
},
"stringValue": {
"type": "string",
"description": "String value of the parameter.",
"readOnly": true
}
}
}
}
}
},
"UsageReports": {
"id": "UsageReports",
"type": "object",
"description": "JSON template for a collection of usage reports.",
"properties": {
"etag": {
"type": "string",
"description": "ETag of the resource."
},
"kind": {
"type": "string",
"description": "The kind of object.",
"default": "admin#reports#usageReports"
},
"nextPageToken": {
"type": "string",
"description": "Token for retrieving the next page"
},
"usageReports": {
"type": "array",
"description": "Various application parameter records.",
"items": {
"$ref": "UsageReport"
}
},
"warnings": {
"type": "array",
"description": "Warnings if any.",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Machine readable code / warning type."
},
"data": {
"type": "array",
"description": "Key-Value pairs to give detailed information on the warning.",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Key associated with a key-value pair to give detailed information on the warning."
},
"value": {
"type": "string",
"description": "Value associated with a key-value pair to give detailed information on the warning."
}
}
}
},
"message": {
"type": "string",
"description": "Human readable message for the warning."
}
}
}
}
}
}
},
"resources": {
"activities": {
"methods": {
"list": {
"id": "reports.activities.list",
"path": "activity/users/{userKey}/applications/{applicationName}",
"httpMethod": "GET",
"description": "Retrieves a list of activities for a specific customer and application.",
"parameters": {
"actorIpAddress": {
"type": "string",
"description": "IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.",
"location": "query"
},
"applicationName": {
"type": "string",
"description": "Application name for which the events are to be retrieved.",
"required": true,
"pattern": "(admin)|(calendar)|(drive)|(login)|(mobile)|(token)|(groups)|(saml)|(chat)",
"location": "path"
},
"customerId": {
"type": "string",
"description": "Represents the customer for which the data is to be fetched.",
"pattern": "C.+",
"location": "query"
},
"endTime": {
"type": "string",
"description": "Return events which occurred at or before this time.",
"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))",
"location": "query"
},
"eventName": {
"type": "string",
"description": "Name of the event being queried.",
"location": "query"
},
"filters": {
"type": "string",
"description": "Event parameters in the form [parameter1 name][operator][parameter1 value],[parameter2 name][operator][parameter2 value],...",
"pattern": "(.+[\u003c,\u003c=,==,\u003e=,\u003e,\u003c\u003e].+,)*(.+[\u003c,\u003c=,==,\u003e=,\u003e,\u003c\u003e].+)",
"location": "query"
},
"maxResults": {
"type": "integer",
"description": "Number of activity records to be shown in each page.",
"format": "int32",
"minimum": "1",
"maximum": "1000",
"location": "query"
},
"pageToken": {
"type": "string",
"description": "Token to specify next page.",
"location": "query"
},
"startTime": {
"type": "string",
"description": "Return events which occurred at or after this time.",
"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))",
"location": "query"
},
"userKey": {
"type": "string",
"description": "Represents the profile id or the user email for which the data should be filtered. When 'all' is specified as the userKey, it returns usageReports for all users.",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"userKey",
"applicationName"
],
"response": {
"$ref": "Activities"
},
"scopes": [
"https://www.googleapis.com/auth/admin.reports.audit.readonly"
],
"supportsSubscription": true
},
"watch": {
"id": "reports.activities.watch",
"path": "activity/users/{userKey}/applications/{applicationName}/watch",
"httpMethod": "POST",
"description": "Push changes to activities",
"parameters": {
"actorIpAddress": {
"type": "string",
"description": "IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.",
"location": "query"
},
"applicationName": {
"type": "string",
"description": "Application name for which the events are to be retrieved.",
"required": true,
"pattern": "(admin)|(calendar)|(drive)|(login)|(mobile)|(token)|(groups)|(saml)|(chat)",
"location": "path"
},
"customerId": {
"type": "string",
"description": "Represents the customer for which the data is to be fetched.",
"pattern": "C.+",
"location": "query"
},
"endTime": {
"type": "string",
"description": "Return events which occurred at or before this time.",
"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))",
"location": "query"
},
"eventName": {
"type": "string",
"description": "Name of the event being queried.",
"location": "query"
},
"filters": {
"type": "string",
"description": "Event parameters in the form [parameter1 name][operator][parameter1 value],[parameter2 name][operator][parameter2 value],...",
"pattern": "(.+[\u003c,\u003c=,==,\u003e=,\u003e,\u003c\u003e].+,)*(.+[\u003c,\u003c=,==,\u003e=,\u003e,\u003c\u003e].+)",
"location": "query"
},
"maxResults": {
"type": "integer",
"description": "Number of activity records to be shown in each page.",
"format": "int32",
"minimum": "1",
"maximum": "1000",
"location": "query"
},
"pageToken": {
"type": "string",
"description": "Token to specify next page.",
"location": "query"
},
"startTime": {
"type": "string",
"description": "Return events which occurred at or after this time.",
"pattern": "(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)T(\\d\\d):(\\d\\d):(\\d\\d)(?:\\.(\\d+))?(?:(Z)|([-+])(\\d\\d):(\\d\\d))",
"location": "query"
},
"userKey": {
"type": "string",
"description": "Represents the profile id or the user email for which the data should be filtered. When 'all' is specified as the userKey, it returns usageReports for all users.",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"userKey",
"applicationName"
],
"request": {
"$ref": "Channel",
"parameterName": "resource"
},
"response": {
"$ref": "Channel"
},
"scopes": [
"https://www.googleapis.com/auth/admin.reports.audit.readonly"
],
"supportsSubscription": true
}
}
},
"channels": {
"methods": {
"stop": {
"id": "admin.channels.stop",
"path": "/admin/reports_v1/channels/stop",
"httpMethod": "POST",
"description": "Stop watching resources through this channel",
"request": {
"$ref": "Channel",
"parameterName": "resource"
},
"scopes": [
"https://www.googleapis.com/auth/admin.reports.audit.readonly"
]
}
}
},
"customerUsageReports": {
"methods": {
"get": {
"id": "reports.customerUsageReports.get",
"path": "usage/dates/{date}",
"httpMethod": "GET",
"description": "Retrieves a report which is a collection of properties / statistics for a specific customer.",
"parameters": {
"customerId": {
"type": "string",
"description": "Represents the customer for which the data is to be fetched.",
"pattern": "C.+",
"location": "query"
},
"date": {
"type": "string",
"description": "Represents the date in yyyy-mm-dd format for which the data is to be fetched.",
"required": true,
"pattern": "(\\d){4}-(\\d){2}-(\\d){2}",
"location": "path"
},
"pageToken": {
"type": "string",
"description": "Token to specify next page.",
"location": "query"
},
"parameters": {
"type": "string",
"description": "Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.",
"pattern": "(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+,)*(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+)",
"location": "query"
}
},
"parameterOrder": [
"date"
],
"response": {
"$ref": "UsageReports"
},
"scopes": [
"https://www.googleapis.com/auth/admin.reports.usage.readonly"
]
}
}
},
"userUsageReport": {
"methods": {
"get": {
"id": "reports.userUsageReport.get",
"path": "usage/users/{userKey}/dates/{date}",
"httpMethod": "GET",
"description": "Retrieves a report which is a collection of properties / statistics for a set of users.",
"parameters": {
"customerId": {
"type": "string",
"description": "Represents the customer for which the data is to be fetched.",
"pattern": "C.+",
"location": "query"
},
"date": {
"type": "string",
"description": "Represents the date in yyyy-mm-dd format for which the data is to be fetched.",
"required": true,
"pattern": "(\\d){4}-(\\d){2}-(\\d){2}",
"location": "path"
},
"filters": {
"type": "string",
"description": "Represents the set of filters including parameter operator value.",
"pattern": "(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[\u003c,\u003c=,==,\u003e=,\u003e,!=][^,]+,)*(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[a-z0-9_]+[\u003c,\u003c=,==,\u003e=,\u003e,!=][^,]+)",
"location": "query"
},
"maxResults": {
"type": "integer",
"description": "Maximum number of results to return. Maximum allowed is 1000",
"format": "uint32",
"maximum": "1000",
"location": "query"
},
"pageToken": {
"type": "string",
"description": "Token to specify next page.",
"location": "query"
},
"parameters": {
"type": "string",
"description": "Represents the application name, parameter name pairs to fetch in csv as app_name1:param_name1, app_name2:param_name2.",
"pattern": "(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+,)*(((accounts)|(classroom)|(cros)|(gmail)|(calendar)|(docs)|(gplus)|(sites)|(device_management)|(drive)):[^,]+)",
"location": "query"
},
"userKey": {
"type": "string",
"description": "Represents the profile id or the user email for which the data should be filtered.",
"required": true,
"location": "path"
}
},
"parameterOrder": [
"userKey",
"date"
],
"response": {
"$ref": "UsageReports"
},
"scopes": [
"https://www.googleapis.com/auth/admin.reports.usage.readonly"
]
}
}
}
}
}

File diff suppressed because it is too large Load Diff