|  | // Copyright 2020 Google LLC. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | // Code generated file. DO NOT EDIT. | 
|  |  | 
|  | // Package adsensehost provides access to the AdSense Host API. | 
|  | // | 
|  | // For product documentation, see: https://developers.google.com/adsense/host/ | 
|  | // | 
|  | // Creating a client | 
|  | // | 
|  | // Usage example: | 
|  | // | 
|  | //   import "google.golang.org/api/adsensehost/v4.1" | 
|  | //   ... | 
|  | //   ctx := context.Background() | 
|  | //   adsensehostService, err := adsensehost.NewService(ctx) | 
|  | // | 
|  | // In this example, Google Application Default Credentials are used for authentication. | 
|  | // | 
|  | // For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. | 
|  | // | 
|  | // Other authentication options | 
|  | // | 
|  | // To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: | 
|  | // | 
|  | //   adsensehostService, err := adsensehost.NewService(ctx, option.WithAPIKey("AIza...")) | 
|  | // | 
|  | // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: | 
|  | // | 
|  | //   config := &oauth2.Config{...} | 
|  | //   // ... | 
|  | //   token, err := config.Exchange(ctx, ...) | 
|  | //   adsensehostService, err := adsensehost.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) | 
|  | // | 
|  | // See https://godoc.org/google.golang.org/api/option/ for details on options. | 
|  | package adsensehost // import "google.golang.org/api/adsensehost/v4.1" | 
|  |  | 
|  | import ( | 
|  | "bytes" | 
|  | "context" | 
|  | "encoding/json" | 
|  | "errors" | 
|  | "fmt" | 
|  | "io" | 
|  | "net/http" | 
|  | "net/url" | 
|  | "strconv" | 
|  | "strings" | 
|  |  | 
|  | googleapi "google.golang.org/api/googleapi" | 
|  | gensupport "google.golang.org/api/internal/gensupport" | 
|  | option "google.golang.org/api/option" | 
|  | internaloption "google.golang.org/api/option/internaloption" | 
|  | htransport "google.golang.org/api/transport/http" | 
|  | ) | 
|  |  | 
|  | // Always reference these packages, just in case the auto-generated code | 
|  | // below doesn't. | 
|  | var _ = bytes.NewBuffer | 
|  | var _ = strconv.Itoa | 
|  | var _ = fmt.Sprintf | 
|  | var _ = json.NewDecoder | 
|  | var _ = io.Copy | 
|  | var _ = url.Parse | 
|  | var _ = gensupport.MarshalJSON | 
|  | var _ = googleapi.Version | 
|  | var _ = errors.New | 
|  | var _ = strings.Replace | 
|  | var _ = context.Canceled | 
|  | var _ = internaloption.WithDefaultEndpoint | 
|  |  | 
|  | const apiId = "adsensehost:v4.1" | 
|  | const apiName = "adsensehost" | 
|  | const apiVersion = "v4.1" | 
|  | const basePath = "https://www.googleapis.com/adsensehost/v4.1/" | 
|  |  | 
|  | // OAuth2 scopes used by this API. | 
|  | const ( | 
|  | // View and manage your AdSense host data and associated accounts | 
|  | AdsensehostScope = "https://www.googleapis.com/auth/adsensehost" | 
|  | ) | 
|  |  | 
|  | // NewService creates a new Service. | 
|  | func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { | 
|  | scopesOption := option.WithScopes( | 
|  | "https://www.googleapis.com/auth/adsensehost", | 
|  | ) | 
|  | // NOTE: prepend, so we don't override user-specified scopes. | 
|  | opts = append([]option.ClientOption{scopesOption}, opts...) | 
|  | opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) | 
|  | client, endpoint, err := htransport.NewClient(ctx, opts...) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | s, err := New(client) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | if endpoint != "" { | 
|  | s.BasePath = endpoint | 
|  | } | 
|  | return s, nil | 
|  | } | 
|  |  | 
|  | // New creates a new Service. It uses the provided http.Client for requests. | 
|  | // | 
|  | // Deprecated: please use NewService instead. | 
|  | // To provide a custom HTTP client, use option.WithHTTPClient. | 
|  | // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. | 
|  | func New(client *http.Client) (*Service, error) { | 
|  | if client == nil { | 
|  | return nil, errors.New("client is nil") | 
|  | } | 
|  | s := &Service{client: client, BasePath: basePath} | 
|  | s.Accounts = NewAccountsService(s) | 
|  | s.Adclients = NewAdclientsService(s) | 
|  | s.Associationsessions = NewAssociationsessionsService(s) | 
|  | s.Customchannels = NewCustomchannelsService(s) | 
|  | s.Reports = NewReportsService(s) | 
|  | s.Urlchannels = NewUrlchannelsService(s) | 
|  | return s, nil | 
|  | } | 
|  |  | 
|  | type Service struct { | 
|  | client    *http.Client | 
|  | BasePath  string // API endpoint base URL | 
|  | UserAgent string // optional additional User-Agent fragment | 
|  |  | 
|  | Accounts *AccountsService | 
|  |  | 
|  | Adclients *AdclientsService | 
|  |  | 
|  | Associationsessions *AssociationsessionsService | 
|  |  | 
|  | Customchannels *CustomchannelsService | 
|  |  | 
|  | Reports *ReportsService | 
|  |  | 
|  | Urlchannels *UrlchannelsService | 
|  | } | 
|  |  | 
|  | func (s *Service) userAgent() string { | 
|  | if s.UserAgent == "" { | 
|  | return googleapi.UserAgent | 
|  | } | 
|  | return googleapi.UserAgent + " " + s.UserAgent | 
|  | } | 
|  |  | 
|  | func NewAccountsService(s *Service) *AccountsService { | 
|  | rs := &AccountsService{s: s} | 
|  | rs.Adclients = NewAccountsAdclientsService(s) | 
|  | rs.Adunits = NewAccountsAdunitsService(s) | 
|  | rs.Reports = NewAccountsReportsService(s) | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type AccountsService struct { | 
|  | s *Service | 
|  |  | 
|  | Adclients *AccountsAdclientsService | 
|  |  | 
|  | Adunits *AccountsAdunitsService | 
|  |  | 
|  | Reports *AccountsReportsService | 
|  | } | 
|  |  | 
|  | func NewAccountsAdclientsService(s *Service) *AccountsAdclientsService { | 
|  | rs := &AccountsAdclientsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type AccountsAdclientsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewAccountsAdunitsService(s *Service) *AccountsAdunitsService { | 
|  | rs := &AccountsAdunitsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type AccountsAdunitsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewAccountsReportsService(s *Service) *AccountsReportsService { | 
|  | rs := &AccountsReportsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type AccountsReportsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewAdclientsService(s *Service) *AdclientsService { | 
|  | rs := &AdclientsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type AdclientsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewAssociationsessionsService(s *Service) *AssociationsessionsService { | 
|  | rs := &AssociationsessionsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type AssociationsessionsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewCustomchannelsService(s *Service) *CustomchannelsService { | 
|  | rs := &CustomchannelsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type CustomchannelsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewReportsService(s *Service) *ReportsService { | 
|  | rs := &ReportsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ReportsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewUrlchannelsService(s *Service) *UrlchannelsService { | 
|  | rs := &UrlchannelsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type UrlchannelsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | type Account struct { | 
|  | // Id: Unique identifier of this account. | 
|  | Id string `json:"id,omitempty"` | 
|  |  | 
|  | // Kind: Kind of resource this is, in this case adsensehost#account. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // Name: Name of this account. | 
|  | Name string `json:"name,omitempty"` | 
|  |  | 
|  | // Status: Approval status of this account. One of: PENDING, APPROVED, | 
|  | // DISABLED. | 
|  | Status string `json:"status,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Id") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Id") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Account) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Account | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type Accounts struct { | 
|  | // Etag: ETag of this response for caching purposes. | 
|  | Etag string `json:"etag,omitempty"` | 
|  |  | 
|  | // Items: The accounts returned in this list response. | 
|  | Items []*Account `json:"items,omitempty"` | 
|  |  | 
|  | // Kind: Kind of list this is, in this case adsensehost#accounts. | 
|  | 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:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Etag") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Accounts) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Accounts | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type AdClient struct { | 
|  | // ArcOptIn: Whether this ad client is opted in to ARC. | 
|  | ArcOptIn bool `json:"arcOptIn,omitempty"` | 
|  |  | 
|  | // Id: Unique identifier of this ad client. | 
|  | Id string `json:"id,omitempty"` | 
|  |  | 
|  | // Kind: Kind of resource this is, in this case adsensehost#adClient. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // ProductCode: This ad client's product code, which corresponds to the | 
|  | // PRODUCT_CODE report dimension. | 
|  | ProductCode string `json:"productCode,omitempty"` | 
|  |  | 
|  | // SupportsReporting: Whether this ad client supports being reported on. | 
|  | SupportsReporting bool `json:"supportsReporting,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "ArcOptIn") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "ArcOptIn") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdClient) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdClient | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type AdClients struct { | 
|  | // Etag: ETag of this response for caching purposes. | 
|  | Etag string `json:"etag,omitempty"` | 
|  |  | 
|  | // Items: The ad clients returned in this list response. | 
|  | Items []*AdClient `json:"items,omitempty"` | 
|  |  | 
|  | // Kind: Kind of list this is, in this case adsensehost#adClients. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // NextPageToken: Continuation token used to page through ad clients. To | 
|  | // retrieve the next page of results, set the next request's "pageToken" | 
|  | // value to this. | 
|  | 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:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Etag") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdClients) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdClients | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type AdCode struct { | 
|  | // AdCode: The ad code snippet. | 
|  | AdCode string `json:"adCode,omitempty"` | 
|  |  | 
|  | // Kind: Kind this is, in this case adsensehost#adCode. | 
|  | 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. "AdCode") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "AdCode") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdCode) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdCode | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type AdStyle struct { | 
|  | // Colors: The colors included in the style. These are represented as | 
|  | // six hexadecimal characters, similar to HTML color codes, but without | 
|  | // the leading hash. | 
|  | Colors *AdStyleColors `json:"colors,omitempty"` | 
|  |  | 
|  | // Corners: The style of the corners in the ad (deprecated: never | 
|  | // populated, ignored). | 
|  | Corners string `json:"corners,omitempty"` | 
|  |  | 
|  | // Font: The font which is included in the style. | 
|  | Font *AdStyleFont `json:"font,omitempty"` | 
|  |  | 
|  | // Kind: Kind this is, in this case adsensehost#adStyle. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Colors") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Colors") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdStyle) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdStyle | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // AdStyleColors: The colors included in the style. These are | 
|  | // represented as six hexadecimal characters, similar to HTML color | 
|  | // codes, but without the leading hash. | 
|  | type AdStyleColors struct { | 
|  | // Background: The color of the ad background. | 
|  | Background string `json:"background,omitempty"` | 
|  |  | 
|  | // Border: The color of the ad border. | 
|  | Border string `json:"border,omitempty"` | 
|  |  | 
|  | // Text: The color of the ad text. | 
|  | Text string `json:"text,omitempty"` | 
|  |  | 
|  | // Title: The color of the ad title. | 
|  | Title string `json:"title,omitempty"` | 
|  |  | 
|  | // Url: The color of the ad url. | 
|  | Url string `json:"url,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Background") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Background") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdStyleColors) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdStyleColors | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // AdStyleFont: The font which is included in the style. | 
|  | type AdStyleFont struct { | 
|  | // Family: The family of the font. Possible values are: | 
|  | // ACCOUNT_DEFAULT_FAMILY, ADSENSE_DEFAULT_FAMILY, ARIAL, TIMES and | 
|  | // VERDANA. | 
|  | Family string `json:"family,omitempty"` | 
|  |  | 
|  | // Size: The size of the font. Possible values are: | 
|  | // ACCOUNT_DEFAULT_SIZE, ADSENSE_DEFAULT_SIZE, SMALL, MEDIUM and LARGE. | 
|  | Size string `json:"size,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Family") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Family") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdStyleFont) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdStyleFont | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type AdUnit struct { | 
|  | // Code: Identity code of this ad unit, not necessarily unique across ad | 
|  | // clients. | 
|  | Code string `json:"code,omitempty"` | 
|  |  | 
|  | // ContentAdsSettings: Settings specific to content ads (AFC) and | 
|  | // highend mobile content ads (AFMC - deprecated). | 
|  | ContentAdsSettings *AdUnitContentAdsSettings `json:"contentAdsSettings,omitempty"` | 
|  |  | 
|  | // CustomStyle: Custom style information specific to this ad unit. | 
|  | CustomStyle *AdStyle `json:"customStyle,omitempty"` | 
|  |  | 
|  | // Id: Unique identifier of this ad unit. This should be considered an | 
|  | // opaque identifier; it is not safe to rely on it being in any | 
|  | // particular format. | 
|  | Id string `json:"id,omitempty"` | 
|  |  | 
|  | // Kind: Kind of resource this is, in this case adsensehost#adUnit. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // MobileContentAdsSettings: Settings specific to WAP mobile content ads | 
|  | // (AFMC - deprecated). | 
|  | MobileContentAdsSettings *AdUnitMobileContentAdsSettings `json:"mobileContentAdsSettings,omitempty"` | 
|  |  | 
|  | // Name: Name of this ad unit. | 
|  | Name string `json:"name,omitempty"` | 
|  |  | 
|  | // Status: Status of this ad unit. Possible values are: | 
|  | // NEW: Indicates that the ad unit was created within the last seven | 
|  | // days and does not yet have any activity associated with it. | 
|  | // | 
|  | // ACTIVE: Indicates that there has been activity on this ad unit in the | 
|  | // last seven days. | 
|  | // | 
|  | // INACTIVE: Indicates that there has been no activity on this ad unit | 
|  | // in the last seven days. | 
|  | Status string `json:"status,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Code") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Code") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdUnit) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdUnit | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // AdUnitContentAdsSettings: Settings specific to content ads (AFC) and | 
|  | // highend mobile content ads (AFMC - deprecated). | 
|  | type AdUnitContentAdsSettings struct { | 
|  | // BackupOption: The backup option to be used in instances where no ad | 
|  | // is available. | 
|  | BackupOption *AdUnitContentAdsSettingsBackupOption `json:"backupOption,omitempty"` | 
|  |  | 
|  | // Size: Size of this ad unit. Size values are in the form | 
|  | // SIZE_{width}_{height}. | 
|  | Size string `json:"size,omitempty"` | 
|  |  | 
|  | // Type: Type of this ad unit. Possible values are TEXT, TEXT_IMAGE, | 
|  | // IMAGE and LINK. | 
|  | Type string `json:"type,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "BackupOption") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "BackupOption") to include | 
|  | // in API requests with the JSON null value. By default, fields with | 
|  | // empty values are omitted from API requests. However, any field with | 
|  | // an empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdUnitContentAdsSettings) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdUnitContentAdsSettings | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // AdUnitContentAdsSettingsBackupOption: The backup option to be used in | 
|  | // instances where no ad is available. | 
|  | type AdUnitContentAdsSettingsBackupOption struct { | 
|  | // Color: Color to use when type is set to COLOR. These are represented | 
|  | // as six hexadecimal characters, similar to HTML color codes, but | 
|  | // without the leading hash. | 
|  | Color string `json:"color,omitempty"` | 
|  |  | 
|  | // Type: Type of the backup option. Possible values are BLANK, COLOR and | 
|  | // URL. | 
|  | Type string `json:"type,omitempty"` | 
|  |  | 
|  | // Url: URL to use when type is set to URL. | 
|  | Url string `json:"url,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Color") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Color") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdUnitContentAdsSettingsBackupOption) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdUnitContentAdsSettingsBackupOption | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // AdUnitMobileContentAdsSettings: Settings specific to WAP mobile | 
|  | // content ads (AFMC - deprecated). | 
|  | type AdUnitMobileContentAdsSettings struct { | 
|  | // MarkupLanguage: The markup language to use for this ad unit. | 
|  | MarkupLanguage string `json:"markupLanguage,omitempty"` | 
|  |  | 
|  | // ScriptingLanguage: The scripting language to use for this ad unit. | 
|  | ScriptingLanguage string `json:"scriptingLanguage,omitempty"` | 
|  |  | 
|  | // Size: Size of this ad unit. | 
|  | Size string `json:"size,omitempty"` | 
|  |  | 
|  | // Type: Type of this ad unit. | 
|  | Type string `json:"type,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "MarkupLanguage") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "MarkupLanguage") to | 
|  | // include in API requests with the JSON null value. By default, fields | 
|  | // with empty values are omitted from API requests. However, any field | 
|  | // with an empty value appearing in NullFields will be sent to the | 
|  | // server as null. It is an error if a field in this list has a | 
|  | // non-empty value. This may be used to include null fields in Patch | 
|  | // requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdUnitMobileContentAdsSettings) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdUnitMobileContentAdsSettings | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type AdUnits struct { | 
|  | // Etag: ETag of this response for caching purposes. | 
|  | Etag string `json:"etag,omitempty"` | 
|  |  | 
|  | // Items: The ad units returned in this list response. | 
|  | Items []*AdUnit `json:"items,omitempty"` | 
|  |  | 
|  | // Kind: Kind of list this is, in this case adsensehost#adUnits. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // NextPageToken: Continuation token used to page through ad units. To | 
|  | // retrieve the next page of results, set the next request's "pageToken" | 
|  | // value to this. | 
|  | 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:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Etag") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AdUnits) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AdUnits | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type AssociationSession struct { | 
|  | // AccountId: Hosted account id of the associated publisher after | 
|  | // association. Present if status is ACCEPTED. | 
|  | AccountId string `json:"accountId,omitempty"` | 
|  |  | 
|  | // Id: Unique identifier of this association session. | 
|  | Id string `json:"id,omitempty"` | 
|  |  | 
|  | // Kind: Kind of resource this is, in this case | 
|  | // adsensehost#associationSession. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // ProductCodes: The products to associate with the user. Options: AFC, | 
|  | // AFG, AFV, AFS (deprecated), AFMC (deprecated) | 
|  | ProductCodes []string `json:"productCodes,omitempty"` | 
|  |  | 
|  | // RedirectUrl: Redirect URL of this association session. Used to | 
|  | // redirect users into the AdSense association flow. | 
|  | RedirectUrl string `json:"redirectUrl,omitempty"` | 
|  |  | 
|  | // Status: Status of the completed association, available once the | 
|  | // association callback token has been verified. One of ACCEPTED, | 
|  | // REJECTED, or ERROR. | 
|  | Status string `json:"status,omitempty"` | 
|  |  | 
|  | // UserLocale: The preferred locale of the user themselves when going | 
|  | // through the AdSense association flow. | 
|  | UserLocale string `json:"userLocale,omitempty"` | 
|  |  | 
|  | // WebsiteLocale: The locale of the user's hosted website. | 
|  | WebsiteLocale string `json:"websiteLocale,omitempty"` | 
|  |  | 
|  | // WebsiteUrl: The URL of the user's hosted website. | 
|  | WebsiteUrl string `json:"websiteUrl,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:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "AccountId") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *AssociationSession) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod AssociationSession | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type CustomChannel struct { | 
|  | // Code: Code of this custom channel, not necessarily unique across ad | 
|  | // clients. | 
|  | Code string `json:"code,omitempty"` | 
|  |  | 
|  | // Id: Unique identifier of this custom channel. This should be | 
|  | // considered an opaque identifier; it is not safe to rely on it being | 
|  | // in any particular format. | 
|  | Id string `json:"id,omitempty"` | 
|  |  | 
|  | // Kind: Kind of resource this is, in this case | 
|  | // adsensehost#customChannel. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // Name: Name of this custom channel. | 
|  | Name string `json:"name,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Code") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Code") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *CustomChannel) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod CustomChannel | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type CustomChannels struct { | 
|  | // Etag: ETag of this response for caching purposes. | 
|  | Etag string `json:"etag,omitempty"` | 
|  |  | 
|  | // Items: The custom channels returned in this list response. | 
|  | Items []*CustomChannel `json:"items,omitempty"` | 
|  |  | 
|  | // Kind: Kind of list this is, in this case adsensehost#customChannels. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // NextPageToken: Continuation token used to page through custom | 
|  | // channels. To retrieve the next page of results, set the next | 
|  | // request's "pageToken" value to this. | 
|  | 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:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Etag") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *CustomChannels) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod CustomChannels | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type Report struct { | 
|  | // Averages: The averages of the report. This is the same length as any | 
|  | // other row in the report; cells corresponding to dimension columns are | 
|  | // empty. | 
|  | Averages []string `json:"averages,omitempty"` | 
|  |  | 
|  | // Headers: The header information of the columns requested in the | 
|  | // report. This is a list of headers; one for each dimension in the | 
|  | // request, followed by one for each metric in the request. | 
|  | Headers []*ReportHeaders `json:"headers,omitempty"` | 
|  |  | 
|  | // Kind: Kind this is, in this case adsensehost#report. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // Rows: The output rows of the report. Each row is a list of cells; one | 
|  | // for each dimension in the request, followed by one for each metric in | 
|  | // the request. The dimension cells contain strings, and the metric | 
|  | // cells contain numbers. | 
|  | Rows [][]string `json:"rows,omitempty"` | 
|  |  | 
|  | // TotalMatchedRows: The total number of rows matched by the report | 
|  | // request. Fewer rows may be returned in the response due to being | 
|  | // limited by the row count requested or the report row limit. | 
|  | TotalMatchedRows int64 `json:"totalMatchedRows,omitempty,string"` | 
|  |  | 
|  | // Totals: The totals of the report. This is the same length as any | 
|  | // other row in the report; cells corresponding to dimension columns are | 
|  | // empty. | 
|  | Totals []string `json:"totals,omitempty"` | 
|  |  | 
|  | // Warnings: Any warnings associated with generation of the report. | 
|  | Warnings []string `json:"warnings,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Averages") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Averages") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Report) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Report | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type ReportHeaders struct { | 
|  | // Currency: The currency of this column. Only present if the header | 
|  | // type is METRIC_CURRENCY. | 
|  | Currency string `json:"currency,omitempty"` | 
|  |  | 
|  | // Name: The name of the header. | 
|  | Name string `json:"name,omitempty"` | 
|  |  | 
|  | // Type: The type of the header; one of DIMENSION, METRIC_TALLY, | 
|  | // METRIC_RATIO, or METRIC_CURRENCY. | 
|  | Type string `json:"type,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Currency") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Currency") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *ReportHeaders) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod ReportHeaders | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type UrlChannel struct { | 
|  | // Id: Unique identifier of this URL channel. This should be considered | 
|  | // an opaque identifier; it is not safe to rely on it being in any | 
|  | // particular format. | 
|  | Id string `json:"id,omitempty"` | 
|  |  | 
|  | // Kind: Kind of resource this is, in this case adsensehost#urlChannel. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // UrlPattern: URL Pattern of this URL channel. Does not include | 
|  | // "http://" or "https://". Example: www.example.com/home | 
|  | UrlPattern string `json:"urlPattern,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Id") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Id") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *UrlChannel) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod UrlChannel | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type UrlChannels struct { | 
|  | // Etag: ETag of this response for caching purposes. | 
|  | Etag string `json:"etag,omitempty"` | 
|  |  | 
|  | // Items: The URL channels returned in this list response. | 
|  | Items []*UrlChannel `json:"items,omitempty"` | 
|  |  | 
|  | // Kind: Kind of list this is, in this case adsensehost#urlChannels. | 
|  | Kind string `json:"kind,omitempty"` | 
|  |  | 
|  | // NextPageToken: Continuation token used to page through URL channels. | 
|  | // To retrieve the next page of results, set the next request's | 
|  | // "pageToken" value to this. | 
|  | 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:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Etag") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *UrlChannels) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod UrlChannels | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.get": | 
|  |  | 
|  | type AccountsGetCall struct { | 
|  | s            *Service | 
|  | accountId    string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Get: Get information about the selected associated AdSense account. | 
|  | func (r *AccountsService) Get(accountId string) *AccountsGetCall { | 
|  | c := &AccountsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | 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 *AccountsGetCall) Fields(s ...googleapi.Field) *AccountsGetCall { | 
|  | c.urlParams_.Set("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 *AccountsGetCall) IfNoneMatch(entityTag string) *AccountsGetCall { | 
|  | c.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 *AccountsGetCall) Context(ctx context.Context) *AccountsGetCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsGetCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsGetCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId": c.accountId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.get" call. | 
|  | // Exactly one of *Account or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Account.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 *AccountsGetCall) Do(opts ...googleapi.CallOption) (*Account, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &Account{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Get information about the selected associated AdSense account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.accounts.get", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account to get information about.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}", | 
|  | //   "response": { | 
|  | //     "$ref": "Account" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.list": | 
|  |  | 
|  | type AccountsListCall struct { | 
|  | s            *Service | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: List hosted accounts associated with this AdSense account by ad | 
|  | // client id. | 
|  | func (r *AccountsService) List(filterAdClientId []string) *AccountsListCall { | 
|  | c := &AccountsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.urlParams_.SetMulti("filterAdClientId", append([]string{}, filterAdClientId...)) | 
|  | 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 *AccountsListCall) Fields(s ...googleapi.Field) *AccountsListCall { | 
|  | c.urlParams_.Set("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 *AccountsListCall) IfNoneMatch(entityTag string) *AccountsListCall { | 
|  | c.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 *AccountsListCall) Context(ctx context.Context) *AccountsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.list" call. | 
|  | // Exactly one of *Accounts or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Accounts.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 *AccountsListCall) Do(opts ...googleapi.CallOption) (*Accounts, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &Accounts{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "List hosted accounts associated with this AdSense account by ad client id.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.accounts.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "filterAdClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "filterAdClientId": { | 
|  | //       "description": "Ad clients to list accounts for.", | 
|  | //       "location": "query", | 
|  | //       "repeated": true, | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts", | 
|  | //   "response": { | 
|  | //     "$ref": "Accounts" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.adclients.get": | 
|  |  | 
|  | type AccountsAdclientsGetCall struct { | 
|  | s            *Service | 
|  | accountId    string | 
|  | adClientId   string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Get: Get information about one of the ad clients in the specified | 
|  | // publisher's AdSense account. | 
|  | func (r *AccountsAdclientsService) Get(accountId string, adClientId string) *AccountsAdclientsGetCall { | 
|  | c := &AccountsAdclientsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | c.adClientId = adClientId | 
|  | 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 *AccountsAdclientsGetCall) Fields(s ...googleapi.Field) *AccountsAdclientsGetCall { | 
|  | c.urlParams_.Set("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 *AccountsAdclientsGetCall) IfNoneMatch(entityTag string) *AccountsAdclientsGetCall { | 
|  | c.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 *AccountsAdclientsGetCall) Context(ctx context.Context) *AccountsAdclientsGetCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsAdclientsGetCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsAdclientsGetCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/adclients/{adClientId}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId":  c.accountId, | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.adclients.get" call. | 
|  | // Exactly one of *AdClient or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *AdClient.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 *AccountsAdclientsGetCall) Do(opts ...googleapi.CallOption) (*AdClient, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdClient{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Get information about one of the ad clients in the specified publisher's AdSense account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.accounts.adclients.get", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId", | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account which contains the ad client.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client to get.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/adclients/{adClientId}", | 
|  | //   "response": { | 
|  | //     "$ref": "AdClient" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.adclients.list": | 
|  |  | 
|  | type AccountsAdclientsListCall struct { | 
|  | s            *Service | 
|  | accountId    string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: List all hosted ad clients in the specified hosted account. | 
|  | func (r *AccountsAdclientsService) List(accountId string) *AccountsAdclientsListCall { | 
|  | c := &AccountsAdclientsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | return c | 
|  | } | 
|  |  | 
|  | // MaxResults sets the optional parameter "maxResults": The maximum | 
|  | // number of ad clients to include in the response, used for paging. | 
|  | func (c *AccountsAdclientsListCall) MaxResults(maxResults int64) *AccountsAdclientsListCall { | 
|  | c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": A continuation | 
|  | // token, used to page through ad clients. To retrieve the next page, | 
|  | // set this parameter to the value of "nextPageToken" from the previous | 
|  | // response. | 
|  | func (c *AccountsAdclientsListCall) PageToken(pageToken string) *AccountsAdclientsListCall { | 
|  | c.urlParams_.Set("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 *AccountsAdclientsListCall) Fields(s ...googleapi.Field) *AccountsAdclientsListCall { | 
|  | c.urlParams_.Set("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 *AccountsAdclientsListCall) IfNoneMatch(entityTag string) *AccountsAdclientsListCall { | 
|  | c.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 *AccountsAdclientsListCall) Context(ctx context.Context) *AccountsAdclientsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsAdclientsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsAdclientsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/adclients") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId": c.accountId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.adclients.list" call. | 
|  | // Exactly one of *AdClients or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *AdClients.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 *AccountsAdclientsListCall) Do(opts ...googleapi.CallOption) (*AdClients, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdClients{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "List all hosted ad clients in the specified hosted account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.accounts.adclients.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account for which to list ad clients.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "maxResults": { | 
|  | //       "description": "The maximum number of ad clients to include in the response, used for paging.", | 
|  | //       "format": "uint32", | 
|  | //       "location": "query", | 
|  | //       "maximum": "10000", | 
|  | //       "minimum": "0", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/adclients", | 
|  | //   "response": { | 
|  | //     "$ref": "AdClients" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *AccountsAdclientsListCall) Pages(ctx context.Context, f func(*AdClients) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.adunits.delete": | 
|  |  | 
|  | type AccountsAdunitsDeleteCall struct { | 
|  | s          *Service | 
|  | accountId  string | 
|  | adClientId string | 
|  | adUnitId   string | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Delete: Delete the specified ad unit from the specified publisher | 
|  | // AdSense account. | 
|  | func (r *AccountsAdunitsService) Delete(accountId string, adClientId string, adUnitId string) *AccountsAdunitsDeleteCall { | 
|  | c := &AccountsAdunitsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | c.adClientId = adClientId | 
|  | c.adUnitId = adUnitId | 
|  | 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 *AccountsAdunitsDeleteCall) Fields(s ...googleapi.Field) *AccountsAdunitsDeleteCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *AccountsAdunitsDeleteCall) Context(ctx context.Context) *AccountsAdunitsDeleteCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsAdunitsDeleteCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsAdunitsDeleteCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("DELETE", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId":  c.accountId, | 
|  | "adClientId": c.adClientId, | 
|  | "adUnitId":   c.adUnitId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.adunits.delete" call. | 
|  | // Exactly one of *AdUnit or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *AdUnit.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 *AccountsAdunitsDeleteCall) Do(opts ...googleapi.CallOption) (*AdUnit, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdUnit{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Delete the specified ad unit from the specified publisher AdSense account.", | 
|  | //   "httpMethod": "DELETE", | 
|  | //   "id": "adsensehost.accounts.adunits.delete", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId", | 
|  | //     "adClientId", | 
|  | //     "adUnitId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account which contains the ad unit.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client for which to get ad unit.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adUnitId": { | 
|  | //       "description": "Ad unit to delete.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}", | 
|  | //   "response": { | 
|  | //     "$ref": "AdUnit" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.adunits.get": | 
|  |  | 
|  | type AccountsAdunitsGetCall struct { | 
|  | s            *Service | 
|  | accountId    string | 
|  | adClientId   string | 
|  | adUnitId     string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Get: Get the specified host ad unit in this AdSense account. | 
|  | func (r *AccountsAdunitsService) Get(accountId string, adClientId string, adUnitId string) *AccountsAdunitsGetCall { | 
|  | c := &AccountsAdunitsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | c.adClientId = adClientId | 
|  | c.adUnitId = adUnitId | 
|  | 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 *AccountsAdunitsGetCall) Fields(s ...googleapi.Field) *AccountsAdunitsGetCall { | 
|  | c.urlParams_.Set("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 *AccountsAdunitsGetCall) IfNoneMatch(entityTag string) *AccountsAdunitsGetCall { | 
|  | c.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 *AccountsAdunitsGetCall) Context(ctx context.Context) *AccountsAdunitsGetCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsAdunitsGetCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsAdunitsGetCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId":  c.accountId, | 
|  | "adClientId": c.adClientId, | 
|  | "adUnitId":   c.adUnitId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.adunits.get" call. | 
|  | // Exactly one of *AdUnit or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *AdUnit.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 *AccountsAdunitsGetCall) Do(opts ...googleapi.CallOption) (*AdUnit, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdUnit{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Get the specified host ad unit in this AdSense account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.accounts.adunits.get", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId", | 
|  | //     "adClientId", | 
|  | //     "adUnitId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account which contains the ad unit.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client for which to get ad unit.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adUnitId": { | 
|  | //       "description": "Ad unit to get.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}", | 
|  | //   "response": { | 
|  | //     "$ref": "AdUnit" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.adunits.getAdCode": | 
|  |  | 
|  | type AccountsAdunitsGetAdCodeCall struct { | 
|  | s            *Service | 
|  | accountId    string | 
|  | adClientId   string | 
|  | adUnitId     string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // GetAdCode: Get ad code for the specified ad unit, attaching the | 
|  | // specified host custom channels. | 
|  | func (r *AccountsAdunitsService) GetAdCode(accountId string, adClientId string, adUnitId string) *AccountsAdunitsGetAdCodeCall { | 
|  | c := &AccountsAdunitsGetAdCodeCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | c.adClientId = adClientId | 
|  | c.adUnitId = adUnitId | 
|  | return c | 
|  | } | 
|  |  | 
|  | // HostCustomChannelId sets the optional parameter | 
|  | // "hostCustomChannelId": Host custom channel to attach to the ad code. | 
|  | func (c *AccountsAdunitsGetAdCodeCall) HostCustomChannelId(hostCustomChannelId ...string) *AccountsAdunitsGetAdCodeCall { | 
|  | c.urlParams_.SetMulti("hostCustomChannelId", append([]string{}, hostCustomChannelId...)) | 
|  | 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 *AccountsAdunitsGetAdCodeCall) Fields(s ...googleapi.Field) *AccountsAdunitsGetAdCodeCall { | 
|  | c.urlParams_.Set("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 *AccountsAdunitsGetAdCodeCall) IfNoneMatch(entityTag string) *AccountsAdunitsGetAdCodeCall { | 
|  | c.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 *AccountsAdunitsGetAdCodeCall) Context(ctx context.Context) *AccountsAdunitsGetAdCodeCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsAdunitsGetAdCodeCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsAdunitsGetAdCodeCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/adcode") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId":  c.accountId, | 
|  | "adClientId": c.adClientId, | 
|  | "adUnitId":   c.adUnitId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.adunits.getAdCode" call. | 
|  | // Exactly one of *AdCode or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *AdCode.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 *AccountsAdunitsGetAdCodeCall) Do(opts ...googleapi.CallOption) (*AdCode, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdCode{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Get ad code for the specified ad unit, attaching the specified host custom channels.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.accounts.adunits.getAdCode", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId", | 
|  | //     "adClientId", | 
|  | //     "adUnitId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account which contains the ad client.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client with contains the ad unit.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adUnitId": { | 
|  | //       "description": "Ad unit to get the code for.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "hostCustomChannelId": { | 
|  | //       "description": "Host custom channel to attach to the ad code.", | 
|  | //       "location": "query", | 
|  | //       "repeated": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/adclients/{adClientId}/adunits/{adUnitId}/adcode", | 
|  | //   "response": { | 
|  | //     "$ref": "AdCode" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.adunits.insert": | 
|  |  | 
|  | type AccountsAdunitsInsertCall struct { | 
|  | s          *Service | 
|  | accountId  string | 
|  | adClientId string | 
|  | adunit     *AdUnit | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Insert: Insert the supplied ad unit into the specified publisher | 
|  | // AdSense account. | 
|  | func (r *AccountsAdunitsService) Insert(accountId string, adClientId string, adunit *AdUnit) *AccountsAdunitsInsertCall { | 
|  | c := &AccountsAdunitsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | c.adClientId = adClientId | 
|  | c.adunit = adunit | 
|  | 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 *AccountsAdunitsInsertCall) Fields(s ...googleapi.Field) *AccountsAdunitsInsertCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *AccountsAdunitsInsertCall) Context(ctx context.Context) *AccountsAdunitsInsertCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsAdunitsInsertCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsAdunitsInsertCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.adunit) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/adclients/{adClientId}/adunits") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId":  c.accountId, | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.adunits.insert" call. | 
|  | // Exactly one of *AdUnit or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *AdUnit.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 *AccountsAdunitsInsertCall) Do(opts ...googleapi.CallOption) (*AdUnit, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdUnit{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Insert the supplied ad unit into the specified publisher AdSense account.", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "adsensehost.accounts.adunits.insert", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId", | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account which will contain the ad unit.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client into which to insert the ad unit.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/adclients/{adClientId}/adunits", | 
|  | //   "request": { | 
|  | //     "$ref": "AdUnit" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "AdUnit" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.adunits.list": | 
|  |  | 
|  | type AccountsAdunitsListCall struct { | 
|  | s            *Service | 
|  | accountId    string | 
|  | adClientId   string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: List all ad units in the specified publisher's AdSense account. | 
|  | func (r *AccountsAdunitsService) List(accountId string, adClientId string) *AccountsAdunitsListCall { | 
|  | c := &AccountsAdunitsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | c.adClientId = adClientId | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IncludeInactive sets the optional parameter "includeInactive": | 
|  | // Whether to include inactive ad units. Default: true. | 
|  | func (c *AccountsAdunitsListCall) IncludeInactive(includeInactive bool) *AccountsAdunitsListCall { | 
|  | c.urlParams_.Set("includeInactive", fmt.Sprint(includeInactive)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // MaxResults sets the optional parameter "maxResults": The maximum | 
|  | // number of ad units to include in the response, used for paging. | 
|  | func (c *AccountsAdunitsListCall) MaxResults(maxResults int64) *AccountsAdunitsListCall { | 
|  | c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": A continuation | 
|  | // token, used to page through ad units. To retrieve the next page, set | 
|  | // this parameter to the value of "nextPageToken" from the previous | 
|  | // response. | 
|  | func (c *AccountsAdunitsListCall) PageToken(pageToken string) *AccountsAdunitsListCall { | 
|  | c.urlParams_.Set("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 *AccountsAdunitsListCall) Fields(s ...googleapi.Field) *AccountsAdunitsListCall { | 
|  | c.urlParams_.Set("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 *AccountsAdunitsListCall) IfNoneMatch(entityTag string) *AccountsAdunitsListCall { | 
|  | c.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 *AccountsAdunitsListCall) Context(ctx context.Context) *AccountsAdunitsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsAdunitsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsAdunitsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/adclients/{adClientId}/adunits") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId":  c.accountId, | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.adunits.list" call. | 
|  | // Exactly one of *AdUnits or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *AdUnits.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 *AccountsAdunitsListCall) Do(opts ...googleapi.CallOption) (*AdUnits, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdUnits{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "List all ad units in the specified publisher's AdSense account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.accounts.adunits.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId", | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account which contains the ad client.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client for which to list ad units.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "includeInactive": { | 
|  | //       "description": "Whether to include inactive ad units. Default: true.", | 
|  | //       "location": "query", | 
|  | //       "type": "boolean" | 
|  | //     }, | 
|  | //     "maxResults": { | 
|  | //       "description": "The maximum number of ad units to include in the response, used for paging.", | 
|  | //       "format": "uint32", | 
|  | //       "location": "query", | 
|  | //       "maximum": "10000", | 
|  | //       "minimum": "0", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/adclients/{adClientId}/adunits", | 
|  | //   "response": { | 
|  | //     "$ref": "AdUnits" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *AccountsAdunitsListCall) Pages(ctx context.Context, f func(*AdUnits) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.adunits.patch": | 
|  |  | 
|  | type AccountsAdunitsPatchCall struct { | 
|  | s          *Service | 
|  | accountId  string | 
|  | adClientId string | 
|  | adunit     *AdUnit | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Patch: Update the supplied ad unit in the specified publisher AdSense | 
|  | // account. This method supports patch semantics. | 
|  | func (r *AccountsAdunitsService) Patch(accountId string, adClientId string, adUnitId string, adunit *AdUnit) *AccountsAdunitsPatchCall { | 
|  | c := &AccountsAdunitsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | c.adClientId = adClientId | 
|  | c.urlParams_.Set("adUnitId", adUnitId) | 
|  | c.adunit = adunit | 
|  | 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 *AccountsAdunitsPatchCall) Fields(s ...googleapi.Field) *AccountsAdunitsPatchCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *AccountsAdunitsPatchCall) Context(ctx context.Context) *AccountsAdunitsPatchCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsAdunitsPatchCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsAdunitsPatchCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.adunit) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/adclients/{adClientId}/adunits") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PATCH", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId":  c.accountId, | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.adunits.patch" call. | 
|  | // Exactly one of *AdUnit or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *AdUnit.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 *AccountsAdunitsPatchCall) Do(opts ...googleapi.CallOption) (*AdUnit, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdUnit{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Update the supplied ad unit in the specified publisher AdSense account. This method supports patch semantics.", | 
|  | //   "httpMethod": "PATCH", | 
|  | //   "id": "adsensehost.accounts.adunits.patch", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId", | 
|  | //     "adClientId", | 
|  | //     "adUnitId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account which contains the ad client.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client which contains the ad unit.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adUnitId": { | 
|  | //       "description": "Ad unit to get.", | 
|  | //       "location": "query", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/adclients/{adClientId}/adunits", | 
|  | //   "request": { | 
|  | //     "$ref": "AdUnit" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "AdUnit" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.adunits.update": | 
|  |  | 
|  | type AccountsAdunitsUpdateCall struct { | 
|  | s          *Service | 
|  | accountId  string | 
|  | adClientId string | 
|  | adunit     *AdUnit | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Update: Update the supplied ad unit in the specified publisher | 
|  | // AdSense account. | 
|  | func (r *AccountsAdunitsService) Update(accountId string, adClientId string, adunit *AdUnit) *AccountsAdunitsUpdateCall { | 
|  | c := &AccountsAdunitsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | c.adClientId = adClientId | 
|  | c.adunit = adunit | 
|  | 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 *AccountsAdunitsUpdateCall) Fields(s ...googleapi.Field) *AccountsAdunitsUpdateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *AccountsAdunitsUpdateCall) Context(ctx context.Context) *AccountsAdunitsUpdateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsAdunitsUpdateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsAdunitsUpdateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.adunit) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/adclients/{adClientId}/adunits") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PUT", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId":  c.accountId, | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.adunits.update" call. | 
|  | // Exactly one of *AdUnit or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *AdUnit.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 *AccountsAdunitsUpdateCall) Do(opts ...googleapi.CallOption) (*AdUnit, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdUnit{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Update the supplied ad unit in the specified publisher AdSense account.", | 
|  | //   "httpMethod": "PUT", | 
|  | //   "id": "adsensehost.accounts.adunits.update", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId", | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Account which contains the ad client.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client which contains the ad unit.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/adclients/{adClientId}/adunits", | 
|  | //   "request": { | 
|  | //     "$ref": "AdUnit" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "AdUnit" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.accounts.reports.generate": | 
|  |  | 
|  | type AccountsReportsGenerateCall struct { | 
|  | s            *Service | 
|  | accountId    string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Generate: Generate an AdSense report based on the report request sent | 
|  | // in the query parameters. Returns the result as JSON; to retrieve | 
|  | // output in CSV format specify "alt=csv" as a query parameter. | 
|  | func (r *AccountsReportsService) Generate(accountId string, startDate string, endDate string) *AccountsReportsGenerateCall { | 
|  | c := &AccountsReportsGenerateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.accountId = accountId | 
|  | c.urlParams_.Set("startDate", startDate) | 
|  | c.urlParams_.Set("endDate", endDate) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Dimension sets the optional parameter "dimension": Dimensions to base | 
|  | // the report on. | 
|  | func (c *AccountsReportsGenerateCall) Dimension(dimension ...string) *AccountsReportsGenerateCall { | 
|  | c.urlParams_.SetMulti("dimension", append([]string{}, dimension...)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Filter sets the optional parameter "filter": Filters to be run on the | 
|  | // report. | 
|  | func (c *AccountsReportsGenerateCall) Filter(filter ...string) *AccountsReportsGenerateCall { | 
|  | c.urlParams_.SetMulti("filter", append([]string{}, filter...)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Locale sets the optional parameter "locale": Optional locale to use | 
|  | // for translating report output to a local language. Defaults to | 
|  | // "en_US" if not specified. | 
|  | func (c *AccountsReportsGenerateCall) Locale(locale string) *AccountsReportsGenerateCall { | 
|  | c.urlParams_.Set("locale", locale) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // MaxResults sets the optional parameter "maxResults": The maximum | 
|  | // number of rows of report data to return. | 
|  | func (c *AccountsReportsGenerateCall) MaxResults(maxResults int64) *AccountsReportsGenerateCall { | 
|  | c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Metric sets the optional parameter "metric": Numeric columns to | 
|  | // include in the report. | 
|  | func (c *AccountsReportsGenerateCall) Metric(metric ...string) *AccountsReportsGenerateCall { | 
|  | c.urlParams_.SetMulti("metric", append([]string{}, metric...)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Sort sets the optional parameter "sort": The name of a dimension or | 
|  | // metric to sort the resulting report on, optionally prefixed with "+" | 
|  | // to sort ascending or "-" to sort descending. If no prefix is | 
|  | // specified, the column is sorted ascending. | 
|  | func (c *AccountsReportsGenerateCall) Sort(sort ...string) *AccountsReportsGenerateCall { | 
|  | c.urlParams_.SetMulti("sort", append([]string{}, sort...)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // StartIndex sets the optional parameter "startIndex": Index of the | 
|  | // first row of report data to return. | 
|  | func (c *AccountsReportsGenerateCall) StartIndex(startIndex int64) *AccountsReportsGenerateCall { | 
|  | c.urlParams_.Set("startIndex", fmt.Sprint(startIndex)) | 
|  | 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 *AccountsReportsGenerateCall) Fields(s ...googleapi.Field) *AccountsReportsGenerateCall { | 
|  | c.urlParams_.Set("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 *AccountsReportsGenerateCall) IfNoneMatch(entityTag string) *AccountsReportsGenerateCall { | 
|  | c.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 *AccountsReportsGenerateCall) Context(ctx context.Context) *AccountsReportsGenerateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AccountsReportsGenerateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AccountsReportsGenerateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "accounts/{accountId}/reports") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "accountId": c.accountId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.accounts.reports.generate" 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 *AccountsReportsGenerateCall) Do(opts ...googleapi.CallOption) (*Report, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.accounts.reports.generate", | 
|  | //   "parameterOrder": [ | 
|  | //     "accountId", | 
|  | //     "startDate", | 
|  | //     "endDate" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "accountId": { | 
|  | //       "description": "Hosted account upon which to report.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "dimension": { | 
|  | //       "description": "Dimensions to base the report on.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "[a-zA-Z_]+", | 
|  | //       "repeated": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "endDate": { | 
|  | //       "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "filter": { | 
|  | //       "description": "Filters to be run on the report.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "[a-zA-Z_]+(==|=@).+", | 
|  | //       "repeated": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "locale": { | 
|  | //       "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "[a-zA-Z_]+", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "maxResults": { | 
|  | //       "description": "The maximum number of rows of report data to return.", | 
|  | //       "format": "uint32", | 
|  | //       "location": "query", | 
|  | //       "maximum": "50000", | 
|  | //       "minimum": "0", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "metric": { | 
|  | //       "description": "Numeric columns to include in the report.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "[a-zA-Z_]+", | 
|  | //       "repeated": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "sort": { | 
|  | //       "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "(\\+|-)?[a-zA-Z_]+", | 
|  | //       "repeated": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "startDate": { | 
|  | //       "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "startIndex": { | 
|  | //       "description": "Index of the first row of report data to return.", | 
|  | //       "format": "uint32", | 
|  | //       "location": "query", | 
|  | //       "maximum": "5000", | 
|  | //       "minimum": "0", | 
|  | //       "type": "integer" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "accounts/{accountId}/reports", | 
|  | //   "response": { | 
|  | //     "$ref": "Report" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.adclients.get": | 
|  |  | 
|  | type AdclientsGetCall struct { | 
|  | s            *Service | 
|  | adClientId   string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Get: Get information about one of the ad clients in the Host AdSense | 
|  | // account. | 
|  | func (r *AdclientsService) Get(adClientId string) *AdclientsGetCall { | 
|  | c := &AdclientsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | 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 *AdclientsGetCall) Fields(s ...googleapi.Field) *AdclientsGetCall { | 
|  | c.urlParams_.Set("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 *AdclientsGetCall) IfNoneMatch(entityTag string) *AdclientsGetCall { | 
|  | c.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 *AdclientsGetCall) Context(ctx context.Context) *AdclientsGetCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AdclientsGetCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AdclientsGetCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.adclients.get" call. | 
|  | // Exactly one of *AdClient or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *AdClient.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 *AdclientsGetCall) Do(opts ...googleapi.CallOption) (*AdClient, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdClient{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Get information about one of the ad clients in the Host AdSense account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.adclients.get", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client to get.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}", | 
|  | //   "response": { | 
|  | //     "$ref": "AdClient" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.adclients.list": | 
|  |  | 
|  | type AdclientsListCall struct { | 
|  | s            *Service | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: List all host ad clients in this AdSense account. | 
|  | func (r *AdclientsService) List() *AdclientsListCall { | 
|  | c := &AdclientsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | return c | 
|  | } | 
|  |  | 
|  | // MaxResults sets the optional parameter "maxResults": The maximum | 
|  | // number of ad clients to include in the response, used for paging. | 
|  | func (c *AdclientsListCall) MaxResults(maxResults int64) *AdclientsListCall { | 
|  | c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": A continuation | 
|  | // token, used to page through ad clients. To retrieve the next page, | 
|  | // set this parameter to the value of "nextPageToken" from the previous | 
|  | // response. | 
|  | func (c *AdclientsListCall) PageToken(pageToken string) *AdclientsListCall { | 
|  | c.urlParams_.Set("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 *AdclientsListCall) Fields(s ...googleapi.Field) *AdclientsListCall { | 
|  | c.urlParams_.Set("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 *AdclientsListCall) IfNoneMatch(entityTag string) *AdclientsListCall { | 
|  | c.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 *AdclientsListCall) Context(ctx context.Context) *AdclientsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AdclientsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AdclientsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.adclients.list" call. | 
|  | // Exactly one of *AdClients or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *AdClients.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 *AdclientsListCall) Do(opts ...googleapi.CallOption) (*AdClients, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AdClients{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "List all host ad clients in this AdSense account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.adclients.list", | 
|  | //   "parameters": { | 
|  | //     "maxResults": { | 
|  | //       "description": "The maximum number of ad clients to include in the response, used for paging.", | 
|  | //       "format": "uint32", | 
|  | //       "location": "query", | 
|  | //       "maximum": "10000", | 
|  | //       "minimum": "0", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients", | 
|  | //   "response": { | 
|  | //     "$ref": "AdClients" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *AdclientsListCall) Pages(ctx context.Context, f func(*AdClients) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.associationsessions.start": | 
|  |  | 
|  | type AssociationsessionsStartCall struct { | 
|  | s            *Service | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Start: Create an association session for initiating an association | 
|  | // with an AdSense user. | 
|  | func (r *AssociationsessionsService) Start(productCode []string, websiteUrl string) *AssociationsessionsStartCall { | 
|  | c := &AssociationsessionsStartCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.urlParams_.SetMulti("productCode", append([]string{}, productCode...)) | 
|  | c.urlParams_.Set("websiteUrl", websiteUrl) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // CallbackUrl sets the optional parameter "callbackUrl": The URL to | 
|  | // redirect the user to once association is completed. It receives a | 
|  | // token parameter that can then be used to retrieve the associated | 
|  | // account. | 
|  | func (c *AssociationsessionsStartCall) CallbackUrl(callbackUrl string) *AssociationsessionsStartCall { | 
|  | c.urlParams_.Set("callbackUrl", callbackUrl) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // UserLocale sets the optional parameter "userLocale": The preferred | 
|  | // locale of the user. | 
|  | func (c *AssociationsessionsStartCall) UserLocale(userLocale string) *AssociationsessionsStartCall { | 
|  | c.urlParams_.Set("userLocale", userLocale) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // WebsiteLocale sets the optional parameter "websiteLocale": The locale | 
|  | // of the user's hosted website. | 
|  | func (c *AssociationsessionsStartCall) WebsiteLocale(websiteLocale string) *AssociationsessionsStartCall { | 
|  | c.urlParams_.Set("websiteLocale", websiteLocale) | 
|  | 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 *AssociationsessionsStartCall) Fields(s ...googleapi.Field) *AssociationsessionsStartCall { | 
|  | c.urlParams_.Set("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 *AssociationsessionsStartCall) IfNoneMatch(entityTag string) *AssociationsessionsStartCall { | 
|  | c.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 *AssociationsessionsStartCall) Context(ctx context.Context) *AssociationsessionsStartCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AssociationsessionsStartCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AssociationsessionsStartCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "associationsessions/start") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.associationsessions.start" call. | 
|  | // Exactly one of *AssociationSession or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *AssociationSession.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 *AssociationsessionsStartCall) Do(opts ...googleapi.CallOption) (*AssociationSession, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AssociationSession{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Create an association session for initiating an association with an AdSense user.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.associationsessions.start", | 
|  | //   "parameterOrder": [ | 
|  | //     "productCode", | 
|  | //     "websiteUrl" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "callbackUrl": { | 
|  | //       "description": "The URL to redirect the user to once association is completed. It receives a token parameter that can then be used to retrieve the associated account.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "productCode": { | 
|  | //       "description": "Products to associate with the user.", | 
|  | //       "enum": [ | 
|  | //         "AFC", | 
|  | //         "AFG", | 
|  | //         "AFMC", | 
|  | //         "AFS", | 
|  | //         "AFV" | 
|  | //       ], | 
|  | //       "enumDescriptions": [ | 
|  | //         "AdSense For Content", | 
|  | //         "AdSense For Games", | 
|  | //         "AdSense For Mobile Content - deprecated", | 
|  | //         "AdSense For Search - deprecated", | 
|  | //         "AdSense For Video" | 
|  | //       ], | 
|  | //       "location": "query", | 
|  | //       "repeated": true, | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "userLocale": { | 
|  | //       "description": "The preferred locale of the user.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "websiteLocale": { | 
|  | //       "description": "The locale of the user's hosted website.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "websiteUrl": { | 
|  | //       "description": "The URL of the user's hosted website.", | 
|  | //       "location": "query", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "associationsessions/start", | 
|  | //   "response": { | 
|  | //     "$ref": "AssociationSession" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.associationsessions.verify": | 
|  |  | 
|  | type AssociationsessionsVerifyCall struct { | 
|  | s            *Service | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Verify: Verify an association session after the association callback | 
|  | // returns from AdSense signup. | 
|  | func (r *AssociationsessionsService) Verify(token string) *AssociationsessionsVerifyCall { | 
|  | c := &AssociationsessionsVerifyCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.urlParams_.Set("token", token) | 
|  | 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 *AssociationsessionsVerifyCall) Fields(s ...googleapi.Field) *AssociationsessionsVerifyCall { | 
|  | c.urlParams_.Set("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 *AssociationsessionsVerifyCall) IfNoneMatch(entityTag string) *AssociationsessionsVerifyCall { | 
|  | c.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 *AssociationsessionsVerifyCall) Context(ctx context.Context) *AssociationsessionsVerifyCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *AssociationsessionsVerifyCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *AssociationsessionsVerifyCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "associationsessions/verify") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.associationsessions.verify" call. | 
|  | // Exactly one of *AssociationSession or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *AssociationSession.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 *AssociationsessionsVerifyCall) Do(opts ...googleapi.CallOption) (*AssociationSession, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &AssociationSession{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Verify an association session after the association callback returns from AdSense signup.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.associationsessions.verify", | 
|  | //   "parameterOrder": [ | 
|  | //     "token" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "token": { | 
|  | //       "description": "The token returned to the association callback URL.", | 
|  | //       "location": "query", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "associationsessions/verify", | 
|  | //   "response": { | 
|  | //     "$ref": "AssociationSession" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.customchannels.delete": | 
|  |  | 
|  | type CustomchannelsDeleteCall struct { | 
|  | s               *Service | 
|  | adClientId      string | 
|  | customChannelId string | 
|  | urlParams_      gensupport.URLParams | 
|  | ctx_            context.Context | 
|  | header_         http.Header | 
|  | } | 
|  |  | 
|  | // Delete: Delete a specific custom channel from the host AdSense | 
|  | // account. | 
|  | func (r *CustomchannelsService) Delete(adClientId string, customChannelId string) *CustomchannelsDeleteCall { | 
|  | c := &CustomchannelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | c.customChannelId = customChannelId | 
|  | 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 *CustomchannelsDeleteCall) Fields(s ...googleapi.Field) *CustomchannelsDeleteCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *CustomchannelsDeleteCall) Context(ctx context.Context) *CustomchannelsDeleteCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *CustomchannelsDeleteCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *CustomchannelsDeleteCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}/customchannels/{customChannelId}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("DELETE", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId":      c.adClientId, | 
|  | "customChannelId": c.customChannelId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.customchannels.delete" call. | 
|  | // Exactly one of *CustomChannel or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *CustomChannel.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 *CustomchannelsDeleteCall) Do(opts ...googleapi.CallOption) (*CustomChannel, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &CustomChannel{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Delete a specific custom channel from the host AdSense account.", | 
|  | //   "httpMethod": "DELETE", | 
|  | //   "id": "adsensehost.customchannels.delete", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId", | 
|  | //     "customChannelId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client from which to delete the custom channel.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "customChannelId": { | 
|  | //       "description": "Custom channel to delete.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}/customchannels/{customChannelId}", | 
|  | //   "response": { | 
|  | //     "$ref": "CustomChannel" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.customchannels.get": | 
|  |  | 
|  | type CustomchannelsGetCall struct { | 
|  | s               *Service | 
|  | adClientId      string | 
|  | customChannelId string | 
|  | urlParams_      gensupport.URLParams | 
|  | ifNoneMatch_    string | 
|  | ctx_            context.Context | 
|  | header_         http.Header | 
|  | } | 
|  |  | 
|  | // Get: Get a specific custom channel from the host AdSense account. | 
|  | func (r *CustomchannelsService) Get(adClientId string, customChannelId string) *CustomchannelsGetCall { | 
|  | c := &CustomchannelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | c.customChannelId = customChannelId | 
|  | 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 *CustomchannelsGetCall) Fields(s ...googleapi.Field) *CustomchannelsGetCall { | 
|  | c.urlParams_.Set("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 *CustomchannelsGetCall) IfNoneMatch(entityTag string) *CustomchannelsGetCall { | 
|  | c.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 *CustomchannelsGetCall) Context(ctx context.Context) *CustomchannelsGetCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *CustomchannelsGetCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *CustomchannelsGetCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}/customchannels/{customChannelId}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId":      c.adClientId, | 
|  | "customChannelId": c.customChannelId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.customchannels.get" call. | 
|  | // Exactly one of *CustomChannel or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *CustomChannel.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 *CustomchannelsGetCall) Do(opts ...googleapi.CallOption) (*CustomChannel, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &CustomChannel{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Get a specific custom channel from the host AdSense account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.customchannels.get", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId", | 
|  | //     "customChannelId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client from which to get the custom channel.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "customChannelId": { | 
|  | //       "description": "Custom channel to get.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}/customchannels/{customChannelId}", | 
|  | //   "response": { | 
|  | //     "$ref": "CustomChannel" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.customchannels.insert": | 
|  |  | 
|  | type CustomchannelsInsertCall struct { | 
|  | s             *Service | 
|  | adClientId    string | 
|  | customchannel *CustomChannel | 
|  | urlParams_    gensupport.URLParams | 
|  | ctx_          context.Context | 
|  | header_       http.Header | 
|  | } | 
|  |  | 
|  | // Insert: Add a new custom channel to the host AdSense account. | 
|  | func (r *CustomchannelsService) Insert(adClientId string, customchannel *CustomChannel) *CustomchannelsInsertCall { | 
|  | c := &CustomchannelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | c.customchannel = customchannel | 
|  | 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 *CustomchannelsInsertCall) Fields(s ...googleapi.Field) *CustomchannelsInsertCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *CustomchannelsInsertCall) Context(ctx context.Context) *CustomchannelsInsertCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *CustomchannelsInsertCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *CustomchannelsInsertCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.customchannel) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}/customchannels") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.customchannels.insert" call. | 
|  | // Exactly one of *CustomChannel or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *CustomChannel.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 *CustomchannelsInsertCall) Do(opts ...googleapi.CallOption) (*CustomChannel, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &CustomChannel{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Add a new custom channel to the host AdSense account.", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "adsensehost.customchannels.insert", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client to which the new custom channel will be added.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}/customchannels", | 
|  | //   "request": { | 
|  | //     "$ref": "CustomChannel" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "CustomChannel" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.customchannels.list": | 
|  |  | 
|  | type CustomchannelsListCall struct { | 
|  | s            *Service | 
|  | adClientId   string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: List all host custom channels in this AdSense account. | 
|  | func (r *CustomchannelsService) List(adClientId string) *CustomchannelsListCall { | 
|  | c := &CustomchannelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | return c | 
|  | } | 
|  |  | 
|  | // MaxResults sets the optional parameter "maxResults": The maximum | 
|  | // number of custom channels to include in the response, used for | 
|  | // paging. | 
|  | func (c *CustomchannelsListCall) MaxResults(maxResults int64) *CustomchannelsListCall { | 
|  | c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": A continuation | 
|  | // token, used to page through custom channels. To retrieve the next | 
|  | // page, set this parameter to the value of "nextPageToken" from the | 
|  | // previous response. | 
|  | func (c *CustomchannelsListCall) PageToken(pageToken string) *CustomchannelsListCall { | 
|  | c.urlParams_.Set("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 *CustomchannelsListCall) Fields(s ...googleapi.Field) *CustomchannelsListCall { | 
|  | c.urlParams_.Set("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 *CustomchannelsListCall) IfNoneMatch(entityTag string) *CustomchannelsListCall { | 
|  | c.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 *CustomchannelsListCall) Context(ctx context.Context) *CustomchannelsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *CustomchannelsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *CustomchannelsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}/customchannels") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.customchannels.list" call. | 
|  | // Exactly one of *CustomChannels or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *CustomChannels.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 *CustomchannelsListCall) Do(opts ...googleapi.CallOption) (*CustomChannels, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &CustomChannels{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "List all host custom channels in this AdSense account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.customchannels.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client for which to list custom channels.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "maxResults": { | 
|  | //       "description": "The maximum number of custom channels to include in the response, used for paging.", | 
|  | //       "format": "uint32", | 
|  | //       "location": "query", | 
|  | //       "maximum": "10000", | 
|  | //       "minimum": "0", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}/customchannels", | 
|  | //   "response": { | 
|  | //     "$ref": "CustomChannels" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *CustomchannelsListCall) Pages(ctx context.Context, f func(*CustomChannels) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.customchannels.patch": | 
|  |  | 
|  | type CustomchannelsPatchCall struct { | 
|  | s             *Service | 
|  | adClientId    string | 
|  | customchannel *CustomChannel | 
|  | urlParams_    gensupport.URLParams | 
|  | ctx_          context.Context | 
|  | header_       http.Header | 
|  | } | 
|  |  | 
|  | // Patch: Update a custom channel in the host AdSense account. This | 
|  | // method supports patch semantics. | 
|  | func (r *CustomchannelsService) Patch(adClientId string, customChannelId string, customchannel *CustomChannel) *CustomchannelsPatchCall { | 
|  | c := &CustomchannelsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | c.urlParams_.Set("customChannelId", customChannelId) | 
|  | c.customchannel = customchannel | 
|  | 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 *CustomchannelsPatchCall) Fields(s ...googleapi.Field) *CustomchannelsPatchCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *CustomchannelsPatchCall) Context(ctx context.Context) *CustomchannelsPatchCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *CustomchannelsPatchCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *CustomchannelsPatchCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.customchannel) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}/customchannels") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PATCH", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.customchannels.patch" call. | 
|  | // Exactly one of *CustomChannel or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *CustomChannel.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 *CustomchannelsPatchCall) Do(opts ...googleapi.CallOption) (*CustomChannel, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &CustomChannel{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Update a custom channel in the host AdSense account. This method supports patch semantics.", | 
|  | //   "httpMethod": "PATCH", | 
|  | //   "id": "adsensehost.customchannels.patch", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId", | 
|  | //     "customChannelId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client in which the custom channel will be updated.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "customChannelId": { | 
|  | //       "description": "Custom channel to get.", | 
|  | //       "location": "query", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}/customchannels", | 
|  | //   "request": { | 
|  | //     "$ref": "CustomChannel" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "CustomChannel" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.customchannels.update": | 
|  |  | 
|  | type CustomchannelsUpdateCall struct { | 
|  | s             *Service | 
|  | adClientId    string | 
|  | customchannel *CustomChannel | 
|  | urlParams_    gensupport.URLParams | 
|  | ctx_          context.Context | 
|  | header_       http.Header | 
|  | } | 
|  |  | 
|  | // Update: Update a custom channel in the host AdSense account. | 
|  | func (r *CustomchannelsService) Update(adClientId string, customchannel *CustomChannel) *CustomchannelsUpdateCall { | 
|  | c := &CustomchannelsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | c.customchannel = customchannel | 
|  | 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 *CustomchannelsUpdateCall) Fields(s ...googleapi.Field) *CustomchannelsUpdateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *CustomchannelsUpdateCall) Context(ctx context.Context) *CustomchannelsUpdateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *CustomchannelsUpdateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *CustomchannelsUpdateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.customchannel) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}/customchannels") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PUT", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.customchannels.update" call. | 
|  | // Exactly one of *CustomChannel or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *CustomChannel.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 *CustomchannelsUpdateCall) Do(opts ...googleapi.CallOption) (*CustomChannel, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &CustomChannel{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Update a custom channel in the host AdSense account.", | 
|  | //   "httpMethod": "PUT", | 
|  | //   "id": "adsensehost.customchannels.update", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client in which the custom channel will be updated.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}/customchannels", | 
|  | //   "request": { | 
|  | //     "$ref": "CustomChannel" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "CustomChannel" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.reports.generate": | 
|  |  | 
|  | type ReportsGenerateCall struct { | 
|  | s            *Service | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Generate: Generate an AdSense report based on the report request sent | 
|  | // in the query parameters. Returns the result as JSON; to retrieve | 
|  | // output in CSV format specify "alt=csv" as a query parameter. | 
|  | func (r *ReportsService) Generate(startDate string, endDate string) *ReportsGenerateCall { | 
|  | c := &ReportsGenerateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.urlParams_.Set("startDate", startDate) | 
|  | c.urlParams_.Set("endDate", endDate) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Dimension sets the optional parameter "dimension": Dimensions to base | 
|  | // the report on. | 
|  | func (c *ReportsGenerateCall) Dimension(dimension ...string) *ReportsGenerateCall { | 
|  | c.urlParams_.SetMulti("dimension", append([]string{}, dimension...)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Filter sets the optional parameter "filter": Filters to be run on the | 
|  | // report. | 
|  | func (c *ReportsGenerateCall) Filter(filter ...string) *ReportsGenerateCall { | 
|  | c.urlParams_.SetMulti("filter", append([]string{}, filter...)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Locale sets the optional parameter "locale": Optional locale to use | 
|  | // for translating report output to a local language. Defaults to | 
|  | // "en_US" if not specified. | 
|  | func (c *ReportsGenerateCall) Locale(locale string) *ReportsGenerateCall { | 
|  | c.urlParams_.Set("locale", locale) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // MaxResults sets the optional parameter "maxResults": The maximum | 
|  | // number of rows of report data to return. | 
|  | func (c *ReportsGenerateCall) MaxResults(maxResults int64) *ReportsGenerateCall { | 
|  | c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Metric sets the optional parameter "metric": Numeric columns to | 
|  | // include in the report. | 
|  | func (c *ReportsGenerateCall) Metric(metric ...string) *ReportsGenerateCall { | 
|  | c.urlParams_.SetMulti("metric", append([]string{}, metric...)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Sort sets the optional parameter "sort": The name of a dimension or | 
|  | // metric to sort the resulting report on, optionally prefixed with "+" | 
|  | // to sort ascending or "-" to sort descending. If no prefix is | 
|  | // specified, the column is sorted ascending. | 
|  | func (c *ReportsGenerateCall) Sort(sort ...string) *ReportsGenerateCall { | 
|  | c.urlParams_.SetMulti("sort", append([]string{}, sort...)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // StartIndex sets the optional parameter "startIndex": Index of the | 
|  | // first row of report data to return. | 
|  | func (c *ReportsGenerateCall) StartIndex(startIndex int64) *ReportsGenerateCall { | 
|  | c.urlParams_.Set("startIndex", fmt.Sprint(startIndex)) | 
|  | 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 *ReportsGenerateCall) Fields(s ...googleapi.Field) *ReportsGenerateCall { | 
|  | c.urlParams_.Set("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 *ReportsGenerateCall) IfNoneMatch(entityTag string) *ReportsGenerateCall { | 
|  | c.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 *ReportsGenerateCall) Context(ctx context.Context) *ReportsGenerateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ReportsGenerateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ReportsGenerateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "reports") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.reports.generate" 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 *ReportsGenerateCall) Do(opts ...googleapi.CallOption) (*Report, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify \"alt=csv\" as a query parameter.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.reports.generate", | 
|  | //   "parameterOrder": [ | 
|  | //     "startDate", | 
|  | //     "endDate" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "dimension": { | 
|  | //       "description": "Dimensions to base the report on.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "[a-zA-Z_]+", | 
|  | //       "repeated": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "endDate": { | 
|  | //       "description": "End of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "filter": { | 
|  | //       "description": "Filters to be run on the report.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "[a-zA-Z_]+(==|=@).+", | 
|  | //       "repeated": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "locale": { | 
|  | //       "description": "Optional locale to use for translating report output to a local language. Defaults to \"en_US\" if not specified.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "[a-zA-Z_]+", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "maxResults": { | 
|  | //       "description": "The maximum number of rows of report data to return.", | 
|  | //       "format": "uint32", | 
|  | //       "location": "query", | 
|  | //       "maximum": "50000", | 
|  | //       "minimum": "0", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "metric": { | 
|  | //       "description": "Numeric columns to include in the report.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "[a-zA-Z_]+", | 
|  | //       "repeated": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "sort": { | 
|  | //       "description": "The name of a dimension or metric to sort the resulting report on, optionally prefixed with \"+\" to sort ascending or \"-\" to sort descending. If no prefix is specified, the column is sorted ascending.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "(\\+|-)?[a-zA-Z_]+", | 
|  | //       "repeated": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "startDate": { | 
|  | //       "description": "Start of the date range to report on in \"YYYY-MM-DD\" format, inclusive.", | 
|  | //       "location": "query", | 
|  | //       "pattern": "\\d{4}-\\d{2}-\\d{2}|(today|startOfMonth|startOfYear)(([\\-\\+]\\d+[dwmy]){0,3}?)", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "startIndex": { | 
|  | //       "description": "Index of the first row of report data to return.", | 
|  | //       "format": "uint32", | 
|  | //       "location": "query", | 
|  | //       "maximum": "5000", | 
|  | //       "minimum": "0", | 
|  | //       "type": "integer" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "reports", | 
|  | //   "response": { | 
|  | //     "$ref": "Report" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.urlchannels.delete": | 
|  |  | 
|  | type UrlchannelsDeleteCall struct { | 
|  | s            *Service | 
|  | adClientId   string | 
|  | urlChannelId string | 
|  | urlParams_   gensupport.URLParams | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Delete: Delete a URL channel from the host AdSense account. | 
|  | func (r *UrlchannelsService) Delete(adClientId string, urlChannelId string) *UrlchannelsDeleteCall { | 
|  | c := &UrlchannelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | c.urlChannelId = urlChannelId | 
|  | 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 *UrlchannelsDeleteCall) Fields(s ...googleapi.Field) *UrlchannelsDeleteCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *UrlchannelsDeleteCall) Context(ctx context.Context) *UrlchannelsDeleteCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *UrlchannelsDeleteCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *UrlchannelsDeleteCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}/urlchannels/{urlChannelId}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("DELETE", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId":   c.adClientId, | 
|  | "urlChannelId": c.urlChannelId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.urlchannels.delete" call. | 
|  | // Exactly one of *UrlChannel or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *UrlChannel.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 *UrlchannelsDeleteCall) Do(opts ...googleapi.CallOption) (*UrlChannel, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &UrlChannel{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Delete a URL channel from the host AdSense account.", | 
|  | //   "httpMethod": "DELETE", | 
|  | //   "id": "adsensehost.urlchannels.delete", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId", | 
|  | //     "urlChannelId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client from which to delete the URL channel.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "urlChannelId": { | 
|  | //       "description": "URL channel to delete.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}/urlchannels/{urlChannelId}", | 
|  | //   "response": { | 
|  | //     "$ref": "UrlChannel" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.urlchannels.insert": | 
|  |  | 
|  | type UrlchannelsInsertCall struct { | 
|  | s          *Service | 
|  | adClientId string | 
|  | urlchannel *UrlChannel | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Insert: Add a new URL channel to the host AdSense account. | 
|  | func (r *UrlchannelsService) Insert(adClientId string, urlchannel *UrlChannel) *UrlchannelsInsertCall { | 
|  | c := &UrlchannelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | c.urlchannel = urlchannel | 
|  | 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 *UrlchannelsInsertCall) Fields(s ...googleapi.Field) *UrlchannelsInsertCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *UrlchannelsInsertCall) Context(ctx context.Context) *UrlchannelsInsertCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *UrlchannelsInsertCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *UrlchannelsInsertCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlchannel) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}/urlchannels") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.urlchannels.insert" call. | 
|  | // Exactly one of *UrlChannel or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *UrlChannel.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 *UrlchannelsInsertCall) Do(opts ...googleapi.CallOption) (*UrlChannel, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &UrlChannel{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Add a new URL channel to the host AdSense account.", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "adsensehost.urlchannels.insert", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client to which the new URL channel will be added.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}/urlchannels", | 
|  | //   "request": { | 
|  | //     "$ref": "UrlChannel" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "UrlChannel" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "adsensehost.urlchannels.list": | 
|  |  | 
|  | type UrlchannelsListCall struct { | 
|  | s            *Service | 
|  | adClientId   string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: List all host URL channels in the host AdSense account. | 
|  | func (r *UrlchannelsService) List(adClientId string) *UrlchannelsListCall { | 
|  | c := &UrlchannelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.adClientId = adClientId | 
|  | return c | 
|  | } | 
|  |  | 
|  | // MaxResults sets the optional parameter "maxResults": The maximum | 
|  | // number of URL channels to include in the response, used for paging. | 
|  | func (c *UrlchannelsListCall) MaxResults(maxResults int64) *UrlchannelsListCall { | 
|  | c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": A continuation | 
|  | // token, used to page through URL channels. To retrieve the next page, | 
|  | // set this parameter to the value of "nextPageToken" from the previous | 
|  | // response. | 
|  | func (c *UrlchannelsListCall) PageToken(pageToken string) *UrlchannelsListCall { | 
|  | c.urlParams_.Set("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 *UrlchannelsListCall) Fields(s ...googleapi.Field) *UrlchannelsListCall { | 
|  | c.urlParams_.Set("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 *UrlchannelsListCall) IfNoneMatch(entityTag string) *UrlchannelsListCall { | 
|  | c.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 *UrlchannelsListCall) Context(ctx context.Context) *UrlchannelsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *UrlchannelsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *UrlchannelsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200716") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "adclients/{adClientId}/urlchannels") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "adClientId": c.adClientId, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "adsensehost.urlchannels.list" call. | 
|  | // Exactly one of *UrlChannels or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *UrlChannels.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 *UrlchannelsListCall) Do(opts ...googleapi.CallOption) (*UrlChannels, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &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 := &UrlChannels{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "List all host URL channels in the host AdSense account.", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "adsensehost.urlchannels.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "adClientId" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "adClientId": { | 
|  | //       "description": "Ad client for which to list URL channels.", | 
|  | //       "location": "path", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "maxResults": { | 
|  | //       "description": "The maximum number of URL channels to include in the response, used for paging.", | 
|  | //       "format": "uint32", | 
|  | //       "location": "query", | 
|  | //       "maximum": "10000", | 
|  | //       "minimum": "0", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "adclients/{adClientId}/urlchannels", | 
|  | //   "response": { | 
|  | //     "$ref": "UrlChannels" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/adsensehost" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *UrlchannelsListCall) Pages(ctx context.Context, f func(*UrlChannels) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } |