// Package dfareporting provides access to the DFA Reporting API. // // See https://developers.google.com/doubleclick-advertisers/reporting/ // // Usage example: // // import "google.golang.org/api/dfareporting/v1.1" // ... // dfareportingService, err := dfareporting.New(oauthHttpClient) package dfareporting // import "google.golang.org/api/dfareporting/v1.1" import ( "bytes" "encoding/json" "errors" "fmt" "golang.org/x/net/context" "golang.org/x/net/context/ctxhttp" "google.golang.org/api/googleapi" "google.golang.org/api/internal" "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 var _ = internal.MarshalJSON var _ = context.Canceled var _ = ctxhttp.Do const apiId = "dfareporting:v1.1" const apiName = "dfareporting" const apiVersion = "v1.1" const basePath = "https://www.googleapis.com/dfareporting/v1.1/" // OAuth2 scopes used by this API. const ( // View and manage DoubleClick for Advertisers reports DfareportingScope = "https://www.googleapis.com/auth/dfareporting" ) func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.DimensionValues = NewDimensionValuesService(s) s.Files = NewFilesService(s) s.Reports = NewReportsService(s) s.UserProfiles = NewUserProfilesService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment DimensionValues *DimensionValuesService Files *FilesService Reports *ReportsService UserProfiles *UserProfilesService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewDimensionValuesService(s *Service) *DimensionValuesService { rs := &DimensionValuesService{s: s} return rs } type DimensionValuesService struct { s *Service } func NewFilesService(s *Service) *FilesService { rs := &FilesService{s: s} return rs } type FilesService struct { s *Service } func NewReportsService(s *Service) *ReportsService { rs := &ReportsService{s: s} rs.Files = NewReportsFilesService(s) return rs } type ReportsService struct { s *Service Files *ReportsFilesService } func NewReportsFilesService(s *Service) *ReportsFilesService { rs := &ReportsFilesService{s: s} return rs } type ReportsFilesService struct { s *Service } func NewUserProfilesService(s *Service) *UserProfilesService { rs := &UserProfilesService{s: s} return rs } type UserProfilesService struct { s *Service } // Activities: Represents an activity group. type Activities struct { // Filters: List of activity filters. The dimension values need to be // all either of type "dfa:activity" or "dfa:activityGroup". Filters []*DimensionValue `json:"filters,omitempty"` // Kind: The kind of resource this is, in this case // dfareporting#activities. Kind string `json:"kind,omitempty"` // MetricNames: List of names of floodlight activity metrics. MetricNames []string `json:"metricNames,omitempty"` // ForceSendFields is a list of field names (e.g. "Filters") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *Activities) MarshalJSON() ([]byte, error) { type noMethod Activities raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // CustomRichMediaEvents: Represents a Custom Rich Media Events group. type CustomRichMediaEvents struct { // FilteredEventIds: List of custom rich media event IDs. Dimension // values must be all of type dfa:richMediaEventTypeIdAndName. FilteredEventIds []*DimensionValue `json:"filteredEventIds,omitempty"` // Kind: The kind of resource this is, in this case // dfareporting#customRichMediaEvents. Kind string `json:"kind,omitempty"` // ForceSendFields is a list of field names (e.g. "FilteredEventIds") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *CustomRichMediaEvents) MarshalJSON() ([]byte, error) { type noMethod CustomRichMediaEvents raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // DateRange: Represents a date range. type DateRange struct { // EndDate: The end date of the date range, inclusive. A string of the // format: "yyyy-MM-dd". EndDate string `json:"endDate,omitempty"` // Kind: The kind of resource this is, in this case // dfareporting#dateRange. Kind string `json:"kind,omitempty"` // RelativeDateRange: The date range relative to the date of when the // report is run, one of: // - "TODAY" // - "YESTERDAY" // - "WEEK_TO_DATE" // - "MONTH_TO_DATE" // - "QUARTER_TO_DATE" // - "YEAR_TO_DATE" // - "PREVIOUS_WEEK" // - "PREVIOUS_MONTH" // - "PREVIOUS_QUARTER" // - "PREVIOUS_YEAR" // - "LAST_7_DAYS" // - "LAST_30_DAYS" // - "LAST_90_DAYS" // - "LAST_365_DAYS" // - "LAST_24_MONTHS" RelativeDateRange string `json:"relativeDateRange,omitempty"` // StartDate: The start date of the date range, inclusive. A string of // the format: "yyyy-MM-dd". StartDate string `json:"startDate,omitempty"` // ForceSendFields is a list of field names (e.g. "EndDate") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *DateRange) MarshalJSON() ([]byte, error) { type noMethod DateRange raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // DimensionFilter: Represents a dimension filter. type DimensionFilter struct { // DimensionName: The name of the dimension to filter. DimensionName string `json:"dimensionName,omitempty"` // Kind: The kind of resource this is, in this case // dfareporting#dimensionFilter. Kind string `json:"kind,omitempty"` // Value: The value of the dimension to filter. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "DimensionName") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *DimensionFilter) MarshalJSON() ([]byte, error) { type noMethod DimensionFilter raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // DimensionValue: Represents a DimensionValue resource. type DimensionValue struct { // DimensionName: The name of the dimension. DimensionName string `json:"dimensionName,omitempty"` // Etag: The eTag of this response for caching purposes. Etag string `json:"etag,omitempty"` // Id: The ID associated with the value if available. Id string `json:"id,omitempty"` // Kind: The kind of resource this is, in this case // dfareporting#dimensionValue. Kind string `json:"kind,omitempty"` // Value: The value of the dimension. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "DimensionName") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *DimensionValue) MarshalJSON() ([]byte, error) { type noMethod DimensionValue raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // DimensionValueList: Represents the list of DimensionValue resources. type DimensionValueList struct { // Etag: The eTag of this response for caching purposes. Etag string `json:"etag,omitempty"` // Items: The dimension values returned in this response. Items []*DimensionValue `json:"items,omitempty"` // Kind: The kind of list this is, in this case // dfareporting#dimensionValueList. Kind string `json:"kind,omitempty"` // NextPageToken: Continuation token used to page through dimension // values. To retrieve the next page of results, set the next request's // "pageToken" to the value of this field. The page token is only valid // for a limited amount of time and should not be persisted. 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 values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *DimensionValueList) MarshalJSON() ([]byte, error) { type noMethod DimensionValueList raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // DimensionValueRequest: Represents a DimensionValuesRequest. type DimensionValueRequest struct { // DimensionName: The name of the dimension for which values should be // requested. DimensionName string `json:"dimensionName,omitempty"` // EndDate: The end date of the date range for which to retrieve // dimension values. A string of the format: "yyyy-MM-dd". EndDate string `json:"endDate,omitempty"` // Filters: The list of filters by which to filter values. The filters // are ANDed. Filters []*DimensionFilter `json:"filters,omitempty"` // Kind: The kind of request this is, in this case // dfareporting#dimensionValueRequest. Kind string `json:"kind,omitempty"` // StartDate: The start date of the date range for which to retrieve // dimension values. A string of the format: "yyyy-MM-dd". StartDate string `json:"startDate,omitempty"` // ForceSendFields is a list of field names (e.g. "DimensionName") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *DimensionValueRequest) MarshalJSON() ([]byte, error) { type noMethod DimensionValueRequest raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // File: Represents a File resource. A File contains the meta-data for a // report run. It shows the status of the run and holds the urls to the // generated report data if the run is finished and the status is // "REPORT_AVAILABLE". type File struct { // DateRange: The date range for which the file has report data. The // date range will always be the absolute date range for which the // report is run. DateRange *DateRange `json:"dateRange,omitempty"` // Etag: The eTag of this response for caching purposes. Etag string `json:"etag,omitempty"` // FileName: The file name of the file. FileName string `json:"fileName,omitempty"` // Format: The output format of the report. Only available once the file // is available. Format string `json:"format,omitempty"` // Id: The unique ID of this report file. Id int64 `json:"id,omitempty,string"` // Kind: The kind of resource this is, in this case dfareporting#file. Kind string `json:"kind,omitempty"` // LastModifiedTime: The timestamp in milliseconds since epoch when this // file was last modified. LastModifiedTime int64 `json:"lastModifiedTime,omitempty,string"` // ReportId: The ID of the report this file was generated from. ReportId int64 `json:"reportId,omitempty,string"` // Status: The status of the report file, one of: // - "PROCESSING" // - "REPORT_AVAILABLE" // - "FAILED" // - "CANCELLED" Status string `json:"status,omitempty"` // Urls: The urls where the completed report file can be downloaded. Urls *FileUrls `json:"urls,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "DateRange") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *File) MarshalJSON() ([]byte, error) { type noMethod File raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // FileUrls: The urls where the completed report file can be downloaded. type FileUrls struct { // ApiUrl: The url for downloading the report data through the API. ApiUrl string `json:"apiUrl,omitempty"` // BrowserUrl: The url for downloading the report data through a // browser. BrowserUrl string `json:"browserUrl,omitempty"` // ForceSendFields is a list of field names (e.g. "ApiUrl") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *FileUrls) MarshalJSON() ([]byte, error) { type noMethod FileUrls raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // FileList: Represents the list of File resources. type FileList struct { // Etag: The eTag of this response for caching purposes. Etag string `json:"etag,omitempty"` // Items: The files returned in this response. Items []*File `json:"items,omitempty"` // Kind: The kind of list this is, in this case dfareporting#fileList. Kind string `json:"kind,omitempty"` // NextPageToken: Continuation token used to page through files. To // retrieve the next page of results, set the next request's "pageToken" // to the value of this field. The page token is only valid for a // limited amount of time and should not be persisted. 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 values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *FileList) MarshalJSON() ([]byte, error) { type noMethod FileList raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // Recipient: Represents a recipient. type Recipient struct { // DeliveryType: The delivery type for the recipient, one of: // - "ATTACHMENT" // - "LINK" DeliveryType string `json:"deliveryType,omitempty"` // Email: The email address of the recipient. Email string `json:"email,omitempty"` // Kind: The kind of resource this is, in this case // dfareporting#recipient. Kind string `json:"kind,omitempty"` // ForceSendFields is a list of field names (e.g. "DeliveryType") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *Recipient) MarshalJSON() ([]byte, error) { type noMethod Recipient raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // Report: Represents a Report resource. type Report struct { // AccountId: The account ID to which this report belongs. AccountId int64 `json:"accountId,omitempty,string"` // ActiveGrpCriteria: The report criteria for a report of type // "ACTIVE_GRP". ActiveGrpCriteria *ReportActiveGrpCriteria `json:"activeGrpCriteria,omitempty"` // Criteria: The report criteria for a report of type "STANDARD". Criteria *ReportCriteria `json:"criteria,omitempty"` // CrossDimensionReachCriteria: The report criteria for a report of type // "CROSS_DIMENSION_REACH". CrossDimensionReachCriteria *ReportCrossDimensionReachCriteria `json:"crossDimensionReachCriteria,omitempty"` // Delivery: The report's email delivery settings. Delivery *ReportDelivery `json:"delivery,omitempty"` // Etag: The eTag of this response for caching purposes. Etag string `json:"etag,omitempty"` // FileName: The file name used when generating report files for this // report. FileName string `json:"fileName,omitempty"` // FloodlightCriteria: The report criteria for a report of type // "FLOODLIGHT". FloodlightCriteria *ReportFloodlightCriteria `json:"floodlightCriteria,omitempty"` // Format: The output format of the report, one of: // - "CSV" // - "EXCEL" If not specified, default format is "CSV". Note that the // actual format in the completed report file might differ if for // instance the report's size exceeds the format's capabilities. "CSV" // will then be the fallback format. Format string `json:"format,omitempty"` // Id: The unique ID identifying this report resource. Id int64 `json:"id,omitempty,string"` // Kind: The kind of resource this is, in this case dfareporting#report. Kind string `json:"kind,omitempty"` // LastModifiedTime: The timestamp (in milliseconds since epoch) of when // this report was last modified. LastModifiedTime uint64 `json:"lastModifiedTime,omitempty,string"` // Name: The name of the report. Name string `json:"name,omitempty"` // OwnerProfileId: The user profile id of the owner of this report. OwnerProfileId int64 `json:"ownerProfileId,omitempty,string"` // PathToConversionCriteria: The report criteria for a report of type // "PATH_TO_CONVERSION". PathToConversionCriteria *ReportPathToConversionCriteria `json:"pathToConversionCriteria,omitempty"` // ReachCriteria: The report criteria for a report of type "REACH". ReachCriteria *ReportReachCriteria `json:"reachCriteria,omitempty"` // Schedule: The report's schedule. Can only be set if the report's // 'dateRange' is a relative date range and the relative date range is // not "TODAY". Schedule *ReportSchedule `json:"schedule,omitempty"` // SubAccountId: The subbaccount ID to which this report belongs if // applicable. SubAccountId int64 `json:"subAccountId,omitempty,string"` // Type: The type of the report, one of: // - STANDARD // - REACH // - ACTIVE_GRP // - PATH_TO_CONVERSION // - FLOODLIGHT // - CROSS_DIMENSION_REACH 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. "AccountId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *Report) MarshalJSON() ([]byte, error) { type noMethod Report raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportActiveGrpCriteria: The report criteria for a report of type // "ACTIVE_GRP". type ReportActiveGrpCriteria struct { // DateRange: The date range this report should be run for. DateRange *DateRange `json:"dateRange,omitempty"` // DimensionFilters: The list of filters on which dimensions are // filtered. // Filters for different dimensions are ANDed, filters for the same // dimension are grouped together and ORed. // A valid active GRP report needs to have exactly one DimensionValue // for the United States in addition to any advertiser or campaign // dimension values. DimensionFilters []*DimensionValue `json:"dimensionFilters,omitempty"` // Dimensions: The list of dimensions the report should include. Dimensions []*SortedDimension `json:"dimensions,omitempty"` // MetricNames: The list of names of metrics the report should include. MetricNames []string `json:"metricNames,omitempty"` // ForceSendFields is a list of field names (e.g. "DateRange") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportActiveGrpCriteria) MarshalJSON() ([]byte, error) { type noMethod ReportActiveGrpCriteria raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportCriteria: The report criteria for a report of type "STANDARD". type ReportCriteria struct { // Activities: Activity group. Activities *Activities `json:"activities,omitempty"` // CustomRichMediaEvents: Custom Rich Media Events group. CustomRichMediaEvents *CustomRichMediaEvents `json:"customRichMediaEvents,omitempty"` // DateRange: The date range for which this report should be run. DateRange *DateRange `json:"dateRange,omitempty"` // DimensionFilters: The list of filters on which dimensions are // filtered. // Filters for different dimensions are ANDed, filters for the same // dimension are grouped together and ORed. DimensionFilters []*DimensionValue `json:"dimensionFilters,omitempty"` // Dimensions: The list of standard dimensions the report should // include. Dimensions []*SortedDimension `json:"dimensions,omitempty"` // MetricNames: The list of names of metrics the report should include. MetricNames []string `json:"metricNames,omitempty"` // ForceSendFields is a list of field names (e.g. "Activities") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportCriteria) MarshalJSON() ([]byte, error) { type noMethod ReportCriteria raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportCrossDimensionReachCriteria: The report criteria for a report // of type "CROSS_DIMENSION_REACH". type ReportCrossDimensionReachCriteria struct { // Breakdown: The list of dimensions the report should include. Breakdown []*SortedDimension `json:"breakdown,omitempty"` // DateRange: The date range this report should be run for. DateRange *DateRange `json:"dateRange,omitempty"` // Dimension: The dimension option, one of: // - "ADVERTISER" // - "CAMPAIGN" // - "SITE_BY_ADVERTISER" // - "SITE_BY_CAMPAIGN" Dimension string `json:"dimension,omitempty"` // DimensionFilters: The list of filters on which dimensions are // filtered. DimensionFilters []*DimensionValue `json:"dimensionFilters,omitempty"` // MetricNames: The list of names of metrics the report should include. MetricNames []string `json:"metricNames,omitempty"` // OverlapMetricNames: The list of names of overlap metrics the report // should include. OverlapMetricNames []string `json:"overlapMetricNames,omitempty"` // Pivoted: Whether the report is pivoted or not. Defaults to true. Pivoted bool `json:"pivoted,omitempty"` // ForceSendFields is a list of field names (e.g. "Breakdown") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportCrossDimensionReachCriteria) MarshalJSON() ([]byte, error) { type noMethod ReportCrossDimensionReachCriteria raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportDelivery: The report's email delivery settings. type ReportDelivery struct { // EmailOwner: Whether the report should be emailed to the report owner. EmailOwner bool `json:"emailOwner,omitempty"` // EmailOwnerDeliveryType: The type of delivery for the owner to // receive, if enabled. One of: // - "ATTACHMENT" // - "LINK" EmailOwnerDeliveryType string `json:"emailOwnerDeliveryType,omitempty"` // Message: The message to be sent with each email. Message string `json:"message,omitempty"` // Recipients: The list of recipients to which to email the report. Recipients []*Recipient `json:"recipients,omitempty"` // ForceSendFields is a list of field names (e.g. "EmailOwner") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportDelivery) MarshalJSON() ([]byte, error) { type noMethod ReportDelivery raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportFloodlightCriteria: The report criteria for a report of type // "FLOODLIGHT". type ReportFloodlightCriteria struct { // DateRange: The date range this report should be run for. DateRange *DateRange `json:"dateRange,omitempty"` // DimensionFilters: The list of filters on which dimensions are // filtered. // Filters for different dimensions are ANDed, filters for the same // dimension are grouped together and ORed. DimensionFilters []*DimensionValue `json:"dimensionFilters,omitempty"` // Dimensions: The list of dimensions the report should include. Dimensions []*SortedDimension `json:"dimensions,omitempty"` // FloodlightConfigId: The floodlight ID for which to show data in this // report. All advertisers associated with that ID will automatically be // added. The dimension of the value needs to be // 'dfa:floodlightConfigId'. FloodlightConfigId *DimensionValue `json:"floodlightConfigId,omitempty"` // MetricNames: The list of names of metrics the report should include. MetricNames []string `json:"metricNames,omitempty"` // ReportProperties: The properties of the report. ReportProperties *ReportFloodlightCriteriaReportProperties `json:"reportProperties,omitempty"` // ForceSendFields is a list of field names (e.g. "DateRange") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportFloodlightCriteria) MarshalJSON() ([]byte, error) { type noMethod ReportFloodlightCriteria raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportFloodlightCriteriaReportProperties: The properties of the // report. type ReportFloodlightCriteriaReportProperties struct { // IncludeAttributedIPConversions: Include conversions that have no // cookie, but do have an exposure path. IncludeAttributedIPConversions bool `json:"includeAttributedIPConversions,omitempty"` // IncludeUnattributedCookieConversions: Include conversions of users // with a DoubleClick cookie but without an exposure. That means the // user did not click or see an ad from the advertiser within the // Floodlight group, or that the interaction happened outside the // lookback window. IncludeUnattributedCookieConversions bool `json:"includeUnattributedCookieConversions,omitempty"` // IncludeUnattributedIPConversions: Include conversions that have no // associated cookies and no exposures. It’s therefore impossible to // know how the user was exposed to your ads during the lookback window // prior to a conversion. IncludeUnattributedIPConversions bool `json:"includeUnattributedIPConversions,omitempty"` // ForceSendFields is a list of field names (e.g. // "IncludeAttributedIPConversions") to unconditionally include in API // requests. By default, fields with empty values are omitted from API // requests. However, any non-pointer, non-interface field appearing in // ForceSendFields will be sent to the server regardless of whether the // field is empty or not. This may be used to include empty fields in // Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportFloodlightCriteriaReportProperties) MarshalJSON() ([]byte, error) { type noMethod ReportFloodlightCriteriaReportProperties raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportPathToConversionCriteria: The report criteria for a report of // type "PATH_TO_CONVERSION". type ReportPathToConversionCriteria struct { // ActivityFilters: The list of 'dfa:activity' values to filter on. ActivityFilters []*DimensionValue `json:"activityFilters,omitempty"` // ConversionDimensions: The list of conversion dimensions the report // should include. ConversionDimensions []*SortedDimension `json:"conversionDimensions,omitempty"` // CustomFloodlightVariables: The list of custom floodlight variables // the report should include. CustomFloodlightVariables []*SortedDimension `json:"customFloodlightVariables,omitempty"` // DateRange: The date range this report should be run for. DateRange *DateRange `json:"dateRange,omitempty"` // FloodlightConfigId: The floodlight ID for which to show data in this // report. All advertisers associated with that ID will automatically be // added. The dimension of the value needs to be // 'dfa:floodlightConfigId'. FloodlightConfigId *DimensionValue `json:"floodlightConfigId,omitempty"` // MetricNames: The list of names of metrics the report should include. MetricNames []string `json:"metricNames,omitempty"` // PerInteractionDimensions: The list of per interaction dimensions the // report should include. PerInteractionDimensions []*SortedDimension `json:"perInteractionDimensions,omitempty"` // ReportProperties: The properties of the report. ReportProperties *ReportPathToConversionCriteriaReportProperties `json:"reportProperties,omitempty"` // ForceSendFields is a list of field names (e.g. "ActivityFilters") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportPathToConversionCriteria) MarshalJSON() ([]byte, error) { type noMethod ReportPathToConversionCriteria raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportPathToConversionCriteriaReportProperties: The properties of the // report. type ReportPathToConversionCriteriaReportProperties struct { // ClicksLookbackWindow: DFA checks to see if a click interaction // occurred within the specified period of time before a conversion. By // default the value is pulled from Floodlight or you can manually enter // a custom value. Valid values: 1-90. ClicksLookbackWindow int64 `json:"clicksLookbackWindow,omitempty"` // ImpressionsLookbackWindow: DFA checks to see if an impression // interaction occurred within the specified period of time before a // conversion. By default the value is pulled from Floodlight or you can // manually enter a custom value. Valid values: 1-90. ImpressionsLookbackWindow int64 `json:"impressionsLookbackWindow,omitempty"` // IncludeAttributedIPConversions: Include conversions that have no // cookie, but do have an exposure path. IncludeAttributedIPConversions bool `json:"includeAttributedIPConversions,omitempty"` // IncludeUnattributedCookieConversions: Include conversions of users // with a DoubleClick cookie but without an exposure. That means the // user did not click or see an ad from the advertiser within the // Floodlight group, or that the interaction happened outside the // lookback window. IncludeUnattributedCookieConversions bool `json:"includeUnattributedCookieConversions,omitempty"` // IncludeUnattributedIPConversions: Include conversions that have no // associated cookies and no exposures. It’s therefore impossible to // know how the user was exposed to your ads during the lookback window // prior to a conversion. IncludeUnattributedIPConversions bool `json:"includeUnattributedIPConversions,omitempty"` // MaximumClickInteractions: The maximum number of click interactions to // include in the report. Advertisers currently paying for E2C reports // get up to 200 (100 clicks, 100 impressions). If another advertiser in // your network is paying for E2C, you can have up to 5 total exposures // per report. MaximumClickInteractions int64 `json:"maximumClickInteractions,omitempty"` // MaximumImpressionInteractions: The maximum number of click // interactions to include in the report. Advertisers currently paying // for E2C reports get up to 200 (100 clicks, 100 impressions). If // another advertiser in your network is paying for E2C, you can have up // to 5 total exposures per report. MaximumImpressionInteractions int64 `json:"maximumImpressionInteractions,omitempty"` // MaximumInteractionGap: The maximum amount of time that can take place // between interactions (clicks or impressions) by the same user. Valid // values: 1-90. MaximumInteractionGap int64 `json:"maximumInteractionGap,omitempty"` // PivotOnInteractionPath: Enable pivoting on interaction path. PivotOnInteractionPath bool `json:"pivotOnInteractionPath,omitempty"` // ForceSendFields is a list of field names (e.g. // "ClicksLookbackWindow") to unconditionally include in API requests. // By default, fields with empty values are omitted from API requests. // However, any non-pointer, non-interface field appearing in // ForceSendFields will be sent to the server regardless of whether the // field is empty or not. This may be used to include empty fields in // Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportPathToConversionCriteriaReportProperties) MarshalJSON() ([]byte, error) { type noMethod ReportPathToConversionCriteriaReportProperties raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportReachCriteria: The report criteria for a report of type // "REACH". type ReportReachCriteria struct { // Activities: Activity group. Activities *Activities `json:"activities,omitempty"` // CustomRichMediaEvents: Custom Rich Media Events group. CustomRichMediaEvents *CustomRichMediaEvents `json:"customRichMediaEvents,omitempty"` // DateRange: The date range this report should be run for. DateRange *DateRange `json:"dateRange,omitempty"` // DimensionFilters: The list of filters on which dimensions are // filtered. // Filters for different dimensions are ANDed, filters for the same // dimension are grouped together and ORed. DimensionFilters []*DimensionValue `json:"dimensionFilters,omitempty"` // Dimensions: The list of dimensions the report should include. Dimensions []*SortedDimension `json:"dimensions,omitempty"` // MetricNames: The list of names of metrics the report should include. MetricNames []string `json:"metricNames,omitempty"` // ReachByFrequencyMetricNames: The list of names of Reach By Frequency // metrics the report should include. ReachByFrequencyMetricNames []string `json:"reachByFrequencyMetricNames,omitempty"` // ForceSendFields is a list of field names (e.g. "Activities") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportReachCriteria) MarshalJSON() ([]byte, error) { type noMethod ReportReachCriteria raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportSchedule: The report's schedule. Can only be set if the // report's 'dateRange' is a relative date range and the relative date // range is not "TODAY". type ReportSchedule struct { // Active: Whether the schedule is active or not. Must be set to either // true or false. Active bool `json:"active,omitempty"` // Every: Defines every how many days, weeks or months the report should // be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or // "MONTHLY". Every int64 `json:"every,omitempty"` // ExpirationDate: The expiration date when the scheduled report stops // running. ExpirationDate string `json:"expirationDate,omitempty"` // Repeats: The interval for which the report is repeated, one of: // - "DAILY", also requires field "every" to be set. // - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to // be set. // - "TWICE_A_MONTH" // - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to // be set. // - "QUARTERLY" // - "YEARLY" Repeats string `json:"repeats,omitempty"` // RepeatsOnWeekDays: List of week days "WEEKLY" on which scheduled // reports should run. RepeatsOnWeekDays []string `json:"repeatsOnWeekDays,omitempty"` // RunsOnDayOfMonth: Enum to define for "MONTHLY" scheduled reports // whether reports should be repeated on the same day of the month as // "startDate" or the same day of the week of the month. Possible values // are: // - DAY_OF_MONTH // - WEEK_OF_MONTH // Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), // "DAY_OF_MONTH" would run subsequent reports on the 2nd of every // Month, and "WEEK_OF_MONTH" would run subsequent reports on the first // Monday of the month. RunsOnDayOfMonth string `json:"runsOnDayOfMonth,omitempty"` // StartDate: Start date of date range for which scheduled reports // should be run. StartDate string `json:"startDate,omitempty"` // ForceSendFields is a list of field names (e.g. "Active") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportSchedule) MarshalJSON() ([]byte, error) { type noMethod ReportSchedule raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // ReportList: Represents the list of reports. type ReportList struct { // Etag: The eTag of this response for caching purposes. Etag string `json:"etag,omitempty"` // Items: The reports returned in this response. Items []*Report `json:"items,omitempty"` // Kind: The kind of list this is, in this case dfareporting#reportList. Kind string `json:"kind,omitempty"` // NextPageToken: Continuation token used to page through reports. To // retrieve the next page of results, set the next request's "pageToken" // to the value of this field. The page token is only valid for a // limited amount of time and should not be persisted. 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 values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *ReportList) MarshalJSON() ([]byte, error) { type noMethod ReportList raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // SortedDimension: Represents a sorted dimension. type SortedDimension struct { // Kind: The kind of resource this is, in this case // dfareporting#sortedDimension. Kind string `json:"kind,omitempty"` // Name: The name of the dimension. Name string `json:"name,omitempty"` // SortOrder: An optional sort order for the dimension column, one of: // // - "ASCENDING" // - "DESCENDING" SortOrder string `json:"sortOrder,omitempty"` // ForceSendFields is a list of field names (e.g. "Kind") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *SortedDimension) MarshalJSON() ([]byte, error) { type noMethod SortedDimension raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // UserProfile: Represents a UserProfile resource. type UserProfile struct { // AccountId: The account ID to which this profile belongs. AccountId int64 `json:"accountId,omitempty,string"` // AccountName: The account name this profile belongs to. AccountName string `json:"accountName,omitempty"` // Etag: The eTag of this response for caching purposes. Etag string `json:"etag,omitempty"` // Kind: The kind of resource this is, in this case // dfareporting#userProfile. Kind string `json:"kind,omitempty"` // ProfileId: The unique ID of the user profile. ProfileId int64 `json:"profileId,omitempty,string"` // SubAccountId: The sub account ID this profile belongs to if // applicable. SubAccountId int64 `json:"subAccountId,omitempty,string"` // SubAccountName: The sub account name this profile belongs to if // applicable. SubAccountName string `json:"subAccountName,omitempty"` // UserName: The user name. UserName string `json:"userName,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "AccountId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *UserProfile) MarshalJSON() ([]byte, error) { type noMethod UserProfile raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // UserProfileList: Represents the list of user profiles. type UserProfileList struct { // Etag: The eTag of this response for caching purposes. Etag string `json:"etag,omitempty"` // Items: The user profiles returned in this response. Items []*UserProfile `json:"items,omitempty"` // Kind: The kind of list this is, in this case // dfareporting#userProfileList. Kind string `json:"kind,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 values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` } func (s *UserProfileList) MarshalJSON() ([]byte, error) { type noMethod UserProfileList raw := noMethod(*s) return internal.MarshalJSON(raw, s.ForceSendFields) } // method id "dfareporting.dimensionValues.query": type DimensionValuesQueryCall struct { s *Service profileId int64 dimensionvaluerequest *DimensionValueRequest opt_ map[string]interface{} ctx_ context.Context } // Query: Retrieves list of report dimension values for a list of // filters. func (r *DimensionValuesService) Query(profileId int64, dimensionvaluerequest *DimensionValueRequest) *DimensionValuesQueryCall { c := &DimensionValuesQueryCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId c.dimensionvaluerequest = dimensionvaluerequest return c } // MaxResults sets the optional parameter "maxResults": Maximum number // of results to return. func (c *DimensionValuesQueryCall) MaxResults(maxResults int64) *DimensionValuesQueryCall { c.opt_["maxResults"] = maxResults return c } // PageToken sets the optional parameter "pageToken": The value of the // nextToken from the previous result page. func (c *DimensionValuesQueryCall) PageToken(pageToken string) *DimensionValuesQueryCall { c.opt_["pageToken"] = pageToken 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 *DimensionValuesQueryCall) Fields(s ...googleapi.Field) *DimensionValuesQueryCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *DimensionValuesQueryCall) Context(ctx context.Context) *DimensionValuesQueryCall { c.ctx_ = ctx return c } func (c *DimensionValuesQueryCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.dimensionvaluerequest) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["maxResults"]; ok { params.Set("maxResults", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["pageToken"]; ok { params.Set("pageToken", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/dimensionvalues/query") urls += "?" + params.Encode() req, _ := http.NewRequest("POST", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), }) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.dimensionValues.query" call. // Exactly one of *DimensionValueList or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *DimensionValueList.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 *DimensionValuesQueryCall) Do() (*DimensionValueList, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &DimensionValueList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Retrieves list of report dimension values for a list of filters.", // "httpMethod": "POST", // "id": "dfareporting.dimensionValues.query", // "parameterOrder": [ // "profileId" // ], // "parameters": { // "maxResults": { // "description": "Maximum number of results to return.", // "format": "int32", // "location": "query", // "maximum": "100", // "minimum": "0", // "type": "integer" // }, // "pageToken": { // "description": "The value of the nextToken from the previous result page.", // "location": "query", // "type": "string" // }, // "profileId": { // "description": "The DFA user profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "userprofiles/{profileId}/dimensionvalues/query", // "request": { // "$ref": "DimensionValueRequest" // }, // "response": { // "$ref": "DimensionValueList" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.files.list": type FilesListCall struct { s *Service profileId int64 opt_ map[string]interface{} ctx_ context.Context } // List: Lists files for a user profile. func (r *FilesService) List(profileId int64) *FilesListCall { c := &FilesListCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId return c } // MaxResults sets the optional parameter "maxResults": Maximum number // of results to return. func (c *FilesListCall) MaxResults(maxResults int64) *FilesListCall { c.opt_["maxResults"] = maxResults return c } // PageToken sets the optional parameter "pageToken": The value of the // nextToken from the previous result page. func (c *FilesListCall) PageToken(pageToken string) *FilesListCall { c.opt_["pageToken"] = pageToken return c } // SortField sets the optional parameter "sortField": The field by which // to sort the list. // // Possible values: // "ID" - Sort by file ID. // "LAST_MODIFIED_TIME" (default) - Sort by 'lastmodifiedAt' field. func (c *FilesListCall) SortField(sortField string) *FilesListCall { c.opt_["sortField"] = sortField return c } // SortOrder sets the optional parameter "sortOrder": Order of sorted // results, default is 'DESCENDING'. // // Possible values: // "ASCENDING" - Ascending order. // "DESCENDING" (default) - Descending order. func (c *FilesListCall) SortOrder(sortOrder string) *FilesListCall { c.opt_["sortOrder"] = sortOrder 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 *FilesListCall) Fields(s ...googleapi.Field) *FilesListCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // IfNoneMatch sets the 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. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *FilesListCall) IfNoneMatch(entityTag string) *FilesListCall { c.opt_["ifNoneMatch"] = entityTag return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *FilesListCall) Context(ctx context.Context) *FilesListCall { c.ctx_ = ctx return c } func (c *FilesListCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["maxResults"]; ok { params.Set("maxResults", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["pageToken"]; ok { params.Set("pageToken", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["sortField"]; ok { params.Set("sortField", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["sortOrder"]; ok { params.Set("sortOrder", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/files") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), }) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.files.list" call. // Exactly one of *FileList or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *FileList.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 *FilesListCall) Do() (*FileList, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &FileList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Lists files for a user profile.", // "httpMethod": "GET", // "id": "dfareporting.files.list", // "parameterOrder": [ // "profileId" // ], // "parameters": { // "maxResults": { // "description": "Maximum number of results to return.", // "format": "int32", // "location": "query", // "maximum": "10", // "minimum": "0", // "type": "integer" // }, // "pageToken": { // "description": "The value of the nextToken from the previous result page.", // "location": "query", // "type": "string" // }, // "profileId": { // "description": "The DFA profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "sortField": { // "default": "LAST_MODIFIED_TIME", // "description": "The field by which to sort the list.", // "enum": [ // "ID", // "LAST_MODIFIED_TIME" // ], // "enumDescriptions": [ // "Sort by file ID.", // "Sort by 'lastmodifiedAt' field." // ], // "location": "query", // "type": "string" // }, // "sortOrder": { // "default": "DESCENDING", // "description": "Order of sorted results, default is 'DESCENDING'.", // "enum": [ // "ASCENDING", // "DESCENDING" // ], // "enumDescriptions": [ // "Ascending order.", // "Descending order." // ], // "location": "query", // "type": "string" // } // }, // "path": "userprofiles/{profileId}/files", // "response": { // "$ref": "FileList" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.reports.delete": type ReportsDeleteCall struct { s *Service profileId int64 reportId int64 opt_ map[string]interface{} ctx_ context.Context } // Delete: Deletes a report by its ID. func (r *ReportsService) Delete(profileId int64, reportId int64) *ReportsDeleteCall { c := &ReportsDeleteCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId c.reportId = reportId 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 *ReportsDeleteCall) Fields(s ...googleapi.Field) *ReportsDeleteCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *ReportsDeleteCall) Context(ctx context.Context) *ReportsDeleteCall { c.ctx_ = ctx return c } func (c *ReportsDeleteCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/reports/{reportId}") urls += "?" + params.Encode() req, _ := http.NewRequest("DELETE", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), "reportId": strconv.FormatInt(c.reportId, 10), }) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.reports.delete" call. func (c *ReportsDeleteCall) Do() error { res, err := c.doRequest("json") if err != nil { return err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return err } return nil // { // "description": "Deletes a report by its ID.", // "httpMethod": "DELETE", // "id": "dfareporting.reports.delete", // "parameterOrder": [ // "profileId", // "reportId" // ], // "parameters": { // "profileId": { // "description": "The DFA user profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "reportId": { // "description": "The ID of the report.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "userprofiles/{profileId}/reports/{reportId}", // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.reports.get": type ReportsGetCall struct { s *Service profileId int64 reportId int64 opt_ map[string]interface{} ctx_ context.Context } // Get: Retrieves a report by its ID. func (r *ReportsService) Get(profileId int64, reportId int64) *ReportsGetCall { c := &ReportsGetCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId c.reportId = reportId 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 *ReportsGetCall) Fields(s ...googleapi.Field) *ReportsGetCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // IfNoneMatch sets the 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. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *ReportsGetCall) IfNoneMatch(entityTag string) *ReportsGetCall { c.opt_["ifNoneMatch"] = entityTag return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *ReportsGetCall) Context(ctx context.Context) *ReportsGetCall { c.ctx_ = ctx return c } func (c *ReportsGetCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/reports/{reportId}") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), "reportId": strconv.FormatInt(c.reportId, 10), }) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.reports.get" call. // Exactly one of *Report or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Report.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 *ReportsGetCall) Do() (*Report, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &Report{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Retrieves a report by its ID.", // "httpMethod": "GET", // "id": "dfareporting.reports.get", // "parameterOrder": [ // "profileId", // "reportId" // ], // "parameters": { // "profileId": { // "description": "The DFA user profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "reportId": { // "description": "The ID of the report.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "userprofiles/{profileId}/reports/{reportId}", // "response": { // "$ref": "Report" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.reports.insert": type ReportsInsertCall struct { s *Service profileId int64 report *Report opt_ map[string]interface{} ctx_ context.Context } // Insert: Creates a report. func (r *ReportsService) Insert(profileId int64, report *Report) *ReportsInsertCall { c := &ReportsInsertCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId c.report = report 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 *ReportsInsertCall) Fields(s ...googleapi.Field) *ReportsInsertCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *ReportsInsertCall) Context(ctx context.Context) *ReportsInsertCall { c.ctx_ = ctx return c } func (c *ReportsInsertCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.report) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/reports") urls += "?" + params.Encode() req, _ := http.NewRequest("POST", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), }) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.reports.insert" call. // Exactly one of *Report or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Report.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 *ReportsInsertCall) Do() (*Report, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &Report{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Creates a report.", // "httpMethod": "POST", // "id": "dfareporting.reports.insert", // "parameterOrder": [ // "profileId" // ], // "parameters": { // "profileId": { // "description": "The DFA user profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "userprofiles/{profileId}/reports", // "request": { // "$ref": "Report" // }, // "response": { // "$ref": "Report" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.reports.list": type ReportsListCall struct { s *Service profileId int64 opt_ map[string]interface{} ctx_ context.Context } // List: Retrieves list of reports. func (r *ReportsService) List(profileId int64) *ReportsListCall { c := &ReportsListCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId return c } // MaxResults sets the optional parameter "maxResults": Maximum number // of results to return. func (c *ReportsListCall) MaxResults(maxResults int64) *ReportsListCall { c.opt_["maxResults"] = maxResults return c } // PageToken sets the optional parameter "pageToken": The value of the // nextToken from the previous result page. func (c *ReportsListCall) PageToken(pageToken string) *ReportsListCall { c.opt_["pageToken"] = pageToken return c } // SortField sets the optional parameter "sortField": The field by which // to sort the list. // // Possible values: // "ID" - Sort by report ID. // "LAST_MODIFIED_TIME" (default) - Sort by 'lastModifiedTime' field. // "NAME" - Sort by name of reports. func (c *ReportsListCall) SortField(sortField string) *ReportsListCall { c.opt_["sortField"] = sortField return c } // SortOrder sets the optional parameter "sortOrder": Order of sorted // results, default is 'DESCENDING'. // // Possible values: // "ASCENDING" - Ascending order. // "DESCENDING" (default) - Descending order. func (c *ReportsListCall) SortOrder(sortOrder string) *ReportsListCall { c.opt_["sortOrder"] = sortOrder 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 *ReportsListCall) Fields(s ...googleapi.Field) *ReportsListCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // IfNoneMatch sets the 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. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *ReportsListCall) IfNoneMatch(entityTag string) *ReportsListCall { c.opt_["ifNoneMatch"] = entityTag return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *ReportsListCall) Context(ctx context.Context) *ReportsListCall { c.ctx_ = ctx return c } func (c *ReportsListCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["maxResults"]; ok { params.Set("maxResults", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["pageToken"]; ok { params.Set("pageToken", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["sortField"]; ok { params.Set("sortField", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["sortOrder"]; ok { params.Set("sortOrder", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/reports") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), }) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.reports.list" call. // Exactly one of *ReportList or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *ReportList.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 *ReportsListCall) Do() (*ReportList, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &ReportList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Retrieves list of reports.", // "httpMethod": "GET", // "id": "dfareporting.reports.list", // "parameterOrder": [ // "profileId" // ], // "parameters": { // "maxResults": { // "description": "Maximum number of results to return.", // "format": "int32", // "location": "query", // "maximum": "10", // "minimum": "0", // "type": "integer" // }, // "pageToken": { // "description": "The value of the nextToken from the previous result page.", // "location": "query", // "type": "string" // }, // "profileId": { // "description": "The DFA user profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "sortField": { // "default": "LAST_MODIFIED_TIME", // "description": "The field by which to sort the list.", // "enum": [ // "ID", // "LAST_MODIFIED_TIME", // "NAME" // ], // "enumDescriptions": [ // "Sort by report ID.", // "Sort by 'lastModifiedTime' field.", // "Sort by name of reports." // ], // "location": "query", // "type": "string" // }, // "sortOrder": { // "default": "DESCENDING", // "description": "Order of sorted results, default is 'DESCENDING'.", // "enum": [ // "ASCENDING", // "DESCENDING" // ], // "enumDescriptions": [ // "Ascending order.", // "Descending order." // ], // "location": "query", // "type": "string" // } // }, // "path": "userprofiles/{profileId}/reports", // "response": { // "$ref": "ReportList" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.reports.patch": type ReportsPatchCall struct { s *Service profileId int64 reportId int64 report *Report opt_ map[string]interface{} ctx_ context.Context } // Patch: Updates a report. This method supports patch semantics. func (r *ReportsService) Patch(profileId int64, reportId int64, report *Report) *ReportsPatchCall { c := &ReportsPatchCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId c.reportId = reportId c.report = report 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 *ReportsPatchCall) Fields(s ...googleapi.Field) *ReportsPatchCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *ReportsPatchCall) Context(ctx context.Context) *ReportsPatchCall { c.ctx_ = ctx return c } func (c *ReportsPatchCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.report) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/reports/{reportId}") urls += "?" + params.Encode() req, _ := http.NewRequest("PATCH", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), "reportId": strconv.FormatInt(c.reportId, 10), }) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.reports.patch" call. // Exactly one of *Report or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Report.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 *ReportsPatchCall) Do() (*Report, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &Report{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Updates a report. This method supports patch semantics.", // "httpMethod": "PATCH", // "id": "dfareporting.reports.patch", // "parameterOrder": [ // "profileId", // "reportId" // ], // "parameters": { // "profileId": { // "description": "The DFA user profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "reportId": { // "description": "The ID of the report.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "userprofiles/{profileId}/reports/{reportId}", // "request": { // "$ref": "Report" // }, // "response": { // "$ref": "Report" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.reports.run": type ReportsRunCall struct { s *Service profileId int64 reportId int64 opt_ map[string]interface{} ctx_ context.Context } // Run: Runs a report. func (r *ReportsService) Run(profileId int64, reportId int64) *ReportsRunCall { c := &ReportsRunCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId c.reportId = reportId return c } // Synchronous sets the optional parameter "synchronous": If set and // true, tries to run the report synchronously. func (c *ReportsRunCall) Synchronous(synchronous bool) *ReportsRunCall { c.opt_["synchronous"] = synchronous 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 *ReportsRunCall) Fields(s ...googleapi.Field) *ReportsRunCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *ReportsRunCall) Context(ctx context.Context) *ReportsRunCall { c.ctx_ = ctx return c } func (c *ReportsRunCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["synchronous"]; ok { params.Set("synchronous", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/reports/{reportId}/run") urls += "?" + params.Encode() req, _ := http.NewRequest("POST", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), "reportId": strconv.FormatInt(c.reportId, 10), }) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.reports.run" call. // Exactly one of *File or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *File.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 *ReportsRunCall) Do() (*File, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &File{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Runs a report.", // "httpMethod": "POST", // "id": "dfareporting.reports.run", // "parameterOrder": [ // "profileId", // "reportId" // ], // "parameters": { // "profileId": { // "description": "The DFA profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "reportId": { // "description": "The ID of the report.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "synchronous": { // "description": "If set and true, tries to run the report synchronously.", // "location": "query", // "type": "boolean" // } // }, // "path": "userprofiles/{profileId}/reports/{reportId}/run", // "response": { // "$ref": "File" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.reports.update": type ReportsUpdateCall struct { s *Service profileId int64 reportId int64 report *Report opt_ map[string]interface{} ctx_ context.Context } // Update: Updates a report. func (r *ReportsService) Update(profileId int64, reportId int64, report *Report) *ReportsUpdateCall { c := &ReportsUpdateCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId c.reportId = reportId c.report = report 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 *ReportsUpdateCall) Fields(s ...googleapi.Field) *ReportsUpdateCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *ReportsUpdateCall) Context(ctx context.Context) *ReportsUpdateCall { c.ctx_ = ctx return c } func (c *ReportsUpdateCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.report) if err != nil { return nil, err } ctype := "application/json" params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/reports/{reportId}") urls += "?" + params.Encode() req, _ := http.NewRequest("PUT", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), "reportId": strconv.FormatInt(c.reportId, 10), }) req.Header.Set("Content-Type", ctype) req.Header.Set("User-Agent", c.s.userAgent()) if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.reports.update" call. // Exactly one of *Report or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Report.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 *ReportsUpdateCall) Do() (*Report, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &Report{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Updates a report.", // "httpMethod": "PUT", // "id": "dfareporting.reports.update", // "parameterOrder": [ // "profileId", // "reportId" // ], // "parameters": { // "profileId": { // "description": "The DFA user profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "reportId": { // "description": "The ID of the report.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "userprofiles/{profileId}/reports/{reportId}", // "request": { // "$ref": "Report" // }, // "response": { // "$ref": "Report" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.reports.files.get": type ReportsFilesGetCall struct { s *Service profileId int64 reportId int64 fileId int64 opt_ map[string]interface{} ctx_ context.Context } // Get: Retrieves a report file. func (r *ReportsFilesService) Get(profileId int64, reportId int64, fileId int64) *ReportsFilesGetCall { c := &ReportsFilesGetCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId c.reportId = reportId c.fileId = fileId 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 *ReportsFilesGetCall) Fields(s ...googleapi.Field) *ReportsFilesGetCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // IfNoneMatch sets the 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. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *ReportsFilesGetCall) IfNoneMatch(entityTag string) *ReportsFilesGetCall { c.opt_["ifNoneMatch"] = entityTag return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *ReportsFilesGetCall) Context(ctx context.Context) *ReportsFilesGetCall { c.ctx_ = ctx return c } func (c *ReportsFilesGetCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/reports/{reportId}/files/{fileId}") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), "reportId": strconv.FormatInt(c.reportId, 10), "fileId": strconv.FormatInt(c.fileId, 10), }) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.reports.files.get" call. // Exactly one of *File or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *File.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 *ReportsFilesGetCall) Do() (*File, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &File{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Retrieves a report file.", // "httpMethod": "GET", // "id": "dfareporting.reports.files.get", // "parameterOrder": [ // "profileId", // "reportId", // "fileId" // ], // "parameters": { // "fileId": { // "description": "The ID of the report file.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "profileId": { // "description": "The DFA profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "reportId": { // "description": "The ID of the report.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", // "response": { // "$ref": "File" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.reports.files.list": type ReportsFilesListCall struct { s *Service profileId int64 reportId int64 opt_ map[string]interface{} ctx_ context.Context } // List: Lists files for a report. func (r *ReportsFilesService) List(profileId int64, reportId int64) *ReportsFilesListCall { c := &ReportsFilesListCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId c.reportId = reportId return c } // MaxResults sets the optional parameter "maxResults": Maximum number // of results to return. func (c *ReportsFilesListCall) MaxResults(maxResults int64) *ReportsFilesListCall { c.opt_["maxResults"] = maxResults return c } // PageToken sets the optional parameter "pageToken": The value of the // nextToken from the previous result page. func (c *ReportsFilesListCall) PageToken(pageToken string) *ReportsFilesListCall { c.opt_["pageToken"] = pageToken return c } // SortField sets the optional parameter "sortField": The field by which // to sort the list. // // Possible values: // "ID" - Sort by file ID. // "LAST_MODIFIED_TIME" (default) - Sort by 'lastmodifiedAt' field. func (c *ReportsFilesListCall) SortField(sortField string) *ReportsFilesListCall { c.opt_["sortField"] = sortField return c } // SortOrder sets the optional parameter "sortOrder": Order of sorted // results, default is 'DESCENDING'. // // Possible values: // "ASCENDING" - Ascending order. // "DESCENDING" (default) - Descending order. func (c *ReportsFilesListCall) SortOrder(sortOrder string) *ReportsFilesListCall { c.opt_["sortOrder"] = sortOrder 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 *ReportsFilesListCall) Fields(s ...googleapi.Field) *ReportsFilesListCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // IfNoneMatch sets the 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. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *ReportsFilesListCall) IfNoneMatch(entityTag string) *ReportsFilesListCall { c.opt_["ifNoneMatch"] = entityTag return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *ReportsFilesListCall) Context(ctx context.Context) *ReportsFilesListCall { c.ctx_ = ctx return c } func (c *ReportsFilesListCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["maxResults"]; ok { params.Set("maxResults", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["pageToken"]; ok { params.Set("pageToken", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["sortField"]; ok { params.Set("sortField", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["sortOrder"]; ok { params.Set("sortOrder", fmt.Sprintf("%v", v)) } if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}/reports/{reportId}/files") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), "reportId": strconv.FormatInt(c.reportId, 10), }) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.reports.files.list" call. // Exactly one of *FileList or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *FileList.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 *ReportsFilesListCall) Do() (*FileList, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &FileList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Lists files for a report.", // "httpMethod": "GET", // "id": "dfareporting.reports.files.list", // "parameterOrder": [ // "profileId", // "reportId" // ], // "parameters": { // "maxResults": { // "description": "Maximum number of results to return.", // "format": "int32", // "location": "query", // "maximum": "10", // "minimum": "0", // "type": "integer" // }, // "pageToken": { // "description": "The value of the nextToken from the previous result page.", // "location": "query", // "type": "string" // }, // "profileId": { // "description": "The DFA profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "reportId": { // "description": "The ID of the parent report.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // }, // "sortField": { // "default": "LAST_MODIFIED_TIME", // "description": "The field by which to sort the list.", // "enum": [ // "ID", // "LAST_MODIFIED_TIME" // ], // "enumDescriptions": [ // "Sort by file ID.", // "Sort by 'lastmodifiedAt' field." // ], // "location": "query", // "type": "string" // }, // "sortOrder": { // "default": "DESCENDING", // "description": "Order of sorted results, default is 'DESCENDING'.", // "enum": [ // "ASCENDING", // "DESCENDING" // ], // "enumDescriptions": [ // "Ascending order.", // "Descending order." // ], // "location": "query", // "type": "string" // } // }, // "path": "userprofiles/{profileId}/reports/{reportId}/files", // "response": { // "$ref": "FileList" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.userProfiles.get": type UserProfilesGetCall struct { s *Service profileId int64 opt_ map[string]interface{} ctx_ context.Context } // Get: Gets one user profile by ID. func (r *UserProfilesService) Get(profileId int64) *UserProfilesGetCall { c := &UserProfilesGetCall{s: r.s, opt_: make(map[string]interface{})} c.profileId = profileId 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 *UserProfilesGetCall) Fields(s ...googleapi.Field) *UserProfilesGetCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // IfNoneMatch sets the 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. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *UserProfilesGetCall) IfNoneMatch(entityTag string) *UserProfilesGetCall { c.opt_["ifNoneMatch"] = entityTag return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *UserProfilesGetCall) Context(ctx context.Context) *UserProfilesGetCall { c.ctx_ = ctx return c } func (c *UserProfilesGetCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles/{profileId}") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.Expand(req.URL, map[string]string{ "profileId": strconv.FormatInt(c.profileId, 10), }) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.userProfiles.get" call. // Exactly one of *UserProfile or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *UserProfile.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 *UserProfilesGetCall) Do() (*UserProfile, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &UserProfile{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Gets one user profile by ID.", // "httpMethod": "GET", // "id": "dfareporting.userProfiles.get", // "parameterOrder": [ // "profileId" // ], // "parameters": { // "profileId": { // "description": "The user profile ID.", // "format": "int64", // "location": "path", // "required": true, // "type": "string" // } // }, // "path": "userprofiles/{profileId}", // "response": { // "$ref": "UserProfile" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } } // method id "dfareporting.userProfiles.list": type UserProfilesListCall struct { s *Service opt_ map[string]interface{} ctx_ context.Context } // List: Retrieves list of user profiles for a user. func (r *UserProfilesService) List() *UserProfilesListCall { c := &UserProfilesListCall{s: r.s, opt_: make(map[string]interface{})} 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 *UserProfilesListCall) Fields(s ...googleapi.Field) *UserProfilesListCall { c.opt_["fields"] = googleapi.CombineFields(s) return c } // IfNoneMatch sets the 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. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *UserProfilesListCall) IfNoneMatch(entityTag string) *UserProfilesListCall { c.opt_["ifNoneMatch"] = entityTag return c } // Context sets the context to be used in this call's Do method. // Any pending HTTP request will be aborted if the provided context // is canceled. func (c *UserProfilesListCall) Context(ctx context.Context) *UserProfilesListCall { c.ctx_ = ctx return c } func (c *UserProfilesListCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil params := make(url.Values) params.Set("alt", alt) if v, ok := c.opt_["fields"]; ok { params.Set("fields", fmt.Sprintf("%v", v)) } urls := googleapi.ResolveRelative(c.s.BasePath, "userprofiles") urls += "?" + params.Encode() req, _ := http.NewRequest("GET", urls, body) googleapi.SetOpaque(req.URL) req.Header.Set("User-Agent", c.s.userAgent()) if v, ok := c.opt_["ifNoneMatch"]; ok { req.Header.Set("If-None-Match", fmt.Sprintf("%v", v)) } if c.ctx_ != nil { return ctxhttp.Do(c.ctx_, c.s.client, req) } return c.s.client.Do(req) } // Do executes the "dfareporting.userProfiles.list" call. // Exactly one of *UserProfileList or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *UserProfileList.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 *UserProfilesListCall) Do() (*UserProfileList, error) { res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &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, err } ret := &UserProfileList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { return nil, err } return ret, nil // { // "description": "Retrieves list of user profiles for a user.", // "httpMethod": "GET", // "id": "dfareporting.userProfiles.list", // "path": "userprofiles", // "response": { // "$ref": "UserProfileList" // }, // "scopes": [ // "https://www.googleapis.com/auth/dfareporting" // ] // } }