// Copyright 2024 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated file. DO NOT EDIT. // Package admin provides access to the Admin SDK API. // // For product documentation, see: https://developers.google.com/admin-sdk/ // // # Library status // // These client libraries are officially supported by Google. However, this // library is considered complete and is in maintenance mode. This means // that we will address critical bugs and security issues but will not add // any new features. // // When possible, we recommend using our newer // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go) // that are still actively being worked and iterated on. // // # Creating a client // // Usage example: // // import "google.golang.org/api/admin/reports/v1" // ... // ctx := context.Background() // adminService, err := admin.NewService(ctx) // // In this example, Google Application Default Credentials are used for // authentication. For information on how to create and obtain Application // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. // // # Other authentication options // // By default, all available scopes (see "Constants") are used to authenticate. // To restrict scopes, use [google.golang.org/api/option.WithScopes]: // // adminService, err := admin.NewService(ctx, option.WithScopes(admin.AdminReportsUsageReadonlyScope)) // // To use an API key for authentication (note: some APIs do not support API // keys), use [google.golang.org/api/option.WithAPIKey]: // // adminService, err := admin.NewService(ctx, option.WithAPIKey("AIza...")) // // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth // flow, use [google.golang.org/api/option.WithTokenSource]: // // config := &oauth2.Config{...} // // ... // token, err := config.Exchange(ctx, ...) // adminService, err := admin.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) // // See [google.golang.org/api/option.ClientOption] for details on options. package admin // import "google.golang.org/api/admin/reports/v1" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" googleapi "google.golang.org/api/googleapi" internal "google.golang.org/api/internal" gensupport "google.golang.org/api/internal/gensupport" option "google.golang.org/api/option" internaloption "google.golang.org/api/option/internaloption" htransport "google.golang.org/api/transport/http" ) // 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 _ = internaloption.WithDefaultEndpoint var _ = internal.Version const apiId = "admin:reports_v1" const apiName = "admin" const apiVersion = "reports_v1" const basePath = "https://admin.googleapis.com/" const basePathTemplate = "https://admin.UNIVERSE_DOMAIN/" const mtlsBasePath = "https://admin.mtls.googleapis.com/" // OAuth2 scopes used by this API. const ( // View audit reports for your G Suite domain AdminReportsAuditReadonlyScope = "https://www.googleapis.com/auth/admin.reports.audit.readonly" // View usage reports for your G Suite domain AdminReportsUsageReadonlyScope = "https://www.googleapis.com/auth/admin.reports.usage.readonly" ) // NewService creates a new Service. func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { scopesOption := internaloption.WithDefaultScopes( "https://www.googleapis.com/auth/admin.reports.audit.readonly", "https://www.googleapis.com/auth/admin.reports.usage.readonly", ) // NOTE: prepend, so we don't override user-specified scopes. opts = append([]option.ClientOption{scopesOption}, opts...) opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate)) opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) opts = append(opts, internaloption.EnableNewAuthLibrary()) client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } s, err := New(client) if err != nil { return nil, err } if endpoint != "" { s.BasePath = endpoint } return s, nil } // New creates a new Service. It uses the provided http.Client for requests. // // Deprecated: please use NewService instead. // To provide a custom HTTP client, use option.WithHTTPClient. // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.Activities = NewActivitiesService(s) s.Channels = NewChannelsService(s) s.CustomerUsageReports = NewCustomerUsageReportsService(s) s.EntityUsageReports = NewEntityUsageReportsService(s) s.UserUsageReport = NewUserUsageReportService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Activities *ActivitiesService Channels *ChannelsService CustomerUsageReports *CustomerUsageReportsService EntityUsageReports *EntityUsageReportsService UserUsageReport *UserUsageReportService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewActivitiesService(s *Service) *ActivitiesService { rs := &ActivitiesService{s: s} return rs } type ActivitiesService struct { s *Service } func NewChannelsService(s *Service) *ChannelsService { rs := &ChannelsService{s: s} return rs } type ChannelsService struct { s *Service } func NewCustomerUsageReportsService(s *Service) *CustomerUsageReportsService { rs := &CustomerUsageReportsService{s: s} return rs } type CustomerUsageReportsService struct { s *Service } func NewEntityUsageReportsService(s *Service) *EntityUsageReportsService { rs := &EntityUsageReportsService{s: s} return rs } type EntityUsageReportsService struct { s *Service } func NewUserUsageReportService(s *Service) *UserUsageReportService { rs := &UserUsageReportService{s: s} return rs } type UserUsageReportService struct { s *Service } // Activities: JSON template for a collection of activities. type Activities struct { // Etag: ETag of the resource. Etag string `json:"etag,omitempty"` // Items: Each activity record in the response. Items []*Activity `json:"items,omitempty"` // Kind: The type of API resource. For an activity report, the value is // `reports#activities`. Kind string `json:"kind,omitempty"` // NextPageToken: Token for retrieving the follow-on next page of the report. // The `nextPageToken` value is used in the request's `pageToken` query string. NextPageToken string `json:"nextPageToken,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Activities) MarshalJSON() ([]byte, error) { type NoMethod Activities return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Activity: JSON template for the activity resource. type Activity struct { // Actor: User doing the action. Actor *ActivityActor `json:"actor,omitempty"` // Etag: ETag of the entry. Etag string `json:"etag,omitempty"` // Events: Activity events in the report. Events []*ActivityEvents `json:"events,omitempty"` // Id: Unique identifier for each activity record. Id *ActivityId `json:"id,omitempty"` // IpAddress: IP address of the user doing the action. This is the Internet // Protocol (IP) address of the user when logging into Google Workspace, 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. IpAddress string `json:"ipAddress,omitempty"` // Kind: The type of API resource. For an activity report, the value is // `audit#activity`. Kind string `json:"kind,omitempty"` // OwnerDomain: 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. OwnerDomain string `json:"ownerDomain,omitempty"` // ForceSendFields is a list of field names (e.g. "Actor") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Actor") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Activity) MarshalJSON() ([]byte, error) { type NoMethod Activity return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ActivityActor: User doing the action. type ActivityActor struct { // CallerType: The type of actor. CallerType string `json:"callerType,omitempty"` // Email: The primary email address of the actor. May be absent if there is no // email address associated with the actor. Email string `json:"email,omitempty"` // Key: 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. Key string `json:"key,omitempty"` // ProfileId: The unique Google Workspace profile ID of the actor. This value // might be absent if the actor is not a Google Workspace user, or may be the // number 105250506097979753968 which acts as a placeholder ID. ProfileId string `json:"profileId,omitempty"` // ForceSendFields is a list of field names (e.g. "CallerType") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CallerType") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ActivityActor) MarshalJSON() ([]byte, error) { type NoMethod ActivityActor return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type ActivityEvents struct { // Name: Name of the event. This is the specific name of the activity reported // by the API. And each `eventName` is related to a specific Google Workspace // 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`. For more information about `eventName` properties, see the list // of event names for various applications above in `applicationName`. Name string `json:"name,omitempty"` // Parameters: Parameter value pairs for various applications. For more // information about `eventName` parameters, see the list of event names for // various applications above in `applicationName`. Parameters []*ActivityEventsParameters `json:"parameters,omitempty"` // Type: Type of event. The Google Workspace 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`. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Name") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ActivityEvents) MarshalJSON() ([]byte, error) { type NoMethod ActivityEvents return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type ActivityEventsParameters struct { // BoolValue: Boolean value of the parameter. BoolValue bool `json:"boolValue,omitempty"` // IntValue: Integer value of the parameter. IntValue int64 `json:"intValue,omitempty,string"` // MessageValue: 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}]}]` MessageValue *ActivityEventsParametersMessageValue `json:"messageValue,omitempty"` // MultiIntValue: Integer values of the parameter. MultiIntValue googleapi.Int64s `json:"multiIntValue,omitempty"` // MultiMessageValue: List of `messageValue` objects. MultiMessageValue []*ActivityEventsParametersMultiMessageValue `json:"multiMessageValue,omitempty"` // MultiValue: String values of the parameter. MultiValue []string `json:"multiValue,omitempty"` // Name: The name of the parameter. Name string `json:"name,omitempty"` // Value: String value of the parameter. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "BoolValue") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BoolValue") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ActivityEventsParameters) MarshalJSON() ([]byte, error) { type NoMethod ActivityEventsParameters return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ActivityEventsParametersMessageValue: 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}]}]` type ActivityEventsParametersMessageValue struct { // Parameter: Parameter values Parameter []*NestedParameter `json:"parameter,omitempty"` // ForceSendFields is a list of field names (e.g. "Parameter") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Parameter") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ActivityEventsParametersMessageValue) MarshalJSON() ([]byte, error) { type NoMethod ActivityEventsParametersMessageValue return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type ActivityEventsParametersMultiMessageValue struct { // Parameter: Parameter values Parameter []*NestedParameter `json:"parameter,omitempty"` // ForceSendFields is a list of field names (e.g. "Parameter") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Parameter") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ActivityEventsParametersMultiMessageValue) MarshalJSON() ([]byte, error) { type NoMethod ActivityEventsParametersMultiMessageValue return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ActivityId: Unique identifier for each activity record. type ActivityId struct { // ApplicationName: Application name to which the event belongs. For possible // values see the list of applications above in `applicationName`. ApplicationName string `json:"applicationName,omitempty"` // CustomerId: The unique identifier for a Google Workspace account. CustomerId string `json:"customerId,omitempty"` // Time: Time of occurrence of the activity. This is in UNIX epoch time in // seconds. Time string `json:"time,omitempty"` // UniqueQualifier: Unique qualifier if multiple events have the same time. UniqueQualifier int64 `json:"uniqueQualifier,omitempty,string"` // ForceSendFields is a list of field names (e.g. "ApplicationName") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ApplicationName") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ActivityId) MarshalJSON() ([]byte, error) { type NoMethod ActivityId return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Channel: A notification channel used to watch for resource changes. type Channel struct { // Address: The address where notifications are delivered for this channel. Address string `json:"address,omitempty"` // Expiration: Date and time of notification channel expiration, expressed as a // Unix timestamp, in milliseconds. Optional. Expiration int64 `json:"expiration,omitempty,string"` // Id: A UUID or similar unique string that identifies this channel. Id string `json:"id,omitempty"` // Kind: Identifies this as a notification channel used to watch for changes to // a resource, which is "api#channel". Kind string `json:"kind,omitempty"` // Params: Additional parameters controlling delivery channel behavior. // Optional. Params map[string]string `json:"params,omitempty"` // Payload: A Boolean value to indicate whether payload is wanted. A payload is // data that is sent in the body of an HTTP POST, PUT, or PATCH message and // contains important information about the request. Optional. Payload bool `json:"payload,omitempty"` // ResourceId: An opaque ID that identifies the resource being watched on this // channel. Stable across different API versions. ResourceId string `json:"resourceId,omitempty"` // ResourceUri: A version-specific identifier for the watched resource. ResourceUri string `json:"resourceUri,omitempty"` // Token: An arbitrary string delivered to the target address with each // notification delivered over this channel. Optional. Token string `json:"token,omitempty"` // Type: The type of delivery mechanism used for this channel. The value should // be set to "web_hook". Type string `json:"type,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Address") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Address") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Channel) MarshalJSON() ([]byte, error) { type NoMethod Channel return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // NestedParameter: JSON template for a parameter used in various reports. type NestedParameter struct { // BoolValue: Boolean value of the parameter. BoolValue bool `json:"boolValue,omitempty"` // IntValue: Integer value of the parameter. IntValue int64 `json:"intValue,omitempty,string"` // MultiBoolValue: Multiple boolean values of the parameter. MultiBoolValue []bool `json:"multiBoolValue,omitempty"` // MultiIntValue: Multiple integer values of the parameter. MultiIntValue googleapi.Int64s `json:"multiIntValue,omitempty"` // MultiValue: Multiple string values of the parameter. MultiValue []string `json:"multiValue,omitempty"` // Name: The name of the parameter. Name string `json:"name,omitempty"` // Value: String value of the parameter. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "BoolValue") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BoolValue") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *NestedParameter) MarshalJSON() ([]byte, error) { type NoMethod NestedParameter return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // UsageReport: JSON template for a usage report. type UsageReport struct { // Date: Output only. The date of the report request. Date string `json:"date,omitempty"` // Entity: Output only. Information about the type of the item. Entity *UsageReportEntity `json:"entity,omitempty"` // Etag: ETag of the resource. Etag string `json:"etag,omitempty"` // Kind: The type of API resource. For a usage report, the value is // `admin#reports#usageReport`. Kind string `json:"kind,omitempty"` // Parameters: Output only. Parameter value pairs for various applications. For // the Entity Usage Report parameters and values, see the Entity Usage // parameters reference // (/admin-sdk/reports/v1/reference/usage-ref-appendix-a/entities). Parameters []*UsageReportParameters `json:"parameters,omitempty"` // ForceSendFields is a list of field names (e.g. "Date") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Date") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *UsageReport) MarshalJSON() ([]byte, error) { type NoMethod UsageReport return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // UsageReportEntity: Output only. Information about the type of the item. type UsageReportEntity struct { // CustomerId: Output only. The unique identifier of the customer's account. CustomerId string `json:"customerId,omitempty"` // EntityId: Output only. Object key. Only relevant if entity.type = "OBJECT" // Note: external-facing name of report is "Entities" rather than "Objects". EntityId string `json:"entityId,omitempty"` // ProfileId: Output only. The user's immutable Google Workspace profile // identifier. ProfileId string `json:"profileId,omitempty"` // Type: Output only. The type of item. The value is `user`. Type string `json:"type,omitempty"` // UserEmail: Output only. The user's email address. Only relevant if // entity.type = "USER" UserEmail string `json:"userEmail,omitempty"` // ForceSendFields is a list of field names (e.g. "CustomerId") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CustomerId") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *UsageReportEntity) MarshalJSON() ([]byte, error) { type NoMethod UsageReportEntity return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type UsageReportParameters struct { // BoolValue: Output only. Boolean value of the parameter. BoolValue bool `json:"boolValue,omitempty"` // DatetimeValue: The RFC 3339 formatted value of the parameter, for example // 2010-10-28T10:26:35.000Z. DatetimeValue string `json:"datetimeValue,omitempty"` // IntValue: Output only. Integer value of the parameter. IntValue int64 `json:"intValue,omitempty,string"` // MsgValue: Output only. Nested message value of the parameter. MsgValue []googleapi.RawMessage `json:"msgValue,omitempty"` // Name: The name of the parameter. For the User Usage Report parameter names, // see the User Usage parameters reference. Name string `json:"name,omitempty"` // StringValue: Output only. String value of the parameter. StringValue string `json:"stringValue,omitempty"` // ForceSendFields is a list of field names (e.g. "BoolValue") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BoolValue") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *UsageReportParameters) MarshalJSON() ([]byte, error) { type NoMethod UsageReportParameters return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type UsageReports struct { // Etag: ETag of the resource. Etag string `json:"etag,omitempty"` // Kind: The type of API resource. For a usage report, the value is // `admin#reports#usageReports`. Kind string `json:"kind,omitempty"` // NextPageToken: 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. NextPageToken string `json:"nextPageToken,omitempty"` // UsageReports: Various application parameter records. UsageReports []*UsageReport `json:"usageReports,omitempty"` // Warnings: Warnings, if any. Warnings []*UsageReportsWarnings `json:"warnings,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *UsageReports) MarshalJSON() ([]byte, error) { type NoMethod UsageReports return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type UsageReportsWarnings struct { // Code: Machine readable code or warning type. The warning code value is // `200`. Code string `json:"code,omitempty"` // Data: Key-value pairs to give detailed information on the warning. Data []*UsageReportsWarningsData `json:"data,omitempty"` // Message: 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. Message string `json:"message,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Code") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *UsageReportsWarnings) MarshalJSON() ([]byte, error) { type NoMethod UsageReportsWarnings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type UsageReportsWarningsData struct { // Key: Key associated with a key-value pair to give detailed information on // the warning. Key string `json:"key,omitempty"` // Value: Value associated with a key-value pair to give detailed information // on the warning. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Key") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Key") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *UsageReportsWarningsData) MarshalJSON() ([]byte, error) { type NoMethod UsageReportsWarningsData return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type ActivitiesListCall struct { s *Service userKey string applicationName string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: 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. // // - applicationName: Application name for which the events are to be // retrieved. // - 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 Google Workspace profile ID or their primary email address. // Must not be a deleted user. For a deleted user, call `users.list` in // Directory API with `showDeleted=true`, then use the returned `ID` as the // `userKey`. func (r *ActivitiesService) List(userKey string, applicationName string) *ActivitiesListCall { c := &ActivitiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userKey = userKey c.applicationName = applicationName return c } // ActorIpAddress sets the optional parameter "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. func (c *ActivitiesListCall) ActorIpAddress(actorIpAddress string) *ActivitiesListCall { c.urlParams_.Set("actorIpAddress", actorIpAddress) return c } // CustomerId sets the optional parameter "customerId": The unique ID of the // customer to retrieve data for. func (c *ActivitiesListCall) CustomerId(customerId string) *ActivitiesListCall { c.urlParams_.Set("customerId", customerId) return c } // EndTime sets the optional parameter "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. func (c *ActivitiesListCall) EndTime(endTime string) *ActivitiesListCall { c.urlParams_.Set("endTime", endTime) return c } // EventName sets the optional parameter "eventName": The name of the event // being queried by the API. Each `eventName` is related to a specific Google // Workspace 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`. func (c *ActivitiesListCall) EventName(eventName string) *ActivitiesListCall { c.urlParams_.Set("eventName", eventName) return c } // Filters sets the optional parameter "filters": The `filters` query string is // a comma-separated list composed of event parameters manipulated by // relational operators. Event parameters are in the form `{parameter1 // name}{relational operator}{parameter1 value},{parameter2 name}{relational // operator}{parameter2 value},...` These event parameters are associated with // a specific `eventName`. An empty report is returned if the request's // parameter doesn't belong to the `eventName`. For more information about the // available `eventName` fields for each application and their associated // parameters, go to the ApplicationName (#applicationname) table, then click // through to the Activity Events page in the Appendix for the application you // want. In the following Drive activity examples, the returned list consists // of all `edit` events where the `doc_id` parameter value matches the // conditions defined by the relational operator. In the first example, the // request returns all edited documents with a `doc_id` value equal to `12345`. // In the second example, the report returns any edited documents where the // `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in // the request's query string (`%3C%3E`): ``` // GET...&eventName=edit&filters=doc_id==12345 // GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query // supports these relational operators: * `==`—'equal to'. * `<>`—'not // equal to'. Must be URL-encoded (%3C%3E). * `<`—'less than'. Must be // URL-encoded (%3C). * `<=`—'less than or equal to'. Must be URL-encoded // (%3C=). * `>`—'greater than'. Must be URL-encoded (%3E). * `>=`—'greater // than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't // accept multiple values of the same parameter. If a parameter is supplied // more than once in the API request, the API only accepts the last value of // that parameter. In addition, if an invalid parameter is supplied in the API // request, the API ignores that parameter and returns the response // corresponding to the remaining valid parameters. If no parameters are // requested, all parameters are returned. func (c *ActivitiesListCall) Filters(filters string) *ActivitiesListCall { c.urlParams_.Set("filters", filters) return c } // GroupIdFilter sets the optional parameter "groupIdFilter": Comma separated // group ids (obfuscated) on which user activities are filtered, i.e. the // response will contain activities for only those users that are a part of at // least one of the group ids mentioned here. Format: "id:abc123,id:xyz456" func (c *ActivitiesListCall) GroupIdFilter(groupIdFilter string) *ActivitiesListCall { c.urlParams_.Set("groupIdFilter", groupIdFilter) return c } // MaxResults sets the optional parameter "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. func (c *ActivitiesListCall) MaxResults(maxResults int64) *ActivitiesListCall { c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } // OrgUnitID sets the optional parameter "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. func (c *ActivitiesListCall) OrgUnitID(orgUnitID string) *ActivitiesListCall { c.urlParams_.Set("orgUnitID", orgUnitID) return c } // PageToken sets the optional parameter "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. func (c *ActivitiesListCall) PageToken(pageToken string) *ActivitiesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // StartTime sets the optional parameter "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. func (c *ActivitiesListCall) StartTime(startTime string) *ActivitiesListCall { c.urlParams_.Set("startTime", startTime) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ActivitiesListCall) Fields(s ...googleapi.Field) *ActivitiesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *ActivitiesListCall) IfNoneMatch(entityTag string) *ActivitiesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *ActivitiesListCall) Context(ctx context.Context) *ActivitiesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ActivitiesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ActivitiesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "userKey": c.userKey, "applicationName": c.applicationName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "reports.activities.list" call. // Any non-2xx status code is an error. Response headers are in either // *Activities.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ActivitiesListCall) Do(opts ...googleapi.CallOption) (*Activities, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Activities{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *ActivitiesListCall) Pages(ctx context.Context, f func(*Activities) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } type ActivitiesWatchCall struct { s *Service userKey string applicationName string channel *Channel urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Watch: Start receiving notifications for account activities. For more // information, see Receiving Push Notifications. // // - applicationName: Application name for which the events are to be // retrieved. // - 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 Google Workspace profile ID or their primary email address. // Must not be a deleted user. For a deleted user, call `users.list` in // Directory API with `showDeleted=true`, then use the returned `ID` as the // `userKey`. func (r *ActivitiesService) Watch(userKey string, applicationName string, channel *Channel) *ActivitiesWatchCall { c := &ActivitiesWatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userKey = userKey c.applicationName = applicationName c.channel = channel return c } // ActorIpAddress sets the optional parameter "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. func (c *ActivitiesWatchCall) ActorIpAddress(actorIpAddress string) *ActivitiesWatchCall { c.urlParams_.Set("actorIpAddress", actorIpAddress) return c } // CustomerId sets the optional parameter "customerId": The unique ID of the // customer to retrieve data for. func (c *ActivitiesWatchCall) CustomerId(customerId string) *ActivitiesWatchCall { c.urlParams_.Set("customerId", customerId) return c } // EndTime sets the optional parameter "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. func (c *ActivitiesWatchCall) EndTime(endTime string) *ActivitiesWatchCall { c.urlParams_.Set("endTime", endTime) return c } // EventName sets the optional parameter "eventName": The name of the event // being queried by the API. Each `eventName` is related to a specific Google // Workspace 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`. func (c *ActivitiesWatchCall) EventName(eventName string) *ActivitiesWatchCall { c.urlParams_.Set("eventName", eventName) return c } // Filters sets the optional parameter "filters": The `filters` query string is // a comma-separated list composed of event parameters manipulated by // relational operators. Event parameters are in the form `{parameter1 // name}{relational operator}{parameter1 value},{parameter2 name}{relational // operator}{parameter2 value},...` These event parameters are associated with // a specific `eventName`. An empty report is returned if the request's // parameter doesn't belong to the `eventName`. For more information about the // available `eventName` fields for each application and their associated // parameters, go to the ApplicationName (#applicationname) table, then click // through to the Activity Events page in the Appendix for the application you // want. In the following Drive activity examples, the returned list consists // of all `edit` events where the `doc_id` parameter value matches the // conditions defined by the relational operator. In the first example, the // request returns all edited documents with a `doc_id` value equal to `12345`. // In the second example, the report returns any edited documents where the // `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in // the request's query string (`%3C%3E`): ``` // GET...&eventName=edit&filters=doc_id==12345 // GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query // supports these relational operators: * `==`—'equal to'. * `<>`—'not // equal to'. Must be URL-encoded (%3C%3E). * `<`—'less than'. Must be // URL-encoded (%3C). * `<=`—'less than or equal to'. Must be URL-encoded // (%3C=). * `>`—'greater than'. Must be URL-encoded (%3E). * `>=`—'greater // than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't // accept multiple values of the same parameter. If a parameter is supplied // more than once in the API request, the API only accepts the last value of // that parameter. In addition, if an invalid parameter is supplied in the API // request, the API ignores that parameter and returns the response // corresponding to the remaining valid parameters. If no parameters are // requested, all parameters are returned. func (c *ActivitiesWatchCall) Filters(filters string) *ActivitiesWatchCall { c.urlParams_.Set("filters", filters) return c } // GroupIdFilter sets the optional parameter "groupIdFilter": Comma separated // group ids (obfuscated) on which user activities are filtered, i.e. the // response will contain activities for only those users that are a part of at // least one of the group ids mentioned here. Format: "id:abc123,id:xyz456" func (c *ActivitiesWatchCall) GroupIdFilter(groupIdFilter string) *ActivitiesWatchCall { c.urlParams_.Set("groupIdFilter", groupIdFilter) return c } // MaxResults sets the optional parameter "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. func (c *ActivitiesWatchCall) MaxResults(maxResults int64) *ActivitiesWatchCall { c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } // OrgUnitID sets the optional parameter "orgUnitID": `Deprecated`. This field // is deprecated and is no longer supported. 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. func (c *ActivitiesWatchCall) OrgUnitID(orgUnitID string) *ActivitiesWatchCall { c.urlParams_.Set("orgUnitID", orgUnitID) return c } // PageToken sets the optional parameter "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. func (c *ActivitiesWatchCall) PageToken(pageToken string) *ActivitiesWatchCall { c.urlParams_.Set("pageToken", pageToken) return c } // StartTime sets the optional parameter "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. func (c *ActivitiesWatchCall) StartTime(startTime string) *ActivitiesWatchCall { c.urlParams_.Set("startTime", startTime) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ActivitiesWatchCall) Fields(s ...googleapi.Field) *ActivitiesWatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ActivitiesWatchCall) Context(ctx context.Context) *ActivitiesWatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ActivitiesWatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ActivitiesWatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "admin/reports/v1/activity/users/{userKey}/applications/{applicationName}/watch") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "userKey": c.userKey, "applicationName": c.applicationName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "reports.activities.watch" call. // Any non-2xx status code is an error. Response headers are in either // *Channel.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ActivitiesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Channel{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ChannelsStopCall struct { s *Service channel *Channel urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Stop: Stop watching resources through this channel. func (r *ChannelsService) Stop(channel *Channel) *ChannelsStopCall { c := &ChannelsStopCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.channel = channel return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ChannelsStopCall) Fields(s ...googleapi.Field) *ChannelsStopCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ChannelsStopCall) Context(ctx context.Context) *ChannelsStopCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ChannelsStopCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ChannelsStopCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.channel) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "admin/reports_v1/channels/stop") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "admin.channels.stop" call. func (c *ChannelsStopCall) 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 gensupport.WrapError(err) } return nil } type CustomerUsageReportsGetCall struct { s *Service date string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: 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. // // - date: Represents the date the usage occurred, based on UTC-8:00 (Pacific // Standard Time). The timestamp is in the ISO 8601 format // (https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`. func (r *CustomerUsageReportsService) Get(date string) *CustomerUsageReportsGetCall { c := &CustomerUsageReportsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.date = date return c } // CustomerId sets the optional parameter "customerId": The unique ID of the // customer to retrieve data for. func (c *CustomerUsageReportsGetCall) CustomerId(customerId string) *CustomerUsageReportsGetCall { c.urlParams_.Set("customerId", customerId) return c } // PageToken sets the optional parameter "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. func (c *CustomerUsageReportsGetCall) PageToken(pageToken string) *CustomerUsageReportsGetCall { c.urlParams_.Set("pageToken", pageToken) return c } // Parameters sets the optional parameter "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. func (c *CustomerUsageReportsGetCall) Parameters(parameters string) *CustomerUsageReportsGetCall { c.urlParams_.Set("parameters", parameters) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *CustomerUsageReportsGetCall) Fields(s ...googleapi.Field) *CustomerUsageReportsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *CustomerUsageReportsGetCall) IfNoneMatch(entityTag string) *CustomerUsageReportsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *CustomerUsageReportsGetCall) Context(ctx context.Context) *CustomerUsageReportsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *CustomerUsageReportsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *CustomerUsageReportsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "admin/reports/v1/usage/dates/{date}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "date": c.date, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "reports.customerUsageReports.get" call. // Any non-2xx status code is an error. Response headers are in either // *UsageReports.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *CustomerUsageReportsGetCall) Do(opts ...googleapi.CallOption) (*UsageReports, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &UsageReports{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *CustomerUsageReportsGetCall) Pages(ctx context.Context, f func(*UsageReports) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } type EntityUsageReportsGetCall struct { s *Service entityType string entityKey string date string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: 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. // // - date: Represents the date the usage occurred, based on UTC-8:00 (Pacific // Standard Time). The timestamp is in the ISO 8601 format // (https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`. // - entityKey: Represents the key of the object to filter the data with. It is // a string which can take the value `all` to get activity events for all // users, or any other value for an app-specific entity. For details on how // to obtain the `entityKey` for a particular `entityType`, see the Entities // Usage parameters reference guides. // - entityType: Represents the type of entity for the report. func (r *EntityUsageReportsService) Get(entityType string, entityKey string, date string) *EntityUsageReportsGetCall { c := &EntityUsageReportsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.entityType = entityType c.entityKey = entityKey c.date = date return c } // CustomerId sets the optional parameter "customerId": The unique ID of the // customer to retrieve data for. func (c *EntityUsageReportsGetCall) CustomerId(customerId string) *EntityUsageReportsGetCall { c.urlParams_.Set("customerId", customerId) return c } // Filters sets the optional parameter "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%3C%3E0 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. func (c *EntityUsageReportsGetCall) Filters(filters string) *EntityUsageReportsGetCall { c.urlParams_.Set("filters", filters) return c } // MaxResults sets the optional parameter "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. func (c *EntityUsageReportsGetCall) MaxResults(maxResults int64) *EntityUsageReportsGetCall { c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } // PageToken sets the optional parameter "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. func (c *EntityUsageReportsGetCall) PageToken(pageToken string) *EntityUsageReportsGetCall { c.urlParams_.Set("pageToken", pageToken) return c } // Parameters sets the optional parameter "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. func (c *EntityUsageReportsGetCall) Parameters(parameters string) *EntityUsageReportsGetCall { c.urlParams_.Set("parameters", parameters) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *EntityUsageReportsGetCall) Fields(s ...googleapi.Field) *EntityUsageReportsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *EntityUsageReportsGetCall) IfNoneMatch(entityTag string) *EntityUsageReportsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *EntityUsageReportsGetCall) Context(ctx context.Context) *EntityUsageReportsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *EntityUsageReportsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *EntityUsageReportsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "admin/reports/v1/usage/{entityType}/{entityKey}/dates/{date}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "entityType": c.entityType, "entityKey": c.entityKey, "date": c.date, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "reports.entityUsageReports.get" call. // Any non-2xx status code is an error. Response headers are in either // *UsageReports.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *EntityUsageReportsGetCall) Do(opts ...googleapi.CallOption) (*UsageReports, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &UsageReports{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *EntityUsageReportsGetCall) Pages(ctx context.Context, f func(*UsageReports) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } type UserUsageReportGetCall struct { s *Service userKey string date string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: 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. // // - date: Represents the date the usage occurred, based on UTC-8:00 (Pacific // Standard Time). The timestamp is in the ISO 8601 format // (https://en.wikipedia.org/wiki/ISO_8601), `yyyy-mm-dd`. // - 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 Google Workspace profile ID or their primary email address. // Must not be a deleted user. For a deleted user, call `users.list` in // Directory API with `showDeleted=true`, then use the returned `ID` as the // `userKey`. func (r *UserUsageReportService) Get(userKey string, date string) *UserUsageReportGetCall { c := &UserUsageReportGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.userKey = userKey c.date = date return c } // CustomerId sets the optional parameter "customerId": The unique ID of the // customer to retrieve data for. func (c *UserUsageReportGetCall) CustomerId(customerId string) *UserUsageReportGetCall { c.urlParams_.Set("customerId", customerId) return c } // Filters sets the optional parameter "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%3C%3E2010-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=). func (c *UserUsageReportGetCall) Filters(filters string) *UserUsageReportGetCall { c.urlParams_.Set("filters", filters) return c } // GroupIdFilter sets the optional parameter "groupIdFilter": Comma separated // group ids (obfuscated) on which user activities are filtered, i.e. the // response will contain activities for only those users that are a part of at // least one of the group ids mentioned here. Format: "id:abc123,id:xyz456" func (c *UserUsageReportGetCall) GroupIdFilter(groupIdFilter string) *UserUsageReportGetCall { c.urlParams_.Set("groupIdFilter", groupIdFilter) return c } // MaxResults sets the optional parameter "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. func (c *UserUsageReportGetCall) MaxResults(maxResults int64) *UserUsageReportGetCall { c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } // OrgUnitID sets the optional parameter "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. func (c *UserUsageReportGetCall) OrgUnitID(orgUnitID string) *UserUsageReportGetCall { c.urlParams_.Set("orgUnitID", orgUnitID) return c } // PageToken sets the optional parameter "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. func (c *UserUsageReportGetCall) PageToken(pageToken string) *UserUsageReportGetCall { c.urlParams_.Set("pageToken", pageToken) return c } // Parameters sets the optional parameter "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. func (c *UserUsageReportGetCall) Parameters(parameters string) *UserUsageReportGetCall { c.urlParams_.Set("parameters", parameters) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *UserUsageReportGetCall) Fields(s ...googleapi.Field) *UserUsageReportGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *UserUsageReportGetCall) IfNoneMatch(entityTag string) *UserUsageReportGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *UserUsageReportGetCall) Context(ctx context.Context) *UserUsageReportGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *UserUsageReportGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *UserUsageReportGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "admin/reports/v1/usage/users/{userKey}/dates/{date}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "userKey": c.userKey, "date": c.date, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "reports.userUsageReport.get" call. // Any non-2xx status code is an error. Response headers are in either // *UsageReports.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *UserUsageReportGetCall) Do(opts ...googleapi.CallOption) (*UsageReports, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &UsageReports{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *UserUsageReportGetCall) Pages(ctx context.Context, f func(*UsageReports) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } }