forked from mystiq/dex
379 lines
11 KiB
Go
379 lines
11 KiB
Go
// Package audit provides access to the Enterprise Audit API.
|
|
//
|
|
// See https://developers.google.com/google-apps/admin-audit/get_started
|
|
//
|
|
// Usage example:
|
|
//
|
|
// import "google.golang.org/api/audit/v1"
|
|
// ...
|
|
// auditService, err := audit.New(oauthHttpClient)
|
|
package audit
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"errors"
|
|
"fmt"
|
|
"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 _ = googleapi.Version
|
|
var _ = errors.New
|
|
var _ = strings.Replace
|
|
|
|
const apiId = "audit:v1"
|
|
const apiName = "audit"
|
|
const apiVersion = "v1"
|
|
const basePath = "https://www.googleapis.com/apps/reporting/audit/v1/"
|
|
|
|
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)
|
|
return s, nil
|
|
}
|
|
|
|
type Service struct {
|
|
client *http.Client
|
|
BasePath string // API endpoint base URL
|
|
|
|
Activities *ActivitiesService
|
|
}
|
|
|
|
func NewActivitiesService(s *Service) *ActivitiesService {
|
|
rs := &ActivitiesService{s: s}
|
|
return rs
|
|
}
|
|
|
|
type ActivitiesService struct {
|
|
s *Service
|
|
}
|
|
|
|
type Activities struct {
|
|
// Items: Each record in read response.
|
|
Items []*Activity `json:"items,omitempty"`
|
|
|
|
// Kind: Kind of list response this is.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// Next: Next page URL.
|
|
Next string `json:"next,omitempty"`
|
|
}
|
|
|
|
type Activity struct {
|
|
// Actor: User doing the action.
|
|
Actor *ActivityActor `json:"actor,omitempty"`
|
|
|
|
// Events: Activity events.
|
|
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.
|
|
IpAddress string `json:"ipAddress,omitempty"`
|
|
|
|
// Kind: Kind of resource this is.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// OwnerDomain: Domain of source customer.
|
|
OwnerDomain string `json:"ownerDomain,omitempty"`
|
|
}
|
|
|
|
type ActivityActor struct {
|
|
// ApplicationId: ID of application which interacted on behalf of the
|
|
// user.
|
|
ApplicationId int64 `json:"applicationId,omitempty,string"`
|
|
|
|
// CallerType: User or OAuth 2LO request.
|
|
CallerType string `json:"callerType,omitempty"`
|
|
|
|
// Email: Email address of the user.
|
|
Email string `json:"email,omitempty"`
|
|
|
|
// Key: For OAuth 2LO API requests, consumer_key of the requestor.
|
|
Key string `json:"key,omitempty"`
|
|
}
|
|
|
|
type ActivityEvents struct {
|
|
// EventType: Type of event.
|
|
EventType string `json:"eventType,omitempty"`
|
|
|
|
// Name: Name of event.
|
|
Name string `json:"name,omitempty"`
|
|
|
|
// Parameters: Event parameters.
|
|
Parameters []*ActivityEventsParameters `json:"parameters,omitempty"`
|
|
}
|
|
|
|
type ActivityEventsParameters struct {
|
|
// Name: Name of the parameter.
|
|
Name string `json:"name,omitempty"`
|
|
|
|
// Value: Value of the parameter.
|
|
Value string `json:"value,omitempty"`
|
|
}
|
|
|
|
type ActivityId struct {
|
|
// ApplicationId: Application ID of the source application.
|
|
ApplicationId int64 `json:"applicationId,omitempty,string"`
|
|
|
|
// CustomerId: Obfuscated customer ID of the source customer.
|
|
CustomerId string `json:"customerId,omitempty"`
|
|
|
|
// Time: Time of occurrence of the activity.
|
|
Time string `json:"time,omitempty"`
|
|
|
|
// UniqQualifier: Unique qualifier if multiple events have the same
|
|
// time.
|
|
UniqQualifier int64 `json:"uniqQualifier,omitempty,string"`
|
|
}
|
|
|
|
// method id "audit.activities.list":
|
|
|
|
type ActivitiesListCall struct {
|
|
s *Service
|
|
customerId string
|
|
applicationId int64
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// List: Retrieves a list of activities for a specific customer and
|
|
// application.
|
|
func (r *ActivitiesService) List(customerId string, applicationId int64) *ActivitiesListCall {
|
|
c := &ActivitiesListCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.customerId = customerId
|
|
c.applicationId = applicationId
|
|
return c
|
|
}
|
|
|
|
// ActorApplicationId sets the optional parameter "actorApplicationId":
|
|
// Application ID of the application which interacted on behalf of the
|
|
// user while performing the event.
|
|
func (c *ActivitiesListCall) ActorApplicationId(actorApplicationId int64) *ActivitiesListCall {
|
|
c.opt_["actorApplicationId"] = actorApplicationId
|
|
return c
|
|
}
|
|
|
|
// ActorEmail sets the optional parameter "actorEmail": Email address of
|
|
// the user who performed the action.
|
|
func (c *ActivitiesListCall) ActorEmail(actorEmail string) *ActivitiesListCall {
|
|
c.opt_["actorEmail"] = actorEmail
|
|
return c
|
|
}
|
|
|
|
// ActorIpAddress sets the optional parameter "actorIpAddress": IP
|
|
// Address of host where the event was performed. Supports both IPv4 and
|
|
// IPv6 addresses.
|
|
func (c *ActivitiesListCall) ActorIpAddress(actorIpAddress string) *ActivitiesListCall {
|
|
c.opt_["actorIpAddress"] = actorIpAddress
|
|
return c
|
|
}
|
|
|
|
// Caller sets the optional parameter "caller": Type of the caller.
|
|
func (c *ActivitiesListCall) Caller(caller string) *ActivitiesListCall {
|
|
c.opt_["caller"] = caller
|
|
return c
|
|
}
|
|
|
|
// ContinuationToken sets the optional parameter "continuationToken":
|
|
// Next page URL.
|
|
func (c *ActivitiesListCall) ContinuationToken(continuationToken string) *ActivitiesListCall {
|
|
c.opt_["continuationToken"] = continuationToken
|
|
return c
|
|
}
|
|
|
|
// EndTime sets the optional parameter "endTime": Return events which
|
|
// occured at or before this time.
|
|
func (c *ActivitiesListCall) EndTime(endTime string) *ActivitiesListCall {
|
|
c.opt_["endTime"] = endTime
|
|
return c
|
|
}
|
|
|
|
// EventName sets the optional parameter "eventName": Name of the event
|
|
// being queried.
|
|
func (c *ActivitiesListCall) EventName(eventName string) *ActivitiesListCall {
|
|
c.opt_["eventName"] = eventName
|
|
return c
|
|
}
|
|
|
|
// MaxResults sets the optional parameter "maxResults": Number of
|
|
// activity records to be shown in each page.
|
|
func (c *ActivitiesListCall) MaxResults(maxResults int64) *ActivitiesListCall {
|
|
c.opt_["maxResults"] = maxResults
|
|
return c
|
|
}
|
|
|
|
// StartTime sets the optional parameter "startTime": Return events
|
|
// which occured at or after this time.
|
|
func (c *ActivitiesListCall) StartTime(startTime string) *ActivitiesListCall {
|
|
c.opt_["startTime"] = startTime
|
|
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 *ActivitiesListCall) Fields(s ...googleapi.Field) *ActivitiesListCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *ActivitiesListCall) Do() (*Activities, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["actorApplicationId"]; ok {
|
|
params.Set("actorApplicationId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["actorEmail"]; ok {
|
|
params.Set("actorEmail", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["actorIpAddress"]; ok {
|
|
params.Set("actorIpAddress", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["caller"]; ok {
|
|
params.Set("caller", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["continuationToken"]; ok {
|
|
params.Set("continuationToken", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["endTime"]; ok {
|
|
params.Set("endTime", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["eventName"]; ok {
|
|
params.Set("eventName", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["maxResults"]; ok {
|
|
params.Set("maxResults", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["startTime"]; ok {
|
|
params.Set("startTime", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{customerId}/{applicationId}")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"customerId": c.customerId,
|
|
"applicationId": strconv.FormatInt(c.applicationId, 10),
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Activities
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves a list of activities for a specific customer and application.",
|
|
// "httpMethod": "GET",
|
|
// "id": "audit.activities.list",
|
|
// "parameterOrder": [
|
|
// "customerId",
|
|
// "applicationId"
|
|
// ],
|
|
// "parameters": {
|
|
// "actorApplicationId": {
|
|
// "description": "Application ID of the application which interacted on behalf of the user while performing the event.",
|
|
// "format": "int64",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "actorEmail": {
|
|
// "description": "Email address of the user who performed the action.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "actorIpAddress": {
|
|
// "description": "IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "applicationId": {
|
|
// "description": "Application ID of the application on which the event was performed.",
|
|
// "format": "int64",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "caller": {
|
|
// "description": "Type of the caller.",
|
|
// "enum": [
|
|
// "application_owner",
|
|
// "customer"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "Caller is an application owner.",
|
|
// "Caller is a customer."
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "continuationToken": {
|
|
// "description": "Next page URL.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "customerId": {
|
|
// "description": "Represents the customer who is the owner of target object on which action was performed.",
|
|
// "location": "path",
|
|
// "pattern": "C.+",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "endTime": {
|
|
// "description": "Return events which occured at or before this time.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "eventName": {
|
|
// "description": "Name of the event being queried.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "maxResults": {
|
|
// "description": "Number of activity records to be shown in each page.",
|
|
// "format": "int32",
|
|
// "location": "query",
|
|
// "maximum": "1000",
|
|
// "minimum": "1",
|
|
// "type": "integer"
|
|
// },
|
|
// "startTime": {
|
|
// "description": "Return events which occured at or after this time.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{customerId}/{applicationId}",
|
|
// "response": {
|
|
// "$ref": "Activities"
|
|
// }
|
|
// }
|
|
|
|
}
|